大数跨境
0
0

Anthropic官方 使用MCP的代码执行:构建更高效的智能体

Anthropic官方 使用MCP的代码执行:构建更高效的智能体 脑洞科技社
2025-11-10
45
导读:从“直接调用工具”到“编写代码执行”,这不仅仅是一次技术优化,更是一次思想上的飞跃。


如果我告诉你,有一种方法能将AI代理的效率提升 98.7%,你敢信吗?

传统的AI Agent 在调用工具(Tools)时,主要面临两大性能瓶颈,它们像两个隐形的“吞币怪兽”,悄悄吃掉你的Token和耐心。

你让AI助理帮你查个天气,它却背着一整套《百科全书》出门。这就是传统代理的现状。

大多数代理在开始工作前,会把所有可能用到的工具(如Google Drive、Salesforce等)的详细定义全部加载到自己的“大脑”——也就是模型的上下文窗口(Context Window)里。一个工具的定义可能长这样:

gdrive.getDocument     Description: 从Google Drive检索文档     Parameters:                documentId (requiredstring): 要检索的文档ID                fields (optional, string): 需要返回的特定字段     Returns: 包含标题、正文、元数据等的文档对象


如果你的代理连接了成百上千个工具,那在它读到你的指令之前,可能就已经处理了 数十万 的Token!这不仅导致响应速度变慢,还让你的账单噌噌上涨。

第二个问题更要命。当代理需要连续调用多个工具时,它就像一个只会机械传话的信使。

举个例子,你让代理:“把我在Google Drive上的会议记录,更新到Salesforce的销售线索里。”

它的工作流程是这样的:

  1. 调用工具A
    gdrive.getDocument(documentId: "abc123")
  2. 返回结果
    返回了长达数万字的完整会议记录,并塞进上下文。
  3. 调用工具B
    salesforce.updateRecord(...)
  4. 再次写入
    模型需要把刚刚读到的几万字会议记录,原封不动地再写一遍 作为工具B的输入。

看到了吗?一份2小时的会议纪要(可能多达5万Token)在上下文中被来回传递了两次!这不仅极度浪费Token,还容易因为数据量过大而出错,甚至直接超出上下文长度限制,导致任务失败。

面对这些问题,一个革命性的新范式应运而生:代码执行(Code Execution)

核心思想很简单:不再让模型直接调用工具,而是让它编写一小段代码来完成任务。


这就像你不再手把手教助理每一步怎么做,而是直接告诉他:“写个脚本,把A文件里的内容复制到B系统里。” 助理自己就能搞定所有中间步骤,只向你汇报最终结果。

这种方式彻底改变了游戏规则。AI代理不再被动地调用工具,而是主动地编排工作流。

1. 按需加载:从“全家桶”到“自助餐” 

在代码执行范式下,所有工具都被视为代码库或API,以文件系统的形式存在:

servers/├── google-drive/│   ├── getDocument.ts│   └── ...├── salesforce/│   ├── updateRecord.ts│   └── ...


当代理接到任务时,它会像一个聪明的程序员一样,先浏览文件目录,只加载当前任务真正需要的工具定义(比如 getDocument.ts 和 updateRecord.ts)。

效果如何?原文中的一个案例显示,通过这种方式,初始加载的Token数量从 150,000个锐减到2,000个!这正是 98.7% 效率提升的关键来源!

还记得那个来回传递会议纪要的“笨信使”吗?代码执行彻底解决了这个问题。

代理生成的代码会在一个安全的执行环境中运行。数据可以在这个环境里被处理、筛选、转换,只有最终需要给模型看的结果,才会被送入上下文

比如,要从一个包含10000行数据的表格中找出“待处理”的订单:

传统方式:把10000行数据全部返回给模型,让模型自己找。

代码执行方式:代理会写出这样的代码:

// 在执行环境中筛选数据const allRows = await gdrive.getSheet({ sheetId'abc123' });const pendingOrders = allRows.filter(row =>   row["Status"] === 'pending');// 只把前5条处理结果返回给模型看一眼console.log(pendingOrders.slice(05));

最终,模型只需要看到5行相关数据,而不是10000行!上下文的压力瞬间释放。

对于需要循环、判断、延时等复杂逻辑的任务,代码执行更是优势尽显。比如“每隔5秒检查一次Slack频道,直到看到‘部署完成’的消息”。

代理可以直接生成一个 while 循环代码,在后台静默运行,直到任务完成。这比模型和工具之间来回进行几十次“检查-等待-再检查”的对话要高效得多。

由于中间数据在执行环境中流转,默认不会进入模型上下文。这意味着,我们可以处理敏感信息(如客户的邮箱、电话),而模型本身根本“看”不到这些原始数据。

我们甚至可以做到自动脱敏。比如,当代码读取到客户邮件时,执行环境可以自动将其替换为 [EMAIL_1] 这样的占位符再交给模型,从而杜绝了敏感信息泄露的风险。

代码执行环境通常带有文件系统访问权限。这意味着AI代理可以将中间结果、任务进度等信息写入文件,实现状态的持久化。如果任务中断,它可以读取文件,从上次离开的地方继续,而不是从头再来。这让执行超长期、超复杂任务成为了可能。

从“直接调用工具”到“编写代码执行”,这不仅仅是一次技术优化,更是一次思想上的飞跃。

它将AI Agent 从一个被动的“指令执行者”,转变为一个主动的“问题解决者”。这种新范式赋予了代理更高的效率、更低的成本、更强的安全性以及处理更复杂任务的能力。

内容来源: Code execution with MCP: Building more efficient agents

https://www.anthropic.com/engineering/code-execution-with-mcp



【声明】内容源于网络
0
0
脑洞科技社
1234
内容 119
粉丝 0
脑洞科技社 1234
总阅读688
粉丝0
内容119