Skip to content

feat(t3): T3 主控对齐跨厂商协作,复核按模型家族选候选 - #19

Merged
mtmtian merged 4 commits into
mainfrom
claude/t3-orchestrator-align
Oct 18, 2026
Merged

mtmtian merged 4 commits into
mainfrom
claude/t3-orchestrator-align

Conversation

@mtmtian

@mtmtian mtmtian commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

问题

#16–#18 把“原生 Claude/Codex 当主控、用 xagent 拉另一家协作”做成了显式规则:verification workers 指向另一家、auxiliary_panel_members、xagent_effort_caps、agent 定义管强度、setup 推荐跨厂商布局。T3 当主控这条路径有三处没对齐:

  1. 复核默认同家族:用当前 T3 能力目录实测,verification workers 的候选 [codex/gpt-sol@latest, claudeAgent/claude-opus@latest] 默认选主控同 provider,解析成主控自己的 claude-opus-5-5。“选不同家族”只写在 poteto-mode 文档里,解析器不保证。原生那边是写死成 xagent:codex / xagent:claude,必然跨家族。
  2. 通道规则互相矛盾:T3 自身的编排说明是“同 provider 且原生工具支持该模型时优先原生子 agent”,overlay 要求全走 delegate_task,而共享契约又规定宿主指令优先。
  3. 辅助成员要二次查找:resolve 的输出不标哪个席位是辅助成员;setup 也没有 T3 版的跨厂商布局建议。

改动

  • config.mjs resolve --checked <entry 或 model>:家族只从模型 ID 末段读(claude-/gpt-/gemini-/grok-,其余为未知)。provider 名不决定家族,因为实测 codex provider 下也挂着 claude/gemini/grok 路由模型。候选角色先看父 provider、再按配置顺序,取第一个已知且不同家族的(selection.strategy: "cross-family");没有时保留原默认,并警告同家族或未知。verification workers 不带 --checked 或 --provider 直接报错,--checked 与 --provider 互斥。
  • 每个 worker 输出 family;panel 席位输出 auxiliary(仅共享 auxiliary_panel_members 中的席位为 true,角色永远为 false)。
  • overlay 改用 T3 自己的说法:pstack worker 都是“明确归 T3 所有的子任务”,T3 正是把这类任务交给 delegate_task,因此和“宿主指令优先”不再冲突。另外写明 T3 下由 hosts.t3 而不是原生 agent 定义管强度。
  • setup-pstack 补 T3 跨厂商布局建议:只有 Claude/GPT 用 @latest,其他家族用 catalog 精确 ID;候选每个 provider 一个,同一 provider 路由两个家族时如何取舍。poteto-mode、路由文档、实测文档、ADAPTATION 同步。
  • fork 守卫新增 t3-owned-child-task、t3-cross-family-verification 两条锚点,并补上对应的“删锚点”用例。
  • 两个 manifest 升到 0.15.25-shared.9。

不改 T3、不改共享配置文件;原生 Claude/Codex 的解析路径不受影响(show 输出不变)。

验证

项 结果 证据
runtime 门禁 PASS bash scripts/check.sh runtime → runtime checks passed.(Node 86 条,fork 守卫 25 条)
build 门禁 PASS bash scripts/check.sh build → build checks passed.(Bun 1.4.2,产物与源码一致;在 cd7b26e 之前跑,之后未改 orch/watch-pr 源码)
新测试能抓到缺陷 PASS scripts/t3-targets.test.mjs 本分支 30/30;用 ad65028 的 bin/ 跑同一份测试 23 pass / 7 fail
实际 T3 目录解析 PASS 主控 claudeAgent/claude-opus-5-5:--checked inherit-parent → codex/gpt-6.1-sol(cross-family,reasoningEffort: high,无警告);不带 --checked → 报错
T3 实际派发 PASS 用上面的 target 走 delegate_task(role: review);T3 返回并在终态记录 providerInstanceId: codex、model: gpt-6.1-sol,与请求一致;status: completed、workState: result_available;子任务自报 effort high
复核只读 PASS 复核前后 HEAD 均为 9380182,git status 前后都干净
跨家族复核意见 已处理 GPT 复核结论 ISSUES,2 条 P2 都在 setup-pstack 的 T3 布局建议(@latest 家族限制、候选 provider 唯一),已在 cd7b26e 修复;核心选择算法未发现缺陷
收尾代码质量审查 PASS 审查 ad65028..cd7b26e:无结构性退化;modelOf 对 T3 target 返回整段 provider/model、xagent 模型重复解析两处,已在 0a79195 收敛(行为不变)。0a79195 上 runtime 门禁 86/86,实际目录下的解析结果不变

限制与未验证项

  • T3 实测用的是 isolation: "shared",不是 overlay 默认的 worktree:本线程绑定 Cuddler 项目,开 worktree 会 checkout Cuddler 并跑它的初始化,而审查对象在 pstack 仓库。只读边界改用前后基线比对验证。完整的 docs/t3-verification.md 写入方 + 复核方流程未跑。
  • 家族识别只认规范前缀;group/auto-gpt-*、zero-risk 这类路由别名记为未知,只会触发警告,不会被当作跨家族证据。
  • 合并后需按 ADAPTATION 刷新三处安装(agy / codex / claude plugin update),已开的会话要重开才会读到新 runtime。

🤖 Generated with Claude Code

mtmtian and others added 4 commits October 18, 2026 21:52
用当前 T3 能力目录实测,verification workers 的候选默认选主控同 provider,
解析成主控自己的 claude-opus-5-5,复核与被查工作同家族;原规则只写在
文档里,解析器不保证。另外 T3 自身说明"同 provider 优先原生子 agent",
而 overlay 要求全走 delegate_task,加上共享契约"宿主指令优先",两者互相
矛盾。

- resolve 新增 --checked <entry 或 model>:从模型 ID 末段读家族
  (claude/gpt/gemini/grok),候选里先选父 provider、再按配置顺序,取第一个
  已知且不同家族的;没有时保留默认并警告同家族或未知。verification workers
  不带 --checked 或 --provider 直接报错。provider 名不决定家族,因为一个
  provider 可以路由别家模型(实测 codex 下挂着 claude/gemini/grok)。
- 每个 worker 输出 family;panel 席位输出 auxiliary,角色永远不是辅助。
- overlay 改用 T3 自己的说法:pstack worker 都是明确归 T3 所有的子任务,
  并写明 T3 下由 hosts.t3 而不是原生 agent 定义管强度。
- setup-pstack 补 T3 跨厂商布局建议;路由与实测文档同步。
- fork 守卫新增两条锚点,测试覆盖新行为,旧解析器下 6 个用例失败。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
跨家族复核(codex/gpt-6.1-sol,经新 --checked 选出)指出两处配置指导
无法执行:@latest 只支持 Claude 与 GPT 系列,gemini/grok 需用 catalog
精确 ID;候选每个 provider 只能一个,同一 provider 路由两个家族时
"每个家族一个候选"会被配置校验拒绝。补充多候选排序与路由模型候选的
测试,旧解析器下该用例失败。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
收尾审查发现 modelOf 对 T3 target 返回整段 provider/model,只是靠
familyOf 读末段才得到正确家族;xagent 的模型部分也在 workerFor 里
重复解析。modelOf 现在只返回模型部分,workerFor 复用它,行为不变。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@mtmtian
mtmtian marked this pull request as ready for review October 18, 2026 14:20
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 18, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-18T14:21:22.411583Z 0a79195 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@mtmtian
mtmtian merged commit cd3c5d0 into main Oct 18, 2026
3 checks passed
@mtmtian
mtmtian deleted the claude/t3-orchestrator-align branch October 18, 2026 14:20
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