joshuadavidthomas/opencode-agent-memory
Memory blocks for OpenCode, inspired by Letta.
解决的问题
为 OpenCode 中的 AI 代理提供持久且可自我编辑的长期记忆。这可防止代理在不同会话之间或对话历史被压缩时遗忘关键信息,从而保持一致的角色设定,并记住项目特定的约定。
工作原理
该插件实现了一套“记忆块”和“日志”系统,以 Markdown 文件形式存储在磁盘上。
- 记忆块:这些是作用域文件(全局或项目特定),包含元数据和内容。代理被赋予一组工具(
memory_list、memory_get、memory_set、memory_replace),可自主读取和更新这些块。为保持提示缓存稳定,记忆在会话开始时进行快照,并仅在上下文压缩后刷新。 - 日志:一个可选的、仅追加的日志,代理可在此记录见解和决策。它使用本地嵌入(
all-MiniLM-L6-v2)实现跨条目的语义搜索,而无需将数据发送到机器外部。
适用人群
希望其 AI 编程助手在多个会话和项目中记住用户偏好、架构决策和学习到的模式的 OpenCode 开发者。
主要亮点
- 自我编辑:代理可使用专用工具主动管理自身记忆。
- 作用域记忆:支持全局记忆(跨所有项目)和项目特定记忆。
- 缓存友好:使用快照避免反复使提供方的提示缓存失效。
- 本地语义搜索:日志允许代理使用本地嵌入检索过往见解。
- 预算管理:包含
memory_oversized工具,帮助代理识别并压缩超出字符限制的块。
相关
- 项目
- 项目
- 项目
- 项目
- 项目