从零构建 AI Coding AgentOpenCode 源码剖析与实战
面向中文开发者的 Agent 工程学习站,覆盖源码带读、可运行实践与工程专题
面向中文开发者的 Agent 工程学习站,覆盖源码带读、可运行实践与工程专题
建议理论与实践穿插学习:看完理论篇第 1-4 章后,先跑通实践篇 P1-P4,建立感性认知后再深入后续章节。
16 章深入解读 OpenCode 架构
23 个可运行示例 · 7 个阶段
先看懂一次任务怎样跑完,再进入 Agent、工具和会话的内部结构。
理解模型、协议、HTTP 与存储怎样把这条主链路做成可运行产品。
把 TUI、多端界面、代码智能和扩展体系重新挂回同一后端语义。
最后再看部署、测试和长期演进,把“能跑”变成“能维护”。
以真实插件项目为案例,理解多 Agent 编排、Hook 分层架构和工具扩展的工程实现。
Runtime lifecycle
后续 15 篇其实都在拆这条链路的不同片段。先把总图记住,再进入各章细节。
用户提出任务,系统先把输入整理成可消费的消息。
入口通常从 CLI、TUI 或 HTTP 请求开始,先决定本轮任务到底要解决什么。
会话装配 Agent、权限、系统提示词和当前上下文。
这里决定角色、模式、消息历史和是否需要继续恢复已有状态。
模型拿到可用工具后,进入工具调用与结果回写循环。
工具不是附属物,而是运行时主链路里最容易扩张成本和风险的边界。
Provider 抽象把具体模型接进统一的流式执行接口。
这里处理模型解析、认证、参数绑定和多提供商差异。
真正改变系统状态的地方发生在文件、终端和代码智能能力上。
这是工程边界,不是文案边界;一旦进入这里,就需要权限和恢复机制兜底。
结果被写回消息流,再反馈到 CLI、TUI、Web 或桌面界面。
这一步决定用户看到的是最终答案、流式事件,还是下一轮可恢复的状态。
Agent、Subagent、Primary Agent、运行时、工作台 等高频概念。阅读边界:本书默认以 commit 锚定的源码基线为准,重点解释已经落在仓库里的结构、主链路和工程约束;只有在明确说明"追踪最新实现"时,才额外回到
dev分支对照差异。若文档与代码不一致,以当前仓库给出的源码快照与入口文件为准。