🎯 实时监控多个 Agent 的运行状态、会话管理、任务派发和定时任务。
Agent Arena 是基于 OpenClaw 的多 Agent 管理系统。OpenClaw 是一个开源的 Agent 编排框架,支持:
- 多 Agent 协作 - 多个 Agent 可以相互配合完成复杂任务
- 会话管理 - 自动记录 Agent 之间的对话历史
- 定时任务 - 支持 cron 表达式和时间间隔的定时任务
- 实时监控 - 监控 Agent 运行状态和 Token 使用量
本项目作为 OpenClaw 的可视化控制台,提供实时分数排名、任务派发、日志查看等功能。
基于 OpenClaw 的 Agent 对战模块,可以选择两个不同的 Agent 进行互动:
- 辩论模式 - 两个 Agent 就某个主题展开辩论,正方陈述观点,反方反驳
- 合作模式 - 两个 Agent 合作解决一个问题,各自贡献想法
- 问答模式 - 一个 Agent 提问,另一个 Agent 回答
对战过程中会累积对话历史,让 Agent 能够看到对方之前的回复,实现真正的多轮互动。
- 📊 实时分数 - 基于 token 使用量和活跃会话计算分数
- 💬 会话管理 - 查看每个 Agent 的会话列表和详情
- 📝 任务派发 - 向指定 Agent 派发任务
- ⏰ 定时任务 - 管理 cron 任务(查看、启用、暂停、删除、编辑)
- 📜 日志查看 - 查看 Agent 后台日志
- ⚔️ Agent Battle - 两个 Agent 相互对战/讨论/问答
cd server
node index.js| 接口 | 方法 | 说明 |
|---|---|---|
/api/status |
GET | 获取所有 Agent 状态 |
/api/refresh-scores |
GET | 强制刷新分数 |
/api/send-task/:agentId |
GET | 派发任务 |
/api/tasks/:agentId |
GET | 获取任务列表 |
/api/cron-jobs |
GET | 获取定时任务列表 |
/api/cron-toggle/:id?enable=true |
POST | 启用/暂停定时任务 |
/api/cron-delete/:id |
POST | 删除定时任务 |
/api/agent-sessions/:agentId |
GET | 获取会话列表 |
/api/session-detail/:key |
GET | 获取会话详情 |
/api/gateway-log?agent=xxx |
GET | 获取日志 |
/api/battle |
POST | 创建对战 |
/api/battles |
GET | 获取对战列表 |
/api/battle/:id |
GET | 获取对战详情 |
/api/battle/:id/stop |
POST | 停止对战 |
agent-arena/
├── public/ # 前端页面
│ ├── index.html
│ ├── styles.css
│ └── src/
│ ├── app.js # 前端逻辑
│ └── render.js # 渲染函数
├── server/ # 后端服务
│ ├── index.js # 入口
│ ├── config.js # 配置
│ ├── api/ # API 路由
│ │ └── routes.js
│ ├── services/ # 业务服务
│ │ ├── scores.js # 分数计算
│ │ ├── tasks.js # 任务管理
│ │ ├── cron.js # 定时任务
│ │ └── battle.js # Agent 对战
│ └── utils/ # 工具函数
│ ├── paths.js # 路径配置
│ ├── validation.js # 输入验证
│ └── errors.js # 错误处理
├── scripts/ # 脚本
│ └── collector.sh
└── tasks/ # 任务数据
- ✅ 不可变性 - 不改变现有对象
- ✅ 文件组织 - 多个小文件,高内聚低耦合
- ✅ 错误处理 - 全面的错误处理和日志
- ✅ 输入验证 - 系统边界处验证
- ✅ 安全检查 - 无硬编码密钥
Agent Arena Team