MCP多代理编排框架
Claude Code的生产就绪多代理编排框架,通过模型上下文协议(MCP)演示了高级委托模式、严格的访问控制和协调的工具使用。
🎯 概述
此存储库实现了 委托优先编排架构 其中,轻量级编排器代理将任务路由到专门的子代理,每个子代理都具有精确范围的权限。该框架通过MCP网关严格分离关注点,确保每个工具调用都得到正确的归因和审核。
🏗️ 建筑
核心组件
- 编排器代理 (
CLAUDE.md)
- 轻量级协调器(约2K个令牌,而完整工具上下文为50K+) - 将请求发送给适当的专业代理 - 无法直接访问MCP工具(由网关强制执行) - 完全访问内存以存储决策和结果
- MCP网关 (
agent-mcp-gateway)
- 中央访问控制层 - 强制每个代理的权限 - 为所有工具使用情况提供审计跟踪 - 通过配置 .mcp-gateway-rules.json
- 专业代理 (
.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📦 设置
先决条件
- 克劳德代码 已安装并配置
- MCP服务器 您想使用(示例
.mcp.json.example):
- MariaDB、Serena、Context7、Unblocked、Atlassian、Grafana等。
- 代理mcp网关 已安装并配置
安装
- 克隆此存储库:
git clone https://github.com/AerionDyseti/mcp-orchestrator-example.git
cd mcp-orchestrator-example- 配置MCP服务器:
cp .mcp.json.example .mcp.json
# Edit .mcp.json with your server configurations- 安装并配置网关:
# Follow instructions in GATEWAY_SETUP.md
claude mcp add agent-mcp-gateway uvx agent-mcp-gateway- 链路网关规则:
# 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- 验证设置:
- 在此目录中启动Claude Code
- 编排器应自动从以下位置加载
CLAUDE.md - 测试:“有哪些代理可用?”
🔧 定制
添加新代理
- 创建代理定义:
touch .claude/agents/my-agent.md- 定义代理结构:
---
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...- 添加网关权限:
编辑 .mcp-gateway-rules.json:
"my-agent": {
"allow": {
"servers": ["server1", "server2"],
"tools": {
"server1": ["tool1", "tool2"],
"server2": ["*"]
}
}
}- 更新编排器:
增添 CLAUDE.md 在代理列表部分
添加新的MCP服务器
- 将服务器配置添加到
.mcp.json - 更新中的相关代理权限
.mcp-gateway-rules.json - 根据需要授予特定代理访问权限
📊 性能优势
| 度量 | 单片 | 编排 | 改进 |
|---|---|---|---|
| 编排器上下文 | ~50K令牌 | ~2K令牌 | 减少96% |
| 工具发现时间 | 加载所有工具 | 只需要加载 | 更快的启动 |
| 权限检查 | 运行时 | 网关已强制执行 | 快速失败 |
| 审计跟踪 | 手动 | 自动 | 100%覆盖率 |
🛡️ 安全特性
- 零信任模型:编排器没有工具访问权限
- 最小权限原则:代理获得所需的最小权限
- 故障安全默认值:默认情况下拒绝未知代理
- 只读选项:许多代理具有只读数据库/监视访问权限
- 审计执行:每个动作都可以追溯到特定的代理人
📚 文档
- CLAUDE.md -编排器配置和委派策略
- 网关_设置.md -详细的网关安装说明
- 用户指南.md -如何使用编排系统
- .claude/代理人/ -个人代理定义
- .claude/工作流/ -常见的工作流程模式
🔮 未来的增强功能
第二阶段(计划中)
- 从以下位置自动发现代理
.claude/agents/ - 无需重新启动即可进行动态权限更新
- 代理使用情况的度量仪表板
- 自动委托建议
第三阶段(概念)
- 代理间通信协议
- 并行代理执行模式
- 代理能力协商
- 自我修复的代表团链
🤝 贡献
该框架旨在扩展。主要贡献领域:
- 新的专业代理商 -特定领域专家
- 工作流模式 -常见的多智能体序列
- 网关功能 -增强的访问控制模式
- 记忆策略 -更好的知识管理
📄 许可证
这是一个示例实现,演示了Claude Code中的MCP编排模式。根据您的用例需要进行调整和扩展。
🙏 致谢
构建使用:
- 克劳德代码 -AI编码助手
- 模型上下文协议(MCP) -工具集成协议
- 代理mcp网关 -访问控制层
______________________________________________________________________
关键见解: 力量不在于编排者能做什么,而在于它能做什么 *不能* 通过从编排器中删除直接的工具访问,我们创建了一个比传统单片方法更安全、更高效、更易于维护的系统。
