多代理编排框架

一个生产就绪的多代理编排框架,用于Claude Code,展示高级委托模式、严格的访问控制和通过模型上下文协议(MCP)协调工具使用。

  • by aeriondyseti
  • 本地部署
  • 更新于
在 GitHub 查看 AerionDyseti/mcp-orchestrator-example

使用说明

MCP多代理编排框架

Claude Code的生产就绪多代理编排框架,通过模型上下文协议(MCP)演示了高级委托模式、严格的访问控制和协调的工具使用。

🎯 概述

此存储库实现了 委托优先编排架构 其中,轻量级编排器代理将任务路由到专门的子代理,每个子代理都具有精确范围的权限。该框架通过MCP网关严格分离关注点,确保每个工具调用都得到正确的归因和审核。

🏗️ 建筑

核心组件

  1. 编排器代理 (CLAUDE.md)

    • 轻量级协调器(约2K个令牌,而完整工具上下文为50K+)
    • 将请求发送给适当的专业代理
    • 无法直接访问MCP工具(由网关强制执行)
    • 完全访问内存以存储决策和结果
  2. MCP网关 (agent-mcp-gateway)

    • 中央访问控制层
    • 强制每个代理的权限
    • 为所有工具使用情况提供审计跟踪
    • 通过配置 .mcp-gateway-rules.json
  3. 专业代理 (.claude/agents/)

    • 具有特定权限的领域专家
    • 每个代理都有一个唯一的 agent_id 用于网关访问
    • 优化的上下文加载(仅相关工具)

🤖 可用代理

核心专家

代理 目的 MCP访问 用例
项目经理 项目协调 Atlassian、解锁、内存(有限) Jira票证、Confluence文档、项目上下文
开发者 代码分析和修改 Serena、Context7、顺序思维、记忆 代码重构、符号分析、库研究
数据库管理员 数据库操作 MariaDB(只读) 模式检查、数据查询、分析
监测专家 系统可观察性 Grafana(只读) 仪表板、指标、日志、警报
测试工程师 测试自动化 测试自动化,MariaDB(有限) 自动化测试,集成测试,测试数据
技术作家 文档 文件操作,Context7,未锁定 创建/编辑文档,维护标准
研究人员 信息收集 Context7,未锁定,内存(只读) 库文档,最佳实践,历史上下文

公用事业代理

代理 目的 MCP访问 何时使用
全栈的 多域任务 所有服务器(有安全限制) 跨多个域的复杂任务
超级管理员 ⚠️ 无限制访问 所有服务器上的所有工具 最后手段-将日志记录为策略失败

🚀 这表明了什么

1. 代表团作为一流模式

  • 编排者不能直接调用MCP工具-必须委派
  • 每次工具调用都归因于特定的代理
  • 由于网关架构,违规是不可能的

2. 上下文效率

  • 编排器加载最少的上下文(约2K个令牌)
  • 专业代理只加载他们所需的工具
  • 与单片方法相比,令牌使用量大幅减少

3. 细粒度访问控制

  • 每个代理、每个服务器、每个工具权限
  • 允许/拒绝具有模式匹配的规则
  • 只读与读写的区别

4. 审计与责任

  • 每次MCP呼叫都包括 agent_id
  • 谁做了什么的完全可追溯性
  • 超级管理员使用情况被跟踪为架构故障

5. 记忆作为共享知识

  • Orchestrator具有完全内存访问权限(读/写)
  • 所有代理都具有只读内存访问权限
  • 决策和结果的单一真相来源

6. 安全多工具协调

Example Flow:
1. User: "Analyze database performance and create a report"
2. Orchestrator: Routes to database-admin for queries
3. Orchestrator: Routes to monitoring-specialist for metrics
4. Orchestrator: Routes to technical-writer for documentation
5. Orchestrator: Stores outcomes in memory

📦 设置

先决条件

  1. 克劳德代码 已安装并配置
  2. MCP服务器 您想使用(示例 .mcp.json.example):
    • MariaDB、Serena、Context7、Unblocked、Atlassian、Grafana等。
  3. 代理mcp网关 已安装并配置

安装

  1. 克隆此存储库:
git clone https://github.com/AerionDyseti/mcp-orchestrator-example.git
cd mcp-orchestrator-example
  1. 配置MCP服务器:
cp .mcp.json.example .mcp.json
# Edit .mcp.json with your server configurations
  1. 安装并配置网关:
# Follow instructions in GATEWAY_SETUP.md
claude mcp add agent-mcp-gateway uvx agent-mcp-gateway
  1. 链路网关规则:
# The gateway needs access to the rules file
# Configure MCP_GATEWAY_RULES_FILE environment variable
export MCP_GATEWAY_RULES_FILE=/path/to/this/repo/.mcp-gateway-rules.json
  1. 验证设置:
  • 在此目录中启动Claude Code
  • 编排器应自动从以下位置加载 CLAUDE.md
  • 测试:“有哪些代理可用?”

🔧 定制

添加新代理

  1. 创建代理定义:
touch .claude/agents/my-agent.md
  1. 定义代理结构:
---
name: my-agent
description: What this agent does
tools: List, Of, Tool, Names, mcp__agent-mcp-gateway__*
model: haiku  # or sonnet/opus
---

Agent instructions here...
  1. 添加网关权限: 编辑 .mcp-gateway-rules.json:
"my-agent": {
  "allow": {
    "servers": ["server1", "server2"],
    "tools": {
      "server1": ["tool1", "tool2"],
      "server2": ["*"]
    }
  }
}
  1. 更新编排器: 增添 CLAUDE.md 在代理列表部分

添加新的MCP服务器

  1. 将服务器配置添加到 .mcp.json
  2. 更新中的相关代理权限 .mcp-gateway-rules.json
  3. 根据需要授予特定代理访问权限

📊 性能优势

度量 单片 编排 改进
编排器上下文 ~50K令牌 ~2K令牌 减少96%
工具发现时间 加载所有工具 只需要加载 更快的启动
权限检查 运行时 网关已强制执行 快速失败
审计跟踪 手动 自动 100%覆盖率

🛡️ 安全特性

  • 零信任模型:编排器没有工具访问权限
  • 最小权限原则:代理获得所需的最小权限
  • 故障安全默认值:默认情况下拒绝未知代理
  • 只读选项:许多代理具有只读数据库/监视访问权限
  • 审计执行:每个动作都可以追溯到特定的代理人

📚 文档

🔮 未来的增强功能

第二阶段(计划中)

  • 从以下位置自动发现代理 .claude/agents/
  • 无需重新启动即可进行动态权限更新
  • 代理使用情况的度量仪表板
  • 自动委托建议

第三阶段(概念)

  • 代理间通信协议
  • 并行代理执行模式
  • 代理能力协商
  • 自我修复的代表团链

🤝 贡献

该框架旨在扩展。主要贡献领域:

  1. 新的专业代理商 -特定领域专家
  2. 工作流模式 -常见的多智能体序列
  3. 网关功能 -增强的访问控制模式
  4. 记忆策略 -更好的知识管理

📄 许可证

这是一个示例实现,演示了Claude Code中的MCP编排模式。根据您的用例需要进行调整和扩展。

🙏 致谢

构建使用:


关键见解: 力量不在于编排者能做什么,而在于它能做什么 不能 通过从编排器中删除直接的工具访问,我们创建了一个比传统单片方法更安全、更高效、更易于维护的系统。