6.9 KiB
本机 PI Subagent 执行器验证报告
日期:2026-09-24。task_id:subagent-workflow-standard-2026-09-24;操作任务:subagent-workflow-standard-2026-09-24-executor。
代码提交:69ffaa677e23a1dd9aa0528bb09b3acfcd38b119。真实模型请求的材料来自 52462b45e985f596b2a503fc70ac12c3bd5fe571;输入材料提交与执行器版本分开。测试期间执行器文件冻结,随后原样提交,代码摘要见客户端证据。
范围与结论
Cursor Auto 经项目 MCP 自动读取模型配置、派发本机 PI、取回持久报告的 CLI 链路通过。代码实施/修复由 Cursor 承担,PI 工具与输入范围受限,M3 默认禁用且未调用。 这是个人工程工具验收,不代表产品 PI Agent Runner、产品 UI、PG 持久性或发布门禁通过。未重建服务、修改产品模型或 push。
环境
gmktec / Linux;PI 0.85.1;Cursor CLI 2026.09.18-9a7762b;Node v26.9.0;Python 3.14。 入口:scripts/pi_subagents.py、scripts/mcp/pi-subagents-mcp.mjs、scripts/pi-subagent-readonly.ts。 配置 · 运行说明。 模型身份来自 PI 结构化消息与调用参数的比对,不是服务商内部路由的独立证明。
实际执行结果
| 检查 | 命令 / 输入 | 结果 | 证据 |
|---|---|---|---|
| 完整工程回归 | python3 -B -m unittest discover -s scripts/tests -p 'test_*.py' -v | 173 tests / OK / exit 0;111.229 秒 | 日志 |
| 提交后专项回归 | python3 -B -m unittest discover -s scripts/tests -p 'test_pi_subagents.py' -v | 34 tests / OK / exit 0;38.229 秒;HEAD=69ffaa67 | 日志 |
| 架构门禁 | ./scripts/arch-check.sh --mode block | exit 0;archtest 两组通过 | 日志 |
| JS / 差异 | node --check scripts/mcp/pi-subagents-mcp.mjs;git diff --check | exit 0 | 本报告及最终检查 |
| Cursor 工具发现 | agent mcp list-tools pi-subagents | 3 个工具可发现 | 客户端证据 |
| MCP 研究 | real-mcp-research-02 | Qwen3.8-Flash 返回目录声明及标记;早期 ls 误拒已保留并在最终链路重验 | 收据 |
| MCP 测试 | real-mcp-test-01;Python 检查文件及 env 隔离 | GLM-5.3-Flash;命令 exit 0,PI_ISOLATED_TEST_PASS;非产品测试 | 收据 |
| MCP 规划 | real-mcp-plan-01 | Qwen3.8-Max 正确总结 Cursor/M3/升级规则并返回 MODEL_PLAN_OK | 收据 |
| 禁用角色 | real-mcp-disabled-01 / auxiliary | ROLE_DISABLED、isError=true,未调用 M3 | 汇总 |
| Cursor Auto 完整派发 | roles → run → result;cursor-auto-research-02;无 model_override 或 shell PI 替代 | succeeded;Qwen3.8-Flash;ls/read 均 isError=false;CURSOR_PI_AUTOMATION_OK | 报告 · 工具调用 |
PI 单测使用明确的假传输;Git/锁/进程/MCP 为隔离实测,真实模型请求另列。未操作 Cursor IDE 页面。
覆盖与审查
回归覆盖配置/角色/循环校验、M3 越权拒绝、注册/租约/伪造身份、冻结 SHA、路径穿越/秘密/符号链接、TS 守卫合法根目录和负例、输出上限/超时/存活子进程、终止事件、PID 身份/只读查询、幂等/损坏收据/配置重载、环境白名单、测试与模型快照隔离、命令失败不可被模型叙事升级、MCP 主仓入口及拒绝原因。 命令 pass/commands_passed 只表示显式命令结果;必需用例、任务验收与人工批准另判。non-test 模型完成仍为 pending/not_applicable。
Cursor Auto 实施,Codex 主机复核完整差异和测试;本机 GLM-5.3 独立审查只读守卫:原审查。有效目录/默认路径候选已通过隔离与 inventory 检查落实;paths[] 不属于实际 PI 内置 schema,其假设不当作已证实漏洞,接口另外拒绝未知路径载体。最终修复由主机与回归确认,未声称 GLM 对整套最终代码出具通过结论。
失败过程及修复
- 初版路径规范化问题用假文件复现并修复,没有读取真实敏感文件;其它进程、环境、幂等和判定问题见主记录。
- 第一次 GLM 整包审查 300 秒超时,无完整结果,不记 PASS;改为有完整返回的分段审查与主机复核。
- 第一次 Cursor 会话未挂载工具。list-tools 证明本机 CLI 未展开 ${workspaceFolder};本次新入口改为相对路径并启用本工作区 pi-subagents 后通过。官方 CLI MCP 文档描述共用配置,本机行为以实际命令为准。
- 合法目录枚举的两次失败分别来自 exact-root 判断和内部扩展污染模型快照;修复、新回归和最终 Cursor 调用证明 ls/read 正常,旧收据保留。
- 部分 Cursor 编码客户端退出后留下语言服务子进程,agentctl 正确保留 recovery_required;host 仅核对/终止本任务记录的进程组后 recover,没有删锁或杀他人进程。
交付边界
dev 集成已完成,精确提交与验证见下节。模型分工已确认,流程整体草案未因此自动全仓生效。 执行器不是全套 S0–S9 审批状态机,也不是 OS 沙箱;批准测试代码属于可信执行面。本版不直接操作共享环境或自动安装依赖。PI 获得命令摘要/日志引用,完整日志由主 Agent 核验并按需补充上下文,不能用预览证明所有必需用例。 原始 Cursor 会话、模型 thinking 不入 Git;只留必要工具调用/结果/摘要。未归档凭证、业务正文或敏感截图。
dev 集成验证(2026-09-24)
候选及首次 dev 集成 SHA:5a8540804ee2d142a0894c1482a2a16e8f843915;第一父提交 c1a70e67e5edfd4a4c52fe087933e92f3c6d1e9c。agentctl validate 在干净候选运行完整 scripts/tests、node --check、arch-check --mode block,全部 exit 0;原始输出见候选验证日志。FEATURE-MATRIX 相对基线无变化,CURRENT 与 ISSUES 保留已有行。随后 agentctl integrate 以期望基线检查和 ff-only 推进 dev。
本节收口只改文档与归档日志,后续收口候选验证确认执行器、MCP、规则及测试文件相对已测候选完全一致;无需重复模型调用或产品部署。