乐于分享
好东西不私藏

我在用的文档驱动多智能体本地记忆Vibe Coding环境:OpenCode + Oh My OpenCode Slim + OpenSpec + Magic Context + CodeGraph

我在用的文档驱动多智能体本地记忆Vibe Coding环境:OpenCode + Oh My OpenCode Slim + OpenSpec + Magic Context + CodeGraph

我个人认为,Vibe Coding现在的能力边界已经不再是模型的问题,当下的模型已经完全够用了,不一定非要追求最顶级的模型,而是应该聚焦在让智能体开发出复杂的生产级应用,不再满足于能写几个小打小闹的“玩具”。

基于OpenCode + Oh My OpenCode Slim + OpenSpec + Magic Context + CodeGraph,我已经独立开发了一套包含租户前端、系统管理前端、后端接口和服务的AI应用SaaS系统,预计6月底上线第一个版本。

1 安装OpenCode

在使用过一段时间的Cursor、Trae和OpenCode以后,OpenCode现在是我主要的编程软件,安装方式如下:

curl-fsSL https://opencode.ai/install bash

虽然OpenCode也有桌面应用,但是我更喜欢命令行启动。安装完成以后,命令行进入项目目录,直接输入opencode回车即可。作为一个最流行的开源Vibe Coding软件,这里我就不再赘述了。

官方地址:https://opencode.ai/

2 安装Oh My OpenCode Slim插件实现多智能体分工协作

bunx oh-my-opencode-slim@latest install

相比有名的Oh My OpenCode(现在已经更名为Oh My Agents),Oh My OpenCode Slim会更轻量一些,Oh My OpenCode Slim也分为几个不同的智能体:

Orchestrator:首席委派者和战略协调员
Explorer:代码库侦察
Oracle:战略顾问和终极调试者
Council:多 LLM 共识与提炼
Librarian:外部知识检索
Designer:UI/UX 实现和极致视觉呈现
Fixer:快速实现专家
Observer:只读视觉分析,默认是禁用的,当Orchestrator 模型不是多模态模型,可以启用 Observer 来处理图像、屏幕截图、PDF 以及其他视觉文件。

Oh My OpenCode Slim是OpenCode的一个插件,安装完成以后,在OpenCode界面默认加载Orchestrator智能体。

官方地址:https://ohmyopencodeslim.com/

3 安装OpenSpec实现文档驱动

我的编程习惯一直都是先写文档再写代码,当我第一次接触到OpenSpec时,就安装并且使用到现在。

npm install -g @fission-ai/openspec@latest

安装完成以后,OpenSpec是以技能的形式加载到OpenCode,在OpenCode的终端界面输入/opsx会自动出现对应的技能提示。

官方地址:https://openspec.dev/

4 安装Magic Context实现智能体的本地记忆

npx @cortexkit/magic-context@latest setup

官方地址:https://github.com/cortexkit/magic-context

安装完成后,Magic Context是以插件形式加载到OpenCode的,需要在~/.config/opencode/opencode.json里做如下添加或修改:

{"plugin":["@cortexkit/opencode-magic-context"],"compaction":{"auto":false,"prune":false}}

5 安装CodeGraph实现代码图谱

npx @colbymchenry/codegraph

按照提示完成安装以后,CodeGraph以本地MCP服务的方式接入OpenCode。

官方地址:https://colbymchenry.github.io/codegraph/

6 我的经验

6.1 模型配置

编辑 ~/.config/opencode/opencode.json 为OpenCode配置模型
编辑 ~/.config/opencode/magic-context.json 为Magic Context配置模型
编辑 ~/.config/opencode/oh-my-opencode-slim.json 为Oh My OpenCode Slim的不同智能体配置模型

6.2 关于OpenCode

执行 /init 以后,项目会自动生成AGENTS.md,建议定期对AGENTS.md进行更新和维护。我常用的方式就是要求智能体根据当前项目的情况,对AGENTS.md进行更新。

6.3 关于Oh My OpenCode Slim

基本上我都是默认使用Orchestrator智能体,由Orchestrator智能体根据我输入的内容自动编排和分派子智能体执行任务。

6.4 关于OpenSpec

新的项目需要在命令行下执行openspec init进行初始化,我比较常用的几个技能如下:

/opsx-explore 用于思考新的功能
/opsx-propose 思考完成以后创建提案
/opsx-apply 开始执行
/opsx-archive 执行并测试完以后归档提案

通常,我会在创建提案以后,要求对提案进行审查,进一步完善和补充提案,直到我认为可执行为止。

同时,我也会要求智能体将项目的OpenSpec的内容维护到项目的AGENTS.md。这样做的好处是一方面可以精简项目的AGENTS.md,另外一方面,智能体也可以按照在AGENTS.md中索引的OpenSpec文档,根据任务需要去检索已经开发完成并且归档的OpenSpec文档。这两者的结合,可以减少无意义的Token浪费,相当于是一个简版的智能体本地记忆功能。

另外,我也会定期要求智能体对项目的OpenSpec文档进行审查,进一步对齐文档和代码。

6.5 关于Magic Context

Magic Context作为智能体本地记忆的主力,需要配置单独的模型运行。historian用于一边对话一边整理记忆,dreamer用于定时对OpenCode的会话再一次进行记忆的整理。这两者我都配置使用的是Deepseek v4 Flash,毕竟便宜。

6.6 关于CodeGraph

新项目需要在终端进入项目目录,执行codegraph init对项目进行初始化。完成以后,会自动在开发过程中建立项目的代码图谱并调用,进一步减少Token浪费。