📋 项目概述
🎯 目标
构建一个基于 Hermes Agent 的 AI 辩论系统,能够:
- 🤖 进行 AI vs AI 自动辩论
- 👤 支持与人类进行辩论
- 📊 可视化论证结构和辩论过程
- 🏆 自动评估辩论质量并给出裁决
✨ 技术特点
多代理协作
- Hermes Agent 多实例
- 正方/反方/裁判三角色
- 自主辩论流程
证据检索
- Web Search API
- 自动证据匹配
- 来源可信度评估
可视化展示
- D3.js / Cytoscape.js
- 论证关系图
- 实时辩论展示
📚 研究背景
1️⃣ 里程碑项目:IBM Project Debater (2019-2024)
历史地位: 首个能与人类进行实时辩论的 AI 系统
关键事件
- 📅 2019 年 2 月:与世界辩论冠军 Harish Natarajan 公开辩论
- 📅 2021 年 3 月:开放 12 个云 API 供学术使用
- 📅 2024 年:服务停止,数据集仍可用
核心技术流程
论证挖掘 → 论点构建 → 证据检索 → 叙事生成 → 语音合成
重要资源
2️⃣ 开源论证挖掘框架 (2024-2025)
| 框架 |
特点 |
安装 |
| oAMF |
17+ 模块,支持 AIF/xAIF 格式 |
pip install oamf |
| AMF |
模块化论证挖掘工具包 |
pip install argument-mining-framework |
| MAMKit |
多模态论证挖掘 (PyTorch) |
pip install mamkit |
| WIBA |
LLM 基于的综合论证挖掘 API |
Web API |
| ArgLib |
论证图推理 Python 库 |
pip install arglib |
3️⃣ 多代理辩论系统 (LLM-based)
| 项目 |
核心方法 |
Stars |
年份 |
| MAD |
天使 vs 魔鬼辩论框架 |
⭐551 |
2023 |
| llm_multiagent_debate |
ICML 2024,提高事实性 |
⭐517 |
2023 |
| argue |
TypeScript 多代理共识引擎 |
⭐109 |
2026 |
| llm_debate |
UCL,说服力导致真实性 |
⭐129 |
2024 |
| ARGUS |
研究辩论链 + 贝叶斯推理 |
⭐5 |
2026 |
关键论文
🏗️ 系统架构
整体架构图
┌─────────────────────────────────────────────────────────┐
│ Hermes AI Debater │
├─────────────────────────────────────────────────────────┤
│ ┌──────────────┐ ┌──────────────┐ ┌────────────┐│
│ │ 正方代理 │ │ 反方代理 │ │ 裁判代理 ││
│ │ (Hermes 实例)│ │ (Hermes 实例)│ │(Hermes 实例)││
│ └──────────────┘ └──────────────┘ └────────────┘│
│ ↓ ↓ ↓ │
│ └────────────────────┼───────────────────┘ │
│ ↓ │
│ ┌──────────────────────────┐ │
│ │ 辩论协调器 (Coordinator) │ │
│ │ - 管理辩论状态 │ │
│ │ - 控制回合流程 │ │
│ │ - 记录辩论历史 │ │
│ └──────────────────────────┘ │
│ ↓ │
│ ┌────────────────────┼───────────────────┐ │
│ ↓ ↓ ↓ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 论证挖掘模块 │ │ 证据检索 │ │ 质量评估 │ │
│ │ (ArgLib) │ │ (web_search)│ │ (LLM 评分) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
数据流
用户输入辩题
↓
创建 DebateSession
↓
┌─────────────────────────────────┐
│ Round 1 │
├─────────────────────────────────┤
│ 1. 正方开场陈述 → 解析论点 │
│ 2. 反方开场陈述 → 解析论点 │
│ 3. 证据检索 (Web Search) │
│ 4. 论证质量评估 │
│ 5. 裁判评估回合表现 │
└─────────────────────────────────┘
↓
┌─────────────────────────────────┐
│ Round 2-N │
├─────────────────────────────────┤
│ 1. 正方反驳 → 解析新论点 │
│ 2. 反方反驳 → 解析新论点 │
│ 3. 证据检索与验证 │
│ 4. 论证图更新 │
│ 5. 裁判评估回合表现 │
└─────────────────────────────────┘
↓
最终裁决
↓
生成辩论报告 + 可视化
⚡ 核心功能
1️⃣ 辩论引擎 (DebateEngine)
核心类
DebateConfig: 辩论配置
DebateSession: 辩论会话
DebateRound: 辩论回合
Argument: 论证单元
ArgumentGraph: 论证图
主要方法
engine = DebateEngine(config)
session = engine.start_debate()
# 生成开场陈述
prompt = engine.generate_opening_statement(DebateRole.PRO)
# 生成反驳
prompt = engine.generate_rebuttal(DebateRole.CON, opponent_args)
# 生成裁判反馈
prompt = engine.generate_judge_feedback(round_data)
# 生成最终裁决
prompt = engine.generate_final_verdict()
2️⃣ 论证挖掘模块
集成方案
# 方案 A: 使用 ArgLib
from arglib.core import ArgumentGraph
from arglib.reasoning import compute_credibility
graph = ArgumentGraph.new(title="辩论论证图")
claim = graph.add_claim("人工智能利大于弊", type="opinion")
evidence = graph.add_claim("AI 提高生产效率", type="fact")
graph.add_support(evidence, claim)
credibility = compute_credibility(graph)
3️⃣ 多代理协调器
| 角色 |
职责 |
Prompt 特点 |
| 正方 |
支持辩题,构建论证 |
强调逻辑性、证据充分 |
| 反方 |
反对辩题,提出反驳 |
强调批判性思维、找漏洞 |
| 裁判 |
评估双方表现 |
强调公正、客观、全面 |
4️⃣ 论证可视化
论证图结构
{
"arguments": {
"arg1": {
"id": "arg1",
"content": "人工智能提高生产效率",
"stance": "support",
"quality_score": 0.85,
"evidence": ["研究数据", "案例"]
}
},
"supports": { "arg1": ["arg2"] },
"attacks": { "arg3": ["arg1"] },
"credibility_scores": { "arg1": 0.78 }
}
可视化库选择
| 库 |
特点 |
适用场景 |
| D3.js |
灵活强大,学习曲线陡 |
高度定制 |
| Cytoscape.js |
专注图论可视化 |
论证图 |
| Vis.js |
简单易用 |
快速原型 |
💻 技术实现
项目结构
hermes-ai-debater/
├── src/
│ ├── debate_engine.py # 核心辩论引擎
│ ├── argument_mining.py # 论证挖掘模块
│ ├── multi_agent.py # 多代理协调器
│ ├── evidence_retrieval.py # 证据检索模块
│ └── argument_graph.py # 论证图可视化
├── static/
│ ├── index.html # 主页面
│ ├── css/
│ │ └── style.css # 样式表
│ └── js/
│ ├── app.js # 前端逻辑
│ └── visualization.js # 论证可视化
├── tests/
│ ├── test_debate_engine.py
│ └── test_argument_mining.py
├── requirements.txt
├── wrangler.toml # Cloudflare 配置
└── README.md
核心代码示例
1. 辩论引擎初始化
from debate_engine import DebateEngine, DebateConfig, DebateRole
config = DebateConfig(
topic="人工智能对社会发展利大于弊",
max_rounds=3,
enable_argument_mining=True,
enable_web_search=True
)
engine = DebateEngine(config)
session = engine.start_debate()
2. 运行一轮辩论
def run_round(engine, round_num):
round_data = DebateRound(round_number=round_num)
# 正方开场
pro_prompt = engine.generate_opening_statement(DebateRole.PRO)
pro_response = call_hermes(pro_prompt)
pro_args = engine.parse_arguments(pro_response, ArgumentStance.SUPPORT)
round_data.pro_arguments = pro_args
# 反方开场
con_prompt = engine.generate_opening_statement(DebateRole.CON)
con_response = call_hermes(con_prompt)
con_args = engine.parse_arguments(con_response, ArgumentStance.OPPOSE)
round_data.con_arguments = con_args
# 证据检索
if engine.config.enable_web_search:
evidence = search_web(engine.config.topic)
for arg in pro_args + con_args:
arg.sources = evidence.get(arg.content, [])
# 论证质量评估
for arg in pro_args + con_args:
arg.quality_score = evaluate_argument_quality(arg)
engine.add_round(round_data)
return round_data
📖 使用指南
1️⃣ 安装依赖
cd ~/hermes-ai-debater
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
2️⃣ 配置 Hermes Agent
# 检查 Hermes 是否可用
hermes --version
# 配置 API 密钥 (如果需要)
echo "LLM_API_KEY=your_key" >> ~/.hermes/.env
3️⃣ 运行辩论引擎
from src.debate_engine import DebateEngine, DebateConfig
config = DebateConfig(
topic="人工智能是否应该被严格监管",
max_rounds=3
)
engine = DebateEngine(config)
session = engine.start_debate()
print(f"辩论开始:{session.config.topic}")
print(f"会话 ID: {session.id}")
4️⃣ 实施路线图
✓
阶段 1: 核心功能 - 辩论引擎实现
◐
阶段 2: 多代理协调器
○
阶段 3: 论证挖掘集成
○
阶段 4: Web 界面开发
○
阶段 5: Cloudflare Pages 部署
🚀 部署方案
Cloudflare Pages 部署
1. Wrangler 配置
# wrangler.toml
name = "hermes-ai-debater"
compatibility_date = "2024-01-01"
pages_build_output_dir = "./static"
[vars]
HERMES_API_URL = "https://your-hermes-api.com"
2. 部署命令
# 安装 Wrangler (如果尚未安装)
npm install -g wrangler
# 登录 Cloudflare
wrangler login
# 部署
wrangler pages deploy ./static --project-name=hermes-ai-debater
3. 使用 Hermes 技能部署
# 使用 cloudflare-pages-macos-deployment 技能
hermes skills cloudflare-pages-macos-deployment
# 然后执行部署
API 接口设计
| 方法 |
端点 |
描述 |
POST |
/api/debate/start |
创建辩论会话 |
GET |
/api/debate/:id |
获取会话状态 |
GET |
/api/debate/:id/round/:n |
获取指定回合数据 |
POST |
/api/debate/:id/next |
进行下一回合 |
GET |
/api/debate/:id/summary |
获取辩论摘要 |