简介:本文围绕代码Agent中“终端执行类子任务”的模型选型展开,对比前沿通用大模型与专用小模型作为执行子Agent的差异。读者将了解两类方案在成本、成功率、延迟、运维与适用边界上的取舍,并掌握如何按任务类型分层选型、平滑迁移与风险控制。
在代码Agent的典型工作流中,任务往往被拆成两类截然不同的环节:
过去,很多实现会用同一个前沿通用大模型(以下简称“前沿LLM”)包办所有环节。这样做的直接后果是:执行环节消耗了大量高价值Token,而这类任务本身往往并不需要顶级的复杂推理能力——它更需要的是稳定的指令遵循、对终端输出的准确解析、对错误的快速归纳,以及对结构化格式的可靠输出。
因此,一个自然的工程问题出现了:能否用专用小模型(以下简称“专用SLM”)来承担执行子Agent角色,从而在不降低整体解题成功率的前提下,降低主Agent的Token开销?
本文对比的对象正是这两类方案:
需要说明的是,本文讨论的是架构范式与选型逻辑,不针对任何具体厂商或产品系列。
由一个能力全面的通用大模型同时负责推理与执行。其优势是“一个模型打通全流程”,无需额外的模型调度与角色分工;缺点是执行环节的边际成本较高,且在长会话、多轮工具调用场景中Token累积明显。
将执行环节独立出来,交给经过专项训练的小参数模型。主Agent只负责高层规划与决策,执行子Agent负责:
这种“主从分工”本质上是一种能力分层:把昂贵推理留给规划,把高频、模式化的执行交给低成本模型。
尽管两类方案在成本与实现上差异明显,它们在目标层面高度一致:
换言之,两者不是“能做什么”的差异,而是“由谁来做、以什么代价做”的差异。
职责分离带来的直接好处是:执行子Agent的上下文可以独立裁剪,不必把全部规划历史带入执行环节,从而减少无效Token。
这意味着方案B更适合任务模式相对固定的执行场景。
在公开研究中,这类分层方案在保持解题成功率的前提下,可将主Agent的Token使用量降低约三成,这正是其核心工程价值。
小参数模型通常在单位推理延迟上更具优势,尤其在需要频繁、短小的执行调用时,响应更轻快;而前沿LLM在单次复杂判断上更强,但单次调用开销更高。实际表现取决于部署方式(本地推理还是托管推理)与批处理策略。
两类方案都需要关注:命令白名单、沙箱隔离、权限最小化、输出审计。方案B由于执行模型能力有限,反而更容易通过受限动作空间来约束行为;但同时也需要防止其在边界情况下产生误判。
| 对比维度 | 方案A:前沿LLM执行 | 方案B:专用SLM执行 |
|---|---|---|
| 角色分工 | 单模型统一承担 | 主Agent规划 + 执行子Agent |
| 推理能力 | 强,泛化好 | 集中在执行类任务 |
| Token成本 | 高 | 执行环节显著降低 |
| 延迟 | 单次较高 | 通常更轻量 |
| 运维复杂度 | 低 | 中,需要路由与回退 |
| 扩展性 | 受限于单模型 | 可独立替换执行层 |
| 适用任务 | 复杂、未知场景 | 模式化、高频执行 |
| 主要风险 | 成本累积 | 泛化不足、边界误判 |
示意性路由伪代码:
if task.type == "planning":result = frontier_model(context)else if task.type == "execution" and confidence > threshold:result = small_model(context)else:result = frontier_model(context) # 回退
前沿LLM与专用SLM在执行子任务上的对比,本质是通用能力与专用效率之间的权衡。方案A胜在泛化与简单,方案B胜在成本与可扩展。对于大多数代码Agent而言,更务实的路径是:规划用强模型,执行用专用小模型,并保留回退机制。这样既能守住解题成功率,又能把Token花在真正需要推理的地方。