KEEL · 龙骨 · A CURRICULUM FOR THE AI ERA
Claude Code Harness 解析 — keel 龙骨
Claude Code Harness 的参考信息:Claude Code Harness 解析
课程导读 · 从「会用 Claude Code」到「看懂它的运行时」
这门课针对一个具体场景:你天天在用这类工具,也自己写过 agent loop,但说不清一个成熟产品在「循环、工具、权限、上下文、子 agent」这五处各自做到了什么程度。
进程怎么起 → 一轮怎么跑 → 工具怎么并行 → 危险动作怎么拦 → 窗口满了怎么办 → 分会话与恢复
六章的对应关系:
| 章节 | 解决的核心问题 |
|---|---|
| 01 入口与分层 | 为什么启动要先走一条快分流链,为什么敢用单进程 |
| 02 主循环 | 一轮循环有哪些状态,为什么把「继续」写成带名字的 transition |
| 03 工具运行时 | 工具并发怎么分批,写操作为什么必须串行,结果超限怎么办 |
| 04 权限与安全 | 规则链的判定顺序,以及 Bash 为什么值得 23 项检查 |
| 05 上下文管理 | CLAUDE.md 的层级顺序,阈值、压缩与熔断怎么配合 |
| 06 子 Agent、MCP 与会话 | 工具池怎么装配、fork 继承了哪些东西、会话怎么存与回退 |
每章结构统一:正文机制 → 代码地图 → 关键取舍 → 自测题。
这门课的一条主线
交互式 Agent 的最贵资源不是 token,是「用户等待的注意力」
→ 于是所有设计都在抢两样东西:首字延迟、以及 prompt cache 命中率
→ 抢延迟带来流式与提前执行,抢缓存带来排序与字节稳定性
→ 这两条约束解释了这个 harness 里绝大多数「看起来奇怪」的决定
第 02 章的结束原因枚举、第 03 章的并发分批、第 04 章的规则顺序、第 06 章的 fork 占位符,都能用这条主线串起来。读完后你应该能自己判断:某个「反直觉设计」是拍脑袋还是被约束逼出来的。
与其它专题的关系
- 前置:基础板块的 Agent Harness。那门课用 12 章搭出一个能自己跑起来的最小循环,讲清"一次运行的责任边界在哪"。没有那层心智模型直接读源码,很容易把有成因的设计当成零散技巧。 反过来也成立:读完这门再回去看那边的第 08 章(失败、取消、重启),会发现当初的判断标准变具体了。
- 本专题的 DeepSeek Harness 板块:另一条路线——把「控制层」拆成可替换插件、把会话做成事件流。两门课对照读,能看清「单进程紧耦合」与「插件化松耦合」各自的代价。
- 本专题的对比课:这门课代表「单进程交互式」这一类,对比课会给出它的适用边界。
- 面试与项目实战专题:这门课里的反向工程结论可用于回答「你了解 coding agent 的内部实现吗」,但请务必说明来源是泄露包的反解产物,而不是你的实绩。
替身边界
- 分析对象是 2.1.88 的 npm 包 + sourcemap 反解结果(
package/cli.js.map提取出的约 1800 个 TS 文件)。反解会丢失一部分信息:注释、原始目录、以及被 bun 编译器裁剪掉的分支。 - 源码里混有第三方 re-packager 添加的非英文注释,本课程所有结论只取自标识符、常量与控制流,不依赖注释语义。
- 版本会漂移。行号只作定位参考,请以符号名为准;被
feature()标记裁剪的分支在不同构建产物里可能不存在。