AI Agent 框架如何实现崩溃自愈?深入 Pi 的 Durable Harness v2 架构设计

在构建复杂且长周期的 AI Agent 系统时,进程崩溃、外部 API 超时以及并发冲突是不可避免的挑战。开源 AI Agent 工具库 Pi(earendil-works/pi)发布了其核心执行引擎 AgentHarness v2 的设计规范,全面重构了 Agent 的持久化、并发与容错模型。

---

核心设计亮点

1. 确定性持久化与崩溃恢复(Durable Runs)
预写意图(Intent-first):在执行任何副作用(LLM 请求、工具调用)之前,必须先持久化一条意图记录;执行完成后再将结果作为节点提交。
零中间态:无论是调用中断、系统崩溃还是上下文超限,重启后都能根据日志精确定位到最近的安全边界进行恢复或重试,绝不产生不一致的脏状态。

2. Lanes(多泳道并行架构)
• 引入类似 Git 分支的 Lane 概念。一个会话(Session)拥有唯一的共享对话树,但可以在上面并发运行多个独立的 Lane(如 Slack 频道下的不同 Thread)。
• 每个 Lane 拥有独立的 Leaf 指针与操作日志,保证多任务互不干扰且免受竞态冲突影响。

3. 对 KV Cache 极度友好的追加模式(Append-Only Context)
• 运行中所有交互和配置修改均以追加(Append)形式进入上下文,避免因中间插入导致模型端 KV Cache 失效,显著降低 Token 消耗与延迟。
• 只有在显式触发压缩(Compaction)时才做重整。

4. 单步驱动与确定性测试(Deterministic Stepping)
• 支持 manual 驱动模式:Agent 的每一个网络请求、工具执行、Hook 回调和存储写入都会在虚拟门控前暂停。
• 开发者和测试套件可以一步步单步调试,任意注入输入或模拟崩溃,彻底消除异步 Agent 系统的难以复现的隐蔽 Bug。

5. 清晰的职责分离
Session Tree:只负责只增的对话与事实树,不掺杂编排逻辑。
Operation Logs:记录状态机流水,专为崩溃恢复服务。
Hooks 与 Events 分立:Hooks 负责拦截与修改执行流,Events 负责单向、实时的 UI 状态订阅。
多存储后端:原生适配内存、JSONL 与 SQLite,并向下兼容 v3 格式。

---

对于正在探索长时间运行 Agent、多分支 Agent 或企业级容错工作流的开发者来说,Pi 的 Harness v2 提供了一套非常严谨、工业级的状态机与架构参考范式。

完整设计文档:https://github.com/earendil-works/pi/blob/harness-v2/j4/packages/agent/docs/harness-v2.md

#AIAgent #系统架构 #开源项目 #LLM #状态机 pi/packages/agent/docs/harness-v2.md at harness-v2/j4 · earendil-works/pi