Files
Agent-System/.doc/test-reports/2026-09-24-pi-executor-test-report.md

6.9 KiB
Raw Permalink Blame History

本机 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、规则及测试文件相对已测候选完全一致;无需重复模型调用或产品部署。