Sotopia

一个开放式社交学习环境,用于评测和促进语言智能体的社交智能。

Star 数
★ 342
最近更新
10 个月前
License
MIT
主语言
Python

30 秒速览

运行形态
代码库 / SDK开发框架自托管服务
可在哪里用
兼容但需适配OpenAI API
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
PythonuvOpenAI API 密钥Redis(默认后端所需)Docker(推荐用于运行 Redis)Shell / 命令行网络访问本地文件系统
典型场景
研究社交智能评测的研究者:用 Sotopia 环境比较不同 LLM 作为社交智能体的表现。
不适合
  • 希望开箱即用、无需配置存储与模型密钥的用户
  • 寻找生产级社交产品而非评测环境的团队

这个 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 提供最小可运行示例。论文中提出的评估指标用于衡量语言智能体的社交智能。

  1. 研究社交智能评测的研究者:用 Sotopia 环境比较不同 LLM 作为社交智能体的表现。
  2. 强化学习/多智能体实验者:把开放社交场景当作可扩展环境来测试策略。
  3. 模型开发者:让 gpt-4 与环境交互、gpt-4o-mini 扮演角色,观察对话质量。
  4. 教学或演示场景:借助 Hugging Face Demo 和示例脚本展示多智能体对话。
  5. 想要自定义场景的工程师:在本地 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?

FollowAgents 源码审查 · FARS-2.1
缺口较多
46/ 100 五分制 2.3 / 5
信任安全 11/29
可靠稳定 6/14
适用触发 9/18
规范维护 9/18
有效结果 7/13
证据核验 4/8
查看各维度的扣分理由
信任安全11 / 29 · 1.9/5

信任维度整体偏弱。最小权限:代码与 UI 默认连接远程 Modal 端点并读取 OPENAI_API_KEY、REDIS_OM_URL,未见权限范围说明或最小化配置,扣分。用户确认:install 测试使用 --overwrite-existing-data 等破坏性参数,产品侧未见对破坏性操作的确认流程说明,扣分。数据流透明:README 说明环境变量与存储后端,但未说明对话/评估数据发往哪些第三方 LLM 服务,扣分。敏感数据:社交模拟涉及人物画像与对话,未见脱敏或保留策略,扣分。依赖安全:依赖含 git 分支来源的 aact 与较宽的版本区间,未见审计或锁定说明,扣分。外部影响:会写入 Redis/本地数据并调用外部 API,未见回滚或隔离说明,扣分。来源归属:README 提供论文引用、数据集与项目页链接,归属清晰,给 2 分。

可靠稳定6 / 14 · 2.1/5

自一致性:server.py 对动作做校验并重试一次,测试用 mock LLM 与本地存储后端,结构较一致,给 2 分。依赖可用性:依赖 aact 指向 git main 分支、litellm 无上界、Redis 需外部服务,可复现性弱,扣分。失败信息:部分异常被 pass 或 print 吞掉(如 ui/app.py 的 update_database_callback、测试清理),错误提示不完整,扣分。

适用触发9 / 18 · 2.5/5

受众与场景:README 覆盖安装、示例服务器、UI 与开发指南,面向研究者与开发者,给 2 分。能力边界:未明确说明模型能力限制、成本或适用/不适用场景,扣分。触发精度:作为框架无明确触发/调用契约说明,扣分。环境适配:支持 Redis 与本地 JSON 两种后端、多平台 CI,给 2 分。

规范维护9 / 18 · 2.5/5

信息架构:README 结构清晰含安装、环境变量、示例,给 2 分。安装说明:提供 uv 安装、Docker Redis、.env 示例,较完整,给 2 分。命名稳定性:版本 0.1.5 且依赖 git 分支,API 稳定性无承诺,扣分。示例与 FAQ:有最小示例与 Colab,但无 FAQ,扣分。已知限制:仅零散警告(需数据集、文档可能过时),无系统限制清单,扣分。许可证:MIT 全文完整,给 3 分。版本与变更日志:有版本号但无 CHANGELOG,扣分。维护责任:无治理/维护者责任说明,发布者身份未验证,扣分。

有效结果7 / 13 · 2.7/5

输出可用性:提供可运行示例、UI 与评估维度,输出可读,给 2 分。边际价值:作为社交智能评测环境有明确研究价值,给 2 分。成本效益:依赖 LLM API 与 Redis,运行成本与配置负担较高且未说明,扣分。

证据核验4 / 8 · 2.5/5

主张可追溯:README 引用 ICLR 论文与数据集,主张可追溯,给 2 分。跨源印证:仅 README 与少量测试,缺少独立文档印证,扣分。事实与推断分离:文档未明确区分已验证结论与设计意图,扣分。

风险与缓解建议
  • 默认 UI 连接远程 Modal 端点,使用前应确认数据去向与 API 密钥暴露范围。
  • install 流程含 --overwrite-existing-data 等破坏性选项,运行前应备份数据。
  • 依赖 aact 指向 git main 分支,构建不可复现,建议锁定提交。
  • 社交模拟数据可能含人物画像与对话,需自行评估隐私与保留策略。
  • 发布者身份未经核实,不应据品牌推断安全性或质量。
证据充分度:低 评估于 2026年11月7日 审查版本 a0aaafb440e5
查看完整评分方法 →
你是这个项目的维护者?把 FARS 徽章加到 README

徽章显示当前的评审分数和结论,点击回到本页。重新评审后约一小时内更新。

FARS

[![FARS 评测](https://followagents.com/badge/sotopia.svg?lang=zh)](https://followagents.com/zh/agents/sotopia)
<a href="https://followagents.com/zh/agents/sotopia"><img src="https://followagents.com/badge/sotopia.svg?lang=zh" alt="FARS 评测"></a>

最近版本

来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。

  1. 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 查看 ↗
  2. v0.1.4
    发布说明摘录
    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 查看 ↗
  3. v0.1.3
    发布说明摘录
    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 查看 ↗

常见问题

运行一次社交回合需要哪些凭据和外部服务?
需要 OPENAI_API_KEY;若用默认 Redis 后端,还需运行 Redis(README 推荐 Docker,默认连接 redis://localhost:6379)。
可以离线或只用本地模型吗?
源材料只展示了通过 model_dict 指定 gpt-4、gpt-4o-mini 等 OpenAI 模型,未提供本地模型或离线运行的说明。
开发阶段不想装 Redis 怎么办?
设置 SOTOPIA_STORAGE_BACKEND=local,数据写入 ~/.sotopia/data/,无需外部依赖;但实验性框架功能仍需 Redis。
为什么本地服务器启动不了?
README 明确提示:未安装任何数据集时,无法在本地运行服务器。
这页内容对你有帮助吗?
在 GitHub 查看 ↗ 安装 ↓