序章:为什么拆 opencode?

这个系列解决什么问题

2025-2026 年,AI Coding Agent 从一个概念变成了工程师日常工具。Claude Code、codex、opencode、Cursor 等工具层出不穷。

但如果你不是只满足于"用它",而是想理解——

  • AI Agent 的核心循环到底怎么工作的?
  • 工具调用、权限控制、上下文管理这些机制背后是什么?
  • 如果让我自己设计一个 Agent,架构该怎么拆?

你会发现:市面上几乎没有系统性讲源码的资料。

  • 论文很多,但离代码太远
  • 闭源产品多(Claude Code / codex / Cursor),源码看不到
  • 开源项目大(LangChain 等数十万行),从哪看起都不知道

这个系列就是为了填补这个缺口——用一本"书"的篇幅,把一个生产级 AI Coding Agent 的源码,逐模块逐行拆给你看。

AI Agent 学习三大痛点

为什么选 opencode

在众多 AI Coding Agent 开源项目中,我选 opencode v1.17.7 作为拆解目标,因为:

条件 opencode 其他
完全开源 ✅ 真实可跑的源码 Claude Code ❌ 闭源
代码规模适中 ~50 个核心源文件,适合"读完" LangChain 太庞大
架构清晰 monorepo + Effect-ts,模块边界分明 很多项目架构混乱
独特设计 Skill/Plugin/权限分层,学得到真东西 很多项目只是 API 封装
可横向对比 容易对比 Claude Code/codex 的设计取舍 闭源产品无法直接对比

一句话:opencode 是当前能找到的、最适合当"教材"的 AI Agent 开源项目。

opencode 如何解决

60 篇学完,你能获得什么

能力 对应章节 为什么重要
理解 Agent 核心循环 04 Agent / 05 Session Agent = while + tool call,但工业级远不止
掌握 Tool 系统设计 06 Tool "一切皆工具"的架构模式,可复用
学会 Effect-ts 实战 12 Effect-ts 函数式 DI + 类型安全错误处理
看懂权限分层设计 10 Permission 每次工具调用背后的安全博弈
理解 MCP 协议落地 09 MCP 开放协议在真实项目中的集成方式
能写一个最小 Agent 14 手写还原 第12章用 ≤200 行代码验证所有理解

更深层的是: 60 篇读完后,你再去看任何一个 AI Agent 项目(Claude Code/codex/Continue 等),都不会觉得"黑盒"了。因为你已经建好了心智模型——知道一个 Agent 必须解决哪些问题、每种方案各有什么取舍。

怎么读这个系列

角色 推荐路径 预估耗时
快速了解全貌 00 → 每章 README 2 小时
Agent 应用开发者 00 → 01 → 04 → 05 → 06 → 14 20 小时
后端/架构学习者 00 → 01 → 12 → 10 → 02 → 07 15 小时
AI 工具链集成者 00 → 01 → 06 → 08 → 09 → 11 12 小时
逐篇通读 全部 60 篇 60+ 小时

每篇文章独立可读,也可以按章连续阅读。每章 README 有完整的知识地图。

源码版本

项目 版本 说明
opencode v1.17.7 每篇文章标注 文件:行号,直接可跟
仓库地址 github.com/anomalyco/opencode
本地镜像 sources/opencode/ 本系列基于此版本

系列约定

  1. 每篇文章聚焦一个机制,不贪多
  2. 核心代码展示 ≤25 行骨架,不贴整段
  3. 每篇回答"为什么这样设计",不是只讲"做了什么"
  4. 大章首篇有三角对比(opencode vs Claude Code vs codex)
  5. 系列围绕 packages/opencode/src,不涉及 app/web/console 等 UI 包

准备好了?我们从第一章开始——先俯瞰这 25 个 packages 的全貌。


📺 公众号「Ai拆代码的曹操」 🌟 知识星球「Ai拆代码的曹操」