Skip to content

feat(policy): 多方环节按上游思路跨厂商:独立验证角色、辅助成员、agent 定义优先的推理强度 - #17

Merged
mtmtian merged 6 commits into
mainfrom
claude/verification-workers
Oct 18, 2026
Merged

mtmtian merged 6 commits into
mainfrom
claude/verification-workers

Conversation

@mtmtian

@mtmtian mtmtian commented Oct 18, 2026 •

Copy link
Copy Markdown
Owner

问题

上游 pstack(钉住的 0.15.25)在多方环节默认就混用两家模型:评审组、方案 runner、arena 裁判都是 Claude + Grok,verifier 和 show-me-your-work 的收尾复核要求换一个模型家族。fork 适配到 Codex / Claude Code 后,默认值换成了 inherit-parent,跨厂商完全依赖 ~/.config/pstack/config.json。按上游思路对照,有四处不足:

  1. 验证 worker 和 swarm 共用 swarm workers。想让验证换成另一家,就得连 swarm 的实现一起换。
  2. xagent 席位从不替换,也不允许少一席收尾。辅助厂商(如 gemini)一旦出故障,整组评审就卡住。
  3. 设了 reasoning_effort 后,强度会传给每个原生子 agent,盖掉 ~/.claude/agents、~/.codex/agents 里各自配的推理强度;不设的话,外部 CLI 又会沿用交互用的默认值(本机 codex 是 low)。
  4. 没有配置时多方环节只有一家,setup 也不会提示。

改动

问题 改动
1 新增 verification workers 角色。验证 worker、swarm 的验证 lane、收尾复核都读它,swarm workers 只管分片和竞速。T3 候选角色按解析出的模型家族挑和被检工作不同家的;所有候选都同家时,标为同家族复核。check-fork 加 3 条守卫。
2 新增共享字段 auxiliary_panel_members:列出的外部成员重试一次后仍失败,记为覆盖缺口,不阻塞其余成员已完成的评审组。它不会被替换,也不会让角色或其他成员变成可选。它不往评审组里加人;只能写在共享层,null 删除。
3 agent 定义自己设了推理强度的,保持定义里的值;共享强度只作用于 xagent 外部 worker 和定义里没设强度的子 agent。真实 host E2E 的 prompt 同步改为把原生 worker 派成没有自带强度的 agent 类型。
4 setup-pstack 在另一家 CLI 已登录时提出跨厂商布局:每个评审组是本 host 模型加另一家,裁判池只放另一家,辅助厂商标为 auxiliary;写入前先跟用户确认。

ADAPTATION、README(中英文)、setup-pstack 同步记录。两个 manifest 升到 0.15.25-shared.7。

验证

项 结果 证据
全量门禁 PASS bash scripts/check.sh → all checks passed.:fork guards(23 条必需的本地决定)、Node 77 条、Python 18+8+9+22+26 条、Bun 111 条,runtime 产物与源码一致
守卫能抓到丢失 PASS 守卫测试对 3 条新规则各模拟一次同步丢失,每条只触发自己的报错;手动把 poteto-mode 那句改回旧写法,check-fork.mjs 报 verification-workers-role: no match
辅助成员测试能抓到缺陷 PASS 把 bin/config.mjs 换回改动前的版本,2 条新测试失败(27 pass / 2 fail);恢复后 29 条全部通过
本机配置读回 PASS 新 helper 读 codex、claude、t3 三个视图都符合预期;已安装的旧版 helper(shared.6)读含新字段的配置也正常
T3 候选预演 NOT RUN 当前会话不在 T3 里,拿不到 catalog;两个候选和 T3 其他角色里现有的完全一样
真实跨厂商端到端 NOT RUN 会消耗各家额度;合并并刷新安装之后,线上技能才会读到这些规则

限制

  • 跨厂商仍然依赖 xagent 拉起外部 CLI,比上游的原生子 agent 慢,单个 worker 默认给 900 秒。
  • why 的调查员和综合者依赖 MCP,两家 CLI 接的 MCP 只重合 3 个,所以 why 有意保持同一家。

🤖 Generated with Claude Code

mtmtian and others added 2 commits October 18, 2026 14:18
上游要求 orchestrate 的 verifier 和 show-me-your-work 的收尾复核换一个
模型家族来做。fork 之前让验证 worker 读 swarm workers,而这个角色同时管
swarm 的分片与竞速 worker,想让验证在某个 host 上换成另一家,就得连
swarm 的实现一起换掉。

新增 verification workers:poteto-mode 的验证 worker、swarm 里验证别人
工作的 lane(如 autopilot 的 swarm-verify)和收尾复核都读它;T3 的候选
角色传入没写这份工作的那个 provider。setup-pstack 写明按 host 指向另一家,
ADAPTATION 记录这条本地决定,check-fork 加三条正向守卫。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
发布 verification workers 角色拆分,两个 manifest 按
docs/guide/01-setup.md 的要求一起升级。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@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-18T06:48:02.825286Z d5593d5 New commits
ℹ️ 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.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1b4be5fdb2

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread skills/poteto-mode/SKILL.md Outdated
mtmtian and others added 3 commits October 18, 2026 14:28
references/t3-runtime.md 写明 provider 名称本身不能确定模型家族,同一个
provider 可能代理别家的模型。原措辞让 verification workers 选"没写这份
工作的 provider"并当作跨家,两个 provider 背后是同一家时会误报。现在按
候选解析出的模型家族挑选;所有候选都和被检工作同家时,标为同家族复核。
setup-pstack 也改成按模型家族列候选。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
xagent 席位从不替换、也不允许少一席收尾,所以作为辅助的外部 agent
(如 gemini)一旦连续失败,整组评审就卡住,要用户放弃那一席才能收尾。
上游靠"同家族退回默认模型"保住可用性,xagent 席位走不了这条路。

新增共享字段 auxiliary_panel_members:列出的外部成员按同样规则重试一次,
仍失败就记为覆盖缺口,不计入覆盖与共识结论,也不阻塞其余成员已完成的
评审组;它不会被替换,也不会让角色或其他成员变成可选。它不往评审组里加人,
校验规则与 required_panel_members 相同(只能写在共享层,null 删除),
两份名单共用一个校验函数。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
原契约在设了 reasoning_effort 时把强度传给每个原生子 agent,会盖掉
~/.claude/agents、~/.codex/agents 里各自配的推理强度。现在 agent 定义
自己设了强度的就保持定义里的值,共享强度只作用于 xagent 外部 worker
和定义里没设强度的子 agent;外部 CLI 不传强度时会沿用用户交互用的默认值,
例如 codex 的 low。真实 host E2E 的 prompt 改为把原生 worker 派成
没有自带强度的 agent 类型,继续覆盖"强度传到原生 worker"这条路径。

fork 的 inherit-parent 默认值在多方环节只有一家,上游默认是两家。
setup-pstack 现在在另一家 CLI 已登录时提出跨厂商布局:每个评审组是
本 host 模型加另一家,裁判池只放另一家,辅助厂商标为 auxiliary;
写入前先跟用户确认。README、ADAPTATION 同步记录这些决定。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@mtmtian mtmtian changed the title feat(roles): 验证 worker 与收尾复核改读独立的 verification workers 角色 feat(policy): 多方环节按上游思路跨厂商:独立验证角色、辅助成员、agent 定义优先的推理强度 Oct 18, 2026
这条规则是 reasoning_effort 的跨 host 语义,之前只写在 claude、codex
两个适配文件里,共享契约仍暗示强度会传给每个 worker。现在 runtime.md
写一次原则,适配文件只保留各自的字段名。claude-runtime 开头"默认用主
会话模型"补上"除非 agent 定义自己设了模型",和同一行的新规则不再矛盾。

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@mtmtian
mtmtian merged commit bfade31 into main Oct 18, 2026
3 checks passed
@mtmtian
mtmtian deleted the claude/verification-workers branch October 18, 2026 06:46

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d5593d561c

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread bin/config.mjs
roles: { ...config.roles, ...hostPolicy.roles },
panels: Object.fromEntries(Object.entries(panels).map(([name, panel]) => [name, withRequired(panel)])),
[REQUIRED_MEMBERS]: [...required],
[AUXILIARY_MEMBERS]: [...(config[AUXILIARY_MEMBERS] ?? [])],

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Update the Antigravity policy contract

When --host antigravity reads a config containing this new field, the output now includes auxiliary_panel_members, but references/antigravity-runtime.md:13,21 still explicitly enumerates the returned/displayed shared values without it. Antigravity workflows are required to read that adapter, so they can ignore the auxiliary designation and continue treating a failed auxiliary xagent as a blocking required outcome; document the field and its nonblocking panel semantics in that adapter alongside this output change.

Useful? React with 👍 / 👎.

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