基于LLM的多Agent进化与对抗实验平台。
pip install -r requirements.txt在启动前设置环境变量(密钥不要提交到 Git):
PowerShell(当前会话):
$env:LLM_API_KEY = "你的密钥"
# 可选:自定义兼容 OpenAI 的网关地址
$env:LLM_API_BASE = "http://你的网关:端口"Linux / macOS:
export LLM_API_KEY="你的密钥"
export LLM_API_BASE="http://你的网关:端口" # 可选未设置 LLM_API_BASE 时,config/config.py 会使用内置默认网关地址。其余模型名、温度等仍在 LLM_CONFIG 中调整。
# 默认配置:10个Agent,100轮
python main.py
# 自定义参数
python main.py --num-agents 20 --max-rounds 200
# 从检查点恢复
python main.py --checkpoint data/checkpoint_round_50.jsonagent_envolution/
├── config/
│ └── config.py # 配置文件
├── core/
│ ├── agent.py # Agent基类
│ ├── task_pool.py # 任务池
│ ├── llm_client.py # LLM客户端
│ ├── evolution_engine.py # 进化引擎
│ └── scheduler.py # 调度器
├── data/ # 数据目录(自动创建)
├── logs/ # 日志目录(自动创建)
├── main.py # 主入口
└── requirements.txt # 依赖包
- Agent从任务池获取任务
- 使用LLM生成解决方案
- 根据结果获得奖励/惩罚
- 变异: 修改Agent的prompt策略
- 交叉: 融合两个优秀Agent的特征
- 选择: 基于适应度选择父代
- 攻击: 高分Agent可攻击其他Agent
- 防御: 被攻击时有概率防御成功
- 淘汰: 低分Agent被淘汰出局
在 config/config.py 中可调整:
EXPERIMENT_CONFIG: 实验基础参数TASK_CONFIG: 任务池配置EVOLUTION_CONFIG: 进化参数ATTACK_CONFIG: 对抗参数LLM_CONFIG: LLM配置
logs/rounds.jsonl: 每轮详细记录logs/agents.jsonl: Agent状态快照
data/checkpoint_round_N.json: 定期保存data/final_checkpoint.json: 最终状态
--num-agents N 初始Agent数量 (默认: 10)
--max-rounds N 最大轮次 (默认: 100)
--data-dir PATH 数据目录 (默认: data)
--log-dir PATH 日志目录 (默认: logs)
--checkpoint FILE 从检查点恢复
--save-interval N 检查点保存间隔 (默认: 10)
- API费用: 实验会产生大量API调用,请注意费用控制
- 运行时间: 100轮实验预计需要数小时
- 中断恢复: 支持Ctrl+C中断,会自动保存检查点
MIT License