You need to check out Pi Durable

核心摘要
一期单人深潜:斯科特·托林斯基论证,凡是跑得久、会自启动、执行不可重复副作用的智能体都必须「耐用」——熬得过崩溃、可恢复、精确知道自己停在哪一步——而 Pi Durable(Pi 智能体 harness 团队出的库)把这种耐用性做成基础设施,让他删掉了约 8000 行自研管线。机制是边跑边持久化一切(对话、工具调用、等待中的事项),进程死了新进程打开存储接着跑;每个工具声明重跑是否安全。因为状态集中,每块屏都只是同一个在飞智能体的客户端,转向、多人协作、分叉、子智能体近乎白送;恢复聊天记录不够,因为执行状态远不止文本。演示是他的自愈管线:Sentry 报错经 Cloudflare tunnel 触发 webhook,分诊后由 Sentry 的 Seer 提供根因,智能体修复、测试、开 PR 并(对个人软件)合并,最后在两套系统里标记解决、留下完整审计轨迹——事后还能带着完整记录质问同一个智能体。技术栈不锁 Cloudflare:浏览器 IndexedDB、Mac mini 上 Node 加 SQLite、durable object、Deno 的本地方案都行,模型随便接。生态正在收敛(OpenCode 2 可作为库嵌入、Cloudflare Agent SDK 内置 Pi Durable、Deno 被收购后仍有本地库),Pi 作者甚至把多人智能体应用整个跑在手机上。收尾建议:把智能体做成耐用的,入门先看示例文件夹而非 README。以上均为发言人观点,非独立核实结论。
章节看点与核心要点
6 条耐用智能体由三条性质定义:熬得过崩溃、可恢复、精确知道所在步骤——否则重放会复制副作用(双发邮件、双开 PR)。
Pi Durable 持久化了斯科特全部自研智能体管线做的事,让他删掉约 8000 行代码还得到更好的系统。
集中式智能体状态让每块屏都变成客户端:转向、多人协作、分叉、子智能体近乎白送;而恢复聊天记录不够,因为执行状态远不止文本。
技术栈可移植:浏览器 IndexedDB、Mac mini 的 Node 加 SQLite、durable object、Deno 本地方案皆可,模型层不受供应商锁定。
自愈闭环——Sentry webhook、根因分析、修复、测试、PR、合并、双系统标记解决——端到端可跑并留下完整审计轨迹,事后可质问同一个智能体。
生态正收敛于耐用性:OpenCode 2 可作为库跑在服务器与 durable object、Cloudflare Agent SDK 内嵌 Pi Durable、Deno 被收购后仍提供本地 durable-objects 库。
深度解读
什么是耐用智能体?Pi Durable 为什么让它变简单?
斯科特·托林斯基给「耐用智能体」下了三条定义——熬得过崩溃、可恢复、绝不重复副作用——并展示 Pi Durable 如何兑现:持久化每一步、声明哪些工具可重跑,任何客户端都能掌舵同一个在飞智能体。演示里,Sentry 报错被自动收敛成已合并的修复。
阅读完整文章访谈精粹
3 组核心对谈- 问
自启动的智能体跑到一半崩溃了,怎么把工作捡起来而不重复执行?
Scott Tolinski 提问01:57答Scott Tolinski 回答眼下只能靠人回去查「昨晚有没有炸」。斯科特的合格线:智能体必须「耐用」——持续工作、可恢复、精确知道停在哪一步,因此绝不重复执行。翻车方式就是重复:发完邮件重跑流程,就是两封邮件、两个 PR。这正是 durable agent 开始值钱的地方。
- 问
对崩溃的智能体,为什么靠恢复聊天记录还不够?
Scott Tolinski 提问05:20答Scott Tolinski 回答斯科特承认聊天恢复有时够用,写代码尤甚。但智能体状态远不止文本:每一次工具调用、将要发起的调用、待批事项、部署到底跑没跑——全都在存储里。回到一段 Pi Durable 会话,工作从原处接着跑,或在你离开时已跑完。目标就是:它自己就好好的,失败了等条件允许再续。
- 问
用 durable agent 会不会被绑死在 Cloudflare 的基础设施上?
Scott Tolinski 提问07:27答Scott Tolinski 回答不会——凡是 JavaScript 能跑的地方它都能跑。另一位开发者把 Pi Durable 完整跑在浏览器里,存 IndexedDB;斯科特自己的跑在 Mac mini 上,纯 Node 加 SQLite 当数据库。Durable object 和 Deno 家的同类方案也是天然宿主;模型侧同样开放:任何供应商、包括本地模型都能接。他给所有做智能体系统的人的结论是:你不会被锁死在任何一家的做法里。