法不净空,觉无性也。

前言

2026.07.29

这本书分为六编。第 1-5 编回答"怎么做"——从哲学基石到运行时内核、自我进化、自主运行和工程实践,每一章从通用问题出发,到 CodeCoder 的具体实现,再到被否方案的权衡讨论。第 6 编是独立的思辨篇,回答"为什么"——以独立篇章的形式探讨 agent 身份、架构、安全等根本性问题。

第 6 编和第 1-5 编是互补的,不是上下册。第 6 编是独立的——你不需要读完它才能理解第 1-5 编。但如果你全读,你会看到"为什么"和"怎么做"之间的对应关系:

第 6 编第 1-5 编
第 1 章 文件系统即自我第 2 章 文件系统即自我
第 2 章 三分架构第 6 章 三分架构
第 3 章 从 REPL 到操作系统第 3 章 事件驱动与消息模型
第 4 章 自修改信任边界第 9 章 自撰安全回路
第 5 章 事前图事后树第 10 章 工作图
第 6 章 有用户vs无用户第 12 章 Headless 自主运行
第 7 章 验收门第 11 章 客观验收门
第 8 章 遗忘第 13 章 上下文压缩
第 9 章 身份声明第 1 章 + 第 2 章

每条思辨章对应的工程实践都有完整的实现。但第 1-5 编不是第 6 编的"注释"——它们完整地讲述了自己的工程故事。

目标读者

技术卷适合以下读者:

  • 正在设计或构建自主 agent 系统的工程师和架构师。你会在这里找到完整的架构决策记录——包括被否的方案和被舍弃的路径,这些比"最终方案"更有参考价值
  • 对 AI 安全感兴趣的技术人员。第 4 章(权限模型)、第 9 章(安全回路)、第 11 章(验收门)涉及自修改系统的信任设计
  • 希望了解 agent 系统测试和调试策略的开发者。第 15 章(可观测性)和第 16 章(测试策略)覆盖了 agent 系统的独特挑战

阅读前提

  • Rust 经验:书中的代码示例是 Rust 伪代码。如果你懂 Rust,可以直接阅读;如果你不懂 Rust,代码示例主要以类型定义和流程控制为主,结构清晰,不做深层语法依赖
  • Agent 基础概念:你应该知道什么是 LLM 的工具调用(tool calling)、什么是 system prompt、什么是上下文窗口。不需要是专家
  • Unix/Linux 基础:第 12 章(headless 运行)和第 14 章(daemon-client 架构)涉及 Unix socket、进程信号、守护进程。基础的 Unix 知识有帮助

阅读路径

全书分为六编,设计为可以按顺序通读,也可以按兴趣跳读:

  • 第 1 编(哲学基石):第 1-2 章。全书的基础,建议先读
  • 第 2 编(运行时内核):第 3-5 章。如果你对 agent 内核的事件驱动模型、工具体系、子代理机制感兴趣,直接进入
  • 第 3 编(自我进化):第 6-9 章。如果你对 agent 如何安全地自我扩展感兴趣,从第 6 章开始
  • 第 4 编(自主运行):第 10-13 章。如果你对 headless 运行、验收门、上下文压缩感兴趣,直接跳到第 10 章
  • 第 5 编(工程实践):第 14-16 章。这些章节相对独立,可以在任何时间阅读
  • 第 6 编(思辨篇):第 1-9 章(与前面各编独立编号)。以独立篇章形式探讨 agent 系统的根本性问题,可以在任意时间阅读

关于 CodeCoder

CodeCoder 是一个用 Rust 编写的自主 AI agent 系统,开源在 GitHub 上。本书写作时,CodeCoder 包含 31 个源文件、26 个内置工具、481 个测试和 31 份架构决策记录(ADR)。书中的所有数字对应 CodeCoder 在 2026 年 7 月的代码状态。

技术卷中的代码示例是伪代码——与真实源码相比,省去了错误处理细节和边缘情况,以突出核心设计逻辑。如果你需要查看完整实现,可以在 CodeCoder 的源码仓库中找到对应模块。

需要说明的是,本书的工程判断并非孤立产出,其底层框架源自本站的 RC 理论体系(过程实在论:观察收敛与确定性生成):agent 的身份、知识与能力被视为磁盘上可被持续重新观察的次级建构,对应其存在论中"确定性是观察收敛的暂时锁定";Skill 的草稿晋升与三级验收门,是认知论"过程性完备"在工程上的展开——能力在规格、生成、测试、遥测之间渐进收敛,而非一次设计到位;天花板规则与"写廉价、执行昂贵"的闸门,则取自其实践论的"可持续决策":安全设计的目标不是生成唯一绝对正确的方案,而是排除已知坏路径、保住"还能再来一轮"的可用余量。读者若对哲学根基有兴趣,可循此入口回溯。


现在,从第一个问题开始:自主 agent 为什么这么难做?