drive_tick自发路径发起的delegate_task套用ADR-0027同款可抢占逻辑(issue #188 grill定案) #188
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
来源
全量32条ADR设计合理性对抗审查(评估侧内部执行,2026-08-21,组G)grill定案。完整推理链条见 ADR-0020 2026-08-21(issue #188 grill)更新节。
结论
delegate_task/cancel_delegate_task工具在全部六条触发路径共用同一套门控(仅按delegate_enabled布尔开关+成本池熔断),没有任何按触发源区分可见性/待遇的过滤。 drive_tick 纯自发路径(_evaluate_drive_tick_chat,entry_drive_tick.py:507起)确认真的会把这两个工具注入模型可见集,与 reactive 路径完全一致——模型可以在无真实用户消息的自主评估轮次里发起委托任务,其完成投递却仍拿到 ADR-0020"履约不可抢占"的同等豁免,即便这次委托根本不是真实用户驱动的。全仓无任何测试覆盖"drive_tick 触发的委托任务"这个场景。决策:给 drive_tick 自发路径发起的
delegate_task接入 ADR-0027(跨平台资料拉取)同款两段式可抢占逻辑,reactive/事件触发路径发起的维持ADR-0020原有"履约不可抢占"行为不变。关键参照:ADR-0027 已经处理过同一类场景
ADR-0027 复用
delegate_task的执行形状,但明确"不继承本ADR'履约不可抢占'治理",理由是"智能体自主触发,不满足'履约'的前提"。它的可抢占逻辑分两段:_wait_for_human_activity(chat_id),entry_drive_tick.py:174附近)arise_cross_platform_pull_preemptible(默认真)控制"跑到一半被真人开口打断"是否生效drive_tick 自发发起的
delegate_task是同一类场景(智能体自主触发,无真实用户在等),理应套用同一套治理模式(不必是同一套代码,但机制形状应该一致)。What to build
delegate_task工具调用处理逻辑需要知道"这次调用是不是由 drive_tick 自发路径触发的"——可能复用 ADR-0029 已有的trigger_kind("event"/"periodic")概念,具体接线方式留给实现_wait_for_human_activity)arise_cross_platform_pull_preemptible先例)Acceptance criteria
delegate_task工具调用能区分"是否由 drive_tick 自发路径触发"Not in scope
cancel_delegate_task(用户主动取消)的既有行为DelegatedTaskRegistry的委托任务基础设施——复用现有注册表,只是给它接一条额外的抢占检查通路占位标题-稍后回填-10to 评估:delegate task在drive_tick自发路径的门控前提(ADR-0020,全ADR对抗审查组G⑤)评估:delegate task在drive_tick自发路径的门控前提(ADR-0020,全ADR对抗审查组G⑤)to drive_tick自发路径发起的delegate_task套用ADR-0027同款可抢占逻辑(issue #188 grill定案)