跳转到内容

Agent Memory

Agent Memory

Agent Memory 为 OpenCode 带来了 Letta 风格的可编辑记忆块。受 Letta(原 MemGPT)启发,该插件为代理提供了持久化、可自我编辑的记忆块 — 以磁盘上的共享 Markdown 文件形式存在,每个 OpenCode 会话都可以读写。

可以将其视为带框架的 AGENTS.md:增加了结构(带有元数据和大小限制的作用域块)、专用的记忆操作工具,以及引导代理主动维护自身记忆的提示机制。

核心特性

特性说明
持久化记忆跨会话和上下文压缩后依然保留
跨会话共享全局块在所有项目间共享;项目块在同一代码库的所有会话间共享
自我编辑代理可以使用专用工具读取和修改自身记忆
系统提示注入记忆块出现在系统提示中,始终保持在上下文中
日志本仅追加的条目,支持语义搜索,用于捕获洞察和决策

安装

添加到 ~/.config/opencode/opencode.json

{
  "plugin": ["opencode-agent-memory"]
}

固定到特定版本:

{
  "plugin": ["opencode-agent-memory@0.2.0"]
}

记忆块

首次运行时创建的默认块:

作用域用途
persona全局代理的行为方式和响应风格
human全局关于你的详细信息(偏好、习惯、约束)
project项目代码库特定的知识(命令、架构、约定)

记忆文件位置:

  • 全局块: ~/.config/opencode/memory/*.md
  • 项目块: .opencode/memory/*.md(自动添加到 .gitignore)

日志本

启用日志本以实现跨会话的语义搜索:

{
  "journal": {
    "enabled": true,
    "tags": [
      { "name": "perf", "description": "Performance optimization work" },
      { "name": "debugging", "description": "Debugging sessions and findings" }
    ]
  }
}

日志本配置文件位于 ~/.config/opencode/agent-memory.json

语义搜索使用本地嵌入模型(all-MiniLM-L6-v2) — 数据不会离开你的机器。

工具

记忆工具

工具说明
memory_list列出可用的记忆块(标签、描述、大小)
memory_set创建或更新记忆块(完全覆盖)
memory_replace替换记忆块中的子字符串

日志本工具(启用日志本后可用)

工具说明
journal_write写入新的日志条目,包含标题、正文和可选标签
journal_search语义搜索条目,支持按项目或标签筛选
journal_read按 ID 读取特定日志条目

链接