Skip to content

feat(runtime): 完成 await rehydration 与 Phase 输出生命周期 - #18

Draft
bzxtom wants to merge 17 commits into
devfrom
phase-agent-await-rehydration
Draft

bzxtom wants to merge 17 commits into
devfrom
phase-agent-await-rehydration

Conversation

@bzxtom

@bzxtom bzxtom commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

用户指令概要

  • 完成 M4:在同一 logical Invocation / Generation 内,实现 awaitInputs 后由新正式输入驱动的逻辑重建、全新物理 carrier 承载、authenticated package-consumption receipt,以及 agent-originated 正式 PhaseOutput 生命周期。
  • 使用既有 M3.8-C、M4-D 和 M4-E focused Docker fixture 验证真实 AgentTeams/QwenPaw 链路;不进入 M5,不恢复旧 provider conversation、token、credential、session 或进程身份。

改动内容

  • 增加 await continuation、WaitingRecord、Continuation/Binding reconstruction、epoch-aware PhysicalExecution、执行重承载和可重试 teardown contract。
  • 增加受信任 binding 约束的 runtime.awaitInputs、package materialization / digest、authenticated runtime.confirmPackageConsumption receipt 及正式 agent.submitPhaseOutput completion。
  • 完成 AgentTeams Controller/QwenPaw/TeamHarness 适配:private credential header 投影、runtime applied/readback、fresh Worker/task/session activation 与正常回收。
  • 增加 M3.8-C 与 M4-D~E4 deterministic Docker fixtures、聚焦单元测试;修正文档中 result.md / submit_task 仅为 execution evidence、不能替代正式 PhaseOutput 的语义。

影响面

  • 运行路径覆盖 Phase MCP HTTP、Runtime、BindingRegistry、Artifact ownership、AgentTeams Controller、QwenPaw MCP runtime、TeamHarness taskflow 与本地 Docker fixture。
  • 同一 logical TaskID / InvocationID / Generation 在 await 后保持连续;ExecutionEpoch、BindingRef、InputRevision、Worker、credential、token、task 和 Matrix session 则更替。
  • M4 不改变 Coordination Graph 的 checkpoint/resume 控制语义:await rehydration 不是 checkpoint resume;不恢复隐藏推理或旧 provider conversation。
  • 未包含 M5、awaitInputs 之外的新 lifecycle 语义、自动 merge,亦未修改 upstream AgentTeams 官方仓库。

验证结果

  • go test -count=1 ./internal/runtime./internal/mcp/phase./internal/agenthost/agentteams:PASS。
  • go test -count=1 ./...:PASS。
  • git diff --check:PASS。
  • 真实 Docker M4-E4 focused E2E:PASS:Epoch-A agent-originated await → A teardown/token revoke → formal input-r5/B2 → Worker-B/QwenPaw fresh session → authenticated receipt → artifact.registeragent.submitPhaseOutput → terminal teardown。
  • E2E 同时验证:token-A/token-B teardown 后不可 Resolve;两个 epoch evidence 保留;Artifact ownership 与 PhaseOutputSubmitted 保留;stale/duplicate/conflicting output、final CAS conflict 与 teardown retry 失败关闭。
  • secret scan 未发现生产 token、credential、private header 或 controller auth 明文;fixture 中仅保留明确标注的本地测试凭据。

风险与回滚

  • 当前 Waiting、receipt、PhysicalExecution、输入和 output store 均是 Runtime seam 的 in-memory MVP 实现;真实 E2E 验证 contract,不等同于已提供生产 durable backend。后续 durable store 实现必须保持现有 CAS、epoch、binding、receipt 与 secret-boundary contract。
  • Docker fixture 依赖本地 Docker Desktop、embedded AgentTeams/QwenPaw image 和 isolated test-only credentials;不作为生产部署器。
  • 回滚可通过回退本 PR 的提交;旧 token 已严格 revoke,不应尝试恢复旧 carrier/session。

Agent 自主设计与假设

  • 将 package consumption 与 PhaseOutput 拆成两个独立 authenticated MCP 边界:前者证明 fresh session 已解析受控 package,后者才正式终结 logical invocation;原因是 TeamHarness acknowledgement 与 result.md 只能证明 physical execution evidence。
  • 将 M4-E4 文档修正单独提交,避免与 runtime 功能实现混杂;原因是早期适配草案仍含已被真实 E2E 取代的 result-to-output 叙述。
  • PR 以 draft 创建,等待独立审查与仓库要求的检查后再考虑合并;原因是 AGENTS.md 要求审查,且未获得合并授权。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant