传统软件的边界¶
那条线到底在哪?
三条分界线¶
非确定性执行
传统软件:f(x) = y 恒成立。同样的输入,同样的输出。测试可以断言精确值。
Agentic system:f(x) 每次可能不同。Ch-01 说过,概率性是 LLM 的操作特性。你不能用 assertEqual 验证一个 agent 的行为,你得用统计的方式。
自然语言作为控制信号
传统软件用 API、类型系统、编译器做 enforcement。参数类型错了,编译就不过。
Agentic system 用自然语言做控制信号——prompt。"Prompt 写得有歧义"和"API 参数类型不对"是两个不同宇宙里的错误。前者没有编译器帮你兜底。
不同的 Plant,不同的工程¶
三条线收拢起来:传统软件的 Plant 是确定性的、低多样性的、用类型化接口驱动的。Agentic system 的 Plant 是非确定性的、高多样性的、用自然语言驱动的。
Plant 不同,harness 的设计原则就不同。
| 维度 | 传统软件 | Agentic System | 对应的控制论概念 |
|---|---|---|---|
| 验证 | 单元测试、集成测试(确定性断言) | 统计验证、对抗测试 | 04 非确定性转移 |
| 可观测性 | 日志、metrics、traces | + 推理路径追踪、上下文审计 | 02 Observer 的多样性 |
| 安全 | 输入验证、权限控制 | + 沙箱隔离、最小权限工具、输出审计 | 03 约束 Plant 多样性 |
| 调试 | 断点、栈追踪 | + prompt replay、上下文快照 | 04 自然语言状态 |
| 迭代 | 改代码、跑测试 | + 调 prompt、观测行为漂移 | 06 二阶反馈 |
你不会用调试编译器的方法去调一台发动机。不是因为发动机不如编译器,而是因为它们是不同的系统,有不同的失败模式。
保留什么,更新什么¶
工程纪律的内核不变:严谨、可重复、可验证。
变的是纪律的具体形式。"可重复"是精确重现还是统计稳定?"可验证"是断言精确值还是检验分布特征?"可观测"是追踪代码路径还是追踪推理路径?
正交性告诉你力该往哪使。控制论告诉你这股力的运作机制——一个非典型状态机上的多层反馈控制系统,而你自己也是这个系统的一部分。
机制清楚了。下一个问题:这个系统在长时间运行中会自发走向什么方向?上下文在腐烂,错误在级联,意图在漂移。
延伸阅读¶
- Schneier, B. & Raghavan, B. (2025). On the OODA Loop and Agentic AI. schneier.com. — 从安全研究者视角审视 agentic system 的控制回路,OODA 框架与本章的 OCP 回路形成有趣对照
概念与实体¶
本文涉及的核心概念与实体,在项目知识库中有更详细的资料:
- Reliability Surface — 非确定性执行带来的验证挑战,在可靠性曲面上的具体展现
- Context Rot — 文末预告的"上下文在腐烂",下一章的核心主题
- Error Cascade — 文末预告的"错误在级联",涌现行为不可穷举的后果之一
- Software 3.0 — 传统软件与 agentic system 的分界线在软件演化史中的位置