Anthropic 出手,大幅降低 MCP 的 Token 消耗

以前要实现一个 Agent,需要手动完成一个个 API 的接入和调试,现在有了 MCP,接入外部能力的工作简单了许多。

但 MCP 多了之后,模型上下文中塞入了大量的工具定义,导致模型既慢,又浪费 Token

直到看到了 Anthropic 的《Code execution with MCP: Building more efficient agents》,我才发现 MCP 的调用原来也是可以很高效的。

传统 MCP 的效率瓶颈

MCP 在规模化应用中有两个关键短板:

工具定义"占满"上下文

为了让智能体知道如何使用工具,MCP 方式会把所有工具的功能描述、参数要求等加载到模型的上下文中。

在大规模项目中,这些定义信息可能就会占用数十万 Token,不仅拖慢响应速度,还会大幅增加使用成本。

中间结果重复消耗资源

智能体完成复杂任务时,往往需要多次调用工具,并传递中间结果。

比如将云盘文档同步到业务系统,文档会在云盘 MCP 和业务系统 MCP 中多次传输,导致上下文超出限制,甚至任务中断。

解决方案:代码执行

代码执行的核心逻辑,是把 MCP 工具从 "直接调用的功能" 转变为 "可由代码调用的 API"。

智能体不再被动接收全部的工具定义,而是根据需要自动编写代码进行 MCP 调用,这一方案带来了多重提升:

渐进式披露,减轻上下文负担

将工具以代码形式呈现在文件系统上,能让模型按需读取工具定义,而非预先全部读取。

"渐进式披露"的工作流程如下:

1、预加载极简提示: 在 LLM 的上下文窗口中,我们只植入工具的名称、主要参数和功能的精炼代码签名(例如 tool.searchOrders(customer_id: str))。这部分信息占用的 Token 非常少。

2、Schema 外部化: 所有工具冗长、复杂的 JSON Schema 和验证规则,被移出 LLM 上下文,存储在外部的 MCP Server 的"工具注册中心"。

3、代码触发查找: 当 LLM 生成代码 tool.searchOrders('U456') 并发送给 Server 执行时,Server 才会去其外部的工具注册中心查找 searchOrders 的完整定义,并用它来执行 API 调用。

本地处理数据,减少中间传输

面对大文件、海量数据任务时,智能体可以编写代码,在执行容器中先筛选、处理,最后只需把结果返回给模型,避免大量冗余数据消耗传输 Token。

这个思路竟然与我们上半年实现"问数"的思路类似。不过,我们当时还没有意识到这样节省 Token 传输,我们仅仅是因为 text2sql 不太可靠,采用了智能体调用各种"算子"(各种已有的数据处理类 API)。

简化复杂流程,降低操作成本

在一些复杂场景中,比如系统监控通知、批量处理数据场景中,代码执行模式还可以利用代码的循环、条件判断逻辑,简化实现,减少智能体的反复工具调用,大幅减少延迟及操作成本。

数据隐私保护

除了上述提升效率、降低成本的益处外,代码执行还有一个隐藏的好处。

由于中间结果默认保留在安全的执行环境中,原始数据无需进入模型的上下文,只有统计结果才会返回给智能体,这在很大程度上可以保护用户的数据隐私

结语

尽管 Anthropic 在某些政策上存在争议,但其在 Agent 道路上的技术探索不得不说非常值得学习。

推荐大家多关注他们的技术博客,收益良多~

相关推荐
电商API&Tina5 分钟前
【电商API接口】开发者一站式电商API接入说明
大数据·数据库·人工智能·云计算·json
湘美书院--湘美谈教育17 分钟前
湘美谈教育湘美书院网文研究:人工智能与微型小说选集
人工智能·深度学习·神经网络·机器学习·ai写作
uzong22 分钟前
Harness Engineering 是什么?一场新的 AI 范式已经开始
人工智能·后端·架构
墨有66624 分钟前
FieldFormer:基于物理场论的极简AI大模型底层架构,附带源码
人工智能·架构·电磁场算法映射
Mountain and sea44 分钟前
从零搭建工业机器人激光切割+焊接产线:KUKA七轴协同+节卡AGV+视觉检测实战复盘
人工智能·机器人·视觉检测
K姐研究社1 小时前
阿里JVS Claw实测 – 手机一键部署 OpenClaw,开箱即用
人工智能·智能手机·aigc·飞书
卷积殉铁子1 小时前
从“手动挡”到“自动驾驶”:OpenClaw如何让AI开发变成“说话就行”
人工智能
机器之心1 小时前
扎克伯格正在打造自己的「AI分身」,并计划裁掉1.6万人
人工智能·openai
机器之心1 小时前
必看!Sebastian Raschka新博客盘点了所有主要注意力机制
人工智能·openai
jerrywus2 小时前
别再让 AI 盲写代码了:我用 gstack 把"灵感"变"可上线"
chatgpt·agent·claude