🎯 OpenCode插件系列: supermemory

类型:Persistent Memory Plugin(持久化记忆插件)


1. 这是什么插件?

opencode-supermemory 是一个给 AI agent 提供跨会话和项目的持久化记忆的插件。这意味着 AI agent 始终记得你们的约定、从你的代码库学到的知识以及你的个人偏好。

可以把它想象成 AI 的"长期记忆":

  • 没有这个插件:每次新会话,AI 都会忘记之前的一切
  • 使用这个插件:AI 会自动查阅旧的上下文

记忆层级:

  1. 用户档案 (跨项目) —— 你的个人偏好、写作风格、偏好的模型
  2. 项目记忆 —— 项目相关信息(如使用Bun而非Node.jsbuild commands等)
  3. 会话摘要 —— 过去会话的总结

2. 用途是什么?

使用它来:

  • 让AI记住之前学到的内容
  • 代码库索引 —— AI 探索你的代码库并保存模式和约定
  • 自动保存 —— 当使用"remember"、“save this”、“don’t forget"等关键词时自动保存
  • 上下文注入 —— 在第一条消息中,AI会收到来自记忆的完整上下文
  • 预压缩机制 —— 当上下文使用达到80%时,在信息丢失前进行压缩
  • 隐私标签 —— 标记为<private>data</private>的内容不会被保存
  • 跨项目用户档案 —— 你的偏好可以在所有项目间传递

AI看到的上下文示例:

[SUPERMEMORY]
用户档案:
- 偏好简洁的回答
- TypeScript专家
项目知识:
- [100%] 使用Bun,而非Node.js
- [100%] 构建命令:bun run build
相关记忆:
- [82%] 如果.env.local缺失,构建会失败

3. 如何使用?

步骤1:安装

bunx opencode-supermemory@latest install

这会自动将插件添加到 ~/.config/opencode/opencode.jsonc 并创建 /supermemory-init 命令。

步骤2:获取 API Key

访问 [app.supermemory.ai](https://app.supermemory.ai/?view=integrations) 创建账户并获取 API key。

步骤3:配置 API Key

通过环境变量:

export SUPERMEMORY_API_KEY="sm_..."

或者在 ~/.config/opencode/supermemory.jsonc 文件中:

{
  "apiKey": "sm_...",

  "similarityThreshold": 0.6,    // 搜索时的最低相似度阈值
  "maxMemories": 5,              // 注入请求中的最大记忆数
  "maxProjectMemories": 10,      // 最大项目记忆数
  "maxProfileItems": 5,          // 最大档案事实数量
  "injectProfile": true,         // 在上下文中包含用户档案
  "compactionThreshold": 0.8     // 触发压缩的消耗百分比
}

步骤4:初始化代码库(可选但推荐)

/supermemory-init

这会让 AI 探索代码库并保存:

  • 项目结构
  • 使用的模式
  • 代码特有的约定

日常使用

自动保存(关键词检测):

你:"记住这个项目使用bun"
AI:[自动保存到项目记忆]
你:"别忘了我们使用Pinia做状态管理"
AI:[自动保存]

supermemory 工具为AI提供5种模式:

模式 功能
`add` 保存新记忆
`search` 搜索记忆
`profile` 显示用户档案
`list` 记忆列表
`forget` 删除特定记忆

作用域:

  • user —— 跨项目(个人偏好,在项目间传递)
  • project (默认) —— 当前项目专属

类型:

  • project-config
  • architecture
  • error-solution
  • preference
  • learned-pattern
  • conversation

4. 何时使用?

使用场景:

  • ✅ 在长期处理同一代码库时(如你在Nanosoft的base-layer)
  • ✅ 有重复信息需要每次都告诉AI时
  • ✅ 处理多个项目但希望AI记住你的偏好时
  • ✅ 希望在不同会话间保持连续性
  • ✅ 处理重复的bug修复时,需要AI记住解决方案
  • ✅ 你的工作注重细节(符合你的个性特点)

不适用场景:

  • ❌ 在快速原型设计且项目频繁变化时
  • ❌ 处理隐私敏感的项目时(数据会发送到Supermemory服务器)
  • ❌ 不希望依赖外部服务
  • ❌ 每次工作性质都完全不同且没有连续性时

⚠️ 重要注意事项

与 Oh My OpenCode:

如果使用 OmO,需要禁用 auto-compact hook 以便 supermemory 执行压缩:

~/.config/opencode/oh-my-opencode.json 中:

{
  "disabled_hooks": ["anthropic-context-window-limit-recovery"]
}

容器标签:

标签会自动生成:

  • 用户:opencode_user_{sha256(git_email)}
  • 项目:opencode_project_{sha256(directory)}

可以进行自定义配置:

  • 在团队成员间共享记忆(使用相同的userContainerTag
  • 在不同设备间同步
  • 按自己的方式组织记忆
{
  "userContainerTag": "my-team-workspace",
  "projectContainerTag": "nanosoft-base-layer"
}

隐私:

<private>...</private> 标签内的任何内容都不会被保存。适用于 API keys 和敏感信息。

API key is <private>sk-abc123</private>

日志:

tail -f ~/.opencode-supermemory.log

许可证:MIT


🔗 有用链接