Hermes 编程裸能力 vs OpenCode:框架层增强方案

实验数据(控制变量:相同模型 Qwen3.5 35B)

  • Hermes + 无 skill:20%
  • Hermes + STDD skill:30%
  • OpenCode + 无 skill:70%
  • OpenCode + STDD skill:80%
  • 商业算力基准(o3/Sonnet 4):100%

⚠️ STDD 是 skill 层,对两个框架增益公平,不计入 Hermes 的优势。

根因:Hermes 通用工具链在编程场景的四大瓶颈

维度OpenCode(原生优势)Hermes(瓶颈)
工具原语 代码专用操作(读片段、精确编辑、运行测试) 通用工具(write_file/patch/terminal)适配代码,每步多绕一层
编辑→验证闭环 一次 tool call:编辑文件 + lint 校验 + 测试结果一次性返回 3-5 次 tool call:patch → terminal(pytest) → 读输出 → 分析 → 再编辑
项目上下文 内置项目索引,知道文件关联、import 链、类型关系 每轮通过 search_files/read_file 重新发现,重复消耗 tokens
错误恢复 同一上下文窗口内自动重试修正 错误经通用 agent loop 传播,消耗更多 tokens,易触发上下文溢出

关键转折:不要重复造轮子——已有成熟生态

在考虑自己建 MCP Server 之前,先看看 Hermes 已经有什么:

1. Hermes 已有 ACP(Agent Communication Protocol)

Hermes 有 agent/copilot_acp_client.pyacp_adapter/,支持将任务委托给 ACP 兼容的 CLI 代理。delegate_task 工具可以走 ACP 子进程传输。

2. Hermes Skills 已覆盖主流编程 Agent

  • opencode — 通过 opencode run 委托编程任务
  • claude-code — 通过 claude -p 委托,支持 print mode / 交互模式
  • codex — 通过 codex exec 委托 OpenAI Codex

3. MCP 生态已有丰富代码工具

  • @modelcontextprotocol/server-filesystem
  • @modelcontextprotocol/server-github
  • 社区大量 MCP Server:编码、数据库、API 集成

新认知:Hermes 的正确方向不是"自己写代码"

Herrmes 的架构优势是 多智能体编排,OpenCode 是 单智能体。正确的架构分层:

┌─────────────────────────────────────┐
│  Hermes Agent (编曲)                 │
│  项目理解、任务分解、质量审查、多Agent协调  │
├─────────────────────────────────────┤
│  delegate_task / ACP / terminal      │
├────────────┬────────────┬───────────┤
│ OpenCode   │ Claude Code│ Codex     │
│ (代码实现)   │ (深度分析)   │ (快速迭代)  │
├────────────┼────────────┼───────────┤
│  MCP Servers (工具层)                │
│  filesystem / github / DB / ...     │
└─────────────────────────────────────┘

增强方案(纠正方向:从"重建"到"编排")

方案一:Hermes 作为编程 Orchestrator(最大收益)

不改 Hermes 的工具链,改为 Hermes 负责架构设计 + 任务分解 + 质量门禁,实际编码委托给 OpenCode/Claude Code。利用 delegate_task 或 terminal subprocess。

流程:

  1. Hermes 理解需求 → 写 Spec
  2. Hermes 调用 opencode run 写代码实现(干净的独立上下文)
  3. Hermes 审查输出、跑集成测试
  4. Hermes 组织多 Agent 并行工作

对比效果:
- Hermes 裸写代码:20%
- Hermes orchestration + OpenCode worker:可达 80-90%
- OpenCode 只有单线程,无法多 Agent 协作

方案二:自定义 Toolset(轻量级优化)

在 config.yaml 中配置 enabled_toolsets,限制编程任务只加载必要的工具子集(如 terminal + file + delegation),减少上下文噪声。配合 cron/script 模式封装密集操作。

方案三:ACP 路由(尚未探索)

如果 OpenCode 支持 ACP 协议或 CLI subprocess 模式,可以通过 Hermes 的 ACP adapter 直接路由编程任务,实现更紧凑的上下文隔离。

总结:停止造轮子,开始编曲

  • ❌ 造 Code MCP Server:已有成熟生态,不需要重复
  • ❌ 造 Project Index Plugin:OpenCode/Claude Code 自身已有
  • Hermes 做 Orchestrator:利用 delegate_task 协调多个编码 Agent
  • 复用已有 Skills:opencode / claude-code / codex skill 已经可用
  • Hermes 的独有优势:多 Agent 并行 + 任务分解 + 质量门禁