企业网站主页模版,网站建设需求流程图,免费发广告的平台,怎样安装一个wordpress简介
本文探讨了MCP协议在AI智能体与工具连接中的应用问题#xff0c;指出传统直接调用工具方式会导致Token消耗过多。作者提出通过代码执行解决方案#xff0c;让智能体按需加载工具、高效处理结果并实现复杂控制流#xff0c;可显著降低Token消耗98.7%。同时详细介绍了代…简介本文探讨了MCP协议在AI智能体与工具连接中的应用问题指出传统直接调用工具方式会导致Token消耗过多。作者提出通过代码执行解决方案让智能体按需加载工具、高效处理结果并实现复杂控制流可显著降低Token消耗98.7%。同时详细介绍了代码执行在渐进式工具暴露、数据过滤、隐私保护和状态持久化等方面的优势为构建高效AI原生应用提供了实用指导。直接调用工具时每次工具定义和执行结果都会占用上下文资源。而让智能体通过编写代码来调用工具能实现更好的扩展性以下是借助 MCP 实现这一方案的具体原理。模型上下文协议Model Context Protocol简称 MCP是一套用于连接 AI 智能体与外部系统的开放标准。传统方式中智能体与工具、数据的对接需要为每一组配对开发定制化集成方案这会造成系统碎片化和重复开发难以构建真正可扩展的连接系统。MCP 提供了统一的协议开发者只需在智能体中实现一次 MCP 集成就能解锁整个生态的各类工具对接能力。自 2024 年 11 月 MCP 发布以来其普及速度迅猛社区已搭建数千台 MCP 服务器所有主流编程语言均已推出对应的 SDKMCP 也已成为行业内智能体对接工具与数据的事实标准。如今开发者构建的智能体通常能访问数十台 MCP 服务器上的数百甚至数千个工具。但随着对接工具数量的增加预先加载所有工具定义以及通过上下文窗口传递中间结果的方式会导致智能体运行变慢、成本上升。本文将探讨如何通过代码执行让智能体更高效地与 MCP 服务器交互在支持更多工具的同时减少 Token 消耗。一、工具引发的 Token 消耗过量问题降低了智能体效率随着 MCP 使用规模扩大两种常见模式会增加智能体的成本和延迟第一、工具定义占用过多上下文窗口第二、中间工具结果消耗额外 Token。1.1 工具定义占用过多上下文窗口大多数 MCP 客户端会预先将所有工具定义直接加载到上下文并通过直接工具调用语法暴露给模型。这些工具定义可能如下所示gdrive.getDocument 描述从 Google 云端硬盘获取文档 参数 documentId必填字符串类型待获取文档的 ID fields可选字符串类型需返回的特定字段 返回值包含标题、正文内容、元数据、权限等信息的文档对象salesforce.updateRecord 描述更新 Salesforce 中的记录 参数 objectType必填字符串类型Salesforce 对象类型潜在客户、联系人、客户等 recordId必填字符串类型待更新记录的 ID data必填对象类型需更新的字段及对应新值 返回值包含确认信息的更新后记录对象工具描述会占用大量上下文窗口空间导致响应时间延长、成本增加。当智能体对接数千个工具时模型在处理用户请求前需要先处理数十万个 Token。1.2 中间工具结果消耗额外 Token大多数 MCP 客户端允许模型直接调用 MCP 工具。例如你可能会向智能体发起请求“从 Google 云端硬盘下载我的会议记录并将其附加到 Salesforce 潜在客户信息中”。模型会执行如下调用工具调用gdrive.getDocument(documentId: abc123) → 返回结果讨论了第四季度目标...\n[完整会议记录文本] 该结果会加载到模型上下文 工具调用salesforce.updateRecord( objectType: SalesMeeting, recordId: 00Q5f000001abcXYZ, data: { 备注: 讨论了第四季度目标...\n[完整会议记录文本] } ) 模型需再次将完整会议记录写入上下文每一个中间结果都必须经过模型传递。在上述示例中完整的会议记录会两次流经上下文。对于一场 2 小时的销售会议这可能意味着额外处理 5 万个 Token。而对于更大的文档甚至可能超出上下文窗口限制导致工作流程中断。当处理大型文档或复杂数据结构时模型在工具调用之间复制数据时更容易出错。模型Claude 3.5 Sonnet新版Claude 3.5 HaikuClaude 3.5 SonnetGPT-4o*GPT-4o mini*Gemini 1.5 ProGemini 1.5 Flash研究生水平推理GPQA 钻石级65.0%零样本思维链41.6%零样本思维链59.4%零样本思维链53.6%零样本思维链40.2%零样本思维链59.1%零样本思维链51.0%零样本思维链本科水平知识MMLU Pro78.0%零样本思维链65.0%零样本思维链75.1%零样本思维链--75.8%零样本思维链67.3%零样本思维链代码能力HumanEval93.7%零样本88.1%零样本92.0%零样本90.2%零样本87.2%零样本--数学解题MATH78.3%零样本思维链69.2%零样本思维链71.1%零样本思维链76.6%零样本思维链70.2%零样本思维链86.5%四样本思维链77.9%四样本思维链高中数学竞赛AIME202416.0%零样本思维链5.3%零样本思维链9.6%零样本思维链9.3%零样本思维链---视觉问答MMMU70.4%零样本思维链-68.3%零样本思维链69.1%零样本思维链59.4%零样本思维链65.9%零样本思维链62.3%零样本思维链智能体编码SWE-bench 验证集49.0%40.6%33.4%----智能体工具使用TAU-bench零售行业 69.2% / 航空行业 46.0%零售行业 51.0% / 航空行业 22.8%零售行业 62.6% / 航空行业 36.0%----注我们的评估表格未纳入 OpenAI 的 o1 模型系列因其依赖大量响应前计算时间与常规模型存在本质差异难以进行公平的性能对比。MCP 客户端会将工具定义加载到模型的上下文窗口并编排一个消息循环使得每次工具调用和结果都需在操作之间经过模型传递。二、借助 MCP 实现代码执行提升上下文效率随着代码执行环境在智能体中的普及一种解决方案是将 MCP 服务器呈现为代码 API而非直接的工具调用。智能体可通过编写代码与 MCP 服务器交互这种方式能同时解决上述两个问题智能体仅加载所需工具并在执行环境中处理数据后再将结果返回给模型。实现方式有多种。其中一种是为所有已连接的 MCP 服务器生成工具文件目录以下是 TypeScript 实现示例servers├── google-drive │ ├── getDocument.ts │ ├── ...其他工具 │ └── index.ts ├── salesforce │ ├── updateRecord.ts │ ├── ...其他工具 │ └── index.ts └── ...其他服务器每个工具对应一个文件示例如下// ./servers/google-drive/getDocument.ts import { callMCPTool } from ../../../client.js; interface GetDocumentInput { documentId: string; } interface GetDocumentResponse { content: string; } /* 从 Google 云端硬盘读取文档 */ export async function getDocument(input: GetDocumentInput): PromiseGetDocumentResponse { return callMCPToolGetDocumentResponse(google_drive__get_document, input); }前文提到的 “从 Google 云端硬盘到 Salesforce” 的示例可转化为如下代码// 从 Google 文档读取会议记录并添加到 Salesforce 潜在客户信息中 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 } });智能体通过浏览文件系统发现工具列出./servers/目录找到可用服务器如google-drive和salesforce再读取所需的特定工具文件如getDocument.ts和updateRecord.ts以理解每个工具的接口。这种方式让智能体仅加载当前任务所需的工具定义将 Token 消耗量从 15 万个降至 2000 个时间和成本节省达 98.7%。Cloudflare 也发布了类似研究结果并将这种 MCP 代码执行方式称为 “代码模式Code Mode”。核心思路一致大语言模型擅长编写代码开发者应利用这一优势构建更高效与 MCP 服务器交互的智能体。三、借助 MCP 实现代码执行的优势通过 MCP 代码执行智能体可按需加载工具、在数据到达模型前进行过滤、一步执行复杂逻辑从而更高效地利用上下文。此外这种方式还具备安全和状态管理方面的优势。3.1 渐进式暴露工具模型擅长导航文件系统。将工具以代码形式呈现于文件系统允许模型按需读取工具定义而非一次性加载全部。此外还可在服务器中添加search_tools工具以查找相关定义。例如在使用前文假设的 Salesforce 服务器时智能体搜索 “salesforce” 并仅加载当前任务所需的工具。在search_tools工具中加入细节级别参数允许智能体选择所需的信息详细程度例如仅名称、名称和描述、或包含模式的完整定义也有助于智能体节省上下文并高效查找工具。3.2 上下文高效的工具结果处理大型数据集时智能体可在代码中对结果进行过滤和转换后再返回。例如获取包含 1 万行数据的电子表格// 无代码执行场景 - 所有行均流经上下文 工具调用gdrive.getSheet(sheetId: abc123) → 1 万行数据加载到上下文需手动过滤 // 代码执行场景 - 在执行环境中过滤 const allRows await gdrive.getSheet({ sheetId: abc123 }); const pendingOrders allRows.filter(row row[状态] 待处理 ); console.log(找到 ${pendingOrders.length} 个待处理订单); console.log(pendingOrders.slice(0, 5)); // 仅输出前 5 条供查看智能体仅需查看 5 行数据而非 1 万行。类似模式适用于数据聚合、多数据源关联查询或特定字段提取 —— 所有操作均不会占用过多上下文窗口。3.3 更强大且上下文高效的控制流循环、条件判断和错误处理可通过熟悉的代码模式实现而非串联多个独立工具调用。例如若需在 Slack 中接收部署通知智能体可编写如下代码let found false; while (!found) { const messages await slack.getChannelHistory({ channel: C123456 }); found messages.some(m m.text.includes(部署完成)); if (!found) await new Promise(r setTimeout(r, 5000)); } console.log(已收到部署通知);这种方式比在智能体循环中交替执行 MCP 工具调用和睡眠命令更高效。此外编写可执行的条件分支树还能减少 “首 Token 响应时间” 延迟无需等待模型评估条件语句可直接让代码执行环境处理。3.4 隐私保护操作当智能体通过代码执行使用 MCP 时中间结果默认保留在执行环境中。这样一来智能体仅能看到明确日志或返回的数据意味着不希望与模型共享的数据可在工作流程中传递而无需进入模型上下文。对于更敏感的工作负载智能体框架可自动对敏感数据进行令牌化处理。例如需将电子表格中的客户联系信息导入 Salesforce 时智能体编写如下代码const sheet await gdrive.getSheet({ sheetId: abc123 }); for (const row of sheet.rows) { await salesforce.updateRecord({ objectType: Lead, recordId: row.salesforceId, data: { Email: row.email, Phone: row.phone, Name: row.name } }); } console.log(已更新 ${sheet.rows.length} 条潜在客户记录);MCP 客户端会拦截数据并在其到达模型前对个人身份信息PII进行令牌化处理// 若智能体日志输出 sheet.rows将看到以下内容 [ { salesforceId: 00Q..., email: [邮箱_1], phone: [电话_1], name: [姓名_1] }, { salesforceId: 00Q..., email: [邮箱_2], phone: [电话_2], name: [姓名_2] }, ... ]之后当该数据在另一个 MCP 工具调用中共享时MCP 客户端会通过查找表还原令牌化数据。真实的邮箱地址、电话号码和姓名会从 Google 表格流转至 Salesforce但全程不会经过模型。这能防止智能体意外记录或处理敏感数据也可通过这种方式定义确定性安全规则指定数据的流转范围。3.5 状态持久化与技能沉淀支持文件系统访问的代码执行允许智能体在多个操作间维持状态。智能体可将中间结果写入文件以便恢复工作和跟踪进度const leads await salesforce.query({ query: SELECT Id, Email FROM Lead LIMIT 1000 }); const csvData leads.map(l ${l.Id},${l.Email}).join(\n); await fs.writeFile(./workspace/leads.csv, csvData); // 后续执行可从断点继续 const saved await fs.readFile(./workspace/leads.csv, utf-8);智能体还可将自身代码保存为可复用函数。当智能体开发出某一任务的可用代码后可将其保存供未来使用// ./skills/save-sheet-as-csv.ts import * as gdrive from ./servers/google-drive; export async function saveSheetAsCsv(sheetId: string) { const data await gdrive.getSheet({ sheetId }); const csv data.map(row row.join(,)).join(\n); await fs.writeFile(./workspace/sheet-${sheetId}.csv, csv); return ./workspace/sheet-${sheetId}.csv; } // 后续任何智能体执行过程中均可调用 import { saveSheetAsCsv } from ./skills/save-sheet-as-csv; const csvPath await saveSheetAsCsv(abc123);这与 “技能Skills” 概念密切相关 ——“技能” 是包含可复用指令、脚本和资源的文件夹帮助模型提升特定任务的执行性能。在这些保存的函数中添加 SKILL.md 文件可创建结构化技能供模型参考和使用。久而久之智能体将构建起一套高阶能力工具箱不断优化自身工作所需的支撑架构。需注意的是代码执行也会带来额外复杂性。运行智能体生成的代码需要安全的执行环境包括适当的沙箱隔离、资源限制和监控机制。这些基础设施要求会增加运营开销和安全考量而直接工具调用则可避免这些问题。因此在采用代码执行方式时需权衡其带来的优势降低 Token 成本、减少延迟、提升工具组合能力与实现成本。四、总结MCP 为智能体连接各类工具和系统提供了基础协议。但当连接的服务器过多时工具定义和结果会消耗过量 Token降低智能体效率。尽管文中提到的许多问题上下文管理、工具组合、状态持久化看似新颖但在软件工程领域已有成熟解决方案。代码执行将这些既定模式应用于智能体让智能体能够通过熟悉的编程结构更高效地与 MCP 服务器交互。若你采用了这种方案欢迎与 MCP 社区分享你的实践成果。五、在大模型时代我们如何有效的去学习大模型现如今大模型岗位需求越来越大但是相关岗位人才难求薪资持续走高AI运营薪资平均值约18457元AI工程师薪资平均值约37336元大模型算法薪资平均值约39607元。掌握大模型技术你还能拥有更多可能性• 成为一名全栈大模型工程师包括PromptLangChainLoRA等技术开发、运营、产品等方向全栈工程• 能够拥有模型二次训练和微调能力带领大家完成智能对话、文生图等热门应用• 薪资上浮10%-20%覆盖更多高薪岗位这是一个高需求、高待遇的热门方向和领域• 更优质的项目可以为未来创新创业提供基石。可能大家都想学习AI大模型技术也_想通过这项技能真正达到升职加薪就业或是副业的目的但是不知道该如何开始学习因为网上的资料太多太杂乱了如果不能系统的学习就相当于是白学。为了让大家少走弯路少碰壁这里我直接把都打包整理好希望能够真正帮助到大家_。一、AGI大模型系统学习路线很多人学习大模型的时候没有方向东学一点西学一点像只无头苍蝇乱撞下面是我整理好的一套完整的学习路线希望能够帮助到你们学习AI大模型。第一阶段 从大模型系统设计入手讲解大模型的主要方法第二阶段 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用第三阶段 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统第四阶段 大模型知识库应用开发以LangChain框架为例构建物流行业咨询智能问答系统第五阶段 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型第六阶段 以SD多模态大模型为主搭建了文生图小程序案例第七阶段 以大模型平台应用与开发为主通过星火大模型文心大模型等成熟大模型构建大模型行业应用。二、640套AI大模型报告合集这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。三、AI大模型经典PDF书籍随着人工智能技术的飞速发展AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型如GPT-3、BERT、XLNet等以其强大的语言理解和生成能力正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。四、AI大模型各大场景实战案例结语【一一AGI大模型学习 所有资源获取处无偿领取一一】所有资料 ⚡️ 朋友们如果有需要全套 《LLM大模型入门进阶学习资源包》扫码获取~