项目简介

'strands-agent-samples' 仓库提供了一系列示例,旨在展示如何构建和部署具备多模态理解能力的AI代理。它支持处理图像、文档和视频,并集成了持久化记忆、可观测性以及智能体间通信(A2A)等高级功能。仓库中包含了两个重要的MCP服务器实现:一个简单的计算器服务和一个员工信息查询服务,用于演示如何通过MCP协议向LLM代理提供定制化工具。

主要功能点

  • 多模态处理: 分析图像、文档和视频内容,实现跨媒体类型的信息关联。
  • 记忆与持久化: 支持FAISS和Amazon S3 Vectors等后端,实现跨会话和用户特定的信息存储与检索。
  • 可观测性与评估: 集成LangFuse进行追踪监控,使用RAGAS评估代理性能和质量。
  • 协议集成: 支持Model Context Protocol (MCP) 用于工具集成,以及Agent-to-Agent (A2A) 协议实现多代理协作。
  • AWS云集成: 与AWS Bedrock、S3、Lambda等服务无缝集成,支持云原生部署。
  • MCP服务器示例: 提供可运行的MCP服务器,如计算器服务和员工数据查询服务,向LLM客户端提供结构化功能。

安装步骤

  1. 克隆仓库:
    git clone https://github.com/elizabethfuentes12/strands-agent-samples
    # 进入 notebooks 目录,其中包含大部分示例和 MCP 服务器脚本
    cd strands-agent-samples/notebook
  2. 创建并激活Python虚拟环境:
    python -m venv .venv
    source .venv/bin/activate  # Windows用户请使用: .venv\Scripts\activate
  3. 安装项目依赖:
    pip install -r requirements.txt
  4. 配置AWS凭证: 确保您的AWS CLI已配置,并且您的AWS账户拥有访问Bedrock等服务的权限。
    aws configure
  5. 启动Jupyter Notebook (可选,用于探索示例):
    jupyter notebook
    您可以在Jupyter界面中打开对应的'.ipynb'文件,按照教程逐步学习和运行示例。

服务器配置

该仓库提供了一个MCP计算器服务器的实现 ('mcp_calulator.py')。MCP客户端在连接并可能需要启动此类服务器时,会用到以下配置信息:

{
  "server_name": "Calculator Server",
  "command": ["python", "mcp_calulator.py"],
  "args": [],
  "working_directory": "/path/to/strands-agent-samples/notebook",
  "connection_info": {
    "protocol": "streamable-http",
    "url": "http://localhost:8000/mcp/"
  }
}

配置信息注释:

  • 'server_name': MCP服务器的名称,用于标识服务。
  • 'command': 启动MCP服务器所执行的命令及其参数列表。在这里,它指示使用Python运行 'mcp_calulator.py' 脚本。
  • 'args': 传递给 'command' 的额外命令行参数。对于此服务器,当前没有额外的参数。
  • 'working_directory': 服务器启动时的工作目录。请替换为 'mcp_calulator.py' 脚本在您本地文件系统中的实际路径。
  • 'connection_info': 客户端连接服务器所需的详细信息。
    • 'protocol': MCP服务器使用的传输协议。此服务器使用 'streamable-http' 协议。
    • 'url': MCP服务器的基URL,客户端将通过此URL与服务器通信。

该仓库还包含一个员工信息查询的MCP服务器 ('notebook/strands-a2a-inter-agent/server.py'),其配置方式类似,但监听端口为8002。

基本使用方法

  • 运行MCP计算器服务器: 直接运行 'notebook/mcp_calulator.py' 文件将启动一个MCP计算器服务器,并同时启动一个Strands Agent客户端与之交互。

    python notebook/mcp_calulator.py

    在命令行提示符下,您可以输入类似“What is 15 plus 7?”或“Calculate 100 divided by 4.”的问题,代理将使用MCP服务器提供的工具进行计算并给出答案。

  • 运行A2A系统示例(包含员工信息MCP服务器): 运行 'notebook/run_a2a_system.py' 脚本会启动包括员工信息MCP服务器、员工代理和HR代理在内的整个多代理系统。

    python notebook/run_a2a_system.py

    这将显示每个服务的实时输出,演示多个代理和MCP服务器如何协同工作,例如HR代理可以向员工代理查询员工技能信息,员工代理再通过MCP服务器获取数据。

信息

分类

AI与计算