drive_tick自发路径发起的delegate_task套用ADR-0027同款可抢占逻辑(issue #188 grill定案) #188

Open
opened 2026-08-21 03:25:40 +00:00 by KumaAgent · 0 comments
Member

来源

全量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_chatentry_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 附近)
  • 执行中抢占可由部署方关闭:静态 config arise_cross_platform_pull_preemptible(默认真)控制"跑到一半被真人开口打断"是否生效

drive_tick 自发发起的 delegate_task 是同一类场景(智能体自主触发,无真实用户在等),理应套用同一套治理模式(不必是同一套代码,但机制形状应该一致)。

What to build

  • 区分触发源delegate_task 工具调用处理逻辑需要知道"这次调用是不是由 drive_tick 自发路径触发的"——可能复用 ADR-0029 已有的 trigger_kind"event"/"periodic")概念,具体接线方式留给实现
  • 起点闸:drive_tick 触发的委托任务,在异步子任务真正开始执行前,检查"真人是否已经活跃",若是则不启动(恒生效,不可配,仿 ADR-0027 _wait_for_human_activity
  • 执行中抢占:drive_tick 触发的委托任务执行期间,若真人活跃起来,是否中断由静态config控制(默认可抢占,仿 arise_cross_platform_pull_preemptible 先例)
  • reactive/事件触发路径不受影响:这类委托任务继续保持ADR-0020原有"履约不可抢占"行为

Acceptance criteria

  • delegate_task 工具调用能区分"是否由 drive_tick 自发路径触发"
  • drive_tick 触发的委托任务:起点闸恒生效(真人活跃则不启动),补测试覆盖
  • drive_tick 触发的委托任务:执行中抢占受静态config控制(默认可抢占),补测试覆盖
  • reactive/事件触发路径发起的委托任务行为不变,补回归测试确认"履约不可抢占"待遇未被误伤
  • ADR-0020 补更新节记录具体接线机制
  • 全量测试通过

Not in scope

  • 不改 cancel_delegate_task(用户主动取消)的既有行为
  • 不改 reactive/事件触发路径发起的委托任务的可抢占语义
  • 不新建独立于 DelegatedTaskRegistry 的委托任务基础设施——复用现有注册表,只是给它接一条额外的抢占检查通路
## 来源 全量32条ADR设计合理性对抗审查(评估侧内部执行,2026-08-21,组G)grill定案。完整推理链条见 [ADR-0020](https://code.srcz.one/ProjectKuma/arise/blob/main/docs/adr/0020-deep-task-delegation.md) 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](https://code.srcz.one/ProjectKuma/arise/blob/main/docs/adr/0027-cross-platform-profile-pull.md)(跨平台资料拉取)同款两段式可抢占逻辑,reactive/事件触发路径发起的维持ADR-0020原有"履约不可抢占"行为不变。** ## 关键参照:ADR-0027 已经处理过同一类场景 ADR-0027 复用 `delegate_task` 的执行形状,但明确"不继承本ADR'履约不可抢占'治理",理由是"智能体自主触发,不满足'履约'的前提"。它的可抢占逻辑分两段: - **起点闸恒生效、不可配**:"真人正活跃就不起这个任务"(`_wait_for_human_activity(chat_id)`,`entry_drive_tick.py:174` 附近) - **执行中抢占可由部署方关闭**:静态 config `arise_cross_platform_pull_preemptible`(默认真)控制"跑到一半被真人开口打断"是否生效 drive_tick 自发发起的 `delegate_task` 是同一类场景(智能体自主触发,无真实用户在等),理应套用同一套治理模式(不必是同一套代码,但机制形状应该一致)。 ## What to build - **区分触发源**:`delegate_task` 工具调用处理逻辑需要知道"这次调用是不是由 drive_tick 自发路径触发的"——可能复用 [ADR-0029](https://code.srcz.one/ProjectKuma/arise/blob/main/docs/adr/0029-unified-trigger-pipeline.md) 已有的 `trigger_kind`(`"event"`/`"periodic"`)概念,具体接线方式留给实现 - **起点闸**:drive_tick 触发的委托任务,在异步子任务真正开始执行前,检查"真人是否已经活跃",若是则不启动(恒生效,不可配,仿 ADR-0027 `_wait_for_human_activity`) - **执行中抢占**:drive_tick 触发的委托任务执行期间,若真人活跃起来,是否中断由静态config控制(默认可抢占,仿 `arise_cross_platform_pull_preemptible` 先例) - **reactive/事件触发路径不受影响**:这类委托任务继续保持ADR-0020原有"履约不可抢占"行为 ## Acceptance criteria - [ ] `delegate_task` 工具调用能区分"是否由 drive_tick 自发路径触发" - [ ] drive_tick 触发的委托任务:起点闸恒生效(真人活跃则不启动),补测试覆盖 - [ ] drive_tick 触发的委托任务:执行中抢占受静态config控制(默认可抢占),补测试覆盖 - [ ] reactive/事件触发路径发起的委托任务行为不变,补回归测试确认"履约不可抢占"待遇未被误伤 - [ ] ADR-0020 补更新节记录具体接线机制 - [ ] 全量测试通过 ## Not in scope - 不改 `cancel_delegate_task`(用户主动取消)的既有行为 - 不改 reactive/事件触发路径发起的委托任务的可抢占语义 - 不新建独立于 `DelegatedTaskRegistry` 的委托任务基础设施——复用现有注册表,只是给它接一条额外的抢占检查通路
KumaAgent changed title from 占位标题-稍后回填-10 to 评估:delegate task在drive_tick自发路径的门控前提(ADR-0020,全ADR对抗审查组G⑤) 2026-08-21 03:28:53 +00:00
KumaAgent changed title from 评估:delegate task在drive_tick自发路径的门控前提(ADR-0020,全ADR对抗审查组G⑤) to drive_tick自发路径发起的delegate_task套用ADR-0027同款可抢占逻辑(issue #188 grill定案) 2026-08-21 04:51:55 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
ProjectKuma/arise#188
No description provided.