使用说明
项目简介
Redpanda Agent Runtime 是一个用于构建和部署AI Agent的框架,它不仅提供了一个Agent运行时的gRPC服务器,允许客户端通过gRPC协议调用Agent执行任务,还能作为Model Context Protocol (MCP) 的客户端,集成外部MCP服务器提供的工具和服务,从而增强Agent的能力。该项目旨在简化企业级Agent的开发和部署流程,提供更好的开发者体验。
主要功能点
- Agent 运行时托管: 提供gRPC服务器,用于托管和运行AI Agent。
- gRPC 接口: 通过 gRPC 协议提供 'InvokeAgent' 接口,允许客户端调用 Agent 执行任务。
- MCP 客户端集成: 可以作为 MCP 客户端,与外部 MCP 服务器集成,发现和调用 MCP 服务器提供的工具。
- 工具扩展: Agent 可以使用本地定义的工具,也可以通过 MCP 协议动态发现和使用远程 MCP 服务器提供的工具,实现工具能力的扩展。
- 灵活的 Agent 定义: 支持使用 Python 代码定义 Agent,包括模型选择、指令、工具配置等。
- 多种 MCP 传输协议支持: 作为 MCP 客户端,支持 Stdio, SSE, WebSocket 等多种 MCP 服务器连接方式。
安装步骤
- 克隆仓库:
git clone https://github.com/redpanda-data/agent.git cd agent - 安装依赖:
pip install .
服务器配置
MCP客户端配置 (集成外部MCP服务器)
虽然该仓库主要实现的是 Agent Runtime 服务器,但它也具备 MCP 客户端能力,可以连接并使用外部 MCP 服务器的工具。以下是一个 MCP 客户端连接外部 MCP 服务器的配置示例 (JSON 格式,用于配置客户端程序,不是配置 'redpanda-data/agent' 仓库本身,因为该仓库是 服务器 端实现):
{ "servers": [ { "serverName": "ExternalMCPServer", "transport": "stdio", "command": "your-external-mcp-server-command", // 外部MCP服务器的启动命令,例如: "mcp-server" "args": ["--config", "config.yaml"], // 外部MCP服务器的启动参数,例如: ["--port", "8080"] "cwd": "/path/to/external/mcp/server" // 外部MCP服务器的工作目录 (可选) }, { "serverName": "AnotherMCPServer", "transport": "sse", "url": "http://external-mcp-server.com:8080/sse" // SSE MCP服务器的URL } // ... 更多 MCP 服务器配置 ] }
注意: 以上 JSON 配置是假设您正在开发一个 MCP 客户端程序,并希望连接到外部 MCP 服务器来使用工具。 'redpanda-data/agent' 仓库本身提供的 'redpanda.runtime.serve(agent)' 函数启动的是 Agent Runtime 服务器,它 作为服务器 运行,并 作为客户端 连接外部 MCP 服务器。 您无需配置 'redpanda-data/agent' 仓库作为 MCP 服务器的启动命令和参数,因为该仓库本身就是服务器实现。
Agent Runtime 服务器配置 (运行 'redpanda-data/agent' 提供的服务器)
要运行 'redpanda-data/agent' 提供的 Agent Runtime 服务器,您需要创建一个 Agent 实例,并使用 'redpanda.runtime.serve(agent)' 函数启动服务器。 例如,您可以参考 'examples/weather_agent_repl/agents/weather.py' 文件。
'examples/weather_agent_repl/agents/weather.py' 示例配置 (无需额外配置,直接运行即可):
该示例 'weather.py' 文件已经包含了启动 Agent Runtime 服务器的代码,您只需运行该文件即可启动服务器:
cd examples/weather_agent_repl/agents python weather.py
运行 'weather.py' 后,Agent Runtime 服务器将会在 '127.0.0.1:动态端口' 启动,并通过标准输出打印 gRPC 服务器的地址信息,例如: '1|1|tcp|127.0.0.1:34567|grpc'。 MCP 客户端 需要解析这个输出,获取服务器地址和端口,才能与 Agent Runtime 服务器建立 gRPC 连接并调用 'InvokeAgent' 接口。
基本使用方法 (调用 Agent Runtime 服务器的 gRPC 接口)
- 启动 Agent Runtime 服务器: 运行 'examples/weather_agent_repl/agents/weather.py' 或您自定义的 Agent 启动脚本。
- 解析服务器地址: 从 Agent Runtime 服务器的标准输出中获取 gRPC 服务器的地址和端口 (例如: '127.0.0.1:34567')。
- 使用 gRPC 客户端: 使用 gRPC 客户端 (例如 Python gRPC 客户端) 连接到 Agent Runtime 服务器的地址和端口。
- 调用 'InvokeAgent' 接口: 使用 gRPC 客户端调用 'Runtime' 服务的 'InvokeAgent' 接口,发送请求消息 'InvokeAgentRequest',其中包含要 Agent 处理的输入信息 (例如文本消息)。
- 接收响应: 接收服务器返回的响应消息 'InvokeAgentResponse',其中包含 Agent 的输出结果。
示例 Python gRPC 客户端代码 (简略示例,仅供参考,需要安装 'grpcio' 和 'protobuf'):
import grpc from redpanda.runtime.proto import runtime_pb2 from redpanda.runtime.proto import runtime_pb2_grpc def invoke_agent(server_address, message_payload): with grpc.insecure_channel(server_address) as channel: stub = runtime_pb2_grpc.RuntimeStub(channel) request = runtime_pb2.InvokeAgentRequest( message=runtime_pb2.Message(serialized=message_payload.encode('utf-8')) ) response = stub.InvokeAgent(request) return response.message.serialized.decode('utf-8') if __name__ == '__main__': server_address = "127.0.0.1:34567" # 替换为实际的服务器地址和端口 message_payload = "What is the weather in San Francisco?" response_output = invoke_agent(server_address, message_payload) print(f"Agent Response: {response_output}")
注意: 以上 gRPC 客户端代码仅为示例,实际使用中需要根据 'redpanda/runtime/proto/runtime.proto' 文件定义的消息格式进行更详细的请求构造和响应解析。
信息
分类
AI与计算