实验说明 / 2026-07-10

Blade COA:BA + qwen + COA 严格大模型链路复核记录

本说明记录从“0.8 秒无效结果”到最终真实通过 5 分钟验收的全过程,包括失败原因、修复策略、最终验证证据和代码改动。

最终结论:通过 BA 会话:2026-0710-0053-pblbncqt 模型:qwen3.6-122b-int4 COA_REQUIRE_LLM=1

最终 auto-run

AUTO-20260710005412-27F209

BA 工具耗时

162s

COA 服务端耗时

156.5s

完成范围

F-1 到 F-7

一、为什么要重做实验

0.8 秒结果无效

用户质疑“0.8 秒不可能调用大模型”是正确的。日志复核后确认,先前结果存在连接拒绝、跳过或回退路径,不能证明 BA、qwen 和 COA 严格大模型链路真实运行。

验收标准重新明确

必须由 BA 发起,BA 使用 qwen,COA 使用 COA_REQUIRE_LLM=1,不能 fallback 或兜底,F-1 到 F-7 必须在 5 分钟内真实完成。

二、实验过程时间线

阶段 时间 / ID 结果 关键发现
无效快跑 0.8 秒记录 作废 没有真实完成大模型链路,不能用于验收。
首次真实 BA + qwen 2026-0710-0025-lq4c7yrg
AUTO-20260710002658-DA9338
未通过 BA 和 qwen 确实被调用,但超过 5 分钟;且发现 coa_candidate_builder 有评分失败后“兜底均分”的隐藏回退。
严格模式补强后重跑 2026-0710-0043-odubbx8l
AUTO-20260710004412-775B5F
未通过 COA 在 113 秒左右停在 F6,错误为 LLM 评分缺失或非法: step=s6 coa=A key=score_speed,说明严格模式已生效。
BA 工具环境排障 2026-0710-0049-vduygaz3
2026-0710-0052-djqpydlv
环境问题 发现 BA 的 Bash 工具运行在 sandbox 容器内,不能用默认 host.docker.internal:3200127.0.0.1:3201 访问 COA。
最终有效验收 2026-0710-0053-pblbncqt
AUTO-20260710005412-27F209
通过 BA 使用 sandbox 可达地址 http://[内网地址已隐藏]:3201,F-1 到 F-7 完成,BA 工具输出 RUN_DONE elapsed_sec=162

三、关键改进

  • qwen 输出稳定性:在 OpenAI-compatible 请求里对 qwen 默认加入 chat_template_kwargs.enable_thinking=false,减少思考内容干扰 JSON。
  • JSON 输出约束:统一追加紧凑 JSON 后缀,要求不要解释、不要 markdown、中文叙述字段只写短句。
  • 候选评分覆盖:为每个 COA option 增加 option_key,要求 LLM 原样逐项返回完整评分。
  • 严格校验:评分解析会检查所有 expected option 是否覆盖、分值是否为 0~1;失败只允许再发起一次 LLM 修正,不补默认分。
  • 禁止吞错:COA_REQUIRE_LLM=1 时,fires_plan_auto_service 不再吞掉 build_coa_candidates 的异常。
  • BA 网络修正:确认 BA 工具 sandbox 通过 Docker bridge 网关 [内网地址已隐藏]:3201 访问 COA 服务。

四、最终验证证据

BA 会话:2026-0710-0053-pblbncqt

BA 工具:会话历史显示只有一次 Bash 工具调用,exit_code=0

BA 模型:首轮 qwen 生成 Bash 工具调用,usage 为 prompt_tokens=4879completion_tokens=626

COA 状态:status=completedlast_step=f7_decisionlast_error_code=null

服务端耗时:2026-07-10T00:54:12.561Z2026-07-10T00:56:49.038Z

完成步骤:f1_receivef2_analyzef3_threat_intelf4_weaponeerf5_planf6_wargamef7_decision

无回退:COA 日志未出现 fallback 或“兜底”;一次 JSON parse retry 属于 LLM JSON 解析重试,不是使用兜底结果。

五、最终代码改动

backend/services/llm_client.py

新增环境布尔解析、qwen 默认关闭 thinking、紧凑 JSON 输出约束,降低 qwen 输出非 JSON 或超长叙述概率。

backend/services/coa_candidate_builder.py

新增 option_key、完整覆盖校验、0~1 分值校验和一次 LLM 重试;严格模式下缺项直接失败。

backend/services/fires_plan_auto_service.py

COA_REQUIRE_LLM=1 时不再忽略候选评分构建异常,避免 F-step 被误标成功。

相关提交

fdcf7c23 修复 COA 严格模型评分链路
9ebe593c 强化 COA 严格大模型路径
b2904bf3 收敛 P0 快速规划默认边界

六、仍需注意的边界