两周前,我开始学习 vibe coding,并在试着构建自己的 Agentic Coding Team。
这篇文章分享一下这两周的一些收获,希望对感兴趣的朋友有所启发。
工具选型
模型:智谱 GLM 4.7
我认为在入门期间,有两件事比较浪费精力:
- 把时间花在找机场,与官方躲猫猫,与机场互相算计。
- 频繁切换和尝试不同模型,试图寻求最优解。
因此,虽然智谱比起编程能力第一梯队的闭源模型有明显不足,但使用下来发现它满足了 Agentic Coding 的基本要求。
而且它的 Coding Plan 量大管饱,我买了最高一档的会员,第一年才两千元出头,目前我的使用率最多也只达到过 3%,按亿来消耗 Token 完全没压力。
CLI:OpenCode
同样为了专注于学习,我没有选择 Claude Code,而是选择 OpenCode。
原因是因为 OpenCode 是完全开源的,我直接删除了它的系统提示词,添加了 LLM 接口的日志。
这使得我可以非常清晰的看到整个 vibe coding 的过程,以及我的各种试验会产生的影响。
另外,我使用 Ghostty 作为 Terminal,性能好,颜值高,中文渲染也很不错。
目录结构
我采用的是基于 git submodule 的 monorepo 结构。
一级目录是 documents 和 projects。
其中 documents 指向了我的 Obsidian 知识库 repo。
projects 下则是各个项目的 submodules,其中包括了一份 opencode 的 fork repo 和一个 opencode plugin repo。
设计理念
首先我觉得在 Agentic Coding 的理念下,Agents 的编排是一等公民。
编排的核心由两部分组成:提示词和插件。
在我的目录结构里,这分别对应 documents 和 projects/opencode-plugin。
提示词的放置原则是:能放在 plugin 里的就放在 plugin 里,不行就放在 documents 里。
主要优势
- Agents 的编排不会污染 projects 下任何项目。
- 同一套编排可以灵活的对于所有项目或者部分项目生效。
- 每个具体项目也可以有自己独立的编排。
- 整个项目相当于是特斯拉的超级工厂,具体项目则只是不同的车型。
我目前实现的方法是删除 OpenCode 默认提示词,然后根目录的 AGENTS.md 承担路由作用。
对 OpenCode 主要的改造
LLM 原始日志全量留存
这对调试 Agent 编排至关重要。我将 LLM 的每一次 Request 和 Response 都自动序列化保存到项目的 logs 文件夹。
这不仅让我能复盘 OpenCode 的思考过程,更可以让 AI 读取自己的日志,自我反思并提出优化方案。
解锁 Sub Agent 递归调用
我目前构建的 Agentic Coding Team 里,有一些辅助角色,比如技术研究员可以研究网上的技术经验和 Github 上类似的代码片段。
不论是架构设计还是代码编写,都可能用到这些辅助角色。
OpenCode 原生为了防止死循环,Hard Code 禁止了 Sub Agent 调用 Sub Agent。
不过我有自己的编排机制来避免这种情况发生,因此我去掉了 OpenCode 的限制。
OpenCode 插件的主要功能
自建任务系统
网上已经有了很多现成的任务系统,来确保 AI 可以进行长时间的复杂编程。
但对我来说有两方面的原因让我自建:
- 我想学习构建一个完整的 Agentic Coding 系统。
- 我有技术洁癖,不喜欢用别人的提示词和系统。
Agentic Coding Team
这是核心目标,任务系统是这个团队的基础工具,能够产出高质量的架构设计和技术代码,才是最重要的。
目前我采用的架构是 2 个 Primary Agents、4 个 Expert Agents、2 个 Support Agents。
Primary Agents:
- Planner:负责需求分析和架构设计。
- Manager:负责管理和落地。
Expert Agents:
- 分为“架构专家组”和“代码专家组”。
- 每组均配备 Design(设计) 和 Review(审查) 两个角色,通过多轮自主对话,提高最终产出的质量。
Support Agents:
- 定位是给专家们提供支持。
- 分别提供本地代码检索和网络最佳实践检索。
一些实用的小工具
小工具主要是方便自己使用,比如:
- 当需要人工介入时声音提醒。
- 自动同步代码库和汇总远程仓库的变更情况。
- 网页/播客/视频的抓取和翻译。
关于开源
目前这套系统仍处于“实验室”阶段,充满了我的个人硬编码和实验性逻辑,暂无开源计划。
但我相信,分享思路比分享代码更重要。如果这篇复盘能给你带来一点关于 Agentic Coding 的灵感,那这本身就是一种开源。