MCP 代码执行:构建更高效的 Agent

MCP 代码执行:构建更高效的 Agent

原文:Code execution with MCP | Anthropic Engineering Blog | 2025.11.4

导语

MCP(Model Context Protocol)是连接 Agent 与外部系统的开放标准。社区已构建了数千个 MCP 服务器。但随着连接的工具数量爆炸式增长,传统的"逐个调用工具"方式暴露出严重的效率问题。

Anthropic 提出了一个优雅的解决方案:让 Agent 通过写代码来调用工具


一、传统工具调用的两大瓶颈

工具定义占用过多上下文

当工具数量达到数千个时,模型需要在处理用户请求前处理数十万 token 的工具定义。

中间结果消耗额外 token

直接调用工具时,每次调用的结果都会传回模型。如果在工具之间传递大量数据(如长文档),数据会重复流经上下文窗口。

例如: 从 Google Drive 获取会议记录并更新到 Salesforce,长文本会被加载两次(获取一次,写入一次),可能导致数万个额外 token。


二、代码执行方案

代码执行架构

核心思路

不再用函数调用语法,而是将 MCP 服务器呈现为代码 API,Agent 通过编写代码来交互。

文件系统式工具发现

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

Agent 通过探索文件系统按需加载工具定义。

代码编排工具调用

import * as gdrive from './servers/google-drive';
import * as salesforce from './servers/salesforce';

const transcript = (await gdrive.getDocument({
  documentId: 'abc123'
})).content;

await salesforce.updateRecord({
  objectType: 'SalesMeeting',
  recordId: '00Q5f000001abcXYZ',
  data: { Notes: transcript }
});

效果: Token 使用量从 150,000 降至 2,000,节省约 98.7%


三、五大优势

1. 渐进式披露

Agent 像浏览文件系统一样按需读取工具定义,使用 search_tools 快速定位。

2. 上下文高效的结果处理

数据在执行环境中过滤和转换,只将必要结果返回给模型。

例如: 从 10,000 行电子表格中仅筛选出"待处理"的 5 行数据。

3. 更强大的控制流

使用循环、条件判断和错误处理代码,比链式工具调用更高效。

4. 隐私保护

中间结果保留在执行环境中,可对敏感数据进行令牌化处理(如 PII 替换为占位符),数据不经过模型。

5. 状态持久化与技能

Agent 可将中间结果写入文件,将成功的代码保存为可重用函数(Skills)。


四、注意事项

代码执行引入了额外复杂性:

  • 需要安全的沙箱执行环境
  • 资源限制和监控
  • 基础设施要求比直接工具调用更高
  • 需要在效率提升和实现成本之间权衡

读后感

这篇文章揭示了一个重要趋势:Agent 的工具交互方式正在从"声明式"走向"编程式"

传统的函数调用是"告诉模型调用哪个工具",代码执行是"让模型写代码来编排工具"。后者更灵活、更高效,也更符合软件工程师的思维方式。


本文是 Anthropic AI Agent 系列 第 11 篇,共 15 篇。下一篇:Agent 评测怎么做

关注公众号 coft 获取系列更新。

posted @ 2026-02-20 09:03  warm3snow  阅读(4)  评论(0)    收藏  举报