项目简介

'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观察器服务器,请遵循以下步骤:

  1. 克隆仓库: 打开您的终端或命令行工具,执行以下命令克隆项目仓库:
    git clone https://github.com/darianrosebrook/agent-agency.git
  2. 进入项目目录:
    cd agent-agency
  3. 安装依赖: 使用npm安装项目所需的所有依赖:
    npm install
  4. 构建项目: 执行构建命令以编译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)。

基本使用方法

  1. 启动MCP Arbiter观察器服务器: 在项目根目录('agent-agency')下,执行以下命令启动MCP服务器:

    node apps/mcp-arbiter-observer/index.js

    服务器将通过标准输入输出接口监听客户端连接并等待JSON-RPC请求。

  2. 连接MCP客户端: 使用支持Model Context Protocol (MCP) 的客户端(例如,一个LLM Agent框架)连接到此服务器。客户端需要配置为使用Stdio协议与服务器通信。

  3. 调用工具示例: 一旦客户端成功连接,它就可以发送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响应,其中包含工具执行的结果或错误信息。

信息

分类

AI与计算