Skip to content

从零构建 AI Coding AgentOpenCode 源码剖析与实战

面向 Agent 开发初学者的 OpenCode 源码带读电子书

核心学习路径

阶段 1

建立全局认知

4 章

先看懂一次任务怎样跑完,再进入 Agent、工具和会话的内部结构。

这一阶段要看懂
把 CLI 入口、会话装配、工具循环和多端外壳放到同一张图里。
看完后你应该能解释
看完后你应该能解释:为什么 OpenCode 不是单体 CLI,而是一套围绕运行时主链路组织的工程系统。
阶段 2

进入运行时主链路

4 章

理解模型、协议、HTTP 与存储怎样把这条主链路做成可运行产品。

这一阶段要看懂
把 provider、MCP、HTTP server 和持久化放回同一条请求路径里。
看完后你应该能解释
看完后你应该能解释:一次请求怎样跨过模型抽象、服务边界和数据层,而不是停留在“调用了某个 API”。
阶段 3

理解交互与扩展

4 章

把 TUI、多端界面、代码智能和扩展体系重新挂回同一后端语义。

这一阶段要看懂
理解用户是怎样通过终端、桌面、Web 和扩展生态与同一套运行时协作的。
看完后你应该能解释
看完后你应该能解释:为什么“界面层”不是装饰,而是 Agent 可用性、协作性和扩展性的真实边界。
阶段 4

完成工程化闭环

3 章

最后再看部署、测试和长期演进,把“能跑”变成“能维护”。

这一阶段要看懂
把基础设施、质量保证和最佳实践看成工程收口,而不是附录。
看完后你应该能解释
看完后你应该能解释:一个 AI Coding Agent 项目怎样从功能演示走到可发布、可验证、可持续迭代。

先记住这条主链路

Runtime lifecycle

全书统一运行时主链路

后续 15 篇其实都在拆这条链路的不同片段。先把总图记住,再进入各章细节。

  1. Prompt 输入

    prompt

    用户提出任务,系统先把输入整理成可消费的消息。

    入口通常从 CLI、TUI 或 HTTP 请求开始,先决定本轮任务到底要解决什么。

  2. Agent / Session

    session

    会话装配 Agent、权限、系统提示词和当前上下文。

    这里决定角色、模式、消息历史和是否需要继续恢复已有状态。

  3. Tool dispatch

    tools

    模型拿到可用工具后,进入工具调用与结果回写循环。

    工具不是附属物,而是运行时主链路里最容易扩张成本和风险的边界。

  4. Provider / Model

    provider

    Provider 抽象把具体模型接进统一的流式执行接口。

    这里处理模型解析、认证、参数绑定和多提供商差异。

  5. File / Terminal / LSP

    side-effects

    真正改变系统状态的地方发生在文件、终端和代码智能能力上。

    这是工程边界,不是文案边界;一旦进入这里,就需要权限和恢复机制兜底。

  6. Result / UI feedback

    feedback

    结果被写回消息流,再反馈到 CLI、TUI、Web 或桌面界面。

    这一步决定用户看到的是最终答案、流式事件,还是下一轮可恢复的状态。

辅助阅读入口

  • 阅读地图:先选路线,再决定按哪条主链路进入全书。
  • 版本说明:确认本书基于哪份源码、写到什么边界。
  • 术语表:统一理解 AgentSubagentPrimary Agent运行时工作台 等高频概念。
  • 封版清单:查看当前版本完成度、已知非阻塞项和发布前检查项。

阅读边界:本书以当前 dev 分支源码实现为准,重点解释已经落在仓库里的结构、主链路和工程约束,不承诺覆盖未来版本变更。若文档与代码不一致,以当前仓库源码为准。

这本书怎么读

  • 如果你是第一次系统学习 Agent 开发,先按阶段 101 -> 02 -> 03 -> 04 建立最小运行时闭环。
  • 如果你更关心产品化落地,再进入阶段 2,优先看 05、06、08、09
  • 如果你更关心界面、IDE 集成和扩展生态,再进入阶段 3,优先看 07、10、11、12
  • 13、14、15 对应阶段 4,更适合最后阅读,它们回答的是部署、质量与长期演进问题。

技术栈

运行时 & 语言
Bun
RuntimeJS 运行时与包管理
TypeScript
Language静态类型语言
Rust
Language系统级性能语言
前端 & 桌面
SolidJS
UI Framework高性能响应式框架
Tauri
DesktopRust 驱动的桌面应用
数据 & 基础设施
Drizzle ORM
DatabaseTypeScript ORM
SQLite
Database嵌入式关系数据库
SST
Infra云基础设施框架
Cloudflare
Platform边缘计算平台

你会得到什么

  • 一张真实 AI Coding Agent 的系统总图,而不是零散功能点列表。
  • 一套按“入口文件 -> 主链路 -> 关键边界”阅读大型源码仓库的方法。
  • 对模型抽象、工具系统、会话系统、MCP、多端 UI 和扩展体系的工程直觉。
  • 一组能迁移到自己项目里的设计原则,而不只是对 OpenCode 的局部记忆。

适合人群

  • 想要深入理解 AI Coding Agent 架构的开发者
  • 希望学习大型 TypeScript 项目工程实践的工程师
  • 对 AI 辅助开发工具感兴趣的技术爱好者
  • 想要为 OpenCode 贡献代码的开源贡献者