Sotopia
一个开放式社交学习环境,用于评测和促进语言智能体的社交智能。
- Star 数
- ★ 342
- 最近更新
- 10 个月前
- License
- MIT
- 主语言
- Python
- FA 评分
- 46/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配OpenAI API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 研究社交智能评测的研究者:用 Sotopia 环境比较不同 LLM 作为社交智能体的表现。
- 不适合
- 希望开箱即用、无需配置存储与模型密钥的用户
- 寻找生产级社交产品而非评测环境的团队
- 源码审查
- 46/100 · 缺口较多
这个 Agent 能做什么,适合哪些场景?
Sotopia 是 ICLR 2024 spotlight 论文对应的开源社交学习环境,让多个语言智能体在开放式社交场景中互动。它通过 sotopia 包与异步服务器(run_async_server)运行回合,支持用不同模型分别担任环境与两个角色智能体。数据可存入 Redis(默认后端)或本地 JSON 文件(~/.sotopia/data/),并提供 Hugging Face 上的数据集与在线 Demo。项目以 Python 库和可运行服务器形式交付,采用 MIT 许可。使用者需要自备 OpenAI 等模型 API 密钥并支付调用费用。
仓库提供 Python 包 sotopia,其中 sotopia.server.run_async_server 以异步方式驱动一个社交回合,通过 model_dict 为 env、agent1、agent2 分别指定模型(如 gpt-4、gpt-4o-mini),并用 sotopia.samplers 中的 UniformSampler 采样场景。运行结果按配置写入 Redis(SOTOPIA_STORAGE_BACKEND=redis,连接串 REDIS_OM_URL)或本地 JSON 目录(SOTOPIA_STORAGE_BACKEND=local)。安装后可用 uv run sotopia install 初始化环境,examples/minimalist_demo.py 提供最小可运行示例。论文中提出的评估指标用于衡量语言智能体的社交智能。
- 研究社交智能评测的研究者:用 Sotopia 环境比较不同 LLM 作为社交智能体的表现。
- 强化学习/多智能体实验者:把开放社交场景当作可扩展环境来测试策略。
- 模型开发者:让 gpt-4 与环境交互、gpt-4o-mini 扮演角色,观察对话质量。
- 教学或演示场景:借助 Hugging Face Demo 和示例脚本展示多智能体对话。
- 想要自定义场景的工程师:在本地 JSON 后端上快速试验新环境与角色。
如何安装或部署这个 Agent?
推荐先创建虚拟环境并使用 uv:
pip install uv
uv sync --all-extras
uv run sotopia install若使用默认 Redis 后端,用 Docker 启动 Redis:
docker run -d -p 6379:6379 redis/redis-stack-server:latest在项目根目录创建 .env 并填写密钥与后端:
cat > .env << EOF
OPENAI_API_KEY=your_openai_key_here
SOTOPIA_STORAGE_BACKEND=local
# REDIS_OM_URL=redis://localhost:6379
EOF如何使用这个 Agent?
环境变量需手动加载,uv 不会自动读取 .env。首次运行最小示例:
uv run --env-file .env python examples/minimalist_demo.py也可以直接调用异步服务器并指定各角色模型:
import asyncio
from sotopia.samplers import UniformSampler
from sotopia.server import run_async_server
asyncio.run(
run_async_server(
model_dict={
"env": "gpt-4",
"agent1": "gpt-4o-mini",
"agent2": "gpt-4o-mini",
},
sampler=UniformSampler(),
)
)注意:未安装任何数据集时,本地服务器无法运行。
这个 Agent 有哪些优点和局限?
- 有 ICLR 2024 spotlight 论文与 arXiv 论文支撑,评测口径有学术依据。
- 模型可分别配置(env/agent1/agent2),便于对比不同 LLM 在同一场景下的社交表现。
- 存储后端可切换:默认 Redis,也可用无需外部依赖的本地 JSON 便于开发测试。
- 以 Python 库形式提供,run_async_server 与采样器 API 便于嵌入自己的实验流程。
- 必须自备 OPENAI_API_KEY,并承担按调用量计费的模型成本。
- 默认 Redis 后端需要额外运行 Redis 服务,README 明确建议使用 Docker,其他安装方式易出错。
- 本地 JSON 后端下部分实验性功能不可用,功能受后端限制。
- README 指出文档可能过时,开发时需交叉核对最新 README。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Sotopia 当前 | 46 · 缺口较多 | 代码库 / SDK免费 + 模型费 | ★ 342 | 10 个月前 | Python | OpenAI API |
| Concordia: 生成式社会模拟库 | 62 · 存在缺口 | 代码库 / SDK免费 + 模型费 | ★ 1.9k | 4 天前 | Python | — |
| MobileGym | 67 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 856 | 1 个月前 | Python | — |
| MiroFish Offline | 40 · 缺口较多 | 自托管服务免费 | ★ 2.7k | 7 个月前 | Python | OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
信任维度整体偏弱。最小权限:代码与 UI 默认连接远程 Modal 端点并读取 OPENAI_API_KEY、REDIS_OM_URL,未见权限范围说明或最小化配置,扣分。用户确认:install 测试使用 --overwrite-existing-data 等破坏性参数,产品侧未见对破坏性操作的确认流程说明,扣分。数据流透明:README 说明环境变量与存储后端,但未说明对话/评估数据发往哪些第三方 LLM 服务,扣分。敏感数据:社交模拟涉及人物画像与对话,未见脱敏或保留策略,扣分。依赖安全:依赖含 git 分支来源的 aact 与较宽的版本区间,未见审计或锁定说明,扣分。外部影响:会写入 Redis/本地数据并调用外部 API,未见回滚或隔离说明,扣分。来源归属:README 提供论文引用、数据集与项目页链接,归属清晰,给 2 分。
自一致性:server.py 对动作做校验并重试一次,测试用 mock LLM 与本地存储后端,结构较一致,给 2 分。依赖可用性:依赖 aact 指向 git main 分支、litellm 无上界、Redis 需外部服务,可复现性弱,扣分。失败信息:部分异常被 pass 或 print 吞掉(如 ui/app.py 的 update_database_callback、测试清理),错误提示不完整,扣分。
受众与场景:README 覆盖安装、示例服务器、UI 与开发指南,面向研究者与开发者,给 2 分。能力边界:未明确说明模型能力限制、成本或适用/不适用场景,扣分。触发精度:作为框架无明确触发/调用契约说明,扣分。环境适配:支持 Redis 与本地 JSON 两种后端、多平台 CI,给 2 分。
信息架构:README 结构清晰含安装、环境变量、示例,给 2 分。安装说明:提供 uv 安装、Docker Redis、.env 示例,较完整,给 2 分。命名稳定性:版本 0.1.5 且依赖 git 分支,API 稳定性无承诺,扣分。示例与 FAQ:有最小示例与 Colab,但无 FAQ,扣分。已知限制:仅零散警告(需数据集、文档可能过时),无系统限制清单,扣分。许可证:MIT 全文完整,给 3 分。版本与变更日志:有版本号但无 CHANGELOG,扣分。维护责任:无治理/维护者责任说明,发布者身份未验证,扣分。
输出可用性:提供可运行示例、UI 与评估维度,输出可读,给 2 分。边际价值:作为社交智能评测环境有明确研究价值,给 2 分。成本效益:依赖 LLM API 与 Redis,运行成本与配置负担较高且未说明,扣分。
主张可追溯:README 引用 ICLR 论文与数据集,主张可追溯,给 2 分。跨源印证:仅 README 与少量测试,缺少独立文档印证,扣分。事实与推断分离:文档未明确区分已验证结论与设计意图,扣分。
- 默认 UI 连接远程 Modal 端点,使用前应确认数据去向与 API 密钥暴露范围。
- install 流程含 --overwrite-existing-data 等破坏性选项,运行前应备份数据。
- 依赖 aact 指向 git main 分支,构建不可复现,建议锁定提交。
- 社交模拟数据可能含人物画像与对话,需自行评估隐私与保留策略。
- 发布者身份未经核实,不应据品牌推断安全性或质量。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
v0.1.5 v0.1.5 Make redis optional
发布说明摘录
* Feature/multi agent framework by @Keyu-He in https://github.com/sotopia-lab/sotopia/pull/329 * Fix custom/local model support bugs by @Keyu-He in https://github.com/sotopia-lab/sotopia/pull/338 * sotopia redis optional by @XuhuiZhou in https://github.com/sotopia-lab/sotopia/pull/341在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * Update langchain requirement from <0.3.0,>=0.2.5 to >=0.2.5,<0.4.0 by @dependabot in https://github.com/sotopia-lab/sotopia/pull/236 * [Automated] Merge release into main by @ProKil in https://github.com/sotopia-lab/sotopia/pull/235 * update macos test runner as macos-latest by @ProKil in https://github.com/sotopia-lab/sotopia/pull/238 * feat(exp_eval): support tag for combo iteration by @lwaekfjlk in https://github.com/sotopia-lab/sotopia/pull/245 …在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * UI update by @XuhuiZhou in https://github.com/sotopia-lab/sotopia/pull/273 Full Changelog: https://github.com/sotopia-lab/sotopia/compare/v0.1.2...v0.1.3在 GitHub 查看 ↗
常见问题
运行一次社交回合需要哪些凭据和外部服务?
可以离线或只用本地模型吗?
开发阶段不想装 Redis 怎么办?
为什么本地服务器启动不了?
谢谢反馈,我们会据此改进页面。