从零构建 AI Coding AgentOpenCode 源码剖析与实战
面向 Agent 开发初学者的 OpenCode 源码带读电子书
先看懂一次任务怎样跑完,再进入 Agent、工具和会话的内部结构。
理解模型、协议、HTTP 与存储怎样把这条主链路做成可运行产品。
把 TUI、多端界面、代码智能和扩展体系重新挂回同一后端语义。
最后再看部署、测试和长期演进,把“能跑”变成“能维护”。
Runtime lifecycle
后续 15 篇其实都在拆这条链路的不同片段。先把总图记住,再进入各章细节。
用户提出任务,系统先把输入整理成可消费的消息。
入口通常从 CLI、TUI 或 HTTP 请求开始,先决定本轮任务到底要解决什么。
会话装配 Agent、权限、系统提示词和当前上下文。
这里决定角色、模式、消息历史和是否需要继续恢复已有状态。
模型拿到可用工具后,进入工具调用与结果回写循环。
工具不是附属物,而是运行时主链路里最容易扩张成本和风险的边界。
Provider 抽象把具体模型接进统一的流式执行接口。
这里处理模型解析、认证、参数绑定和多提供商差异。
真正改变系统状态的地方发生在文件、终端和代码智能能力上。
这是工程边界,不是文案边界;一旦进入这里,就需要权限和恢复机制兜底。
结果被写回消息流,再反馈到 CLI、TUI、Web 或桌面界面。
这一步决定用户看到的是最终答案、流式事件,还是下一轮可恢复的状态。
Agent、Subagent、Primary Agent、运行时、工作台 等高频概念。阅读边界:本书以当前
dev分支源码实现为准,重点解释已经落在仓库里的结构、主链路和工程约束,不承诺覆盖未来版本变更。若文档与代码不一致,以当前仓库源码为准。
01 -> 02 -> 03 -> 04 建立最小运行时闭环。05、06、08、09。07、10、11、12。13、14、15 对应阶段 4,更适合最后阅读,它们回答的是部署、质量与长期演进问题。