docs: 收口 Artificer 递归派单验收

This commit is contained in:
Codex
2026-07-13 07:12:15 +02:00
parent 2fdadce835
commit a83fd9d0af
6 changed files with 76 additions and 5 deletions
@@ -59,7 +59,7 @@
主代理 review/合并后只观察自动 CI/CD;用新 Artificer canary 验证 active steer 后 backend retry 无需重发仍继续最新指令,并确认 workspace/resource bundle/tool credential 保持正确,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R4.3_Task_Report.md)。
## R5 [in_progress]
## R5 [completed]
解决 [AgentRun #346](https://github.com/pikasTech/agentrun/issues/346):由 owning Aipod YAML 提示词明确当前 Artificer 是执行者并禁止递归创建或派发 Artificer;由原生子代理做最小修复,不改变模型、provider、SecretRef、workspace、credential 或 resume 语义,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R5_Task_Report.md)。
@@ -67,10 +67,10 @@
由原生子代理按 [AgentRun #346](https://github.com/pikasTech/agentrun/issues/346) 修改 config/aipods/artificer.yaml 的单一 prompt authority 并补 render 定向测试,禁止 Artificer 递归修自己,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R5.1_Task_Report.md)。
### R5.2 [in_progress]
### R5.2 [completed]
主代理 review/合并 [AgentRun #346](https://github.com/pikasTech/agentrun/issues/346) 的最小 PR,只观察自动 CI/CD,不新增代码默认值或第二 prompt authority,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R5.2_Task_Report.md)。
### R5.3
### R5.3 [completed]
自动上线后执行最短 Artificer canary,确认直接处理业务任务且没有创建第二 task,并记录 task/run/session 证据,完成任务后将详细报告写入[任务报告](./details/artificer-runtime-capabilities/R5.3_Task_Report.md)。
@@ -0,0 +1,22 @@
# R5.2 任务报告
## 结论
主代理已独立 review 并合并 [AgentRun PR #347](https://github.com/pikasTech/agentrun/pull/347)。merge commit 为 `4155132aa7e8de1936b2bf447ea889a607ee59d7`
## Review 证据
- `git diff --check` 通过。
- 定向运行 `81-artificer-nonrecursive-prompt``76-aipod-spec``80-artificer-model-selection`,全部通过。
- 规则唯一位于 owning YAML;通用 renderer 仅拼接 YAML 默认提示和用户 prompt。
- 未改变模型、reasoning、provider、SecretRef、workspace、resource bundle、Git identity 或 session resume。
## 自动交付证据
未执行人工 mirror、PipelineRun、sync、refresh、trigger 或 rollout。PaC watcher 临时恢复后,已有自动事件自行继续:
- PipelineRun`agentrun-nc01-v02-ci-4155132aa7e8de1936b2bf447ea889a607ee5glss5`
- PipelineRun`Succeeded`47 秒,3 个 TaskRun 全部成功;
- GitOps`fcb77f4cf8e1520003b81928eaef9177d439cfe6`
- Argo`Synced / Healthy`revision `fcb77f4cf8e1`
- runtime manager source`4155132aa7e8``1/1 ready`
@@ -0,0 +1,19 @@
# R5.3 任务报告
## 结论
自动上线后的最短 Artificer canary 通过。当前 Artificer 直接完成任务,没有调用工具,也没有创建或派发第二个 AgentRun/Artificer task。
## 证据
- task`qt_147d7694b83b4a62a99a6bcefa19eb11`
- run`run_795aaea568dc44898654ce25d35099bd`
- command`cmd_0ab1266c1c5c48048266efdb74edd324`
- session`sess_artificer_fc1728414554120dad66f19a`
- runner`rjob_954e449ac40f4b26bd6bd74a9cecc3f1`
- terminal`completed``OK=true`、authoritative
- 唯一结果:`ARTIFICER_NONRECURSIVE_OK`
事件 1 显示 YAML 默认提示已在用户业务提示之前进入实际初始 prompt。事件 21-32 只有 thread/turn 状态、单条 assistant message 和 terminal 状态,没有 tool call、AgentRun create/apply/dispatch 或 Code Queue 操作。canary 前后活动 task 视图未出现第二个新增任务。
本次 canary 为只读任务,未修改文件或外部状态。
@@ -0,0 +1,7 @@
# R5 任务报告
[AgentRun #346](https://github.com/pikasTech/agentrun/issues/346) 已完成。禁止 Artificer 递归派单的职责提示由 `config/aipods/artificer.yaml#spec.payloadDefaults.prompt` 单一控制;通用 renderer 只做默认提示与用户提示合成,没有第二规则权威。
实现已由 [AgentRun PR #347](https://github.com/pikasTech/agentrun/pull/347) 合并,并通过自动 PaC、GitOps、Argo 和 runtime 发布。上线后真实只读 canary `qt_147d7694b83b4a62a99a6bcefa19eb11` 直接返回 `ARTIFICER_NONRECURSIVE_OK`,完整事件中没有任何 tool call 或第二 task 派单。
默认模型和运行事实保持 `gpt-5.6-sol`、reasoning `medium`、backend profile `gpt-pika`workspace、resource bundle、credential、Git identity 和 session resume 均未改变。
@@ -0,0 +1,23 @@
# R5.1 任务报告
## 结论
[UniDesk #1900](https://github.com/pikasTech/unidesk/issues/1900) 的直接断点不是 PR、Pipeline 定义或 AgentRun,而是 NC01 的 `pipelines-as-code-watcher` 未启动。GitHub merge、Gitea mirror/webhook 和 PaC 创建 PipelineRun 均正常;唯一负责把 `queued/PipelineRunPending` 推进为 `started` 的 watcher 不可用,因此自动链停在 0 TaskRun。
## 运行面证据
- watcher Deployment`replicas=1``ready=0``unavailable=1`
- 故障 Pod`pipelines-as-code-watcher-7f6c87497c-h2dzz`UID `7fe65fbe-a18e-4513-89f2-5fac37ae0b71`
- projected ServiceAccount token 被 node authorizer 拒绝:`node requested token bound to a pod scheduled on a different node` / `no relationship found between node`
- 同一控制面恢复窗口创建的 `tempo``todo-note` Pod 出现相同错误;稍后新建 Pod 已能正常挂载 token,排除 watcher ServiceAccount RBAC 和 AgentRun Pipeline 定义。
- AgentRun merge commit `4155132aa7e8de1936b2bf447ea889a607ee59d7` 的 PipelineRun 已由 PaC 创建并标记 `queued`,但长期 `startTime=null`、0 TaskRun。
## 有界临时恢复
在 issue 和 MDTODO 建立后,只删除上述精确 Pending watcher Pod,由既有 Deployment/ReplicaSet 自动重建。未修改、删除或重跑任何 PipelineRun,也未执行 mirror、sync、refresh、trigger 或 rollout。
新 Pod `pipelines-as-code-watcher-7f6c87497c-7lhfh` 随后 Ready,并接管 leader lease;既有 #347 PipelineRun 自动从 `queued` 进入 `Running`,产生 TaskRun。该证据证明恢复仍由原 PaC 自动权威完成。
## 长期归属
长期修复归 [#1900](https://github.com/pikasTech/unidesk/issues/1900) 的 NC01 k3s node-authorizer / Pod 生命周期恢复。不得把本次精确 Pod 重建固化为额外 delivery actor、补跑入口或自动围栏。
@@ -68,11 +68,11 @@
解决 [UniDesk #1900](https://github.com/pikasTech/unidesk/issues/1900):修复 NC01 PaC watcher 因 ServiceAccount token 的 node/pod 关系失败而 Pending,恢复 GitHub PR merge 驱动的唯一自动交付链,禁止人工补触发、第二权威或旁路,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R5_Task_Report.md)。
### R5.1 [in_progress]
### R5.1 [completed]
只读定位 [UniDesk #1900](https://github.com/pikasTech/unidesk/issues/1900) 的唯一根因,核对 watcher Pod、ServiceAccount token、node/pod 关系、owning YAML 与最近控制面变更,不改运行面,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R5.1_Task_Report.md)。
### R5.2
### R5.2 [in_progress]
按 [UniDesk #1900](https://github.com/pikasTech/unidesk/issues/1900) 实施最小持久化修复和定向验证,不新增第二交付权威、合同、租约、安全机制或围栏,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R5.2_Task_Report.md)。