[RFC] Re-resolve continuable child policy on each new activation #2639
Replies: 1 comment 1 reply
|
"策略绑定到执行实例、不是永久绑定到会话"这个语义我认为是对的,而且你把 create / followup / retry / cold-resume 四种 reason 分开,是这份 RFC 里最有价值的设计。我想提一个可能让它更容易被接受的建议——先把"已经有权威晚期入口"的那部分从诉求里拆出去。 一、你要重新解析的东西,有一部分今天已经有官方的权威 seam 了你在"为什么现有 setup 入口不够"里写:
这三样的处境不一样,值得分开:
上面两行不是读类型推的,是在真 DSH 组合上跑探针跑出来的( 这意味着你的 RFC 可能只有第三行是真缺口。 如果是这样,提案会强很多:
一个只要求"补上确实没有的那一块"的提案,比一个要求"给我一个能替换全套策略的新 hook"的提案容易通过得多——后者会引出"这和现有 waterfall 是什么关系""会不会有两套权威"这类很难三言两语答清的问题。 二、方法上的一条建议:先倒推,再提新 seam这条是经验之谈,我们吃过三次亏才立成规矩:判"平台做不到"之前必须倒推,不能正推就收工。
三次实证,都发生在"我以为结构上不可能"之后:
对你这份 RFC,倒推的问题是:"这次 activation 实际发出去的请求,它的 provider/model 是从哪个变量读出来的?从 descriptor 到那个变量之间,有没有任何一个 awaited 的官方 seam?" 如果有——那你可能不需要新入口,只需要在那里改写。如果确实没有——那你就能把诉求写成"数据流我追到了第 N 步,断在这个具体符号上",这比"setup 太早了"有说服力得多,也让维护者一眼看到该在哪开口子。 (判据我们内部写成一句话:说"不能"之前,必须能说出"这个结果的数据流我追到了哪一步、断在哪个具体符号上";说不出来就是没查完。而且结论只认实跑——上面三条都是在真 DSH 服务上跑出来才敢写的。) 三、"不应采用的实现"那节,第一条尤其对
这条值得加粗。我维护 pi2dsh(Pi 生态兼容层),它能跑一套 Pi 生态的子代理——而我们恰恰是靠不复制生命周期才活下来的:子代理是真实的 DSH 会话,创建/恢复/settlement 全部走官方面,我们只做 ABI 翻译。复制一套的代价是你会得到第二份权威状态,然后花全部时间让两份对齐。 利益相关先说清楚:我们那套子代理按会话当前的实时路由解析模型,不吃创建期快照(有端到端 example,断言是"父会话 但我不建议你为此换掉 DSH 原生子代理,理由有三条:① 我们验过的是创建时按实时路由解析,你 RFC 的重点——followup / retry / cold-resume 三种 reason 下的重新解析——我没有对应的实测断言,不能宣称我们做到了;② 你要的是这个语义进上游,换运行时不会让 #117/#1472/#1581 那几帖消失;③ 你这份 RFC 的价值恰恰在于把"执行实例 vs 会话"这个区分提出来——那是个应该由平台拥有的语义,不该由某个插件私有实现。 边界我们不修 DSH 自家组件——continuable manager、descriptor、agents.create/resume 都在 DSH 里。第一节那张表里"有"的两行是我们实跑核证过的;"provider/model 那一行我没有证据"这句话就是字面意思——我没查过,不是我查过说没有。 倒推那一步值得你自己做一遍。 |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
DSH Continuable Activation Policy Re-resolution RFC
状态:已发布上游讨论 #2639
日期:2026-08-17
目标版本:DeepSeek Harness 0.1.0-rc.6
摘要
DSH 当前的可续聊子代理会把创建时的模型路由写入父子代理选项和持久描述记录。父会话后来切换模型时,新建子代理可能仍使用创建时的旧路由;如果旧端点或模型已经失效,冷恢复还会再次使用旧配置,导致恢复持续失败。
本提案请求增加一个官方的“执行实例创建前策略解析”入口。它不改变正在运行的执行实例,只在创建、重试、后续追问或冷恢复时重新解析当前有效策略。
现有证据
状态模型
需要区分三个对象:
策略绑定到执行实例,而不是永久绑定到子代理会话。
期望行为
这样可以处理模型或端点失效:修改配置后,恢复尝试不会再次使用已经失效的路由。
删除和失败
建议的公开入口
建议在可续聊子代理管理器中增加一个执行实例策略解析器。它应在创建或冷恢复调用 agents.create/resume 之前运行,并返回:
建议的抽象形式类似:
关键要求:
为什么现有 setup 入口不够
当前 setup 入口可以在创建或冷恢复时追加部分子代理环境,但旧的 provider/model 和工具组合已经在 setup 前从 descriptor 解析。它不能可靠替换完整的模型路由、旧工具限制和旧角色策略,因此不能单独实现本文语义。
不应采用的实现
可接受的临时方案
如果上游暂时不增加该入口,可以使用“接替子代理”:保留逻辑工作、任务事实、所有权和证据,创建新的子代理执行恢复。该方案能解决端点失效,但不会保留原子代理会话编号和全部上下文,因此应明确标记为降级路径。
希望上游确认的问题
参考
All reactions