ChatArena
用于构建、运行和评估多智能体语言游戏的 Python 框架。
- Star 数
- ★ 1.6k
- 最近更新
- 1 年前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 32/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台OpenAI API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 多智能体研究人员需要在同一回合制框架中测试 LLM 的沟通、协作或社会互动行为。
- 不适合
- 需要持续维护和上游支持的团队,项目已于2025年8月11日停止维护
- 希望开箱即用全部后端和环境的用户,Anthropic、Cohere、Hugging Face、PettingZoo 需额外安装
- 不愿依赖 OpenAI API 密钥或承担调用费用的团队
这个 Agent 能做什么,适合哪些场景?
ChatArena 是一个面向大型语言模型多智能体交互研究的 Python 库,围绕语言游戏环境组织智能体协作与对话。其核心由 Arena、Environment、Language Backend 和 Player 构成:Arena 管理主循环、配置加载、数据存储及 Web UI/CLI 等人机交互入口。Environment 保存游戏状态、执行状态转换,并向玩家渲染自然语言观察;Player 将观察映射为动作,默认会调用语言后端生成回应。仓库提供 Conversation、Moderator Conversation、Chameleon,以及基于 PettingZoo 的国际象棋和井字棋环境,并附带 JSON 示例配置。项目已于 2025 年 8 月 11 日宣布弃用,不再计划提供更新或支持,因此更适合复现、实验和二次维护,而非依赖持续维护的生产基础设施。
使用者可通过 Arena.from_config("examples/nlp-classroom-3players.json") 从 JSON 配置创建 Arena,再以 arena.run(num_steps=10) 推进游戏。Arena 在主循环中协调多个 Player 与一个 Environment;Environment 根据 step、reset、get_observation、is_terminal 和 get_rewards 等机制管理状态、观察和奖励。Player 接收自然语言观察,默认查询 Language Backend,并将文本回应作为动作返回。项目还提供 arena.launch_cli() 交互式命令行入口,以及通过 gradio app.py 启动的本地 Web UI;自定义环境可继承 Environment、设置 type_name,并加入 ALL_ENVIRONMENTS。
- 多智能体研究人员需要在同一回合制框架中测试 LLM 的沟通、协作或社会互动行为。
- 提示工程师希望用 nlp-classroom-3players.json 等配置快速运行多玩家语言交互实验。
- 课程或原型团队需要用 Chameleon 社交推理游戏观察模型在隐藏信息条件下的推理与投票表现。
- 研究者需要比较由 LLM 主持的井字棋或石头剪刀布流程与硬编码 PettingZoo 规则环境。
- Python 开发者需要继承 Environment,定义新的游戏状态、奖励、观察和 step 机制。
如何安装或部署这个 Agent?
运行环境要求在正文中列为 Python >= 3.7(项目徽章标示 Python 3.9+)。安装核心库:
pip install chatarena如需全部语言后端:
pip install chatarena[all_backends]如需全部环境:
pip install chatarena[all_envs]如需完整可选功能:
pip install chatarena[all]使用 GPT-3.5-turbo 或 GPT-4 时,设置可选凭据:
export OPENAI_API_KEY="your_api_key_here"如何使用这个 Agent?
从仓库中的示例配置创建并运行游戏:
arena = Arena.from_config("examples/nlp-classroom-3players.json")
arena.run(num_steps=10)启动交互式 CLI:
arena.launch_cli()启动本地 Web UI:
pip install chatarena[gradio]
git clone https://github.com/chatarena/chatarena.git
cd chatarena
gradio app.pyREADME 说明该服务可在浏览器中通过端口 8080 访问。
这个 Agent 有哪些优点和局限?
- 将 Arena、Environment、Language Backend 和 Player 明确分层,便于分别替换游戏规则、主循环、提示格式或玩家行为。
- 同时提供 Python API、交互式 CLI 和 Gradio Web UI,适合从配置实验到本地演示的不同工作流。
- 内置会话、主持人会话、Chameleon 和 PettingZoo 游戏环境,覆盖自由文本互动与硬编码规则场景。
- 通过 JSON 配置和 Environment 扩展路径支持创建新语言游戏,并定义状态、奖励和观察。
- 项目已明确弃用,并声明不再计划更新或支持,采用者需自行承担维护与兼容性工作。
- 使用 GPT-3.5-turbo 或 GPT-4 需要 OpenAI API 密钥,相关调用会带来外部服务依赖与费用。
- 高级后端和环境不是核心安装默认包含的内容,Anthropic、Cohere、Hugging Face 与 PettingZoo 等功能需安装相应 extras。
- 本地 Web UI 的启动流程要求克隆仓库并安装 Gradio,而不是仅安装核心包即可完成。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| ChatArena 当前 | 32 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 1.6k | 1 年前 | Python | OpenAI API |
| AgentVerse | 28 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 5.2k | 2 年前 | JavaScript | OpenAI API |
| VirtualHome | 40 · 缺口较多 | 代码库 / SDK免费 | ★ 645 | 2 年前 | Python | — |
| IR-SIM 智能机器人模拟器 | 43 · 缺口较多 | 代码库 / SDK免费 | ★ 1.2k | 5 天前 | Python | — |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示:仓库未提供任何权限管理、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚或来源归属的机制。README 仅提及需要 OpenAI API key,但未说明其使用方式或存储。pyproject.toml 列出依赖,但未提供安全审计或漏洞扫描。因此,所有信任标准均得 0 分。
证据显示:README 和测试文件提供了基本的一致性,但存在一些不一致,如 pyproject.toml 中声明 MIT 许可证,而 LICENSE 文件为 Apache-2.0。依赖版本固定,但未提供可用性保证。测试文件包含跳过条件,但未提供失败消息的详细说明。因此,自洽性、依赖可用性和失败消息均得 1 分。
证据显示:README 描述了多种环境和场景,如对话、游戏等,适合研究用途。但能力边界未明确说明,触发条件(如环境配置)未详细描述,环境适配性(如 Python 版本)有提及但不够全面。因此,受众和场景得 2 分,其余得 1 分。
证据显示:README 提供了安装说明、示例和架构图,信息架构清晰。但命名稳定性未明确,已知限制仅在 README 中提及项目已弃用,版本变更日志缺失,维护责任未明确。许可证为 Apache-2.0,但 pyproject.toml 中错误声明为 MIT。因此,信息架构、安装说明、示例和许可证得 2 分,其余得 1 分。
证据显示:README 提供了清晰的输出示例和用例,输出可用性较好。边际价值较高,因为提供了多种环境和接口。但成本效益未详细说明,如 API 成本或计算资源。因此,输出可用性和边际价值得 2 分,成本效益得 1 分。
证据显示:README 中的声明部分有代码示例支持,但未提供外部验证或交叉来源。事实和推断未明确分离,例如项目已弃用的声明未提供证据。因此,所有标准得 1 分。
- 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
- 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
- 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
- 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
- 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
- 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
- 项目已弃用,不再维护,使用需谨慎。
- pyproject.toml 中许可证声明与 LICENSE 文件不一致(MIT vs Apache-2.0)。
- 依赖版本固定,但未提供安全审计,可能存在已知漏洞。
- API 密钥处理方式未说明,存在泄露风险。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
ChatArena 0.1.18 This is a hotfix release, fixing a minor issue with a kwarg in the Umshini environments, which caused issues in certain use cases. Apologies for the small and frequent releases, unfortunately there's no way around it currently. Bug Fixes * Umshini: fix minor typo with player_names kwarg by @elliottower in https://github.com/Farama-Foundation/chatarena/pull/117 Full Changelog: https://github.com/Farama-Foundation/chatarena/compare/v0.1.17...v0.1.18在 GitHub 查看 ↗ -
发布说明摘录
ChatArena 0.1.17 This is a minor release, including a minor enhancement to the Umshini environments, and adding registration functionality for all environments and intelligence backends--allowing the use of Arena.from_config with custom environments. New Features and Improvements * Umshini: add classification of vulnerability category (e.g., prompt injection) for successful attacks by @elliottower in https://github.com/Farama-Foundation/chatarena/pull/114 …在 GitHub 查看 ↗ -
发布说明摘录
ChatArena 0.1.16 This is a very minor release fixing some issues and adding slight enhancements to the Umshini environments. Bug Fixes * Umshini: Fix bug where explanation is not initialized by @andrewtanJS in https://github.com/Farama-Foundation/chatarena/pull/111 * Umshini: add asymmetric (fixed role) versions of deception and content moderation envs by @elliottower in https://github.com/Farama-Foundation/chatarena/pull/112 Full Changelog: https://github.com/Farama-Foundation/chatarena/compare/v0.1.15...v0.1.16在 GitHub 查看 ↗