Skip to content

feat: pinvou3 工作流底座层移植到 v0.8.57(配合 pinvou3#5)#2

Merged
h3c-hexin merged 6 commits into
pinvou3-cleanfrom
pinvou3-workflow-v0857
Jun 12, 2026
Merged

feat: pinvou3 工作流底座层移植到 v0.8.57(配合 pinvou3#5)#2
h3c-hexin merged 6 commits into
pinvou3-cleanfrom
pinvou3-workflow-v0857

Conversation

@Biilow-Bailang

Copy link
Copy Markdown
Collaborator

配合主仓 PR Pinvou/pinvou3#5(三省六部工作流)的底座层。主仓 PR 的子模组指针钉的就是本分支头 b4144478

这是什么

把工作流需要的 SubAgent 运行时层移植到 v0.8.57 底座上(pinvou3-cleanedafc3b7 直接长出来的 3 个提交,快进可合)。内容不是新需求——就是你 6/8 workflow 分支收的那条线,旧底座上的实现重钉到 v0.8.57:

提交 内容
1c6d2966 AgentComplete 信封带 role —— 宿主(pinvou3)靠它把完成事件关联回工作流节点
b980f1fd 主体移植:SpawnSubAgent 五字段(role_id/allowed_tools/max_steps/output_schema/expects_file_output)、StructuredOutput(submit_output + schema 校验 + stop 拦截防"静默假成功")、request_user_input GUI 路由、temp=0 贪心解码(治 NVFP4 工具调用 XML 损坏)、C8 web-tools 注册、C9 PDF catch_unwind、AgentComplete failed 标志
b4144478 EngineConfig.tool_whitelist 硬白名单 —— 监工(品悟)结构性拿不到执行工具,tool_search 也救不活

改动范围

  • +886/−74 行,17 个文件,全部带 [pinvou3-fork] 标记
  • v0.8.57 的全部新结构(Skill 精简、prompt composer、'steps_loop: 等)原样保留,只做叠加
  • lib 测试 4221 全过,0 失败

合并姿势你定

主仓 PR 钉的是 commit,不依赖这边怎么合:

  • 直接合进 pinvou3-clean(快进)——最简单;
  • 或者你想 rebase / squash 重排,合完只要告诉我新 commit hash,我在主仓 PR 上把子模组指针重钉一次即可。

🤖 Generated with Claude Code

Biilow and others added 4 commits June 11, 2026 21:01
[pinvou3-fork] Event::AgentComplete 加 role:Option<String>,run_subagent_task
在 assignment 移入 run_subagent 前捕获 task.assignment.role 随完成事件回传。
让 SDAN 宿主(pinvou3 拆对话线 B1)靠结构化信封 role 把异步结果关联回节点,
取代靠 harness_phase 字符串猜。3 个 TUI 解构点补 `..` 忽略新字段。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
(cherry picked from commit 87877e8)
…tput/request_user_input/transcript/temp=0/web-tools/PDF 防护/AgentComplete role+failed
宿主 6/12 把项目目录前缀 ppt- 改成中性 wf-(旧前缀顺着提示词污染规划),
但本函数还按 starts_with("ppt-") 找 → 找不到项目目录回退会话根 →
结构化产出(zhiyi.json)落错位置 → taizi 硬闸 FAIL"文件不存在"。

改为与宿主 harness::find_project_dir 同一判据:子目录含
_state/workflow_progress.json 即项目,取 progress mtime 最新者;
ppt-/wf- 双前缀兼容,前缀再改也不受影响。新增回归测试,4222 全过。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Biilow-Bailang

Copy link
Copy Markdown
Collaborator Author

追加 635895a7:项目目录识别从 ppt- 前缀匹配改为 _state/workflow_progress.json 标记匹配(宿主 6/12 把项目目录前缀改成 wf- 后,旧实现落盘回退会话根导致 taizi 硬闸 FAIL,真跑抓到的回归)。带单测,4222 全过。

hexin and others added 2 commits June 12, 2026 11:28
…算 failed

校验失败路径只累加 retries 不熔断,坏 submit_output 可无限空转(本地弱模型);补齐与
"整轮不调工具"催交路径对称的上限熔断。failed 改为非 Completed 即真,纳入
Interrupted/Cancelled,超时半成品不被宿主误当成功。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
temp=0 治了 NVFP4 工具调用 XML 损坏,但撞上病态解码路径时(光想不调
submit_output、或思考失控连续顶格 16K)重试是确定性复现——retry note
只挪动几十个 token,逃不出吸引子(2026-06-12 taizi 三连卡实证,
同 prompt 三次全灭;短 prompt 探针正常,纯路径敏感)。

修法:retry_heat = structured_retries + consecutive_truncated_responses,
0→temp 0(默认贪心),1→0.3,≥2→0.6;恢复正常后截断计数清零自动回贪心。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Biilow-Bailang

Copy link
Copy Markdown
Collaborator Author

看到你的 fc98c58 了(fail-closed 加固),已 rebase 收编。又追加一个真跑抓到的修复 d01debcf:temp=0 贪心解码撞上病态路径时,重试是确定性复现——今早 taizi 三次重派全灭,两种死法:① thinking 里反复说"我要调 submit_output"但一个 tool_use 块都没发出;② thinking 失控连续顶格 16384 token。短 prompt 探针正常,纯 prompt 路径敏感,retry note 只挪几十个 token 逃不出吸引子。修法:structured_retries+连续截断计数 ≥1 后该 agent 的请求逐级升温(0→0.3→0.6),恢复正常自动回贪心——第一次仍是 temp=0 保格式稳定,只在被打回后才引入随机性逃逸。subagent 165 测全过。

@h3c-hexin h3c-hexin left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

工作流底座层评审通过。嫁接结构正确(白名单 catalog.retain 真物理删除/temp=0 隔离不污染主 chat/request_user_input 复用底座工具/保持 v0.8.57 结构)。收敛性两处已修:submit_output 校验失败补 fail-closed(fc98c58) + failed 纳入 Interrupted/Cancelled;作者升温(d01debc)逐级 0.3/0.6 跳出 temp=0 锁死,与 fail-closed 互补。max_steps 无界(manager 恒 u32::MAX)列 backlog——1-b 修后收敛已由熔断+升温保障。cargo test --lib 4222 全过。

@h3c-hexin h3c-hexin merged commit cd0a9fd into pinvou3-clean Jun 12, 2026
@Biilow-Bailang

Copy link
Copy Markdown
Collaborator Author

追加 5a56903f:EngineConfig.reasoning_effort——纯 SpawnSubAgent 驱动的会话(无任何 SendMessage)原本永远拿不到思考开关,session 停在 None → vLLM/Qwen3.6 默认 thinking 全开。新字段默认 None 完全维持原行为,只是让宿主能在配置层初始化;走的还是你 PR Hmbown#1480 的 enable_thinking 翻译链路。4222 测试全过。

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.

3 participants