辩论代理MCP
实验性:该项目正在积极开发中。API和功能可能会更改,恕不另行通知。在生产环境中使用,风险自负。
多智能体辩论框架 代码审查 和 辩论策划 严重程度评分为P0/P1/P2。
架构概述
┌─────────────────────────────────────────────────────────────────────────────┐
│ DEBATE AGENT MCP │
│ │
│ ┌───────────────────────────────────────────────────────────────────────┐ │
│ │ MCP SERVER LAYER │ │
│ │ (Model Context Protocol) │ │
│ │ │ │
│ │ Exposes tools via stdio to Claude Code / AI assistants: │ │
│ │ • list_agents • read_diff • run_agent │ │
│ │ • debate_review • debate_plan │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────────────────────┐ │
│ │ ORCHESTRATOR LAYER │ │
│ │ (@debate-agent/core) │ │
│ │ │ │
│ │ Pipeline: │ │
│ │ 1. Read git diff ──► 2. Run agents in parallel (Promise.all) │ │
│ │ 3. Critique round ──► 4. Deterministic scoring ──► 5. Merge │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────────────────┘ │
│ │ │
│ ┌───────────────┴───────────────┐ │
│ ▼ ▼ │
│ ┌──────────────────────────┐ ┌──────────────────────────┐ │
│ │ Claude CLI │ │ Codex CLI │ │
│ │ /opt/homebrew/bin/claude│ │ /opt/homebrew/bin/codex │ │
│ │ │ │ │ │
│ │ spawn() as subprocess │ │ spawn() as subprocess │ │
│ │ Uses YOUR credentials │ │ Uses YOUR credentials │ │
│ └──────────────────────────┘ └──────────────────────────┘ │
│ │ │ │
│ ▼ ▼ │
│ Anthropic API OpenAI API │
│ (auth via local CLI) (auth via local CLI) │
│ │
└─────────────────────────────────────────────────────────────────────────────┘运作原理
不要求进行验证
MCP本身需要 没有API密钥或身份验证。它协调本地安装的CLI工具:
┌─────────────────────────────────────────────────────────────────┐
│ YOUR MACHINE │
│ │
│ ~/.claude/credentials ──► claude CLI ──► Anthropic API │
│ ~/.codex/credentials ──► codex CLI ──► OpenAI API │
│ │
│ The MCP just runs: spawn("claude", ["--print", prompt]) │
│ Same as typing in your terminal! │
│ │
└─────────────────────────────────────────────────────────────────┘执行流程
Step 1: Build Prompt
├── Combine review question + git diff + platform rules
├── Add P0/P1/P2 severity definitions
└── Request JSON output format
Step 2: Parallel Execution
├── spawn("/opt/homebrew/bin/claude", ["--print", prompt])
├── spawn("/opt/homebrew/bin/codex", ["exec", prompt])
└── Both run simultaneously via Promise.all()
Step 3: Capture Output
├── Read stdout from each CLI process
└── Parse JSON responses
Step 4: Deterministic Scoring (No AI)
├── Count P0/P1/P2 findings
├── Check file accuracy against diff
├── Penalize false positives
└── Score clarity and fix quality
Step 5: Merge & Report
├── Pick winner by highest score
├── Combine unique findings from all agents
└── Generate final recommendation360辩论功能(v2.0)
360辩论功能提供 多轮次交叉评审 具有信心评分功能。它支持两种模式:
| 模式 | 描述 | 输出 |
|---|---|---|
| 审查 | P0/P1/P2代码审查结果 | .debate/review-TIMESTAMP.md |
| 计划 | 达成共识的实施计划 | .debate/plan-TIMESTAMP.md |
360辩论管道
Round 1: Initial Review (Parallel)
┌─────────┐ ┌─────────┐
│ Claude │ │ Codex │
│ Review │ │ Review │
└────┬────┘ └────┬────┘
│ │
▼ ▼
Round 2: 360 Cross-Review (Each agent reviews ALL others)
┌─────────────────────────────────────────┐
│ Claude reviews Codex's findings │
│ Codex reviews Claude's findings │
│ "Is P0 about null pointer valid?" │
│ "Did Codex miss the SQL injection?" │
└─────────────────────────────────────────┘
│
▼
Confidence Check: >= 80%?
│
├── No ──► Repeat (max 3 rounds)
│
▼ Yes
Winner Composition
┌─────────────────────────────────────────┐
│ Highest scoring agent composes final │
│ Merge valid findings, eliminate dupes │
│ Document elimination reasons │
└─────────────────────────────────────────┘
│
▼
Validation Phase
┌─────────────────────────────────────────┐
│ Other agents vote: approve/reject │
│ Majority approval required │
│ Winner breaks ties │
└─────────────────────────────────────────┘
│
▼
Final Report: .debate/review-*.md or .debate/plan-*.md审核模式示例
// Run 360 code review
const result = await runDebate360({
question: 'Review this code for security issues',
mode: 'review', // P0/P1/P2 severity scoring
agents: ['claude', 'codex'],
platform: 'backend',
maxRounds: 3,
confidenceThreshold: 80,
});
// Output: .debate/review-2025-01-20T10-30-00.md
console.log(result.finalFindings); // Validated P0/P1/P2 findings计划模式示例
// Run 360 implementation planning
const result = await runDebate360({
question: 'Plan how to add user authentication',
mode: 'plan', // Consensus-based, no severity
agents: ['claude', 'codex'],
maxRounds: 3,
confidenceThreshold: 80,
});
// Output: .debate/plan-2025-01-20T10-30-00.md
console.log(result.finalPlan); // Validated implementation steps模式比较
| 方面 | 审核模式 | 计划模式 |
|---|---|---|
| 目的 | 发现漏洞、安全问题 | 计划实施方法 |
| 评分 | P0/P1/P2严重程度(最高134分) | 清晰度+共识(0-100) |
| 输出 | 调查结果及修复建议 | 分阶段实施步骤 |
| 赢家 | 最高严重性评分 | 最高共识+清晰度 |
| 最终结果 | 合并P0/P1/P2调查结果 | 合并实施计划 |
| MD文件 | review-TIMESTAMP.md | plan-TIMESTAMP.md |
360辩论的好处:
- 消除幻觉发现(经多种药物验证)
- 发现遗漏的问题(一个代理发现了另一个代理遗漏的问题)
- 建立信心评分(80%的门槛确保达成一致)
- 减少误报(对抗性审查会发现不正确的评估)
- 综合报告
.debate/目录
______________________________________________________________________
包裹
| 软件包 | 说明 | 安装 |
|---|---|---|
@debate-agent/core | 核心逻辑(框架无关) | npm i @debate-agent/core |
@debate-agent/mcp-server | 面向CLI用户的MCP服务器 | npm i -g @debate-agent/mcp-server |
debate-agent-mcp | VS代码扩展 | 从市场安装 |
快速开始
先决条件
您必须安装并验证代理CLI:
# Check Claude CLI
claude --version
claude auth status # Should show logged in
# Check Codex CLI
codex --version
# Should be authenticated via OpenAI
# The MCP will spawn these - no additional auth needed对于CLI用户
# Install globally
npm install -g @debate-agent/mcp-server
# Start MCP server
debate-agent
# Or run directly
npx @debate-agent/mcp-server克劳德代码
# Add MCP to Claude Code
claude mcp add debate-reviewer -- node /path/to/packages/mcp-server/dist/index.js
# Verify connection
claude mcp list
# Should show: debate-reviewer: ✓ Connected面向SDK用户
npm install @debate-agent/coreimport { runDebate, createDebatePlan } from '@debate-agent/core';
// Run code review debate
const result = await runDebate({
question: 'Review this code for security issues',
agents: ['codex', 'claude'],
platform: 'backend',
});
// Create debate plan
const plan = createDebatePlan('Best caching strategy', ['codex', 'claude'], 'collaborative', 2);MCP工具
| 工具 | 说明 |
|---|---|
list_agents | 列出所有已配置的代理 |
read_diff | 读取未提交的git diff |
run_agent | 使用提示运行单个代理 |
debate_review | 多代理P0/P1/P2代码审查(单轮) |
debate_plan | 制定结构化的辩论计划 |
debate_360 | 360多轮辩论模式: review (P0/P1/P2)或 plan (协商一致) |
配置
创建 debate-agent.config.json 在项目根目录中:
{
"agents": {
"codex": {
"name": "codex",
"path": "/opt/homebrew/bin/codex",
"args": ["exec", "--skip-git-repo-check"],
"timeout_seconds": 180
},
"claude": {
"name": "claude",
"path": "/opt/homebrew/bin/claude",
"args": ["--print", "--dangerously-skip-permissions"],
"timeout_seconds": 180
},
"gemini": {
"name": "gemini",
"path": "/opt/homebrew/bin/gemini",
"args": ["--prompt"],
"timeout_seconds": 180
}
},
"debate": {
"default_agents": ["codex", "claude"],
"include_critique_round": true,
"default_mode": "adversarial"
}
}严重级别
| 级别 | 标准 |
|---|---|
| P0 | 破坏性缺陷、崩溃、数据丢失、安全/隐私问题、构建拦截器 |
| 第1页 | 可能的错误/回归、不正确的逻辑、缺少错误处理、缺少测试 |
| 第2页 | 轻微的正确性问题、小逻辑差距、非阻塞测试差距 |
定义见: packages/core/src/prompts/review-template.ts
平台特定规则
| 平台 | 重点领域 |
|---|---|
| 飘动 | 异步误用、setState、dispose()、异步构建上下文、Riverpod泄漏 |
| 安卓 | 清单、权限、ProGuard、生命周期违规、上下文泄漏 |
| iOS | plist、ATS、钥匙链、签名、主线程UI、保留周期 |
| 后端 | DTO不匹配、HTTP代码、SQL注入、身份验证缺陷、速率限制 |
| 通用 | 空指针、资源泄漏、竞争条件、XSS、输入验证 |
定义见: packages/core/src/prompts/platform-rules.ts
评分系统
得分是 确定性的 (无人工智能)-纯基于规则的评估:
| 标准 | 分数 | 最大值 |
|---|---|---|
| P0发现 | +15 | 45 |
| P1查找结果 | +8 | 32 |
| P2查找结果 | +3 | 12 |
| 假阳性 | -10 | -30 |
| 混凝土固定 | +5 | 25 |
| 文件准确性 | +2 | 10 |
| 清晰度 | 0-10 | 10 |
最高可能得分: 134 最低可能得分: -30
定义见: packages/core/src/engine/judge.ts
辩论模式
| 模式 | 描述 |
|---|---|
| 对抗的 | 特工们互相挑战对方的立场 |
| 共识 | 特工们努力寻找共同点 |
| 协作的 | 代理人建立在彼此的想法之上 |
项目结构
debate-agent-mcp/
├── packages/
│ ├── core/ # @debate-agent/core
│ │ ├── src/
│ │ │ ├── engine/
│ │ │ │ ├── debate.ts # Orchestration (parallel execution)
│ │ │ │ ├── judge.ts # Deterministic scoring rules
│ │ │ │ ├── merger.ts # Combine findings from agents
│ │ │ │ └── planner.ts # Debate plan generation
│ │ │ ├── prompts/
│ │ │ │ ├── review-template.ts # P0/P1/P2 definitions
│ │ │ │ └── platform-rules.ts # Platform-specific scrutiny
│ │ │ ├── tools/
│ │ │ │ ├── read-diff.ts # Git diff reader
│ │ │ │ └── run-agent.ts # CLI spawner (spawn())
│ │ │ ├── config.ts # Config loader
│ │ │ ├── types.ts # TypeScript types
│ │ │ └── index.ts # Public exports
│ │ └── package.json
│ │
│ ├── mcp-server/ # @debate-agent/mcp-server
│ │ ├── src/
│ │ │ ├── index.ts # MCP server (stdio transport)
│ │ │ └── bin/cli.ts # CLI entry point
│ │ └── package.json
│ │
│ └── vscode-extension/ # debate-agent-mcp (VS Code)
│ ├── src/
│ │ └── extension.ts
│ └── package.json
│
├── debate-agent.config.json # Example config
├── package.json # Monorepo root
├── pnpm-workspace.yaml
└── README.md整合
克劳德桌面版
{
"mcpServers": {
"debate-agent": {
"command": "node",
"args": ["/path/to/packages/mcp-server/dist/index.js"]
}
}
}Claude CLI
claude mcp add debate-agent -- node /path/to/packages/mcp-server/dist/index.jsVS代码/光标
安装VS Code扩展-它会自动配置MCP。
发展
# Clone repo
git clone https://github.com/ferdiangunawan/debate-agent-mcp
cd debate-agent-mcp
# Install dependencies
npm install
# Build all packages
npm run build
# Build specific package
npm run build:core
npm run build:server
npm run build:extension已知限制
- 实验性:API可能会更改,恕不另行通知
- 需要本地CLIs:你一定有
claude和codexCLIs已安装并经过身份验证 - 超时风险:长差异可能会导致代理超时(默认180秒)
- 无流媒体:当前在处理之前等待完整响应
- 最少2名代理人:360度辩论需要至少2名代理人进行交叉审查
贡献
欢迎投稿!请先打开一个问题来讨论拟议的更改。
许可证
麻省理工学院
