Files
Agent-System/.doc/test-reports/2026-09-15-multi-intent-u1-contracts-test-report.md
T
weichenandCursor 3d326ad81e docs(status): record U1 multi-intent contract freeze
Archive the arch/parity/short evidence and mark the U1 claim done so U2 can take the intent mutex next.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-15 16:27:03 +00:00

4.6 KiB
Raw Blame History

多意图 HITL U1 契约冻结 测试报告

一、 测试背景 (Background)

多意图识别目前最多拆两段且写意图直接丢弃;确认只是 coordinator 文本提示。方案已复核为「持久计划深模块」,U1 必须先冻结边界、事件、状态机和 BatchActionPolicy,避免后续单元向 intent / coordinator 堆叠职责。

二、 测试目标 (Test Objectives)

  • app/intentflow 进入 import allowlist;三张计划表 owner 仅为 app/intentflow
  • 三条 intent.plan.* 事实事件 YAML ↔ StaticContracts 对等,payload 不含 prompt/slots/权限
  • 默认 MULTI_INTENT_PLAN_TIER=legacy;未知 policy key fail closed
  • ActionRegistry 不出现 batch/tier/adapter 字段
  • intent -> maturity 与全仓 short 测试无回归
  • 无运行时路由变更,因此不做真实 PI / 浏览器验收

三、 测试方案与环境 (Test Plan & Environment)

项 值
OS Linux 7.0.0-31-generic
Go go1.27.1 linux/amd64
分支 feature/multi-intent-u1-contracts(从本地 dev@9874237 检出)
Schema 43(本单元不迁移)
容器 不 rebuild
项目 143 只读
证据 .doc/test-reports/assets/2026-09-15-multi-intent-u1-contracts/

测试层级:archtest / events parity / intentflow 单测 / go test -short ./...。无 PG 集成、无真实 PI。

四、 预期结果 (Expected Results)

用例 判定
YAML ↔ StaticContracts 三条 intent.plan.* 生产者含 app/intentflow+events,消费者 projection+notify
未知 action key Lookup 失败;构造期缺行/多行失败
task.run 批量必须确认,OpenFromTier=confirm
regulation.query 不要求批量确认,OpenFromTier=auto_read
默认 tier legacy;MULTI_INTENT_ENABLED=true 不升档
ActionSpec 无 batch/tier/adapter 字段
arch-check block production gate passed
全仓 short PASS

五、 实际测试结果与判定 (Actual Results & Evaluation)

5.1 事件 parity 与安全 payload

  • 测试输入 (Input):go test -count=1 ./internal/events -run 'RegistryParity|IntentPlan'
  • 实际输出 (Actual Output):
ok  	chat-agent-system/internal/events	0.004s

(完整包输出见 unit.txt)

  • 评价判定 (Evaluation / Verdict):PASS。TestRegistryParityWithYAML、TestIntentPlanContractsOmitSensitivePayload 绿。
  • 性能与耗时 (Duration & Latency):约 5ms

5.2 archtest / arch-check

  • 测试输入:./scripts/arch-check.sh --mode block;go test -count=1 ./internal/archtest
  • 实际输出:
arch-check mode=block
ok  	chat-agent-system/internal/archtest	0.173s
ok  	chat-agent-system/internal/archtest	0.154s
arch-check block: production gate passed
  • 评价判定:PASS。intent.plan.* 字面量可被扫描;events 已登记为生产者,registry.go 不误报。
  • 性能与耗时:约 1.1s

5.3 intentflow 政策与 tier

  • 测试输入:go test -count=1 ./internal/app/intentflow
  • 实际输出:ok chat-agent-system/internal/app/intentflow 0.002s
  • 评价判定:PASS。未知 key fail closed;task.run 批量确认;查询不要求确认;ActionSpec 无 HITL 字段;默认 legacy。
  • 性能与耗时:约 2ms

5.4 全仓 short 回归

  • 测试输入:unset TEST_DATABASE_URL; go test -short -count=1 ./...;go vet ./...;git diff --check
  • 实际输出:见 short.txt。internal/server 9.920s;全包 ok。go vet 无输出。git diff --check 无空白错误。
  • 评价判定:PASS。单意图路径无运行时改动,internal/intent / internal/coordinator / internal/chat 均绿。
  • 性能与耗时:约 12s

六、 自动化测试套件汇总 (Test Suite Execution)

命令 结果
go vet ./... PASS
go test -short -count=1 ./internal/app/intentflow ./internal/events ./internal/archtest ./internal/intent PASS
go test -short -count=1 ./... PASS
./scripts/arch-check.sh --mode block PASS

通过率 100%。未跑 PG / 真实 PI(本单元无副作用路径)。

七、 测试结论与后续优化建议 (Conclusion & Next Steps)

U1 达到合入标准:契约冻结完成,默认 legacy,确认前零副作用保持不变。

后续:U2 在独立分支 feature/multi-intent-u2-segmenter 做规则分段 shadow;不得把 HITL/tier 回灌 ActionRegistry。

CSRF:现有 Bearer / X-Session-Token + CORS allowlist 对 U5 足够,不是 blocker。nonce 不替代认证。