ETF Agent narrows agent recovery to preserve completed work instead of rebuilding execution graphs
ETF Agent's engineering article describes a narrowed recovery design for long-running research agents, splitting what had been called "recovery" into page reopening, reconstructing a Run after a service interruption, and a user-initiated continuation. Browser reconnection is now read-only and does not trigger a fresh model call, and closing the browser does not end the server-side Run. After a server crash the design allows loss of uncommitted progress while keeping committed results, and a user-started continuation inherits eligible materials but not the old Run's execution authority, leases, or budget.
It offers a concrete, more explainable contract for agent recovery in which preserving committed facts, keeping unknown external costs unknown, and honoring narrowly scoped Human/Child wake-ups matter more than rebuilding the full execution graph.
长时间研究的关键承诺,不是任何故障后都从原来的模型步骤继续,而是用户离开时研究不被误停、已发生的效果不被重做、已经保存的事实能够被安全地再次使用。 在允许丢失未提交进度的产品里,执着于恢复整张执行图,可能是在维护比用户真正需要的更昂贵的承诺。
这来自 ETF Agent 对研究恢复机制的一次收缩。我们已经拥有后台研究、数据库状态、浏览器重连、子代理和人工交接,却逐渐发现“恢复”被用来指代几件性质完全不同的事:页面重新打开、进程中断后重建原 Run、用户主动继续未完成的研究。它们共享资料,却不应该共享执行权。
一、先问清哪一种连接断了
设想用户提出一个问题:“比较两只基金的持仓重叠,核对最新披露,并标出覆盖率不足的地方。”Main 已读取部分资料,某个 Child 还在处理 PDF,用户关掉了手机页面。
浏览器关闭不等于服务端 Run 结束。 如果服务进程仍在运行、原 Run 的准入和资源仍有效,后台可以继续做原来的事。重连只读取已有正文、事件和进度,不应为了重新显示页面再调一次模型。