Files
pikasTech-unidesk/docs/MDTODO/artificer-runtime-capabilities.md
T
Codex 203718668d
Pipelines as Code CI / hwlab-web-probe-sentinel-nc01- Success
Pipelines as Code CI / platform-infra-gitea-nc01- Success
Pipelines as Code CI / unidesk-host- Success
docs: 完成 compact 协议回归报告
2026-07-14 17:52:13 +02:00

14 KiB
Raw Blame History

Artificer 运行能力

本文件跟踪 Artificer 的 AipodSpec、provider/model 选择、credential 投影、任务级覆盖、Session 续跑和真实派单验收。单次配置、协议或运行故障作为 ITEM 进入本长期问题域。

R1 [in_progress]

落实 UniDesk #1846AgentRun #325Artificer 的 API credential 唯一来自 ~/.codex/*.pikaAgentRun effective backend profile 固定为 gpt-pika,默认模型改为 gpt-5.6-sol、reasoning effort 改为 medium,并支持任务级模型与 reasoning 选择,完成任务后将详细报告写入任务报告

R1.1 [in_progress]

UniDesk #1846 将 gpt.pika 的 auth.json/config.toml 唯一 sourceRef 改为 /root/.codex/*.pikaplan/sync 默认视图显示精确 sourceRef 与 source/effective profileconfig.toml 同步前验证显式 provider/base URL 且不输出值,activation fence blocked 时不提示 --confirm,缺失或不安全配置 fail closed,完成任务后将详细报告写入任务报告

R1.2 [completed]

AgentRun #325 让 AipodSpec 默认 backendProfile/credential.profile=gpt-pika、默认模型 gpt-5.6-sol、默认 reasoning effort=medium,并支持显式 model/reasoning overrideprovider/SecretRef 不随模型切换,带点的 gpt.pika 在 AgentRun admission 中 fail closed,完成任务后将详细报告写入任务报告

R1.3 [in_progress]

修复 UniDesk Aipod create/render/send:只有显式参数才覆盖服务端 AipodSpec,增加 --model 与 --reasoning-effort 同构 dry-run,禁止 client sessionPolicy 默改 provider/executionPolicy,完成任务后将详细报告写入任务报告

R1.4

两个 PR 合并后只观察自动链;先跑 .pika 默认与显式模型最短 Artificer canary,再为 UniDesk #1844 创建唯一替代 task 并记录 supersedes,完成任务后将详细报告写入任务报告

R2 [completed]

解决 AgentRun #335:修复 Artificer 同 session follow-up 的 AipodSpec primary workspace、resource bundle、GitHub tool credential 继承退化,以及终态收敛窗口复用旧 run 产生 provider-less 空 command 的竞态;只修既有 session admission/继承路径,不新增合同、租约、围栏、fallback 或第二 authority,完成任务后将详细报告写入任务报告

R3 [completed]

解决 AgentRun #337:由 Artificer owning YAML 的既有 Aipod/runner 启动装配统一提供 Git author/committer identity,使全新 task 与同 session resume/new-turn 均无需任务内 git config 即可提交;只做最小必要修复,不新增第二 authority、合同、租约、安全机制、围栏或 monitor 支线,完成任务后将详细报告写入任务报告

R3.1 [completed]

调查 config/aipods/artificer.yaml、Aipod render 与 runner 启动路径,确认单一 identity owner,并用两个既有失败 task 和 #335 resume canary 建立初始/续跑复现证据,完成任务后将详细报告写入任务报告

R3.2 [completed]

由原生子代理在独立 AgentRun v0.2 worktree 实现最小 YAML-first identity 装配与定向测试,覆盖初始 runner 和同 session 新 turnArtificer 不递归修自己,完成任务后将详细报告写入任务报告

R3.3 [completed]

主代理 review/合并后只观察自动 CI/CD;以新 task 直接 commit、同 session send 直接 commit 两个 canary 验收,不使用 task-local git config 或人工发布,完成任务后将详细报告写入任务报告

R4 [completed]

解决 AgentRun #340:修复 Artificer active turn 在 durable steer 已确认后发生 backend retry/thread resume 时丢失 steer 增量、错误回退初始 prompt 的问题;只修既有 command/event/thread 恢复路径,不新增客户端重发、第二 prompt authority、合同、租约、安全机制或围栏,完成任务后将详细报告写入任务报告

R4.1 [completed]

只读复现 AgentRun #340 的 durable steer ack → backend hard-timeout/retry → thread resume 指令回退,定位 effective prompt/turn state 在哪一层遗漏 steer,并冻结最小修复边界,完成任务后将详细报告写入任务报告

R4.2 [completed]

由原生子代理在独立 AgentRun v0.2 worktree 实现 active steer 的顺序、幂等恢复与定向测试;Artificer 不递归修自己,不触碰 Monitor 业务、provider/model/workspace/credential 装配,完成任务后将详细报告写入任务报告

R4.3 [completed]

主代理 review/合并后只观察自动 CI/CD;用新 Artificer canary 验证 active steer 后 backend retry 无需重发仍继续最新指令,并确认 workspace/resource bundle/tool credential 保持正确,完成任务后将详细报告写入任务报告

R5 [completed]

解决 AgentRun #346:由 owning Aipod YAML 提示词明确当前 Artificer 是执行者并禁止递归创建或派发 Artificer;由原生子代理做最小修复,不改变模型、provider、SecretRef、workspace、credential 或 resume 语义,完成任务后将详细报告写入任务报告

R5.1 [completed]

由原生子代理按 AgentRun #346 修改 config/aipods/artificer.yaml 的单一 prompt authority 并补 render 定向测试,禁止 Artificer 递归修自己,完成任务后将详细报告写入任务报告

R5.2 [completed]

主代理 review/合并 AgentRun #346 的最小 PR,只观察自动 CI/CD,不新增代码默认值或第二 prompt authority,完成任务后将详细报告写入任务报告

R5.3 [completed]

自动上线后执行最短 Artificer canary,确认直接处理业务任务且没有创建第二 task,并记录 task/run/session 证据,完成任务后将详细报告写入任务报告

R6 [in_progress]

让 Artificer 派单成为 Target-aware 的单命令流程:所有子代理派单前先用 MDTODO 跟踪;主代理通过 trans 在 YAML 选择的 Target 上执行 create/dispatchArtificer 接单后内部也通过 trans 到 Target 的任务 worktree 执行,从而复用当前 NC01 的 Git、工具和运行面受控权限。CLI 只需 target、target-workspace、repo、ref 与 prompt,即在创建前通过同一 trans 核对工作区、分支和源码身份,自动渲染合法 session、workspaceRef 与 Aipod 资源包,不让 schema-invalid 或私库 fetch 错误在建 task 后才暴露;owning YAML prompt 与 unidesk-subagent 固化规则,并以 /root/.worktrees/selfmedia/r6-ocr-visual-planner 真实验收,完成任务后将详细报告写入任务报告

R6.1 [in_progress]

由原生子代理在最新远端基线的独立 worktree 实现易用派单入口:外层在 YAML Target 上通过 trans 派单,Artificer 内部通过 trans 到 NC01 目标工作区复用主机权限;覆盖 target/target-workspace/repo/ref、创建前源码身份预检、合法 session/workspaceRef/Aipod 投影、owning prompt,以及 unidesk-subagent 的“所有子代理先建 MDTODO”固定规则;对应原生任务 artificer_dispatch_ux,完成任务后将详细报告写入任务报告

R6.2 [in_progress]

主代理审查跨仓改动并按依赖顺序合并 PR,只观察自动 CI/CD 收敛;不得人工触发 mirror、PipelineRun、apply 或 rollout,完成任务后将详细报告写入任务报告

R6.3

上线后通过 trans 在 NC01 使用新单命令入口,以任务 worktree /root/.worktrees/selfmedia/r6-ocr-visual-planner、仓库 pikainc/selfmedia 和 ref feat/r6-ocr-visual-planner 派发 OCR/视觉规划,确认 task 直接 running、Artificer 内部继续用 trans、session 可续跑且不出现 schema-invalid 或 repository-not-found,完成任务后将详细报告写入任务报告

R6.4 [in_progress]

修复 Target 单命令 live 输出超过全局预算后丢失 task/run/session identity:默认 human 与显式 JSON/YAML 都先返回紧凑 identity、auto-dispatch decision、Target 摘要与下钻命令,不嵌入完整 task/Aipod payload;补超过 10 KiB 场景测试,确保不会退化为 stdout-text-bytes-exceeded-threshold,完成任务后将详细报告写入任务报告

R6.5 [in_progress]

修复 cancelled task 后同 session continuation 未继承原 session 的 tenant/project,导致 send session 被 tenant-policy-denied 拒绝;由 session/task durable identity 自动沿用原 project,不绕过策略,并用 selfmedia 原 session 续跑 canary 验收,完成任务后将详细报告写入任务报告

R7 [completed]

解决 AgentRun #348:由 owning Artificer Aipod YAML 把单 turn hard-timeout 从 30 分钟调整为 2 小时(7200000 ms),只改 YAML 及最小必要 render/配置测试,不新增代码默认、第二 timeout authority、客户端续跑补丁、合同、租约、安全机制或围栏,完成任务后将详细报告写入任务报告

R7.1 [completed]

由原生子代理按 AgentRun #348 在独立 v0.2 worktree 修改 config/aipods/artificer.yaml timeoutMs 为 7200000,并完成最小 render/配置测试;禁止 Artificer 递归修自己,完成任务后将详细报告写入任务报告

R7.2 [completed]

主代理审查并合并 AgentRun #348 的最小 PR,只观察自动 CI/CD,不人工触发交付链,完成任务后将详细报告写入任务报告

R7.3 [completed]

自动上线后以新 Artificer task input 与超过 30 分钟的真实或受控 canary 验证 2 小时 budget 生效,不修改当前 Monitor run 的既有 task policy,完成任务后将详细报告写入任务报告

R8 [completed]

解决 UniDesk #1944:修复 Artificer Aipod 已为 2 小时但 UniDesk session follow-up 仍使用 15 分钟 hard-timeout 的配置分裂;将 config/agentrun.yaml#client.sessionPolicy.executionPolicy.timeoutMs 调整为 7200000 ms,在配置解析/校验中拒绝任何低于 3600000 ms 的 hard-timeout,并更新中文长期参考与最小测试;属于 AgentRun 自身运行时,必须由原生子代理执行,禁止 Artificer 递归修复,不新增第二 timeout authority、续跑补丁、锁、租约或状态机,完成任务后将详细报告写入任务报告

R9 [completed]

解决 UniDesk #2034:确认 908c5515adcff1b205 汇合后产生的重复 pikainc/pikaoa override 已由 3bded7e0 / PR #2020 精确删除;通过 PR #2038 保护并吸收固定 /root/unidesk 的 4 个并行提交,再按 P0 执行 stash -upull --ff-onlystash apply,不新增 parser/validator、warning normalization、credential authority、fallback、锁或租约;最后以 #2537 continuation task 做最短 Artificer canary,完成任务后将详细报告写入任务报告

R10 [completed]

解决 UniDesk #2044:定位首次引入 /responses/compact 响应消息缺少 role 的提交或镜像版本,并精确反向移除该回归以恢复既有 compact 合同;保持 Artificer、Codex app-server、Sub2API 与原 session 单一路径,不增加 retry、fallback、role 猜测、第二 authority 或新 session 绕行;经 YAML-first 自动交付后复用 HWLAB #2541 原 session continuation 验证,属于 Artificer 自身运行链故障,必须由原生子代理执行,完成任务后将详细报告写入任务报告