多代理委员会
一个MCP(模型上下文协议)服务器,通过实时可视化仪表板协调多个LLM(GPT、Gemini、Claude)之间的AI辩论。内置为插件 克劳德代码,充当“顾问委员会”,在编写代码之前对决策进行辩论。
它的作用
该工具不依赖于单个人工智能的意见,而是通过Perplexity Pro同时通过多个模型路由问题,收集他们的回答,并促进他们之间的结构化P2P辩论。克劳德充当协调者——它召集理事会,阅读辩论,并做出最终决定。
核心功能
- P2P辩论 --GPT和Gemini并行响应(第1轮),然后对彼此的论点做出反应(第2+轮)。克劳德综合了一个判决。
- 代码审查 --这两个模型同时审查代码,标记错误/安全/风格问题。如果严重性评估出现分歧,第二轮将自动迫使他们和解。
- 持久性内存 --SQLite支持的内存,具有FTS5全文搜索功能。当相关话题再次出现时,会自动回忆起过去的辩论和决定。
- 实时仪表盘 --一个基于浏览器的会议室(SSE供电)显示思维指标、反应、投票和判决。支持多个房间进行并行会话。
- 会话隔离 --每个Claude Code窗口都有自己的房间(从项目目录+PID派生),因此多个项目可以同时运行委员会。
- 维护模式 --锁定机制可防止在编辑委员会文件时并发会话发生冲突。
建筑
Claude Code (CLI)
|
| stdio (MCP protocol)
v
server.py (MCP Server - FastMCP)
|
|--- perplexity.py (Playwright browser → Perplexity Pro SSE API)
|--- memory.py (SQLite + FTS5 for debate history)
|--- room_server.py (FastAPI + SSE → real-time dashboard)
|
v
static/room.html (browser dashboard)它如何查询模型
关键技巧:它不是为每个模型支付API密钥,而是使用 剧作家 以维护登录到Perplexity Pro的持久Chromium会话。查询通过以下方式发送 fetch() 直接在浏览器上下文中,点击Perplexity的内部SSE端点。这就可以访问GPT-5.4、Gemini 3.1 Pro、Claude Sonnet 4.6、Nemotron和Sonar——所有这些都可以通过一个Perplexity Pro订阅来实现。
跨进程文件锁可防止多个Claude Code窗口在同一浏览器实例上竞争。
可用的MCP工具
| 工具 | 说明 |
|---|---|
convocar_conselho() | 打开会议室并启动服务器 |
ask_model(question, model) | 查询特定型号(双子座、gpt、声纳、nemotron、最佳) |
debate(topic, rounds) | 具有自动判决的代理之间的P2P辩论 |
code_review(code, context, file_path) | 并行代码审查与严重性协调 |
vote(agent, decision, reason) | 注册批准/拒绝 |
broadcast_action(message) | 显示克劳德在仪表板上做什么 |
remember(decision, topic) | 将决策保存到持久内存中 |
recall_memory(topic) | 搜索过去的辩论和决定 |
get_report() | 获取完整的会话记录 |
finish_task(summary) | 关闭会话 |
set_maintenance(on) | 锁定/解锁文件编辑 |
list_models() | 显示可用型号 |
设置
需求
- Python 3.11+
- Perplexity Pro订阅(适用于多型号访问)
- 克劳德代码CLI
安装
# Clone
git clone https://github.com/gabrielcnb/multi-agent-council.git
cd multi-agent-council
# Install dependencies
pip install -r requirements.txt
# Install Playwright Chromium
playwright install chromium或者跑 setup.bat 在Windows上。
配置Claude代码
添加到您的 ~/.claude/.mcp.json:
{
"mcpServers": {
"multi-agent": {
"command": "python",
"args": ["/path/to/multi-agent-council/server.py"]
}
}
}首次运行
- 重新启动Claude Code以加载MCP服务器
- 请克劳德
convocar_conselho()--浏览器窗口将打开 - 在该浏览器窗口中登录Perplexity Pro
- 关闭浏览器--会话配置文件保存在
./profile/ - 未来的查询将自动重用已保存的会话
仪表盘
会议室是一个实时SSE仪表板,位于 http://127.0.0.1:8765。它显示:
- 左侧面板:克劳德的行为(它在做什么)
- 中心:代理人的回应、辩论和判决
- 右侧面板:投票日志(批准/拒绝)
- 底部钢筋:会话信息和房间ID
房间在2小时不活动后会自动清理。
记忆是如何工作的
该委员会通过FTS5全文搜索通过SQLite记住过去的辩论:
- 会话:主题、文字记录、裁决、共识标志
- 决策:已批准的带有归因的选项
- 汽车召回:当一场新的辩论开始时,相关的过去会议会被注入到代理提示中
这意味着随着时间的推移,理事会会变得更聪明——过去的决定为未来的辩论提供了信息。
许可证
麻省理工学院
