简介:Token、Skill、RAG、MCP、SDD、Harness并非六个并列方案,而是同一Agent系统从“能回答”走向“能交付”的六层约束。本文逐层对比它们的职责边界、工程属性、失效信号与成本结构,并给出症状定位表、场景化投入策略与迁移注意事项,帮你判断当前系统最该补哪一层、如何避免重复建设。
Agent工程中最常见的误区,是把效果不好直接归结为“模型不够大、不够新”,于是不断更换模型。但在真实生产环境中,决定一个Agent能否稳定交付的,往往不是模型本身,而是围绕模型搭起来的一条工程链路。这条链路上有六个关键约束层:Token、Skill、RAG、MCP、SDD、Harness。
这六个词经常被并列讨论,甚至被混为一谈——比如把RAG当成Agent的全部、把Skill当成工具接入的一种、把Harness等同于某个具体框架。这种混淆会直接导致建设顺序错误与重复投入:该补Token预算管理的时候去更换检索引擎,该固化Skill的时候去拼命扩上下文窗口。
因此,本文对比的不是六个互斥的“方案A与方案B”,而是同一系统里六个不同位置、不同职责的层。搞清楚它们的边界与分工,比在某一层内部反复内卷更重要。
Token是模型读写信息的基本单位,上下文窗口决定了Agent单轮可感知的信息总量。工程上它绝不是“选个大窗口”就万事大吉:系统提示、对话历史、检索到的证据、工具返回值、中间推理步骤,都要竞争同一份预算。Token层的核心动作包括预算分配、截断与压缩策略、长程记忆外置、单轮成本核算。典型失效信号:答非所问、丢失早前约束、“证据明明在工具返回值里,但模型没看见”。
Skill是封装好的可复用任务流程,通常由提示模板、执行步骤、工具调用顺序与结果校验规则组合而成。它解决的问题是:同一类任务做过一次之后,第二次、第两百次是否还能保持同样的质量。Skill层把“每次靠模型临场发挥”变成“按既定规程执行”。典型失效信号:同类任务质量方差大、无法批量复制、换一个会话就各干各的。
RAG(检索增强生成)解决模型参数化知识不足、过时或私有缺失的问题:先从外部知识库检索证据,再基于证据生成答案。工程重心在切片策略、向量化、召回与重排、引用溯源。典型失效信号:幻觉、编造出处、用旧版本知识回答新问题。需要注意,RAG解决的是“知道什么”,并不解决“会做什么”。
MCP(模型上下文协议)代表一类标准化的模型—工具接入协议,作用类似模型与外部系统之间的“通用插座”:统一工具的发现、描述、调用与返回契约。它解决的问题是,N个Agent运行框架对接M个外部系统时,不必写N×M份胶水代码。工程重心在工具描述质量(模型能否“看懂”工具怎么用)、鉴权与调用安全。典型失效信号:模型不会用工具、误用参数、一个接口描述变更导致全部Agent行为异常。
SDD(规格驱动开发)把模糊需求先固化为结构化规格——目标、边界、验收标准——再让Agent按规格分解任务、执行并对照规格自检。它解决的是需求理解偏差与验收无据可依的问题。典型失效信号:交付物与预期不符、反复返工、任务范围不断蔓延。
Harness指包裹模型的执行框架与运行时:感知—规划—行动—观察的循环调度、重试与超时控制、沙箱执行、状态持久化与可观测性。它解决长任务可靠性与可复现性问题。典型失效信号:任务跑一半中断且无法续跑、同样的输入两次结果完全不同、出了问题无从排障。
while not task_complete:# SDD层:对照任务规格,明确本轮目标与验收标准goal, acceptance = spec.resolve(task)# Token层:为本轮分配上下文预算(系统提示/历史/证据/工具返回)context = token_budget.allocate(system, memory, evidence, tool_results)# RAG层:知识不足时检索外部证据if knowledge_needed(goal):evidence = retrieve(index, goal, top_k)# Skill层:命中已知技能则按模板执行,否则由模型自行规划if skill_registry.match(goal):steps = skill.load(goal).stepselse:steps = model.plan(context, goal)# MCP层:按标准协议发现并描述可调用工具tools = protocol.discover_and_describe(scope)# Harness层:统一调度执行,带沙箱、重试、超时与状态持久化result = harness.run(steps, tools,sandbox=True, retry=2, timeout=30,checkpoint=state_store)# 观察:结果写回历史,进入下一轮history.append(result)
按数据流向可排成一条链:SDD定义任务(该做什么)→ Token决定感知(能看见什么)→ RAG补充知识(依据是什么)→ Skill约束行为(按什么规矩做)→ MCP接入能力(能调用什么)→ Harness管理执行(怎么可靠跑完)。SDD偏需求侧,Token与RAG偏感知侧,Skill与MCP偏行动侧,Harness偏运行侧。职责不同决定了它们不可互相替代:RAG做得再好也不能让Agent会调接口,MCP接得再多也不能保证知识正确。
六层的“可确定性验证”程度不同:Token的截断策略与Harness的流程控制接近传统软件工程,可直接用单元测试验证;Skill模板与SDD规格是半结构化的,需通过评测集做统计性验证;RAG召回质量与模型输出是概率性的,只能靠指标持续监控。确定性越高的层,越应优先用传统工程手段加固。
同样一句“Agent答错了”,可能源自六层中任何一层的失效:Token没装下证据、RAG没召回证据、Skill缺少对应模板、MCP工具描述导致误用、SDD规格本身写错、Harness重试逻辑放大了错误。不区分层级混在一起排查,是Agent工程最常见的低效来源。
Token策略调整成本最低(改预算分配逻辑即可);Skill模板迭代成本中等;RAG更换检索方案较贵(需重建索引并做回归评测);MCP类协议本身为解耦而设计,替换成本中等;Harness更换框架成本最高——状态持久化格式、重试语义、可观测性口径全部重做,牵一发动全身。因此Harness的初始技术选型要最为谨慎。
Skill消费RAG的检索结果与MCP的工具描述;SDD的规格是Skill编排的输入;Token预算决定了RAG证据与MCP返回值最终能进入多少上下文;Harness调度以上所有层并为它们的失败兜底。理解这种消费关系,才能解释某些“优化传导不下去”的现象——常见案例是RAG召回质量很好,但Token预算不足,证据在压缩阶段被丢弃。
| 层 | 解决的问题 | 作用对象 | 典型工程动作 | 典型失效信号 | 成本重心 | 替换难度 |
|---|---|---|---|---|---|---|
| Token | 感知边界 | 上下文输入 | 预算分配、压缩、记忆外置 | 丢上下文、看不见证据 | 用量成本 | 低 |
| Skill | 行为一致性 | 重复任务 | 模板化、流程封装、结果校验 | 同类任务质量方差大 | 人力沉淀 | 中 |
| RAG | 知识供给 | 外部知识库 | 切片、检索、重排、溯源 | 幻觉、知识过时 | 库建设与维护 | 较高 |
| MCP | 工具接入 | 外部系统 | 协议适配、工具描述、鉴权 | 不会用或误用工具 | 一次性适配 | 中 |
| SDD | 需求对齐 | 任务规格 | 规格撰写、验收标准、自检 | 交付物与预期不符 | 前期人力 | 中 |
| Harness | 执行可靠性 | 运行时循环 | 循环调度、重试、沙箱、可观测 | 长任务中断、不可复现 | 持续运维 | 高 |
症状定位速查表:
| 观察到的症状 | 优先排查层 | 次级排查 |
|---|---|---|
| 答非所问、丢早前约束 | Token | Skill(模板过长挤占预算) |
| 幻觉、出处错误 | RAG | Token(证据被压缩丢弃) |
| 同类任务每次结果差异大 | Skill | Harness(缺少确定性重试) |
| 工具调用参数错、不会调用 | MCP | Token(工具描述被截断) |
| 需求理解偏差、返工频繁 | SDD | Skill(缺少验收校验环节) |
| 长任务失败、结果不可复现 | Harness | Token(上下文膨胀导致溢出) |
核心链路是“提问→检索→作答”,应优先投入RAG(知识质量与召回)与Token(证据与历史的预算分配)。Skill可轻量化为问答规约,MCP与SDD需求较小,Harness只需最小闭环。此类场景通常可借助云厂商提供的模型服务、向量数据库等通用能力类目快速搭建,团队重点人力应放在知识治理上。
任务是高度重复的流程(审批、报表、通知)。优先投入Skill(流程固化)与MCP(系统对接);RAG仅用于规章制度查询;SDD意义有限,因为流程本身即规格;Harness需要基本的失败重试与人工升级通道。
交付物复杂、验收标准明确。优先投入SDD(规格与验收)与Harness(沙箱执行、测试闭环、可复现运行),Skill用于沉淀编码规范与常见修复套路,Token需要精细管理(代码类上下文体量较大)。这类场景对Harness的要求最高。
Agent作为跨系统操作入口。优先投入MCP(接入标准化与鉴权安全)与Harness(长事务、失败补偿);Skill沉淀跨系统操作规程;RAG与SDD视业务复杂度决定。
任务步骤多、中间结论多。优先投入Token管理(长程记忆外置与摘要压缩)与Harness(断点续跑、状态持久化);RAG作为证据来源贯穿全程。
回到开头的判断:Token、Skill、RAG、MCP、SDD、Harness不是六个可以任选其一的竞争方案,而是同一条交付链上六个不同位置的约束。它们的区别不在“哪个更强”,而在“各管哪一段”:Token管感知、RAG管知识、Skill管行为、MCP管能力、SDD管需求、Harness管执行。正确的选型姿势不是横向比较优劣,而是纵向定位短板——按症状反查层级,按场景分配投入,按成本结构决定自建还是采用托管能力。把这条链路搭稳,往往比换一个更大的模型,更能决定一个Agent能否真正从“能回答”走向“能交付”。