项目简介
AgentGateway是一个专为Agentic AI优化的开源数据平面,旨在实现AI代理之间以及AI代理与工具之间的无缝连接。它提供即插即用的安全性、可观测性和治理功能,支持包括Model Context Protocol (MCP) 和Agent2Agent (A2A) 在内的领先互操作协议。AgentGateway能够将现有的Legacy API(如OpenAPI)转换为MCP资源,极大地扩展了AI代理可用的工具生态。
主要功能点
- 多协议支持: 原生支持Model Context Protocol (MCP) 和Agent2Agent (A2A) 等代理互操作协议。
- 高性能: 基于Rust语言开发,具备处理高并发和大规模请求的能力。
- 安全与治理: 内置强大的MCP/A2A权限管理系统(RBAC),为代理间通信和代理与工具通信提供安全保障和策略控制。
- API转换: 能够将现有非MCP协议的API(如OpenAPI)自动转换并暴露为MCP资源,方便LLM客户端调用。
- 动态配置: 支持通过xDS进行动态配置更新,无需停机。
- 灵活部署: 可以在从单机到大型多租户部署的各种环境中运行,与任何代理框架兼容。
- LLM上下文服务: 提供资源托管与数据访问、工具注册与执行、Prompt模板定义与渲染等核心MCP服务器功能。
安装步骤
AgentGateway提供了多种安装和部署方式。最常见的包括使用预编译二进制文件或从源代码构建。
-
下载最新版本: 访问AgentGateway的GitHub Release页面(https://github.com/agentgateway/agentgateway/releases),下载适用于您操作系统的最新稳定版二进制文件。
-
解压并运行: 将下载的压缩包解压,例如:
tar -xzf agentgateway-<version>-<os>-<arch>.tar.gz cd agentgateway-<version>-<os>-<arch>然后可以直接运行:
./agentgateway或者使用Docker运行(如果提供了官方镜像):
docker run -p 15000:15000 agentgateway/agentgateway:latest -
从源代码构建 (高级用户): 需要安装Rust环境。
git clone https://github.com/agentgateway/agentgateway.git cd agentgateway cargo build --release ./target/release/agentgateway
服务器配置
AgentGateway支持YAML或JSON格式的配置文件。MCP客户端需要配置与AgentGateway建立连接的服务器启动命令和参数。
以下是一个示例MCP服务器配置(JSON格式),您可以在MCP客户端中配置这些信息以连接AgentGateway:
{ "server_name": "AgentGatewayInstance", // 您为AgentGateway实例定义的可选名称 "command": "agentgateway", // 启动AgentGateway服务器的执行文件名称 "args": [ // 传递给AgentGateway服务器的参数 "-c", "config.yaml" // 使用 -c 参数指定配置文件路径 ], "config_file_content": { // 这是一个示例的config.yaml文件内容(YAML格式),实际配置应根据您的需求调整 "config": { "adminAddr": "127.0.0.1:15000", // 管理UI的监听地址 "statsAddr": "0.0.0.0:15020", // 统计/指标服务器的监听地址 "readinessAddr": "0.0.0.0:15021", // 健康检查服务器的监听地址 "enableIpv6": true, // 是否启用IPv6 "xdsAddress": "your-xds-server-address", // 可选:XDS服务器地址 "namespace": "default", // AgentGateway运行的命名空间 "gateway": "my-gateway", // 网关名称 "authToken": "/var/run/secrets/tokens/istio-token" // 认证令牌路径 }, "binds": [ { "port": 8080, // AgentGateway监听的端口 "listeners": [ { "name": "default-listener", "protocol": "HTTP", "routes": [ { "name": "default-route", "backends": [ { // 示例:配置一个MCP后端 "name": "my-mcp-backend", "mcp": { "statefulMode": "Stateful", // 或 "Stateless",指示会话模式 "targets": [ { "name": "upstream-mcp-service", "mcp": { "backend": { "service": "default/mcp-service:80", // 上游MCP服务的引用 "port": 80 }, "path": "/mcp" // MCP端点路径 }, "protocol": "STREAMABLE_HTTP" // 或 "SSE",MCP通信协议 } ] } }, { // 示例:配置一个AI后端(例如OpenAI兼容API) "name": "my-ai-backend", "ai": { "groups": [ { "providers": [ { "name": "openai-provider", "provider": { "openai": { "model": "gpt-3.5-turbo" } // AI提供商及其模型 }, "tokenize": true // 是否启用令牌化处理 } ] } ] } }, { // 示例:配置一个OpenAPI后端(将其转换为MCP工具) "name": "my-openapi-backend", "openapi": { "backend": { "host": "my-legacy-api.example.com:8081" // 传统API的地址 }, "schema": { "file": "/path/to/my/openapi.yaml" // OpenAPI规范文件路径 } } } ] } ] } ] } ] } }
基本使用方法
-
启动AgentGateway服务器: 根据安装步骤运行AgentGateway。确保您的配置文件(例如'config.yaml')已正确配置并指定了监听端口和后端服务。
-
配置MCP客户端: 在您的MCP客户端应用中,使用上述"服务器配置"部分提供的信息('command' 和 'args' 指向AgentGateway的可执行文件和配置文件)。例如,如果AgentGateway监听在 'http://localhost:8080/mcp',您的MCP客户端将通过此URI发送JSON-RPC请求。
-
LLM客户端交互:
- 获取工具列表: LLM客户端可以发送'tasks/listTools'请求,AgentGateway将聚合所有后端MCP服务器或通过OpenAPI转换的工具列表。
- 调用工具: LLM客户端可以发送'tasks/callTool'请求,AgentGateway会根据工具名称路由到正确的后端服务并执行。
- 读取资源: LLM客户端可以发送'resources/read'请求,访问AgentGateway暴露的MCP资源。
- Prompt模板: LLM客户端可以发送'prompts/get'或'prompts/list'请求,与AgentGateway托管的Prompt模板进行交互。
AgentGateway将作为您AI应用与各种AI工具和上下文服务之间的中央枢纽,提供统一的接入点和管理能力。
信息
分类
AI与计算