当我们剥离所有工程实现的细节,Agent系统的本质是一个状态转移系统,(这也解释了为什么TDD是好的应用于AI的开发模式:
- 接收输入
- 基于当前状态做出决策
- 转移到新状态
- 产生输出
claude的各个组件大组件(Slash Command、Subagent、Hook、CLAUDE.md)本质上是对状态转移函数δ的不同维度的控制和修饰。
- Slash Command是一个输入规范化函数,将用户的简化输入映射到完整、标准化的输入。
- Subagent引入了分层状态机结构:使用隔离的子Agent处理独立任务,错误概率更低。避免上下文污染和注意力稀释。
- Hook,状态转移的守卫函数,Hook是状态转移函数的元控制层
-CLAUDE.md是状态空间的锚点,定义函数初始化,Output Style则定义了输出函数
将非确定性集中在"需要智能判断"的地方,将确定性保留在"需要可靠执行"的地方。
从状态机视角理解Agent系统,我们获得了:
1. 精确的概念模型:每个组件有明确的数学定义
2. 统一的理解框架:所有组件都是对δ的修饰
3. 可验证的设计:可以证明系统的安全性质
4. 调试的指导:可以追踪状态转移路径
5. 优化的方向:可以识别低效的转移模式