mcp-agent是一个使用模型上下文协议构建代理的简单、可组合的框架。
灵感:Anthropic 为 AI 应用程序开发人员宣布了两项基础更新:
mcp-agent将这两个基础部分放入 AI 应用框架中:
- 它负责管理 MCP 服务器连接生命周期的繁琐工作,这样您就不必再处理了。
- 它实现了“构建有效代理”中描述的每个模式,并且以可组合的方式实现,允许您将这些模式链接在一起。
- 奖励:它以与模型无关的方式实现了OpenAI 的 Swarm模式,用于多智能体编排。
总而言之,这是构建强大代理应用程序最简单、最轻松的方法。与 MCP 非常相似,该项目处于早期开发阶段。我们欢迎各种贡献、反馈和帮助,以将其发展为新标准。
为什么要使用mcp-agent?
目前已经有太多的 AI 框架了。但是,它是唯一一个专门为共享协议( MCP)mcp-agent构建的框架。它也是最轻量的,并且更接近于代理模式库而不是框架。
随着越来越多的服务变得能够感知 MCP,您可以使用 mcp-agent 构建强大且可控的 AI 代理,以便开箱即用地利用这些服务。
示例
在我们深入探讨 mcp-agent 的核心概念之前,让我们先展示一下您可以用它构建什么。
简而言之,您可以使用 mcp-agent 构建任何类型的 AI 应用程序:多智能体协作工作流、人机协作工作流、RAG 管道等。
以下是 mcp-agent 框架的组成部分:
- MCPApp:全局状态和应用程序配置
- MCP 服务器管理:gen_client并MCPConnectionManager轻松连接到 MCP 服务器。
- 代理:代理是可以访问一组 MCP 服务器并将其作为工具调用公开给 LLM 的实体。它具有名称和目的(指令)。
- AugmentedLLM:使用 MCP 服务器集合提供的工具增强的 LLM。下面描述的每个工作流模式都是一个AugmentedLLM自身,允许您将它们组合并链接在一起。
工作流程
mcp-agent 为 Anthropic 的Building Effective Agents中的每个模式以及 OpenAI Swarm模式提供实现。每个模式都与模型无关,并以 的形式公开AugmentedLLM,使所有内容都具有高度可组合性。
AugmentedLLM是一种可以访问 MCP 服务器并通过代理运行的 LLM。
LLM 提供程序实现 AugmentedLLM 接口以公开 3 个功能:
- generate:根据提示生成消息,可能经过多次迭代并根据需要进行工具调用。
- generate_str:调用generate并以字符串输出形式返回结果。
- generate_structured:使用Instructor将生成的结果作为 Pydantic 模型返回。
此外,AugmentedLLM还具有记忆功能,可以追踪长期或短期历史记录。
可组合性
可组合性的一个例子是使用评估器-优化器工作流作为[url=https://github.com/lastmile-ai/mcp-agent?tab=readme-ov-file#orchestrator-workers]Orchestrator[/url]工作流中的规划器 LLM 。生成高质量的执行计划对于稳健的行为非常重要,而评估器-优化器可以帮助确保这一点。
在 mcp-agent 中这样做是无缝的,因为每个工作流程都作为AugmentedLLM.
信号和人工输入
信号:框架可以暂停/恢复任务。代理或 LLM 可能会“发出信号”表示需要用户输入,因此工作流程正在等待。开发人员可以在工作流程期间发出信号以寻求批准或审查,然后再继续工作流程。
人工输入:如果代理具有human_input_callback,则 LLM 可以调用human_input工具来在工作流中期请求用户输入。
持久服务器连接
在许多情况下,您希望 MCP 服务器保持在线状态以供持续使用(例如,在多步骤工具使用工作流程中)。