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