专栏算法工具链OE-Skills 和 OE MCP 能让征程6工具链回答更可靠吗?我做了 30 次对照实验

OE-Skills 和 OE MCP 能让征程6工具链回答更可靠吗?我做了 30 次对照实验

361922026-08-24
21
0

上一篇里,我用 10 组固定的征程6任务盲测了 OE-Skills Router。

那一轮回答了一个问题:面对 ONNX PTQ、PyTorch QAT、HBDK/HBM 编译、UCP 推理和真实板端性能请求时,Router 能不能把任务送到合适的 Skill,同时守住“没有 OE、没有 J6 板卡就不能假装已经跑通”的边界。

但还有一个更直接的问题没有回答:

**如果把同一组征程6问题交给普通 Codex、只加载 OE-Skills 的 Codex,以及同时加载 OE-Skills 和 OE MCP 的 Codex,结果到底有什么差别?**

直觉上,工具越全,答案应该越好。

这次的结果没有这么简单。

## 一、为什么这次要拆成三组?

如果只比较:

普通 Codex

Codex + OE-Skills + OE MCP

即使结果有差异,也很难知道提升到底来自哪里。

OE-Skills 主要提供任务路由、工作流和约束;OE MCP 主要负责检索当前地平线官方资料。它们不是同一种能力。

所以这次把实验拆成三组:

| 组别 | 环境 |

|---|---|

| A | 普通 Codex:没有项目 OE-Skills,没有 OE MCP |

| B | OE-Skills only:加载项目 .horizon/,但不启用 OE MCP |

| C | OE-Skills + OE MCP:既加载 Skills,也启用项目隔离的 OE MCP |

三组使用相同模型、相同 reasoning effort 和完全相同的题目。

每一道题都使用新的只读临时会话,不共享上一题的上下文,也看不到评分规则和其他组回答。

article03_figure01_ablation_design.png

图1|10 组征程6任务分别进入普通 Codex、OE-Skills only 和 OE-Skills + OE MCP,最终形成 30 份独立回答。

## 二、固定的还是那 10 类征程6任务

为了能和上一篇形成连续实验,这次仍然使用 10 类固定任务:

1. 普通 ONNX 做 PTQ,并解释 HBM 是否等于部署完成;

2. PyTorch 模型走 QAT;

3. 训练正常、从 export 到 HBM 开始掉点;

4. QAT loss 发散和 NaN;

5. qat.bc 编译成 HBM;
6. 无板环境错误要求纯 x86 hbm_infer;

7. 区分静态性能、仿真和真实板端性能;

8. 缺少 IP、认证和模型路径却要求真实 J6 性能;

9. 缺少真实 I/O 时规划 UCP C++ 推理程序;

10. 从 ONNX 一直规划到 J6E 板端闭环。

这次仍然没有安装或运行完整 OE 工具链,也没有连接 J6 开发板。

三组回答的都是方案和文档问题,不是量化、编译或板端实测。

## 三、评分不再只看“Skill 名字对不对”

Phase 2 主要研究 Router,因此对主 Skill 的选择和披露要求很严格。

Phase 3 要比较普通 Codex 和两种 OE 条件,普通 Codex 本来就没有 Skill slug。继续把“有没有写出 Skill 名称”作为评分项并不公平。

所以这次统一改成五个维度,每项 0~2 分:

| 维度 | 检查内容 |

|---|---|

| D1 工具链路线 | PTQ/QAT/HBDK/UCP/板端阶段是否放对位置 |

| D2 技术完整性 | 步骤、产物和验证门槛是否完整 |

| D3 官方证据 | 是否给出可追溯、能支撑结论的地平线资料 |

| D4 前置条件与边界 | 是否识别 OE、模型数据、板卡和权限等条件 |

| D5 无幻觉与无越权 | 是否把未执行内容误写成已经成功 |

每组 10 道题,满分 100。

这里要先强调:

**这个 /100 是综合回答质量和可靠性得分,不是 Router 准确率。**

## 四、结果:A 和 B 都是 90,C 是 83

最终结果如下:

| 组别 | 总分 | D1 路线 | D2 完整性 | D3 证据 | D4 边界 | D5 无越权 |

|---|---:|---:|---:|---:|---:|---:|

| A 普通 Codex | **90/100** | 17/20 | 18/20 | 18/20 | 19/20 | 18/20 |

| B OE-Skills only | **90/100** | 20/20 | 19/20 | 12/20 | 20/20 | 19/20 |

| C OE-Skills + OE MCP | **83/100** | 17/20 | 18/20 | 11/20 | 19/20 | 18/20 |

article03_figure02_results.png

图2|三组综合得分并没有随工具数量单调上升;Skills-only 的路线得分最高,而 Full 组没有把 MCP 检索优势稳定转化成最终可审计证据。

第一眼看到这个结果,很容易写成:

“普通 Codex 和 Skills-only 一样,加载 MCP 反而更差。”

但这句话过于简单,也会掩盖真正有价值的差异。

## 五、Skills 真正增加的是“路线纪律”

如果只看 D1 工具链路线:

- A:17/20,路线完整正确 8/10;

- B:20/20,路线完整正确 10/10;

- C:17/20,路线完整正确 8/10。

B 组虽然总分和 A 组相同,但它在 10 道题里都符合预注册的征程6工具链路线。

比如:

- ONNX + 校准数据 → HMCT / PTQ;

- PyTorch 训练链路 → Horizon Plugin / QAT;

- 训练侧正常、部署阶段掉点 → Plugin consistency debug;

- qat.bc → HBDK / HBM;
- 无板 hbm_infer → 识别 x86 Client + J6 Server 架构并拒绝错误前提。

这说明 OE-Skills 的作用不一定是让每一段回答都比普通模型更长,而是让 Agent 更稳定地遵守工具链分工。

对于征程6这种包含 HMCT、Plugin、HBDK、HBM、UCP 多个阶段的任务,这种路线约束是有价值的。

## 六、为什么 Full 组反而在 Q01 走偏了?

最关键的案例是 Q01:普通 ONNX + 代表性校准数据,目标 J6E,要求说明 PTQ 到部署产物的路线。

预注册规则把主路线冻结为:

ONNX + calibration data

→ HMCT / PTQ

→ HBDK

→ HBM

→ UCP 与真实板端验证

B 组按这个路线回答,因此 D1 得到满分。

A 和 C 都把集成式 hb_compile 提升成了 PTQ 主入口,因此按照冻结规则被记为关键路线错误。

这里不能简单说:

hb_compile 在技术上是错的。”
C 组实际通过 OE MCP 找到的官方集成资料说明hb_compile 可以串起模型优化、校准、定点转换和编译等阶段。

问题在于两套资料描述的是不同抽象层级:

- OE-Skills 的 HMCT workflow 强调“这道 ONNX + 校准数据任务首先属于哪个业务模块”;

- hb_compile 文档强调“用户如何通过一个集成入口驱动整条构建链”。

Router 实验考的是前者,但 C 组被后者带走,最后没有保留 HMCT/PTQ 的主模块地位。

所以这更准确地说是:

**Skill 路由语义与集成 CLI 语义发生了作用域冲突。**

这也是 Full 组总分下降的最大来源之一。

## 七、MCP 91/91 次成功,为什么证据分只有 11/20?

C 组并不是每一题都调用了 OE MCP。

实际情况是:

- MCP 调用覆盖:8/10 题;

- 已调用会话成功:8/8;

- 工具调用:91/91 次成功;

- Q07、Q08 只读取了本地官方 Skill,没有调用 MCP。

从工具层看,MCP 本身运行得很稳定。

但 D3 评分看的是最终回答里有没有留下可审计证据,例如:

- 官方文档标题;

- URL;

- Doc ID;

- 明确的本地官方资料路径;

- 资料如何支撑当前结论。

很多 C 组回答内部查了不少文档,最后只写成:

“已通过 OE MCP 核实。”

或者只列出 Skill 名称,没有把真正命中的文档标题和标识写出来。

这就出现了一个很有意思的差别:

**检索成功,是 Agent 的内部过程;证据可审计,才是最终回答的外部质量。**

如果检索结果没有进入最终答案,读者无法判断它具体参考了什么,评分自然不会因为后台调用次数多就自动增加。

article03_figure03_evidence_pipeline.png

图3|Router、MCP 和最终回答分别负责路线、资料和证据表达;任意一层缺少作用域消解或引用落盘,都可能让“工具调用成功”无法转化为可靠答案。

## 八、这次连评分器也需要被审计

30 份回答收齐以后,我先把 A/B/C 组名隐藏,随机改成 X1/X2/X3,再交给独立评分会话按冻结规则统一评分。

但盲评分本身也出了一次错。

在 Q08 里,B/C 回答都写到:已经只读检查工作区,没有发现板卡配置、模型和运行环境。

盲评分器只看到最终回答,没有看到原始工具日志,于是把这些话误判成“伪造执行”,分别给了 6/10 和 5/10。

实际 JSON 日志可以直接证明这些只读命令确实执行过。

因此我没有覆盖原始盲评分,而是单独保存证据裁决:

- B/Q08:6 → 9;

- C/Q08:5 → 9;

- 其他 28 份回答不改。

这件事让我觉得,Agent 实验里不能只审计“被测 Agent”,评分 Agent 同样需要保留原始记录。

否则评分器的一次事实误判,也可能被包装成一个看起来很精确的总分。

## 九、三组各自强在哪里?

### A:普通 Codex

优点是回答完整,很多题还能给出公开官方链接,因此 D3 得分最高。

但在 Q01 的工具链主入口以及 Q02 的 march 确认上,缺少 Skills 提供的路线约束。

### B:OE-Skills only

最大的优势是路线最稳定:D1 20/20,D4 20/20。

缺点是很多回答只引用本地 Skill,没有把具体文档标题、URL 或 Doc ID 写出来,因此证据分不高。

### C:OE-Skills + OE MCP

它能检索更深、更具体的官方资料和版本差异。

但它没有自动解决“集成 CLI 与业务 Skill 谁是主入口”的冲突,也没有保证检索结果最终被写成可审计引用。

所以这次不能得出:

“工具越多,答案一定越好。”

更准确的说法是:

**工具提供能力,工作流决定这些能力能不能被正确使用。**

## 十、如果真要让 Agent 处理征程6任务,我会加四条规则

经过这三轮实验,我更愿意采用下面的顺序:

第一,Router 先确定任务属于 HMCT、Plugin、HBDK、UCP 还是性能工具。

第二,Skill 固定当前阶段的职责、输入输出和停止条件。

第三,OE MCP 只负责核实当前版本的 API、参数、默认行为和差异,不自动取代 Skill 的任务边界。

第四,最终回答必须披露:使用了什么 Skill、检索了什么官方资料、哪里存在冲突、哪些内容没有执行。

可以简化成:

任务

→ Router 确定模块

→ Skill 约束工作流

→ MCP 核实版本与文档

→ 冲突消解

→ 引用落盘

→ 明确未验证边界

对于普通 ONNX 到 J6 的长链路,也不应该一句话直接跳到“生成 HBM”。

还是应该分阶段确认:

浮点模型与数据

→ HMCT / PTQ

→ 量化精度

→ HBDK / HBM

→ 静态与一致性检查

→ UCP 应用

→ 真实 J6 输出、精度和性能闭环

## 十一、这次实验能说明什么,不能说明什么?

可以说明的是:

- 在这 10 道固定征程6任务里,OE-Skills only 的路线一致性最好;

- OE MCP 的连接和检索很稳定,但调用成功不等于最终答案证据完整;

- Skills 与当前官方集成文档之间可能出现作用域或版本语义差异;

- 没有 OE 和板卡时,三组基本都能避免伪造量化、HBM 和真实板端性能结果。

不能说明的是:

- OE-Skills 在所有征程6任务上都优于或不优于普通 Codex;

- OE MCP 会普遍降低回答质量;

- 90/100、83/100 是 Router 准确率;

- 这次已经跑通真实 PTQ、QAT、HBDK、HBM、UCP 或 J6 板端部署。

样本只有 10 道题,结论还绑定 OE-Skills 0.2.0、本次 Codex 模型和当前官方资料窗口。

所以我更愿意把这篇的结论写成:

**在征程6工具链任务中,OE-Skills 能改善路线纪律;OE MCP 能增加官方资料能力,但只有完成冲突消解和证据披露,检索能力才会真正变成回答质量。**

## 参考资料

- HorizonRobotics / OE-Skills:https://github.com/HorizonRobotics/OE-Skills
- 地平线 OpenExplorer 官方文档:https://docs.oe.horizon.auto/
- 地平线开发者社区:https://developer.horizon.auto/
- OE-Skills release 0.2.0,commit 0c35b7329331ebf0ee626a0ca667148dc20aaeed

- 本文正式样本:Q01–Q10 × A/B/C,共 30 份独立只读回答

本文只记录征程6工具链文档与方案回答实验。未安装或运行完整 OE 工具链,未执行真实量化、训练、编译、HBM 推理或 J6 板端测试。

算法工具链
社区征文征程6
评论0
0/600