微信扫码
添加专属顾问
Anthropic官方揭秘生产级Agent的12个MCP设计模式,助你安全高效连接真实业务系统。 核心内容: 1. 生产级Agent面临的真实挑战与MCP解决方案 2. 5组12个可复用MCP设计模式详解 3. 工具交互面设计的关键决策与最佳实践
在 Claude Code 源代码泄露事件之后,我们从源码里整理出了 12 种 Agentic Harness 模式。后来又结合 Anthropic 官方的 Agent Skills 构建指南,继续拆解出 14 种 Skill 编写模式。这次再往前走一步,问题就变得更现实了:当 Agent 真正进入生产系统,它到底应该怎么连接那些真实的业务工具、权限系统和数据源?
Anthropic 官方最近那篇关于 MCP 的文章《Building agents that reach production systems with MCP[1]》,讨论的正是这个问题。文章比较了直接 API 调用、CLI 和 MCP 的差异,并解释为什么生产级 Agent 越来越倾向于使用 MCP。
生产级 Agent 的难点,不是「能不能调用工具」,而是「能不能安全、稳定、低成本地连接真实系统」。
所以这篇文章不准备讲 MCP 协议细节,而是换一个角度:如果把 Anthropic 的实践抽象成工程模式,哪些设计可以被复用?
我把它拆成 5 组、12 个模式。它们覆盖了工具交互面、交互语义、认证凭证、上下文经济,以及打包分发。理解这些模式,比单纯会写一个 MCP Server 更重要。
工具交互面设计是 MCP Server 的第一道架构决策。
很多团队第一次做 MCP Server,会自然想到:既然已有 API,那就把每个 API endpoint 包成一个 tool。
这个想法很直观,但通常不是最优解。
因为 Agent 不是按 endpoint 思考的。Agent 要完成的是任务,比如「从 Slack 话题创建一个 Issue」「排查这次部署为什么失败」「帮我找过去七天最异常的指标」。
如果 MCP Server 只是 API 的镜像,Agent 就必须自己拼接大量底层动作。工具变多,调用链变长,上下文变重,失败点也随之增加。
好的 MCP Server,不是 API 的翻译层,而是 Agent 面向任务的产品接口。
第一个模式解决的是:MCP Server 应该运行在哪里?
本地 MCP Server 通过 stdio 和客户端通信,适合桌面应用、IDE Agent、本地 Claude Code 或一些命令行场景。它很轻,也很方便开发调试。
但一旦进入生产环境,这个前提就不稳定了。
生产 Agent 可能运行在浏览器、移动端、云端执行环境或托管平台里。它不一定能启动本地进程,也不一定能访问用户机器上的文件系统。
所以 Anthropic 的建议很明确:如果目标是生产级集成,应该从一开始就按远程 MCP Server 设计。
远程优先的好处是:
但远程优先不是免费午餐。
你必须处理网络延迟、可用性、限流、认证、安全边界、日志和运维。一个本地进程可以偷懒的地方,远程服务都要补上。
所以这个模式适合大多数生产集成,但不意味着所有本地 Server 都应该被否定。
更准确的判断是:
本地 MCP Server 适合开发者环境,远程 MCP Server 才是生产分发形态。
第二个模式解决的是:工具应该按什么粒度暴露?
最常见的错误,是把 MCP Server 做成 API endpoint 的一比一包装。
比如一个工单系统原本有:
get_threadparse_messagescreate_issuelink_attachment如果全部原样暴露给 Agent,模型就要自己判断先调用哪个、如何把上一步结果传给下一步、失败时怎么恢复。
这不是不能做,而是把太多编排责任推给了模型。
更好的方式,是按用户意图组织工具。
比如直接提供一个:
create_issue_from_thread
这样 Agent 不需要拼四个底层动作,而是调用一个面向任务的工具。底层 API 编排、ID 归一化、附件关联、错误重试,都可以在 MCP Server 内部处理。
这个模式适合 API 面不算太大、用户任务相对明确的系统。
比如 Linear、Slack、Notion、Sentry 这类工具,很多操作都能归纳为用户意图:创建工单、总结话题、查询错误、生成报告、更新页面。
它的代价也很明确:你不能只导出 schema,你必须设计工具。
工具名称、参数结构、返回结果、错误处理,都要围绕 Agent 的任务体验重新组织。MCP Server 不只是代理层,而是一个需要持续演进的产品接口。
第三个模式解决的是:如果底层 API 面太大,按意图组织也会失控,怎么办?
比如 AWS、Cloudflare、Kubernetes 这类系统,底层操作可能有几百甚至几千个。即使按意图分组,也很难把所有能力都封装成合理数量的工具。
这时,继续增加工具数量只会让上下文爆炸。
Thin Surface 的思路刚好相反:不要暴露很多工具,只暴露少量高能力工具。
典型组合是:
search:让 Agent 搜索可用 API 或能力;execute:让 Agent 写一段短脚本,由服务端在沙箱里执行。Anthropic 原文提到 Cloudflare MCP Server[2] 是典型案例:两个工具覆盖约 2500 个 endpoint,工具定义大约只需要 1000 tokens。
这背后的逻辑是:把巨大 API 面藏在 Server 后面,让 Agent 通过搜索找到需要的能力,再用短代码完成调用和组合。
这个模式非常适合「API 规模巨大、任务形态不固定」的系统。
但它的代价也更重:你必须有可靠的沙箱、资源限制、超时策略、权限边界和审计机制。
因为 Agent 不再只是填参数,而是在服务端执行代码。
所以 Thin Surface 不是默认选择。它适合超大 API 面,不适合本来就能被清晰意图封装的小系统。
很多早期 Agent 工具,都默认工具返回文本或 JSON。
这在简单场景里没问题,比如查询一个状态、返回一段摘要、创建一个对象。
但生产系统里的很多信息,本来就不是适合用文字描述的。
搜索结果、指标看板、错误列表、文件预览、支付流程、OAuth 页面、删除确认,这些东西如果都让模型转成自然语言,不仅低效,而且容易丢失结构。
MCP 的一个重要方向,是让工具拥有更丰富的交互语义。
也就是说,工具不只是「返回一段文本」,还可以返回 UI、请求用户补充结构化信息,或者把用户安全地交给外部流程。
Inline UI 解决的问题是:有些结果不应该被模型描述,而应该直接被用户看到。
比如一个监控 Dashboard、一张趋势图、一组搜索结果、一个审批表单、一个文件预览页面。
如果工具返回一大段 JSON,再让模型总结成文字,用户看到的是二手信息。结构、细节和可操作性都会损失。
MCP Apps[3] 允许工具返回一个可交互界面,让客户端在聊天界面中直接渲染。
这意味着 MCP Server 不只是后端能力提供者,也开始承担一部分产品界面职责。
这个模式适合所有「看比听更重要」的结果:
代价是 Server 团队不能只按后端接口思维工作。你要考虑组件版本、可访问性、视觉一致性和客户端兼容。
但从用户体验看,这是非常自然的方向。
生产环境里的工具调用,经常会碰到缺信息的情况。
比如用户说:「帮我重启这个服务。」
但服务可能部署在多个 region,或者存在多个同名实例。Agent 这时有三个选择:
前两个都不理想。猜测有风险,普通追问又会打断流程。
MCP 的 Form Mode elicitation[4] 允许 Server 在工具调用中途返回一个表单 schema,Client 负责渲染表单,用户填写后再把控制权交回 Server。
这适合几类场景:
它的好处是,用户不需要重新发起一轮对话,Agent 也不需要装作自己知道答案。
代价是,每一次 elicitation 都是一次 UX 设计。表单设计得不好,用户会觉得 Agent 在审问自己。
同时,这个模式不适合无人值守场景。如果是 headless Agent 或 batch workflow,没有人在场填写表单,流程就会卡住。
External Handoff 解决的是更敏感的问题:有些信息根本不应该经过 MCP Client。
比如第三方 OAuth、支付流程、银行卡信息、某些合规要求下的敏感凭证。
如果这些信息进入 Agent 上下文,或者经过 MCP Client,就会扩大安全边界。很多时候,正确做法不是让 Agent 处理 secret,而是把用户交给外部系统。
MCP 的 URL Mode Elicitation 就是这个形态。
Server 返回一个 URL,Client 打开浏览器或外部页面,用户在那里完成 OAuth、支付或敏感信息输入。流程结束后,再回到 Server 继续执行。
这里要区分 Form Mode 和 URL Mode:
这个模式的代价是用户会离开 Agent 界面。每一次跳转,都可能带来流失和恢复问题。
所以工程上必须设计好 resume-after-redirect,让用户回来后流程还能接上。
生产级 Agent 不可能绕开认证。
只要 Agent 要访问真实系统,就要处理用户身份、组织权限、OAuth scope、token 刷新、凭证撤销和审计。
如果每个 MCP Server 都自己发明一套认证方式,用户接入成本会非常高,客户端也很难统一支持。
所以认证不是附属问题,而是 MCP 能不能成为生产连接层的关键问题。
如果一个 Server 要求用户手动复制 token、配置 client ID、填 redirect URI,第一次接入就会变得很脆弱。
生产系统里,这类「靠用户手工配置」的流程,通常意味着更高的失败率和更多重复登录。
MCP 支持标准 OAuth 能力,Anthropic 原文特别提到 CIMD,也就是 Client ID Metadata Documents[5]。
简单理解,CIMD 让客户端可以通过标准元数据发现认证方式。客户端不需要猜这个 Server 怎么登录,而是读取 metadata,按标准流程启动 OAuth。
这个模式适合所有访问用户数据的生产 MCP Server。
它的价值不是让 OAuth 本身变神奇,而是把认证流程从「每家自定义」变成「客户端可发现」。
代价是 Server 必须认真遵守标准 OAuth 行为,维护 metadata endpoint、redirect URI 校验、scope 设计、token 校验和跨客户端兼容。
即使认证流程标准化,token 仍然需要一个安全的家。
很多糟糕的集成,会把 token 放进工具参数、环境变量、临时配置,甚至让每次 tool call 都携带凭证。
这在生产系统里很危险。
Vault-Held Credentials 的思路是:把凭证生命周期上移到平台层。
在 Claude Managed Agents 里,MCP OAuth credential[6] 可以注册到 Vault。创建 session 时引用 vault ID,平台负责把合适的凭证注入到 MCP 连接中,并处理刷新、撤销和生命周期管理。
这个模式的关键,不是「有一个密钥存储」这么简单。
真正重要的是:MCP Server 不需要在每次工具调用里接收 token,也不需要自己实现完整的刷新、撤销和轮换逻辑。
凭证管理从工具调用路径里抽离出来,变成平台能力。
代价是,你要信任这个平台 Vault。它的安全性、可用性、审计能力和导出策略,都会成为生产架构的一部分。
对于没有托管平台的团队,也需要自己实现类似模式,而不是把 token 生命周期散落在工具代码里。
做 Agent 工程的人很容易忽略一个事实:上下文窗口不是无限资源,而是架构约束。
MCP 让 Agent 可以连接更多 Server,获得更多工具。但如果每个 Server 都暴露几十上百个工具,Client 一上来就把所有 tool definitions 全塞进模型上下文,成本会非常高。
更糟的是,工具结果也可能很大。日志、trace、文档、搜索结果、JSON 列表、指标数据,如果原样返回给模型,模型会消耗大量 token 去读取很多其实不需要的信息。所以 MCP Client 也需要工程模式。
On-Demand Tool Loading 解决的是工具定义的上下文成本。
当 Agent 连接多个 MCP Server 时,它可能拥有几百个工具。全量加载这些工具定义,相当于在任务还没开始前,就已经消耗了大量上下文预算。tool search tool[7] 的做法是延迟加载。
Agent 先通过一个搜索工具查找可能相关的工具,只把命中的工具定义加载进上下文,其余工具保持不可见。Anthropic 官方测试中,Tool Search 可以让 tool-definition tokens 减少 85% 以上,同时保持较高的工具选择准确率。
这个模式的代价是多了一次搜索步骤,而且高度依赖工具描述质量。
如果工具描述模糊,搜索可能找不到正确工具;如果描述过宽,又可能加载太多无关工具。
所以 Tool Search 不是替代工具设计,而是倒逼工具描述更像产品文案:准确、可检索、可区分。
另一个上下文浪费点,是工具结果。
很多工具返回的结果并不适合直接给模型看。
比如:
模型真正需要的,往往不是原始数据,而是过滤、聚合、排序、统计之后的结果。
Programmatic tool calling[8] 的做法是,让 Agent 在代码执行沙箱里处理工具结果。它可以循环调用工具、过滤数据、聚合字段、做中间计算,最后只把必要结果放进模型上下文。
Anthropic 官方测试中,这种方式在复杂多步流程里可以减少大约 37% 的 token 使用。
它和 On-Demand Tool Loading 形成一个完整组合:
代价是客户端需要代码沙箱,也需要能调试 Agent 写出来的中间代码。
对于简单的一次性工具调用,这个模式可能过重。但对于日志分析、数据处理、跨系统查询这类任务,它会非常有价值。
到这里,MCP Server 已经解决了很多问题:连接、工具面、交互、认证、上下文。
但真实集成还有一个关键问题:如何交付?
一个真正有用的 Agent 集成,通常不只是一个 MCP Server。
它还可能包括:
所以 Anthropic 强调,MCP 和 Skills 是互补关系。
MCP 解决「Agent 能访问什么」,Skills 解决「Agent 应该怎么使用这些能力」。
Plugin Bundle 解决的是分发问题。
如果一个集成需要 MCP Server、Skills、hooks、subagents,但这些组件分散安装、分散升级,就会出现配置漂移和版本错配。
Claude Code Plugins 提供了一种打包方式:把 Skills、MCP servers、hooks、LSP servers、specialized subagents 统一放进一个插件分发。
用户一次安装,就得到完整能力包。
Cowork data plugin 是一个典型例子:它包含 10 个 Skills 和 8 个 MCP servers,连接 Snowflake、Databricks、BigQuery、Hex 等数据工具。
这个模式的价值是减少安装摩擦,也减少组件之间的版本错配。
代价是发布节奏被绑定。一个 Skill 更新、一个 Server 更新、一个 hook 更新,都可能牵动整个插件版本。
但对用户来说,「一个插件就是一套完整工作能力」通常比「自己拼装十几个组件」更自然。
最后一个模式解决的是:Agent 有了工具访问权,是否就真的会用?
答案通常是否定的。
一个 MCP Server 可以告诉 Agent 有哪些工具,但它不一定告诉 Agent 在复杂业务里应该怎样安全、有效地组合这些工具。
比如一个 Sentry MCP Server 可以暴露 issue、trace、release、alert 等能力。但如何排查线上错误、如何判断影响范围、如何生成修复建议,这些更像领域知识和操作手册。
这就是 Skills 的价值。
Server-Distributed Skills 的方向是:由 MCP Server 直接分发与自身能力匹配的 Skills。客户端连接 Server 时,不只获得工具,也获得使用这些工具的 playbook。
Anthropic 原文提到,Canva、Notion、Sentry 等已经在 Claude 中把 Skill 和 connector 配对展示。MCP 社区也在探索 server-distributed skills 的扩展,让这种能力可以跨客户端移植。
这个模式还在演进,但方向非常清晰:未来的 MCP Server 不只分发能力,还会分发使用能力的方法。
这也意味着,Agent 集成的竞争点会从「谁有工具」变成「谁能把工具、流程、经验和安全边界一起交付」。
这些模式真正有价值的地方,不是告诉我们「MCP 很重要」,而是把生产级 Agent 集成中的工程问题拆开了。连接在哪里运行,工具按什么粒度暴露,用户如何参与流程,凭证如何托管,上下文如何控制,能力如何打包分发。
这些问题加起来,才是 Agent 从 demo 走向 production 的真实门槛。
生产级 Agent 不是多接几个工具,而是重新设计 Agent 与真实系统之间的连接层。
MCP 的意义就在这里。它让每一个系统都有机会为 Agent 提供一个更稳定、更安全、更可复用的产品交互面。随着更多客户端、Server、Skills 和协议扩展进入生态,这个交互面的价值会继续叠加。
如果你正在做 AI 工程化,或者准备把 Agent 接入企业内部系统,那么这 12 个模式值得反复对照。不用一次全部实现,但每一个模式都在提醒我们:真正的 Agent 工程,不只是把模型接上工具,而是让工具进入生产。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-06-29
17 岁高中生做了个假 AI,上线一个月获 2.8 亿次访问
2026-06-29
Loop Engineering 具体做些什么
2026-06-28
字节跳动最新AI Coding实践曝光,我总结了7 条反常识的结论
2026-06-28
企业级AI的核心不是Agent,而是让Agent变得不重要的Skills
2026-06-27
OpenAI深夜引爆GPT-5.6,三箭齐发全面围剿Anthropic
2026-06-27
Agent 发邮件踩坑全记录:从 SMTP 翻车到 Agently Mail
2026-06-27
AgentTeams 和 Claude Tag 都进入群聊模式,是新范式还是新叙事?
2026-06-27
GPT-5.6 Sol深夜炸场发布!OpenAI最强模型碾压Claude 5!
2026-04-15
2026-04-07
2026-04-07
2026-04-24
2026-04-17
2026-04-05
2026-04-02
2026-04-05
2026-04-14
2026-04-24
2026-06-27
2026-06-26
2026-06-25
2026-06-18
2026-06-18
2026-06-10
2026-06-10
2026-06-07
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。