通过MCP实现代码执行:构建更高效的AI智能体
原标题: Code Execution with MCP: Building More Efficient Agents
作者: Adam Jones, Conor Kelly | 发布日期: 2025年11月4日
原文链接: https://www.anthropic.com/engineering/code-execution-with-mcp
一句话摘要
本文提出通过让AI智能体以编写代码的方式与MCP服务器交互,替代传统的直接工具调用模式,从而将token消耗降低高达98.7%,同时增强数据隐私保护和工作流灵活性。
完整核心内容翻译
问题背景:传统MCP交互的两大低效瓶颈
在构建基于MCP(模型上下文协议)的AI智能体时,工程师们普遍面临两个严峻的效率问题。
瓶颈一:工具定义的上下文膨胀
传统的MCP实现方式要求在会话开始时将所有工具定义一次性加载到模型的上下文窗口中。当系统接入的工具规模扩展到数百甚至数千个时,模型在尚未读取用户请求之前,就已经消耗了大量的预处理开销。这就好比你每次出门都要把整个工具箱搬上车,哪怕你只需要一把螺丝刀。
瓶颈二:中间结果的冗余传递
当智能体执行连续的工具调用时,每次调用的结果都必须通过模型的上下文窗口传递到下一步操作。文章举了一个生动的例子:假设需要处理一份2小时的会议记录,当这份记录在多个工具调用之间流转时,可能产生超过50,000个额外token的消耗——而这些中间数据对最终输出而言大多是冗余的。
解决方案:基于代码的工具交互
Anthropic提出了一种范式转换:让智能体不再直接调用工具,而是编写代码来与MCP服务器进行交互。具体而言,工具被组织为如下的文件系统结构:
servers/
├── google-drive/
├── salesforce/
└── [其他服务器]每个工具都成为一个可调用的函数。智能体通过编写和执行代码来完成任务,而不是逐一发起工具调用请求。
四大核心优势
1. 渐进式发现(Progressive Disclosure)
模型可以像浏览文件系统一样按需导航和加载特定的工具定义,而不需要在一开始就接收全部工具的完整定义。这种"按需加载"的模式大幅减少了初始上下文的占用。
2. 数据过滤与预处理
大规模数据集可以在代码执行环境中先行处理和过滤,只有精炼后的结果才会返回到模型的上下文中。以前述的会议记录为例,token消耗可以从约150,000降至约2,000——降幅达98.7%。
3. 原生控制流
循环、条件判断和错误处理等逻辑可以在代码中原生执行,无需模型进行多轮迭代。这意味着智能体可以用一段代码完成过去需要数十次模型交互才能实现的复杂任务。
4. 隐私保护
敏感数据始终留在代码执行环境中,不会通过模型上下文传递。系统可以自动对个人身份信息(PII)进行脱敏处理,确保敏感值永远不会暴露给模型。
状态持久化
智能体可以通过写文件的方式在多次执行之间保持进度状态,支持可恢复的工作流和可复用的技能开发。这为构建长期运行、复杂的自动化流程奠定了基础。
实现层面的考量
文章坦诚指出,代码执行模式引入了额外的安全需求。运行智能体生成的代码需要完善的沙箱机制、资源限制和监控体系。这些基础设施的要求是需要与效率收益进行权衡的代价。
文章还引用了Cloudflare的相关研究,后者将这种方法称为"代码模式"(Code Mode),强调大语言模型在面对合适的抽象层时,天然擅长编写代码来解决问题。
技术要点
上下文窗口优化:通过渐进式工具发现机制,避免在会话初始化时加载全部工具定义,将上下文空间留给真正重要的内容。
代码即工具调用:将传统的"模型→工具→模型"循环替换为"模型→代码执行(内含多次工具调用)→精炼结果"的模式,大幅减少模型交互轮次。
数据过滤前置:在代码执行环境中对中间结果进行预处理,仅将必要信息返回模型上下文,实现98.7%的token降幅。
隐私计算范式:敏感数据在沙箱环境中处理,通过PII脱敏机制确保模型无法直接接触原始敏感信息。
沙箱安全要求:代码执行需要配套的容器化隔离、资源配额和运行时监控等安全基础设施。
深度解读
本文揭示了当前MCP生态中一个被广泛低估的架构性问题:工具调用的通信效率。在传统架构下,模型充当了一个"低效的中间人"——它不得不阅读和转发大量自己并不需要理解的中间数据。这不仅浪费了宝贵的上下文窗口空间,还增加了延迟和成本。
代码执行模式的本质是将数据处理逻辑从"模型推理层"下沉到"代码执行层"。这种分层思想并不新颖(类似于Web架构中前后端分离的演进),但在AI智能体领域的应用却极具启发性。它暗示了一个重要趋势:未来的AI智能体框架可能不再是简单的"提示词+工具调用",而是演化为一个多层计算架构,模型负责高层决策和代码生成,执行环境负责底层数据处理。
值得注意的是,这种方法对模型的代码生成能力提出了更高要求。模型不仅需要理解用户意图,还需要准确地将意图转化为可执行的代码,并且对MCP工具的API有准确的认知。这在某种程度上解释了为什么Anthropic在Claude的代码能力上持续投入——代码能力不仅服务于开发者用户,更是智能体架构升级的核心支撑。
延伸思考
智能体的"编程语言":如果代码执行成为智能体与工具交互的主要方式,是否需要为AI设计一种更适合其生成和理解的领域特定语言(DSL),而不是让它使用Python或JavaScript等通用语言?
安全与效率的平衡点:沙箱机制会引入额外的性能开销。在追求极致效率的同时,如何确保代码执行的安全隔离不会成为新的瓶颈?
对MCP生态的影响:如果代码执行模式成为主流,MCP工具的设计范式可能需要调整——从面向"模型直接调用"转向面向"代码可编程调用",工具的API设计将更类似传统SDK而非当前的JSON Schema描述。
多智能体协作:代码执行环境天然支持状态持久化,这是否为多智能体协作提供了一个优雅的共享状态机制?多个智能体可以通过共享文件系统来协调工作。
原文链接: https://www.anthropic.com/engineering/code-execution-with-mcp