View a markdown version of this page

什么是 MCP? - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

什么是 MCP?

LLMs 通过根据他们的训练数据预测提示的答案来工作。这意味着法学硕士只能提供有关其已经看到的数据和事件的答案。诸如检索增强生成 (RAG) 和知识库之类的方法允许您包含上下文数据。但是,如果你问法学硕士明天的天气预报会是什么样子,或者你的数据库中有多少客户,它可能会产生幻觉或无法提供答案,因为这些都超出了法学硕士预先培训的知识。为了能够回答这类问题,代理需要访问法学硕士本机环境 APIs 之外的外部能力、数据。

了解工具

我们可以通过工具让 LLM 访问其他系统和上下文。工具是赋予法学硕士以实现明确目标的功能。工具可以调用 API、查询数据库、执行计算器操作、操作代码沙箱、执行网络搜索,甚至调用另一个 AI 系统或 agent-as-a-tool。每个工具都应包含一个描述,告诉法学硕士该工具的用途、何时使用它以及它接受哪些参数。这使法学硕士能够根据用户的输入做出细致入微的决定,决定要调用哪种工具或工具组合。LLM 会被告知代理可以使用哪些工具,从而使其能够生成响应,指示代理调用该工具。例如,当您询问 LLM 您的数据库中有多少客户时,LLM 将向请求使用特定输入参数运行该query_database工具的代理发送回响应。LLM 决定要调用哪个工具以及工具调用的输入。然后,代理执行该工具,该工具将自然语言输入转换为语法正确的函数调用并运行查询。代理根据 LLM 的指令调用一个或多个工具,然后将这些结果传回 LLM。这利用了法学硕士的推理能力,而不是基于文本的输入,并为工作选择合适的工具。

下图显示了每个代理如何为每个目标管理自己的工具集。

每个代理为每个目标管理自己的工具集。

扩展工具访问权限可能会给代理人工智能解决方案带来挑战:

  • 如果每个开发人员都在为相同的外部功能创建自己的工具,那么与这些外部功能的交互会有很多重复的工作和非标准化的方式。这会导致代理间的实现不一致。虽然你可以通过在库中开发标准工具并分发它们来解决这个问题,但这缺乏集中式治理。这使得强制执行安全策略、跟踪工具使用情况、管理跨团队版本控制或确保遵守组织标准变得困难。此外,当您将工具直接嵌入代理时,每次创建新工具或更新现有工具时,都必须重新部署代理。

  • 向法学硕士提供工具会消耗其上下文窗口。上下文窗口是模型在任何时候都可以考虑的标( LLMs 处理的文本单位——通常表示单词、部分单词或标点符号)的数量。 LLMs 有上下文窗口限制。工具及其文档使用有限的上下文窗口以及系统提示和用户提示。随着上下文窗口的填充, LLMs可能会由于多种因素而导致性能下降:难以识别相关信息、处理复杂性增加以及推理能力降低。当工具定义、系统提示和对话历史记录争夺有限的上下文窗口空间时,挑战就更加复杂了,因为它们是在每次 LLM 调用时提供的。

因此,工具的数量及其记录方式会直接影响法学硕士的绩效,例如响应时间和准确性。

MCP 建立了将代理连接到外部功能的通用标准。它通常被称为 “用于人工智能应用程序的 USB-C”。MCP 服务器不是直接向代理注册工具,而是充当托管通过 JSON- RPC 2.0 发现和调用的工具的中介。MCP 允许您注册封装代理可以访问的工具的 MCP 服务器,而不是向代理添加数十或数百种不同的工具并随着时间的推移对其进行维护。这种方法标准化了工具的打包、呈现和调用方式。这可以帮助解决代理内部工具使用的规模和治理难题。它还将代理开发和操作与用于外部功能的工具分离。

下图显示了使用 MCP 访问外部资源的代理。

使用模型上下文协议访问外部资源。

但是,MCP 标准并不能解决所有扩展和治理挑战。MCP 服务器的实施必须与有效的工具设计、托管和企业治理策略相结合。本指南提供了每种策略的最佳实践,以帮助您构建 MCP 并将其用作代理 AI 解决方案的一部分。

何时使用 MCP

MCP 提供战略基础架构,用于扩展您的代理人工智能计划。通过集中工具管理和治理,MCP 服务器降低了跨多个代理构建和维护自定义集成的累积成本。随着代理生态系统的扩大,这会带来更高的回报。

在以下情况下,MCP 可能会成为您策略的一部分:

  • 您需要集中管理代理如何访问企业系统和服务,例如数据库 APIs、内部工具和第三方集成。

  • 开发人员花了太多时间编写跨实现不一致的自定义集成。

  • 您有可以提供常用功能的重复工具。

  • 您希望通过标准化、受管控的 MCP 接口向外部消费者或第三方代理系统提供您的专有工具或数据,在保持安全和控制的同时开启新的收入来源。

在您决定 MCP 服务器将成为您的策略的一部分之后,请评估现有的开源 MCP 服务器实现是否满足您的需求,它们是否需要增强,或者是否需要构建自定义服务器。公共存储库中提供了许多预构建的 MCP 服务器实现,它们涵盖了文件系统访问、Web 浏览、代码沙箱、数据库访问和 API 集成等常见功能。

在许多情况下,预先存在的 MCP 服务器就足够了。例如, AWS 提供托管的远程 MCP 服务器 AWS MCP 服务器,该服务器为 AI 助手和代理提供 AWS 服务 通过自然语言交互进行安全的、经过身份验证的访问权限。通过将实时访问 AWS 文档、语法正确的 API 调用和遵循最佳实践的名为 A gent 的预建工作流程结合起来,您可以使用来执行复杂 SOPs的多步骤 AWS 任务。 AWS MCP 服务器 AWS AWS 持续测试 AWS MCP 服务器 ,以确保客户代理可以成功使用它们。

您应该使用代理测试这些现有的 MCP 服务器,以确定它们是否满足您的用例。如果代理未能完成工作流程、生成不正确或次优的响应、无法浏览复杂的多步骤流程,或者错过了重要的特定领域最佳实践或安全注意事项,则应考虑在多个方面进行增强。

当现有的 MCP 服务器不能完全满足您的需求,并且它们难以正确使用现有工具或生成准确的响应时,请在构建自定义服务器之前考虑以下增强方法:

  • 丰富代理上下文 — 如果您的代理难以正确或高效地使用现有 MCP 服务器中的工具,请考虑使用其他文档或示例来补充这些工具定义。这有助于为法学硕士学位提供更多背景信息。

  • 添加补充工具-使用工具扩展现有的 MCP 服务器,这些工具可以访问代理成功完成工作流程所需的额外组织数据或上下文。

  • 改善底层 APIs — 通过降低参数复杂性、提供更清晰的错误消息以及提供代理可以使用的合理默认值来简化您的服务 APIs ,使其更友好 LLM。

虽然使用现有 MCP 服务器实现可以加快常用功能的开发,但当您的用例需要专门的功能时,构建自定义 MCP 服务器是必要的。自定义 MCP 服务器可帮助您封装领域专业知识,强制执行组织标准,提高复杂工作流程的代理可靠性,并支持对安全要求的合规性。在以下情况下,可以考虑构建自定义 MCP 服务器:

  • 特定领域的工作流程 — 如果 API 文档中未包含必要的知识,则需要领域专业知识的多步骤工作流程应封装在自定义 MCP 工具中。 例如,与其让代理人编排复杂的医疗数据管道,这些管道必须验证《健康保险流通与问责法》(HIPAA) 的合规性,匿名化个人身份信息并转换为 HL7 F HIR格式,不如提供一种直接嵌入领域专业知识的process_patient_data工具。这消除了对 LLM 的依赖,无法正确编排和运行工作流程步骤,从而提高了一致性和合规性。

  • 黄金路径抽象 — 代理可能难以实施最佳方法,因为他们缺乏组织背景,默认为基本模式而不是组织最佳实践。在这些场景中,您可以通过将这些黄金路径封装在自定义 MCP 工具中,来强制执行成本、性能或安全性的规范性标准。例如,与其让代理使用可能不安全或效率低下的默认设置部署基础架构,不如提供直接嵌入组织标准的deploy_secure_infrastructure工具。

  • 复杂的多服务编排 — 您可以在 MCP 工具中确定性地构建该逻辑,而不是通过尝试推断出要在每个步骤中使用的正确顺序和服务集来让代理编排复杂的工作流程。您可能还想提供有关代理可能没有意识到的最佳服务集成模式的专业知识。 这还可以提高代理的准确性和效率。

  • 特定于服务的最佳实践 — 这对于注重安全的工具来说很常见,这些工具可以帮助代理实施特定于通过代理工具访问的服务的加密策略、访问控制和合规模式。此外,如果存在不明显的特定于服务的操作最佳实践,则使用 MCP 服务器可以帮助您确保这些最佳实践得到实施,而不是让代理来推理。