项目简介

CLI Agent Orchestrator (CAO) 是一个分层多代理编排系统,旨在简化和管理在Tmux终端中运行的多个AI代理会话。它通过实现Model Context Protocol (MCP) 服务器,使得LLM客户端能够调用预定义的工具来协调不同代理之间的任务,从而实现复杂的任务分解和协作。CAO支持分层编排、会话隔离、智能任务委托和灵活的工作流模式。

主要功能点

  • 分层编排: 监督代理负责协调整个工作流,并将任务委托给专注于特定领域的专业工作代理。
  • 会话隔离: 每个AI代理都在独立的Tmux会话中运行,通过CAO提供的MCP服务器进行通信,确保上下文分离并支持并行处理。
  • 智能任务委托: CAO根据任务要求、代理专业领域和工作流依赖,自动将任务分配给最合适的代理,支持“移交”(同步任务)、“分配”(异步任务)和“发送消息”(直接通信)三种编排模式。
  • 灵活工作流模式: 支持任务的顺序协调和并行处理,优化开发速度和质量。
  • 流程 - 定时运行: 允许用户使用cron表达式调度代理会话,自动执行常规任务和监控工作流。
  • 上下文保存: 监督代理只向工作代理提供必需的上下文信息,避免无关干扰,同时保持工作流的连贯性。
  • 直接交互和引导: 用户可以直接与工作代理进行互动,提供实时指导和修正。

安装步骤

在开始之前,请确保你的系统已安装 'tmux'。

  1. 安装tmux (版本3.3或更高):
    bash <(curl -s https://raw.githubusercontent.com/awslabs/cli-agent-orchestrator/refs/heads/main/tmux-install.sh)
  2. 安装uv (Python包管理器):
    curl -LsSf https://astral.sh/uv/install.sh | sh
  3. 安装CLI Agent Orchestrator:
    uv tool install git+https://github.com/awslabs/cli-agent-orchestrator.git@main --upgrade

MCP服务器配置

CAO项目内部提供了一个MCP服务器实现,该服务器暴露了用于代理间协作的工具,如 'handoff'、'assign' 和 'send_message'。LLM客户端(例如Amazon Q Developer for CLI 或 Claude Code)需要配置才能连接到这个MCP服务器。

这个MCP服务器通常作为LLM客户端的一个子进程通过标准输入输出(stdio)协议运行。以下是一个MCP客户端配置其MCP服务器连接的示例(以JSON格式呈现):

{
  "mcpServers": {
    "cao-orchestrator-mcp": {
      "type": "stdio",
      "command": "python",
      "args": ["-m", "cli_agent_orchestrator.mcp_server.server"],
      "env": {
        "CAO_TERMINAL_ID": "${CAO_TERMINAL_ID}"
      }
    }
  }
}
  • 'cao-orchestrator-mcp': 这是在MCP客户端配置中为该服务器分配的唯一名称。
  • 'type': 'stdio' 指示客户端通过标准输入输出通道与MCP服务器通信。
  • 'command': 'python' 是启动MCP服务器进程的命令。
  • 'args': '["-m", "cli_agent_orchestrator.mcp_server.server"]' 是传递给 'command' 的参数,用于以Python模块形式运行CAO提供的MCP服务器代码。
  • 'env': '{"CAO_TERMINAL_ID": "${CAO_TERMINAL_ID}"}' 配置了一个环境变量,它将当前LLM客户端所在的终端ID动态传递给MCP服务器实例,以便服务器能够识别和管理特定的代理会话。

通过以上配置,LLM客户端能够发现并调用 'cao-orchestrator-mcp' 服务器提供的工具。

基本使用方法

  1. 启动CAO主服务器 (REST API): 在一个终端中运行,这将启动CAO的主要REST API服务,负责管理会话、终端和消息队列。

    cao-server
  2. 安装内置代理: 在另一个终端中,安装一些内置的代理配置文件,例如:

    cao install code_supervisor
    cao install developer
    cao install reviewer
  3. 启动一个带代理配置的终端: 在另一个终端中运行,这将创建一个新的Tmux会话,并在其中启动一个配置了 'code_supervisor' 代理的终端。该代理将通过其配置连接到CAO提供的MCP服务器。

    cao launch --agents code_supervisor
  4. 与Tmux会话交互: 所有代理会话都在Tmux中运行。你可以使用以下Tmux命令进行管理:

    • 列出所有会话: 'tmux list-sessions'
    • 附加到特定会话: 'tmux attach -t <session-name>'
    • 从会话中分离 (在Tmux内部操作): 按 'Ctrl+b',然后按 'd'
  5. 关闭会话: 当不再需要代理会话时,可以关闭它们:

    • 关闭所有CAO会话: 'cao shutdown --all'
    • 关闭特定会话: 'cao shutdown --session cao-my-session'

信息

分类

AI与计算