🎯 OpenCode插件系列: supermemory
类型:Persistent Memory Plugin(持久化记忆插件)
1. 这是什么插件?
opencode-supermemory 是一个给 AI agent 提供跨会话和项目的持久化记忆的插件。这意味着 AI agent 始终记得你们的约定、从你的代码库学到的知识以及你的个人偏好。
可以把它想象成 AI 的"长期记忆":
- 没有这个插件:每次新会话,AI 都会忘记之前的一切
- 使用这个插件:AI 会自动查阅旧的上下文
记忆层级:
- 用户档案 (跨项目) —— 你的个人偏好、写作风格、偏好的模型
- 项目记忆 —— 项目相关信息(如
使用Bun而非Node.js、build commands等) - 会话摘要 —— 过去会话的总结
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-configarchitectureerror-solutionpreferencelearned-patternconversation
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