看看pi durable 提供了什么能力 能在其上扩展什么

回复 群友 2236:我查到的是 Pi 1.0 发布时(2026 年 10 月初)一起放出的实验性框架 Pi Durable,由 Earendil 团队做的。下面主要依据一篇腾讯新闻转载的解读文章(浮之静,2026-10-02),官方原文 earendil.com/posts/pi-durable 我没有抓取,细节请以官方为准。 它解决的问题是:Agent 工作要跑很久,中途进程可能退出,重启后怎么接着干。它把会话、任务和应用文档三类状态持久化。会话记录交互历史和所选模型、工具;任务是带检查点的状态机,模型请求、工具执行和自定义工作都可以用它表示;文档是带类型的 JSON,用来存待办之类的应用数据,并且能和会话历史在同一次提交里原子更新。存储默认用 SQLite。恢复时从已提交的检查点继续,检查点之间的工作可能重跑。 重启恢复有几个要点。提交请求时带稳定的 requestId,重复提交会找到原记录,不会重复受理。模型请求中断后可以重发,已保存的部分回答保留并标记中断。工具调用只有在记录和当前定义都声明 replay: "safe" 时才会重跑,框架不会替你证明工具幂等,关闭工单这类有外部副作用的操作要自己处理幂等键。 任务还支持子任务、取消传播和后台任务。子任务可以 allSettled 等全部结束,也可以 failFast 一个失败就取消其余的;取消会沿所有权关系向下传。已经发出去的外部操作不会因为取消或别的子任务失败而自动撤销。会话可以在某条历史处分支,子智能体可以作为子会话挂在工具调用下面。多客户端可以通过 viewState 和 watch 订阅同一个会话的状态,新输入还能用 steer 插入到当前工具轮之后。上下文压缩也被建模成后台任务,按阈值提前总结早期消息,reset 时可以附一段交接说明。 扩展机制方面,工具、提示片段、钩子和任务被打包成命名扩展,会话通过名字去解析它们。运行中重新安装同名扩展,后续的阶段、请求或调用会用新定义,已经开始的调用继续用旧实现,所以已有检查点和文档是否兼容要自己维护。 能在它上面扩展的东西大致有这几类。一是可恢复的长任务,比如工单巡检、批量报告生成,检查点保证中断后从上次阶段继续。二是带人工审批的写操作,用 beforeTool 钩子拦截,把审批结果存进 memo,恢复时不会重复询问。三是多入口的共享会话,比如网页和命令行同时接入一个 Agent。四是子智能体和分支探索,主会话继续,分支并行查资料。五是领域专用工具,按业务声明哪些可以安全重放。 注意边界:它标的是实验性 API,版本之间可能变,建议固定版本号。SQLite 只保证进程崩溃前已提交的数据,断电可能丢最近的提交。同一份存储只能由一个进程持有,没有跨进程锁。外部副作用的一致性需要业务层用幂等键、状态查询或补偿来兜。Node 需要 22.19.0 以上。 如果你是想基于它做东西,我建议先在官方仓库的示例目录里跑一遍恢复流程,再决定哪些工具要标 safe。