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 读取特定日志条目 |
链接
- GitHub 仓库 — 源代码和问题反馈
- Awesome OpenCode — 浏览更多插件