项目简介
'Agent Agency' 是一个智能、学习和自适应的多智能体编排平台,它利用Model Context Protocol (MCP) 来实现自主AI推理和评估。其中,MCP Arbiter观察器作为该平台的核心组件之一,允许LLM客户端通过标准化的JSON-RPC协议与Agent Agency的Arbiter协调器进行交互,以获取系统状态、调用管理工具和获取性能指标等。它将复杂的后端操作封装为LLM可调用的工具,为AI代理提供了统一的上下文和功能访问接口。
主要功能点
- 上下文服务: 以标准化的Model Context Protocol (MCP) 为LLM客户端提供会话管理和能力声明,并传递上下文信息。
- 工具调用: 注册并提供一系列“arbiter_”工具,允许LLM客户端调用外部功能,例如启动或停止Arbiter协调器、提交新任务、获取系统日志、查询性能度量等。
- 日志与度量: 提供接口以获取Arbiter系统的实时日志、链式思考(Chain-of-Thought)记录以及聚合的性能度量快照,帮助LLM更好地理解系统状态。
- 任务管理: 支持LLM客户端提交高层次的任务描述或管理命令,这些请求将由MCP服务器转发给Arbiter平台进行自主执行。
- 多传输协议支持: 通过标准输入输出(Stdio)等多种协议与MCP客户端进行通信。
安装步骤
在本地运行MCP Arbiter观察器服务器,请遵循以下步骤:
- 克隆仓库:
打开您的终端或命令行工具,执行以下命令克隆项目仓库:
git clone https://github.com/darianrosebrook/agent-agency.git - 进入项目目录:
cd agent-agency - 安装依赖:
使用npm安装项目所需的所有依赖:
npm install - 构建项目:
执行构建命令以编译TypeScript代码并生成可运行的JavaScript文件。这将创建 'dist' 目录,其中包含MCP服务器的入口文件:
npm run build
服务器配置
MCP Arbiter观察器服务器通过环境变量进行配置,客户端连接时需要了解其启动方式。以下是MCP客户端连接此服务器所需配置信息的示例及其参数说明:
'server_name': MCP服务器的唯一标识名称,此处为 "arbiter-observer"。 'command': 启动MCP服务器的执行命令,此处使用 'node'。 'args': 传递给启动命令的参数列表,指定MCP服务器的入口文件路径。 'env': 环境变量,用于配置服务器的行为。
- 'OBSERVER_URL': MCP服务器将连接的后端Arbiter观察器桥接的HTTP地址。默认值为 'http://127.0.0.1:4387'。
- 'OBSERVER_AUTH_TOKEN': 如果Arbiter观察器后端需要认证,此处可提供Bearer认证令牌(可选)。 'protocol': MCP服务器与客户端之间使用的通信协议,此处为标准输入输出(Stdio)。
基本使用方法
-
启动MCP Arbiter观察器服务器: 在项目根目录('agent-agency')下,执行以下命令启动MCP服务器:
node apps/mcp-arbiter-observer/index.js服务器将通过标准输入输出接口监听客户端连接并等待JSON-RPC请求。
-
连接MCP客户端: 使用支持Model Context Protocol (MCP) 的客户端(例如,一个LLM Agent框架)连接到此服务器。客户端需要配置为使用Stdio协议与服务器通信。
-
调用工具示例: 一旦客户端成功连接,它就可以发送JSON-RPC请求来调用MCP服务器注册的各种工具。
- 列出所有可用工具: 客户端可以发送 'mcp_listTools' 请求来获取服务器支持的所有工具的列表和详细描述:
{ "jsonrpc": "2.0", "id": 1, "method": "mcp_listTools" } - 调用 'arbiter_status' 工具: 客户端可以调用 'arbiter_status' 工具来获取Arbiter协调器的当前运行状态:
{ "jsonrpc": "2.0", "id": 2, "method": "mcp_callTool", "params": { "name": "arbiter_status", "arguments": {} } } - 提交任务: 客户端也可以调用 'arbiter_execute' 工具,向Arbiter平台提交一个任务描述进行自主执行:
{ "jsonrpc": "2.0", "id": 3, "method": "mcp_callTool", "params": { "name": "arbiter_execute", "arguments": { "description": "分析并优化数据库查询性能", "metadata": { "priority": "high", "team": "backend" } } } }
MCP服务器会处理这些请求,并返回相应的JSON-RPC响应,其中包含工具执行的结果或错误信息。
- 列出所有可用工具: 客户端可以发送 'mcp_listTools' 请求来获取服务器支持的所有工具的列表和详细描述:
信息
分类
AI与计算