范围、取舍与边界
1. 本书的范围
本书讨论「模型之外、系统之内」的 agent 工程层。用一句话界定:
给定一个(可能不可靠的)模型,如何构造一个有状态、有工具、有预算、可观测、可评估、可治理的执行系统。
具体覆盖:
| 层 | 章节 | 核心问题 |
|---|---|---|
| 机制 | 1–4 | 循环怎么转、动作怎么协议化、执行怎么隔离、权限怎么收敛 |
| 上下文 | 5–8 | 状态怎么投影、记忆怎么取用、计划怎么搜索、多 agent 怎么协调 |
| 质量 | 9–12 | 怎么评估、怎么观测、怎么防注入、怎么审计与审批 |
| 实践 | 13–14 | 两个能跑、能测、能审计的项目 |
2. 明确的非目标
以下内容不写,或只在边界处引用:
| 非目标 | 去哪读 | 本书最多写到 |
|---|---|---|
| 进程、信号、IPC、socket、epoll 的原理与 API | 《Linux 系统与内核》第 2 篇 | 沙箱需要的 wait status、进程组、超时、收尸 |
| namespace、cgroup、seccomp、容器运行时 | 同书第 3/5 篇 | 组合次序、agent 场景的陷阱、OCI 字段映射 |
| TCP/IP、DNS、HTTP、TLS | 同书第 4 篇 | egress 策略、DNS 重绑定、SSRF、代理边界 |
| 神经网络、注意力、反向传播、训练 | 《深度学习导论》 | token、上下文窗口、成本、延迟等工程含义 |
| 模型选型与提示词技巧大全 | 各厂商文档 | 只写与协议、预算、评估相关的部分 |
| 具体框架的 API | 框架文档 | 用标准库实现机制,框架只作对照 |
| 法律意见 | 合规律师 | 只做工程可执行的审计与证据链映射 |
这张表说明什么:边界不是「不重要」,而是「已经有人写得更专业」。本书的价值在于把边界接到 agent 的决策点上,而不是重复教科书。
3. 版本基线
Agent 工程的最大事实是:接口在变。本书把版本写在正文里,而不是假设「最新版」。
| 对象 | 本书基线 | 对照/迁移 |
|---|---|---|
| MCP | 2026-07-28 | 2025-11-25(initialize + session)、2025-06-18、2025-03-26 |
| OpenAI tools | Responses API 与 Chat Completions 并列 | 字段差异见 2.3 |
| OCI Runtime Spec | v1.3.0(2025-11) | v1.0.2 的字段基本兼容 |
| OpenTelemetry semconv | 1.44.0 | GenAI/MCP 属性仍在演进 |
| Linux | 6.8(Ubuntu 24.04) | Landlock ABI 4;更新内核的 ABI 5–9 只作提示 |
| Python | 3.11+ | 实验只用标准库 |
| Bash | 5.2 | macOS 自带 3.2 的差异在实验中标注 |
结论要带条件:例如「在 Linux 6.8 上,Landlock ABI 4 支持 TCP bind/connect 限制」,而不是「Landlock 支持网络」。版本一换,结论可能就不成立。
4. 取舍:为什么有些主题只给一章
4.1 为什么安全只有一章
安全很容易写成一套独立的卷:注入、外泄、供应链、模型窃取、对抗样本……但 agent 的安全边界是能力边界:只要不可信数据不能获得执行权,大部分攻击就失去杠杆。第 11 章围绕这一条展开,把具体攻击当作「能力边界失效的症状」,而不是另起一套分类。
治理(第 12 章)同理:它不是安全的下游文档,而是「谁在什么条件下能批准什么」的执行流程。两章分工是:第 11 章管「攻击面与防御」,第 12 章管「授权、审计与责任」。
4.2 为什么评估与观测分开
评估回答「这次改动是不是更好」,观测回答「这次运行为什么这样」。两者的数据都来自 trace,但方法不同:评估需要数据集、采样、统计与门禁;观测需要 span 模型、属性、日志、指标与回放。合成一章会变成两份内容的压缩,双方都讲不透。
4.3 为什么项目是两章而不是附录
项目不是「练习题」,而是把前面所有层拼起来的验收。项目一压沙箱与工具协议,项目二压评估与平台。每个项目都按 Stage 组织,每个 Stage 有可运行的验收命令;跳过项目,前面的章节很容易停留在「知道」而不是「做过」。
5. 方法论:路径、边界、证据
本书每一节尽量按同一顺序展开:
- 路径:这件事在真实系统里怎么发生?给出调用链、数据流或时间线。
- 机制:为什么是这样?给出状态转移、协议字段、内核对象或统计公式。
- 边界:什么时候不成立?给出反例、版本差异、失败条件。
- 证据:怎么验证?给出可运行实验、观测命令或 trace 片段。
如果一个结论只有「路径」没有「边界」,它大概率是营销;如果只有「机制」没有「证据」,它大概率是猜测。三者都有,才值得写进书里。
6. 读者假设
我们假设你:
- 能读 Python 与 C,能用命令行;
- 知道进程、文件描述符、HTTP 的基本概念;
- 用过至少一个 LLM API,见过 tool calling 的 JSON;
- 不要求你会训练模型,也不要求你读过内核源码。
如果你缺其中某一项,书里会给出指向《Linux 系统与内核》或《深度学习导论》的具体章节,而不是让你去搜「XX 入门」。