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 工具,帮助代理识别并压缩超出字符限制的块。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目