有状态
Stateful
向前传递信息。Session 在轮次之间是有状态的——随着 Session 运行,上下文不断累积,这也是为什么长 Session 会逐渐滑入高效区间。通过添加记忆系统把信息持久化到环境中,并在未来 Session 开始时重新加载,Agent 也可以实现跨 Session 有状态。模型永远不是有状态的;任何表面上的连续性都是 Harness 在重新喂入上下文。与“无状态”相对。
各层的状态存在于何处:
| 层级 | 是否有状态 | 方式 |
|---|---|---|
| 模型(模型) | 从无 | 参数已冻结;它只能看到每次请求里的内容 |
| Session | 跨轮次 | Harness 把每条消息和每个工具结果追加进上下文 |
| Harness | 跨 Session | 记忆文件、Agent.md、Handoff 产物——写进文件,之后重新加载 |
| Environment(环境) | 永远有 | 文件无论是否有 Session 在运行都会持久存在 |
每一层的有状态性,都是通过重新读取更底层存储的东西来实现的:Session 感觉连续,是因为 Harness 把消息历史重发给无状态的模型;Agent 能跨 Session 记忆,是因为 Harness 从环境中重新加载文件。没有任何状态真正存储在模型内部。
有状态并不总是好事。所有被带向前的信息都会影响接下来发生的事,所以 Session 早期形成的一个错误假设也会被带向后面。清空就是有意识地丢弃 Session 状态,从已写下的内容重新开始。
用法:
“它记住了我昨天的偏好——这意味着模型学会了吗?”
“不,Agent 是有状态的,因为 Harness 把它们写进了记忆文件,并在 Session 开始时重新加载。模型本身并没有看到昨天。”