当前位置: 首页 > news >正文

让 OpenCode 更好用的神器——OpenMemory 记忆体,一次配置永久有效

这是「OpenCode 打造个人 AI 智能体」系列的第三篇。

这篇的目标很简单:跟着走完一遍,你的 OpenCode 就有了长期记忆。


你有没有遇到过这种情况——打开 OpenCode,刚跟 AI 聊完一个功能,关掉。下次再打开,它又对你的项目一无所知了。

你得重新说一遍:

“项目用 Spring Boot 2.7 + MyBatis-Plus,返回结果用 R 包装……”

一天重复好几次。

这不是 AI 不够聪明,是它没有记忆。每个会话是独立的,关了就清空。

OpenCode 要解决这个问题,需要接一个叫OpenMemory的外置记忆体。配好之后,你告诉过它的信息它会一直记得,下次开新会话也能直接查到。

这篇完整走一遍安装和配置流程。


一、先搞懂:整个系统是怎么组成的

在动手之前,先知道你要装的是什么东西。

完整架构是这样的:

┌─────────────────┐ │ OpenCode │ ← AI 编程助手(客户端) │ (你日常用的) │ └────────┬────────┘ │ 通过插件连接 ┌────────▼────────┐ │ opencode- │ ← 连接插件(装一次就行) │ openmemory │ │ (插件) │ └────────┬────────┘ │ 通过 MCP 协议通信 ┌────────▼────────┐ │ OpenMemory │ ← 记忆体服务(运行在 Docker 里) │ (服务端) │ 负责存和查记忆 └────────┬────────┘ │ 用 Ollama 做向量化 ┌────────▼────────┐ │ Ollama │ ← 本地模型,把文字转成向量 │ (本地模型) │ 让 AI 能"理解"记忆的含义 └─────────────────┘

为什么需要 Ollama?因为 OpenMemory 存记忆的时候,不是简单存文字,而是把文字转成"向量"(可以理解为给每段记忆算一个"语义指纹")。这样你查"订单查询接口"的时候,它能把"订单列表""订单详情"这些相关的记忆也找出来。Ollama 就是做这个向量化的工具。

为什么需要 MCP?MCP 是 Model Context Protocol 的缩写,可以理解为"AI 世界的 USB 接口"。OpenCode 通过 MCP 协议跟 OpenMemory 通信,让 AI 能直接调用记忆体的功能——就像电脑通过 USB 口接硬盘一样。

整个流程全跑在本地,不需要任何云服务。


二、装之前,先准备好这些工具

你需要先装好 4 个东西。装过的可以跳过。

# 1. Node.js (v20 以上)node-v# 没有的话去 nodejs.org 下载# 2. bun(包管理器,比 npm 快)npminstall-gbun bun-v# 3. Docker Desktopdockerps# 没有的话去 docker.com 下载安装# 4. Ollama(本地模型)brewinstallollama ollama--version

注意:如果你在国内,Docker Desktop 需要配置镜像加速器。在 Docker Desktop → Settings → Docker Engine 里加这一段:

{"registry-mirrors":["https://docker.m.daocloud.io"]}

保存后重启 Docker。

装完之后:

# 启动 Ollama(保持这个终端开着)ollama serve# 新开一个终端,拉取嵌入模型(约 300MB)ollama pull nomic-embed-text

三、部署 OpenMemory(跑在 Docker 里)

3.1 克隆项目

gitclone https://github.com/CaviraOSS/OpenMemory.gitcdOpenMemorycp.env.example .env

3.2 修改配置

这是最关键的一步。编辑.env文件,把这些内容覆盖进去:

# 性能等级:hybrid 适合本地跑OM_TIER=hybrid# 嵌入模型用本地 Ollama(不用 OpenAI)OM_EMBEDDINGS=ollama# Ollama 地址(macOS 上固定这么写)OLLAMA_URL=http://host.docker.internal:11434# 嵌入模型名称(跟刚才 pull 的一样)OM_OLLAMA_MODEL=nomic-embed-text# 嵌入模式OM_EMBED_MODE=simple# 以下所有 Key 全部留空(不需要)OPENAI_API_KEY=GEMINI_API_KEY=

为什么这个配置重要?默认配置用的是 OpenAI 的 API 来做向量化——这需要联网,还要花钱。改成 Ollama 之后,全部在本地完成,免费、离线可用。

3.3 启动

dockercompose up--build-d

第一次启动会下载镜像并构建,等 3-5 分钟。完成后执行:

dockerps

如果看到openmemory-backend-1openmemory-frontend-1两个容器都在运行,说明部署成功。

再验证一下服务:

curlhttp://localhost:8080/health

返回{"status":"ok"}就对了。


四、安装连接插件(OpenCode 到 OpenMemory)

4.1 为什么要装这个插件?

OpenCode 本身不认识 OpenMemory。需要一个"翻译官"来让它们对话。

@happycastle/opencode-openmemory这个插件就是做这个的。它会:

  • 每次新会话开始时,自动从 OpenMemory 加载相关记忆
  • 你说"记住:XXX"的时候,自动把信息存进记忆体
  • 对话上下文满了的时候,自动做精简和保存

4.2 安装插件

就一条命令:

bunx @happycastle/opencode-openmemory@latestinstall

这条命令会自动下载插件,并在~/.config/opencode/opencode.json里添加上插件配置。

4.3 手动确认配置

打开~/.config/opencode/opencode.json

{"$schema":"https://opencode.ai/config.json","instructions":["AGENTS.md"],"plugin":["@happycastle/opencode-openmemory@latest"],"mcp":{"openmemory":{"type":"remote","url":"http://localhost:8080/mcp","enabled":true}}}

关于这个 MCP 配置:这里的mcp.openmemory就是告诉 OpenCode:有一个叫 OpenMemory 的外部服务,它的地址是http://localhost:8080/mcp,通过 MCP 协议通信。"type": "remote"表示它是一个远程服务(虽然跑在你的本地机器上,但对 OpenCode 来说是通过 HTTP 访问的远程服务)。"enabled": true表示启动时自动启用。

4.4 配置记忆体参数

创建~/.config/opencode/openmemory.jsonc

{"apiUrl":"http://localhost:8080","similarityThreshold":0.6,"maxMemories":5,"maxProjectMemories":10,"injectProfile":true,"defaultSector":"semantic"}

这些参数的意思:

参数作用小白理解
apiUrlOpenMemory 服务地址告诉插件记忆体在哪
similarityThreshold相似度阈值(0~1)低于 0.6 的不算相关,不返回
maxMemories每次注入最多几条记忆防止一次加载太多占上下文
injectProfile是否注入跨项目偏好设为 true 能在不同项目共享习惯

4.5 重启 OpenCode

opencode

启动后输入/看看命令列表,如果出现了/openmemory-init说明插件加载成功了。也可以输入mcps查看 MCP 服务列表,里面应该有openmemory


五、验证:确认它能用了

新开一个对话,按顺序测试:

测试 1:存记忆

> 记住:我叫老齐,是启航电商ERP系统的作者。

AI 应该回复"已记住"之类的话,并调用 OpenMemory 存下来。

测试 2:查记忆

> 我是谁?

AI 应该能回答出"你是老齐,启航电商ERP的作者"。

测试 3:跨会话验证

关掉这个对话,新开一个。直接问:

> 我是谁?

如果它还记得,说明配置成功——记忆已经跨会话持久化了。


六、日常怎么用

记项目信息

> 记住:我的项目用 Spring Boot 2.7 + MySQL 5.7 + MyBatis-Plus

下次新会话,AI 会自动加载这条信息。你不用再介绍项目背景了。

记代码规范

> 记住:所有 Service 层必须写接口,Controller 统一返回 R<T> 包装 > 记住:数据库表名用 snake_case,字段加 f_ 前缀

记 Bug 修复方案

> 记住:EasyExcel 大文件 OOM 用 PageRead 分批读取,每批 1000 条

这个最有用。几个月前修的一个 Bug,AI 还记得。同事来问的时候,查一下记忆体答案就出来了。

一键导入项目知识库

如果你的项目有设计文档、接口说明之类的 Markdown 文件,可以用这个命令让 AI 一次性扫描并存入记忆:

/openmemory-init

它会读取当前目录下的文档,提取核心信息存入 OpenMemory。


七、日常启动顺序

OpenMemory 不会随系统自动启动。每次要用的时候,按这个顺序:

# 第 1 步:启动 Ollama(如果没开)ollama serve&# 第 2 步:启动 OpenMemorycd~/OpenMemory&&dockercompose up-d# 第 3 步:启动 OpenCodeopencode

建议把这个写成一个脚本,一键启动。


八、常见问题排查

AI 说"我没有设置记忆功能"?

说明插件没装成功。检查~/.config/opencode/opencode.json里有没有插件配置。

存了记忆但查不到?

先等 5-10 秒让服务就绪。然后输入/openmemory list手动刷新。

curl 返回 401?

检查.env配置是否正确,尤其是OM_TIER=hybridOM_EMBEDDINGS=ollama

用着用着感觉 AI 变笨了?

可能是记忆太多了。降低maxMemories的值(比如改成 3),减少每次注入的记忆数量。


总结

配置好 OpenMemory 之后,最大的变化不是某个功能变强了,而是你跟 AI 的协作方式变了——不用每次重新认识,它越来越了解你的项目。

如果你今天第一次配,记住:

  1. 先跑通架构:Ollama → OpenMemory → 插件 → OpenCode
  2. 存一条记忆验证:“记住:XXX”
  3. 日常遇到有用的信息顺手存一笔

如果这篇文章对你有帮助:

  • 点个在看,让更多 OpenCode 用户用上记忆体
  • 收藏起来,跟着步骤配一套

系列目录

  • ✅ 第一篇:安装与使用技巧
  • ✅ 第二篇:子代理系统——Build、Plan、Explore 怎么用
  • 第三篇:让 OpenCode 更好用的神器——OpenMemory 记忆体(本篇)
  • ⬜ 第四篇:化简为繁——用本地 MD 文件做记忆体
  • ⬜ 第五篇:5 个内置工具让你写代码效率翻倍
  • ⬜ 第六篇:30 分钟做一个全栈功能——完整工作流演示
  • ⬜ 第七篇:用 AGENTS.md 让 AI 表现翻倍
  • ⬜ 第八篇:OpenCode 三个月实战,这 5 个坑我帮你踩过了
  • ⬜ 第九篇:一个人维护 5 个仓库——我的真实 OpenCode 工作流
http://www.gsyq.cn/news/1415459.html

相关文章:

  • LaserGRBL:免费开源激光雕刻控制软件的终极解决方案
  • 降AI率原理是什么?2026年4款降AI软件知网维普实测对比
  • 三步搞定:Hanime1Plugin让你的Android动画观看体验焕然一新
  • 深耕水环境治理 山东科净环保以实干铸就本土设备标杆 - 资讯速览
  • 模型对话层实现:接入 DeepSeek API,实现需求的初步理解与澄清
  • LAMMPS后处理避坑指南:compute/fix ave/chunk命令参数详解与温度数据导出实战
  • AI智能体安全监控:6大风险信号捕获与实战指南
  • STM32串口IDLE+DMA接收数据异常排查:为何Normal模式仅能工作一次?
  • Arduino激光对战系统智能电池充电模块设计与实现
  • 通达信缠论插件终极指南:3分钟实现复杂缠论可视化分析
  • 告别“卡脖子”与数据孤岛,易打标深耕条码标签打印,完成国产信创适配
  • 3秒读懂B站评论者身份:开源成分检测器终极指南
  • 如何永久掌控你的微信聊天记忆:WeChatMsg完全指南
  • 09 GPT-2 论文精读:语言模型如何走向 Zero-shot?
  • 移动端与 viewport:rem、safe-area 与 1px 高清适配
  • 记忆管理(Memory):让你的 AI 测试工具拥有多轮对话的上下文能力
  • 龙岗GEO豆包推广怎么做?3.45亿月活AI平台,这家深圳本土公司已帮1000+企业拿下精准流量 - 猫头鹰AI推广
  • Dism++:完全免费的Windows系统优化终极解决方案
  • 2026年广州工业气体配送公司推荐:广州晋兴气体、工业气体、高纯气体、液态气体、深耕黄埔增城专注工业气体生产与配送服务 - 海棠依旧大
  • 从确定性到概率性:LLM测试工程师的思维转型与实战策略
  • 成都黄金回收避坑与专业选择指南 - 润富黄金珠宝行
  • Shopify跨境电商独立站怎么建站:2026零基础全流程指南与常见问题解答 - 麦麦唛
  • 苏州市民注意!2026黄金回收新趋势:耀辉光谱仪验金成色无忧 - 奢侈品回收
  • 5分钟让Windows 11脱胎换骨:开源瘦身工具Win11Debloat深度体验
  • 收藏!小白程序员必看:轻松掌握RAG大模型核心技术,从入门到精通
  • 京东福粒卡回收最强推荐:精选平台与高价方案汇总 - 团团收购物卡回收
  • 程序员必看:计算机发展史里的‘软件’是怎么从无到有的?
  • 基于LoRa WSN的滑坡监测系统:从传感器到云端的物联网实践
  • 别再被静电打懵了!一文搞懂ESD测试标准(HBM/MM/CDM/FIM)与消费电子/车载应用差异
  • 2026年北京发电机租赁服务靠谱服务商推荐:静音、大型、柴油发电机组出租、北京京信鸿越机电设备有限公司 - 海棠依旧大