简介:扩展大模型外部能力有两条主流路线:以工具协议为代表的“启动时全量注入”,和以技能机制为代表的“按需加载提示词”。本文从提示词组织方式、上下文占用、调用链路、成本结构、治理运维等维度系统对比两者异同,给出典型场景的选型建议与迁移注意事项,帮助你看清技能机制的本质并做出合适的技术决策。
大模型应用要真正“干活”,依赖两样东西:提示词与工具。提示词驱动模型的推理与决策,工具扩展模型的执行边界。随着应用复杂度上升,接入的外部系统、命令、流程知识越来越多,一个架构级问题随之浮现:如何把这些能力高效地送进模型的上下文?
业界目前存在两种典型思路,也是本文的对比对象:
先给出本文的核心结论:技能机制的本质,就是按需加载的提示词。 下文将围绕这一本质,展开两条路线的系统对比。
无论采用哪种方案,最终都要落到同一个载体上——发给模型的提示词。一次典型的多轮请求包含四个部分:
由此可以得出一个重要推论:用户输入一次,实际发送给模型的内容远多于敲下的文字;并且上下文中的每个部分,都会在之后的每一轮请求中反复携带、反复计算。这是理解后文成本对比的前提。
这一类方案由“工具服务端+应用客户端”组成。应用启动时连接工具服务端,拉取一批接口描述,转换成工具声明,与系统提示词一起随每次请求发送。模型看到完整清单后,可在生成响应时决定调用哪个接口,实际执行由应用或服务端完成,结果再回传给模型。
它的优势是能力发现自动化、接入方式标准化、可在服务端集中治理;代价是接口描述相当冗长,且无论本轮任务是否用到,每一次请求都要全量携带,消耗上下文也消耗成本。
每个技能分两层组织:
当用户的提示词让模型判断某个技能可能有用时,模型会在响应中请求装载该技能,应用读取完整内容注入后续请求,模型再据此生成具体动作。一个简化的交互时序如下:
用户提示词:帮我看看289号合并请求模型响应:这属于代码托管平台场景的操作,需要装载"代码托管平台操作"技能应用动作:读取该技能完整内容,注入下一轮请求模型响应:技能说明中给出查看合并请求的命令模板,代入编号289,发起工具调用应用动作:执行工具,将结果回传模型响应:向用户总结该合并请求的内容与状态
两条路线并非对立关系,先看它们的共同基础:
方案A把所有工具的接口结构(名称、参数、格式约束)平铺进上下文;方案B只放一个“技能索引”,每项一句描述。用伪代码示意两者的上下文差异:
【方案A:工具声明区】· 工具1:命令执行工具(参数、返回格式、约束说明……数十行)· 工具2:文件读取工具(参数、返回格式、约束说明……数十行)· 工具N:来自外部服务端的全部接口,全量展开【方案B:技能索引区】· 代码托管平台操作——查看合并请求、检索提交记录(约1行)· 数据报表生成——按模板产出统计报表(约1行)· ……共N项,每项仅一行,全文按需装载
前者信息完整但冗长,后者精简但需要“二次装载”这一步。
简言之:方案A是“每轮都要付的钱”,方案B是“用到才付的钱,外加用之前多等一跳”。
方案A的工具清单在启动时确定,模型看到的是确定性的完整列表,“有什么能力”不依赖模型判断。方案B是否装载、何时装载依赖模型对描述的理解:描述写得含糊,可能出现漏判(该装没装)或误判(装错技能),需要设计兜底机制,例如允许用户显式指定技能、装载失败后自动重试、对描述措辞持续调优。
方案A需要维护工具服务端的部署、注册、鉴权、版本升级与网络连通性,服务端故障会影响所有依赖它的应用,适合有专职团队的场景。方案B的技能通常是静态文件或文档,分发与版本管理门槛较低;但要维护“描述索引与技能内容的一致性”——技能更新后索引未同步,就会出现模型按旧描述找新内容的错位。
方案A可在服务端做统一身份认证、权限控制与调用审计,适合企业内部集中治理。方案B装载进上下文的技能内容本质是提示词,来源不可信时存在指令注入风险,授权与审计需要落在应用层实现,治理责任更靠近使用方。
| 对比维度 | 方案A:工具协议全量注入 | 方案B:技能式按需加载 |
|---|---|---|
| 本质 | 动态拉取接口描述并全量注入上下文 | 提示词的索引化与懒加载 |
| 常驻上下文占用 | 随工具数量线性增长 | 仅技能简短描述,近似恒定 |
| 调用链路 | 模型直接发起工具调用 | 需先请求装载,多一轮交互 |
| 能力发现 | 启动时自动拉取,清单确定 | 依赖模型理解描述后主动判断 |
| Token成本模型 | 与工具数×会话轮次相关 | 与实际装载的技能数相关 |
| 动态更新 | 服务端可实时更新 | 需同步维护描述索引 |
| 治理与审计 | 可在服务端统一实现 | 需在应用层实现内容审查 |
| 运维复杂度 | 需部署维护工具服务端 | 技能文件管理,门槛较低 |
| 典型风险 | 上下文膨胀、成本失控 | 装载误判/漏判、注入风险 |
技能机制的本质,是把提示词从“一次性全量注入”改造为“索引常驻+全文懒加载”:描述层永远在场,内容层按需进场。它与工具协议式全量注入并非替代关系,而是上下文预算与能力调用分布在不同形态下的两种工程折中:前者为确定性买单,后者为灵活性省账。选型时只需回答两个问题——你的能力清单有多大?这些能力的调用是均匀的还是稀疏的? 想清楚这两点,方案的选择自然会浮出水面。