这是「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 就是做这个向量化的工具。为什么需要 MCPMCP 是 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# 新开一个终端拉取嵌入模型约 300MBollama pull nomic-embed-text三、部署 OpenMemory跑在 Docker 里3.1 克隆项目gitclone https://github.com/CaviraOSS/OpenMemory.gitcdOpenMemorycp.env.example .env3.2 修改配置这是最关键的一步。编辑.env文件把这些内容覆盖进去# 性能等级hybrid 适合本地跑OM_TIERhybrid# 嵌入模型用本地 Ollama不用 OpenAIOM_EMBEDDINGSollama# Ollama 地址macOS 上固定这么写OLLAMA_URLhttp://host.docker.internal:11434# 嵌入模型名称跟刚才 pull 的一样OM_OLLAMA_MODELnomic-embed-text# 嵌入模式OM_EMBED_MODEsimple# 以下所有 Key 全部留空不需要OPENAI_API_KEYGEMINI_API_KEY为什么这个配置重要默认配置用的是 OpenAI 的 API 来做向量化——这需要联网还要花钱。改成 Ollama 之后全部在本地完成免费、离线可用。3.3 启动dockercompose up--build-d第一次启动会下载镜像并构建等 3-5 分钟。完成后执行dockerps如果看到openmemory-backend-1和openmemory-frontend-1两个容器都在运行说明部署成功。再验证一下服务curlhttp://localhost:8080/health返回{status:ok}就对了。四、安装连接插件OpenCode 到 OpenMemory4.1 为什么要装这个插件OpenCode 本身不认识 OpenMemory。需要一个翻译官来让它们对话。happycastle/opencode-openmemory这个插件就是做这个的。它会每次新会话开始时自动从 OpenMemory 加载相关记忆你说记住XXX的时候自动把信息存进记忆体对话上下文满了的时候自动做精简和保存4.2 安装插件就一条命令bunx happycastle/opencode-openmemorylatestinstall这条命令会自动下载插件并在~/.config/opencode/opencode.json里添加上插件配置。4.3 手动确认配置打开~/.config/opencode/opencode.json{$schema:https://opencode.ai/config.json,instructions:[AGENTS.md],plugin:[happycastle/opencode-openmemorylatest],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 重启 OpenCodeopencode启动后输入/看看命令列表如果出现了/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 统一返回 RT 包装 记住数据库表名用 snake_case字段加 f_ 前缀记 Bug 修复方案 记住EasyExcel 大文件 OOM 用 PageRead 分批读取每批 1000 条这个最有用。几个月前修的一个 BugAI 还记得。同事来问的时候查一下记忆体答案就出来了。一键导入项目知识库如果你的项目有设计文档、接口说明之类的 Markdown 文件可以用这个命令让 AI 一次性扫描并存入记忆/openmemory-init它会读取当前目录下的文档提取核心信息存入 OpenMemory。七、日常启动顺序OpenMemory 不会随系统自动启动。每次要用的时候按这个顺序# 第 1 步启动 Ollama如果没开ollama serve# 第 2 步启动 OpenMemorycd~/OpenMemorydockercompose up-d# 第 3 步启动 OpenCodeopencode建议把这个写成一个脚本一键启动。八、常见问题排查AI 说我没有设置记忆功能说明插件没装成功。检查~/.config/opencode/opencode.json里有没有插件配置。存了记忆但查不到先等 5-10 秒让服务就绪。然后输入/openmemory list手动刷新。curl 返回 401检查.env配置是否正确尤其是OM_TIERhybrid和OM_EMBEDDINGSollama。用着用着感觉 AI 变笨了可能是记忆太多了。降低maxMemories的值比如改成 3减少每次注入的记忆数量。总结配置好 OpenMemory 之后最大的变化不是某个功能变强了而是你跟 AI 的协作方式变了——不用每次重新认识它越来越了解你的项目。如果你今天第一次配记住先跑通架构Ollama → OpenMemory → 插件 → OpenCode存一条记忆验证“记住XXX”日常遇到有用的信息顺手存一笔如果这篇文章对你有帮助点个在看让更多 OpenCode 用户用上记忆体收藏起来跟着步骤配一套系列目录✅ 第一篇安装与使用技巧✅ 第二篇子代理系统——Build、Plan、Explore 怎么用✅第三篇让 OpenCode 更好用的神器——OpenMemory 记忆体本篇⬜ 第四篇化简为繁——用本地 MD 文件做记忆体⬜ 第五篇5 个内置工具让你写代码效率翻倍⬜ 第六篇30 分钟做一个全栈功能——完整工作流演示⬜ 第七篇用 AGENTS.md 让 AI 表现翻倍⬜ 第八篇OpenCode 三个月实战这 5 个坑我帮你踩过了⬜ 第九篇一个人维护 5 个仓库——我的真实 OpenCode 工作流