超越模型:LLM 调用方式的系统性思考
1. 两个背景:Harness Problem 与蜂群机制
要理解 LLM 调用方式的系统性问题,我们需要先回顾两个独立但相关的技术探索。
1.1 Harness Problem:Can Bölük 的发现
2026 年 2 月,工程师 Can Bölük 发布了一篇名为"The Harness Problem"的博客文章,揭示了一个令人震惊的事实:仅仅通过优化 LLM 的调用格式(edit tool),就能让 15 个不同 LLM 的编码能力提升 10 倍。
具体数据:
- Grok Code Fast 1:成功率从 6.7% 提升到 68.3%(10 倍提升)
- MiniMax:成功率翻倍
- Gemini:+8% 的提升
成本:零训练计算,仅约 $300 的 benchmark 费用
核心问题:现有的编辑工具(如 Codex 的 apply_patch、Claude Code 的 str_replace)都要求模型"说出"特定格式的内容——要么是特定的 diff 格式,要么是完美的字符复现。这导致模型"理解"了要做什么,但"说不出来",就像"责怪飞行员,其实是起落架的问题"。
解决方案:Can 提出了 Hashline 格式,给每行代码添加 2-3 字符的哈希标记(如 22:f1|return "world";),让模型通过引用哈希来编辑,而不是复现内容。
1.2 蜂群机制:多 Agent 协作的系统性框架
与此同时,在构建多 Agent 系统(Agent Swarm)的实践中,开发者们发现了另一组问题:单个 LLM 的能力可以通过提示工程优化,但当多个 Agent 协作时,系统会面临熵增的挑战。
熵增的表现:
行为发散:多个 Agent 走向不同方向
信息冗余:重复或冲突的信息传递
策略漂移:随着时间推移,方法不断变化
角色混乱:责任边界不清晰
系统性解决方案:通过三文件结构来约束和协调:
SKILL.md:定义每个 Agent 的能力边界
ROLE.md:明确角色职责(Planner/Critic/Doer)
PROTOCOL.md:规定协作协议(何时广播、何时私聊、何时交接)
多 Agent 系统不是简单的能力叠加,而是需要收敛系统来对抗熵增——包括投票机制、总结提炼、回滚快照、A/B 测试等。
2. 共同点:都关注"调用方式"
乍一看,Harness Problem 关注的是单个 LLM 的调用格式,而蜂群机制关注的是多个 LLM 的协作协议。但深入分析会发现,它们指向同一个被忽视的维度:LLM 的调用方式。
维度 Harness Problem 蜂群机制
关注点 单个 LLM 的调用格式 多个 LLM 的协作协议
核心问题 模型懂但"说不出" 多 Agent 熵增失控
解决方案 Hashline 格式优化 三文件结构(SKILL/ROLE/PROTOCOL)
单体调用方式决定能力上限 群体协作协议决定系统智能
无论是单体的调用格式,还是群体的协作协议,它们都属于"调用方式"这个更大的范畴——即LLM 如何接收输入、处理信息、输出结果、与其他 Agent 交互。
这引出了一个被行业长期忽视的事实:LLM 的能力不仅取决于模型本身(Layer 1),更取决于我们如何调用它(Layer 2 和 Layer 3)。
3. 引申:LLM 系统的三个层次
基于上述两个背景,我们可以构建一个系统性的框架,将 LLM 系统分为三个层次:
┌────────────────────────
│ Layer 3: 蜂群协作层(Swarm Layer)
│ - PROTOCOL.md: Agent 间如何协作
│ - 收敛系统: 投票、总结、回滚、A/B 测试
├────────────────────────
│ Layer 2: 单体调用层(Harness Layer)
│ - SKILL.md: 工具能力定义
│ - 调用格式: Hashline、函数调用、ReAct
├────────────────────────
│ Layer 1: 模型能力层(Model Layer)
│ - 基座模型(GPT-4、Claude、Gemini)
│ - 上下文窗口、推理能力、知识储备
└────────────────────────
3.1 Layer 1:模型能力层(基础但边际效益递减)
这是最直观的一层。GPT-4 vs Claude vs Gemini,更大的模型、更长的上下文、更好的推理能力。
现状:行业的大部分注意力都集中在这里。OpenAI、Anthropic、Google 每年投入数十亿美元训练更大的模型。
问题:边际效益正在递减。GPT-4 到 GPT-5 可能只有 20-30% 的提升,但成本是数亿美元。而 Harness Problem 显示,优化 Layer 2 可以有 10 倍提升,成本仅约 $300。
Layer 1 是基础,但不是当前最大的杠杆点。
3.2 Layer 2:单体调用层(最大的杠杆点)
这是 Harness Problem 揭示的关键层次。它是模型理解与模型能表达其理解之间的接口。
现有工具的问题:
- apply_patch:要求模型会"说"特定格式,其他模型失败率 50%+
- str_replace:要求模型背诵整段代码(包括空格),容易失败
- function_calling:虽然更结构化,但仍需模型遵循特定 schema
模型通常理解该做什么,但无法通过现有工具格式表达它。Can Bölük 的比喻很贴切:"你在责怪飞行员,其实是起落架的问题。"
优化方向:
让模型用引用(如 Hashline)而非复现
减少格式约束,增加验证机制
设计让模型能"说出"理解的接口
杠杆效应:Harness Problem 证明,优化 Layer 2 可以实现 10 倍提升,且零训练成本。
3.3 Layer 3:蜂群协作层(新的复杂度前沿)
这是多 Agent 系统(Swarm)面临的挑战。单个 Agent 的能力可以通过 Layer 2 优化,但当多个 Agent 协作时,系统会涌现新的复杂度。
核心问题:
- 何时"喊人"(handoff)?如何定义失败信号?
- 如何对抗熵增?如何收敛到一致?
- 如何编排任务?广播 vs 私聊 vs 直接调用?
系统性解决方案:
- SKILL.md:能力定义(能做什么)
- ROLE.md:身份定义(是谁,负责什么)
- PROTOCOL.md:协作定义(如何交互)
Layer 3 是目前最不成熟但潜力最大的领域。一个协调良好的 Agent Swarm 可以解决单个 Agent 无法解决的复杂问题,但一个协调不好的 Swarm 会因为熵增而失败。
4. 深度思考:三层之间的关系
4.1 Layer 2 放大 Layer 1
一个 GPT-4 配合优化的调用格式(Hashline),可以胜过 GPT-5 配合糟糕的调用格式(apply_patch 用于错误模型)。
这意味着:在投入数十亿美元训练更大的模型之前,我们应该先问:当前的调用格式是否让模型能充分表达其能力?
4.2 Layer 3 乘以 Layer 2
一个协调良好的 Swarm 配合优化的单体调用(Layer 2 + Layer 3),可以产生涌现智能,解决单个 Agent 无法解决的问题。
但这有前提:如果 Layer 2 有问题(模型无法表达),或者 Layer 3 有问题(协作协议混乱),Swarm 会失败。
4.3 优化的优先级
基于以上分析,构建 LLM 系统的优化优先级应该是:
先优化 Layer 2(调用格式)- 10 倍杠杆,低成本
再构建 Layer 3(协作协议)- 新 frontier,高潜力
最后考虑 Layer 1(更大模型)- 边际效益递减
5. 实践框架:如何应用三层模型
当你构建 LLM 系统时,问自己以下问题:
Layer 2 检查清单(单体调用)
[ ] 我的调用格式是否让模型能轻松表达其理解?
[ ] 我是否要求复现,而引用就足够了?(如 Hashline)
[ ] 我是否有自动验证机制(哈希、校验和)?
[ ] 错误消息是否可操作,能让模型学习调整?
Layer 3 检查清单(蜂群协作)
[ ] 我是否有明确的 ROLE 定义?(Planner/Critic/Doer)
[ ] Agent 间通信是否有 PROTOCOL?(广播/私聊/调用)
[ ] 何时定义"失败"并"喊人"(handoff)?
[ ] 我是否有收敛系统对抗熵增?(投票、总结、回滚)
[ ] 系统能否回滚失败的策略?
Layer 1 检查清单(模型能力)
[ ] 基座模型是否具备所需的推理能力?
[ ] 上下文窗口是否足够容纳任务?
[ ] 对于这个特定任务,不同模型是否会更好?
6. 未来方向:开放问题
基于三层模型,以下是一些值得探索的开放问题:
6.1 自适应协议(Adaptive Protocol)
PROTOCOL.md 能否基于任务绩效自我优化?Swarm 能否随时间学习更好的协调策略?
可能的方向,让 Critic Agent 专职评估 PROTOCOL 的有效性,并提出改进建议。
6.2 动态角色生成(Dynamic Role Generation)
不是固定角色(Planner/Critic/Doer),而是根据任务负载动态创建临时 Agent:
"为这个代码审查创建 SecurityReviewer-v1"
"为这个功能生成 TestGenerator-2024-02"
关键问题:如何定义临时角色的 SKILL、ROLE 和 PROTOCOL?
6.3 统一标准(Unified Standards)
我们能否拥有 Layer 2/3 的标准,类似于 API 标准?
- 标准调用格式(如 Hashline 或更好的方案)
- 标准角色定义(可复用的 ROLE.md 模板)
- 标准协议原语(广播、私聊、交接、投票)
如果行业标准化了调用方式,将释放出巨大的创新潜力——就像 HTTP 标准化释放了 Web 创新一样。
通过融合 Harness Problem 和蜂群机制两个视角,我们获得了一个系统性的框架:LLM 的能力不仅取决于模型本身(Layer 1),更取决于我们如何调用它(Layer 2)和协调它(Layer 3)。
Harness Problem 揭示了一个被忽视的事实:模型与执行之间的差距往往是接口问题,而非能力问题。
蜂群机制 揭示了另一个事实:个体能力与系统能力之间的差距是协调问题,而非简单叠加。
两者共同指向一个被行业长期低估的维度:调用方式(Invocation)。
在继续追逐更大的模型(Layer 1)之前,也许我们应该先问自己:
当前的调用格式是否让模型能充分表达?(Layer 2)
当前的协作协议是否让 Agent 能有效协调?(Layer 3)
正如 Can Bölük 所说:"你责怪飞行员,其实是起落架的问题。"
参考:
Harness Problem:
blog.can.ac