使用说明

项目简介

AnyAgent 是一个用于简化和统一使用多种 Agent 框架(如 LangChain, LlamaIndex, OpenAI Agents, Smolagents)的 Python 库。它允许开发者更轻松地切换或组合不同的 Agent 框架,而无需深入了解底层 API 的差异。

AnyAgent 强调对 Model Context Protocol (MCP) 服务器 的支持,允许 Agent 通过标准化的 MCP 协议安全、可扩展地访问外部资源和工具,从而增强 LLM 应用的功能和上下文感知能力。

主要功能点

  • Agent 框架抽象: 提供统一的接口来创建和运行多种 Agent 框架,降低框架切换和学习成本。
  • MCP 服务器集成: 支持通过 MCP 服务器接入外部工具和资源,扩展 Agent 的能力边界。
  • 工具管理: 允许配置和加载各种工具,包括本地工具和 MCP 服务器提供的工具。
  • 灵活配置: 通过 AgentConfig 对象进行配置,支持模型选择、工具加载、指令设定等。
  • Tracing: 集成 OpenTelemetry tracing,方便监控和调试 Agent 的运行过程。

安装步骤

  1. 确保已安装 Python 环境。
  2. 安装 'any-agent' 库:
    pip install any-agent
  3. 根据需要,安装特定 Agent 框架的依赖,例如使用 LangChain Agent 需要安装 'langchain' 和 'langgraph',使用 OpenAI Agents 需要安装 'openai-agents',使用 Smolagents 需要安装 'smolagents',使用 LlamaIndex 需要安装 'llama-index'。
    pip install langchain langgraph openai-agents smolagents llama-index
  4. 如果需要使用 MCP 服务器功能,还需要安装 'mcp' 库:
    pip install mcp

服务器配置 (MCP Server)

AnyAgent 本身不是 MCP 服务器,而是一个 MCP 客户端库,用于连接和使用外部 MCP 服务器提供的功能。你需要部署独立的 MCP 服务器,并在 AnyAgent 中配置连接信息。

以下是一个 MCP 服务器配置示例,用于告知 MCP 客户端如何启动一个基于 Docker 的文件系统 MCP 服务器。这个配置应该提供给 MCP 客户端(例如,AnyAgent),而不是 MCP 服务器本身。

{
  "serverName": "filesystem-mcp-server",
  "command": "docker",
  "args": [
    "run",
    "-i",
    "--rm",
    "--mount",
    "type=bind,src=/local/path/to/your/projects,dst=/projects",
    "mcp/filesystem",
    "/projects"
  ],
  "description": "文件系统 MCP 服务器,允许 Agent 访问和操作指定目录下的文件。",
  "parameters": {
    "mount_source": "/local/path/to/your/projects",
    "container_image": "mcp/filesystem",
    "container_mount_path": "/projects"
  },
  "tools": ["list_files", "read_file", "write_file", "delete_file", "make_directory", "move_file"]
}

参数注释:

  • 'serverName': MCP 服务器的名称,用于在客户端配置中标识服务器。例如 "filesystem-mcp-server"。
  • 'command': 启动 MCP 服务器的命令。例如 "docker"。
  • 'args': 启动命令的参数列表,用于配置服务器的运行方式。
    • 'run -i --rm': Docker 运行参数,'-i' 保持 STDIN 打开,'--rm' 容器退出后自动删除。
    • '--mount type=bind,src=/local/path/to/your/projects,dst=/projects': Docker 挂载参数,将本地 '/local/path/to/your/projects' 目录挂载到容器内的 '/projects' 目录。请将 '/local/path/to/your/projects' 替换为你实际希望共享的本地目录。
    • 'mcp/filesystem': Docker 镜像名称,表示使用文件系统 MCP 服务器镜像。
    • '/projects': 文件系统 MCP 服务器的根目录参数,表示容器内 '/projects' 目录作为文件操作的根目录。
  • 'description': 对 MCP 服务器的描述,方便用户理解其用途。
  • 'parameters': 服务器的详细参数,供参考,MCP 客户端通常不需要直接解析这些参数,这里仅为信息展示。
    • 'mount_source': 本地挂载源路径。
    • 'container_image': Docker 镜像名称。
    • 'container_mount_path': 容器内挂载点路径。
  • 'tools': 该 MCP 服务器提供的工具列表,例如文件系统服务器提供的文件操作工具。

重要提示:

  • 上述 '服务器配置' 描述的是如何启动一个 独立的 MCP 文件系统服务器,而不是 AnyAgent 本身。
  • 你需要根据实际使用的 MCP 服务器类型(例如文件系统、数据库或其他服务)配置 'command' 和 'args'。
  • AnyAgent 作为 MCP 客户端,会在其 Agent 配置中引用这些 MCP 服务器配置信息,以便 Agent 可以调用 MCP 服务器提供的工具。

基本使用方法

以下代码示例展示了如何使用 AnyAgent 创建一个 Agent,并配置使用 MCP 服务器提供的工具:

from any_agent import AgentConfig, AgentFramework, AnyAgent, MCPTool

# 定义 MCP 工具配置,指定启动 MCP 服务器的命令和参数
mcp_filesystem_tool = MCPTool(
    command="docker",
    args=[
        "run",
        "-i",
        "--rm",
        "--mount",
        "type=bind,src=/local/path/to/your/projects,dst=/projects", # 请替换为本地目录
        "mcp/filesystem",
        "/projects"
    ],
    tools=["write_file", "read_file"] # 指定要使用的 MCP 服务器工具,可选
)

# 创建 Agent 配置,指定模型和工具,包括 MCP 工具
agent_config = AgentConfig(
    model_id="gpt-4o-mini",
    tools=[
        "any_agent.tools.search_web",  # 本地 Web 搜索工具
        mcp_filesystem_tool             # MCP 文件系统工具
    ]
)

# 选择 Agent 框架 (例如 OpenAI Agents)
agent_framework = AgentFramework.OPENAI

# 创建 Agent 实例
agent = AnyAgent.create(agent_framework, agent_config)

# 运行 Agent
result = agent.run("请使用文件系统工具在 /projects/test.txt 文件中写入 'Hello MCP!'")
print(f"Agent 执行结果: {result}")

使用步骤:

  1. 定义 MCP 工具配置: 创建 'MCPTool' 对象,配置 'command' 和 'args' 以启动你的 MCP 服务器。
  2. 配置 Agent: 创建 'AgentConfig' 对象,在 'tools' 列表中包含本地工具和 'MCPTool' 对象。
  3. 选择 Agent 框架: 指定要使用的 Agent 框架,例如 'AgentFramework.OPENAI'。
  4. 创建和运行 Agent: 使用 'AnyAgent.create()' 创建 Agent 实例,并调用 'agent.run()' 执行 Agent 任务。

注意:

  • 你需要确保 Docker 环境已安装并配置正确,以便运行示例中的 Docker 命令启动 MCP 文件系统服务器。
  • 将 '/local/path/to/your/projects' 替换为你希望 Agent 访问的本地目录。
  • 根据实际使用的 MCP 服务器和 Agent 框架调整配置。

通过 AnyAgent,你可以方便地将 MCP 服务器提供的能力集成到各种 Agent 框架中,构建功能强大的 LLM 应用。

信息

分类

开发者工具