OASIS 社交模拟器

用大语言模型智能体模拟大规模社交媒体互动与传播。

Star 数
★ 5.4k
最近更新
3 天前
License
Apache-2.0
主语言
Python

30 秒速览

运行形态
代码库 / SDK
可在哪里用
兼容但需适配OpenAI API
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
Pythoncamel-oasisOpenAI API 密钥Shell / 命令行网络访问本地文件系统
典型场景
社会计算研究者需要在 Reddit 式环境中检验信息扩散、群体极化或从众行为时,可用大量带画像的智能体推进实验。
不适合
  • 只想开箱即用、不愿自己准备用户画像 JSON 和数据库文件的用户
  • 需要多模态平台支持的场景,该功能仍在规划中

这个 Agent 能做什么,适合哪些场景?

OASIS 是一个面向 Twitter 和 Reddit 式环境的开源社交媒体模拟器,可模拟最多一百万名由大语言模型驱动的用户。它以 agent graph、平台类型和数据库路径组成环境,并通过异步的 reset 与 step 调用推进模拟。智能体可执行关注、发帖、评论、转发、搜索、静音等社交操作;项目称共支持 23 种动作。系统内置基于兴趣和热度评分的推荐机制,用于模拟内容发现与互动。运行结果写入指定数据库文件,适合将社交行为过程作为后续可视化或分析的实验数据。

先使用 generate_reddit_agent_graph(profile_path, model, available_actions) 从用户画像 JSON 生成 Reddit 智能体图;画像示例为 ./data/reddit/user_data_36.json。随后调用 oasis.make(agent_graph=..., platform=oasis.DefaultPlatformType.REDDIT, database_path=...) 创建环境,并以 await env.reset() 初始化。每个时间步通过 await env.step(actions) 提交按智能体分组的 ManualAction 或 LLMAction:例如 CREATE_POST 和 CREATE_COMMENT 可以携带内容及 post_id,LLMAction() 则让模型为智能体产生动作。示例使用 CAMEL 的 ModelFactory.create 配置 ModelPlatformType.OPENAI 与 ModelType.GPT_4O_MINI,最后以 await env.close() 关闭环境。

  1. 社会计算研究者需要在 Reddit 式环境中检验信息扩散、群体极化或从众行为时,可用大量带画像的智能体推进实验。
  2. 推荐系统研究者希望比较兴趣推荐与热度评分推荐对内容发现和互动的影响时,可在 OASIS 环境中运行社交行为步骤。
  3. 需要复现特定社交操作链路的研究团队,可用 ManualAction 明确安排发帖、评论、关注或搜索动作。
  4. 希望让模型根据环境状态自行选择社交动作的实验者,可向每个智能体提交 LLMAction()。
  5. 要在实验结束后做社交仿真数据可视化与分析的用户,可将运行数据保存到自定义数据库路径,并结合项目教程继续处理。

如何安装或部署这个 Agent?

需要 Python、网络访问和 OpenAI API 密钥。安装并设置密钥:

pip install camel-oasis
export OPENAI_API_KEY=<insert your OpenAI API key>

然后准备画像文件;示例路径为 ./data/reddit/user_data_36.json。

如何使用这个 Agent?

在异步 Python 程序中用 ModelFactory.create(model_platform=ModelPlatformType.OPENAI, model_type=ModelType.GPT_4O_MINI) 创建模型;用 generate_reddit_agent_graph(...) 生成图;再以 oasis.make(..., platform=oasis.DefaultPlatformType.REDDIT, database_path='./data/reddit_simulation.db') 创建环境。调用 await env.reset() 后,构造 ManualAction(action_type=ActionType.CREATE_POST, action_args={'content': 'Hello, world!'}) 等动作,或为各智能体构造 LLMAction(),并传给 await env.step(actions)。完成后调用 await env.close()。

这个 Agent 有哪些优点和局限?

优点
  • 项目明确面向最多一百万智能体的社交仿真规模。
  • 同时提供人工指定动作的 ManualAction 与模型驱动的 LLMAction,便于在可控实验和自主行为之间切换。
  • 内置兴趣型与热度评分型推荐机制,而非仅模拟孤立智能体。
  • 环境接口包含 agent graph、平台类型、数据库路径以及异步 reset/step 生命周期,实验执行边界清晰。
局限
  • 快速开始直接依赖 OpenAI API 密钥及 CAMEL 的 OpenAI 模型配置,运行会产生模型调用成本。
  • README 的成本参考仅覆盖 QWEN_TURBO 的特定参数组合;实际消耗随智能体数量、激活概率和时间步变化。
  • 公开示例只展示 Reddit 平台和一个本地画像 JSON 路径,其他平台的完整配置流程未在所给材料中展开。
  • 运行需要管理本地画像文件和数据库文件;示例还会在启动前删除已有的数据库文件。

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
OASIS 社交模拟器 当前 25 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 5.4k 3 天前 Python OpenAI API
ALTA 研究交易工作台 83 · 表现良好 网页应用 ★ 1.1k 1 个月前 Python —
CAMEL 多智能体框架 61 · 存在缺口 代码库 / SDK免费 + 模型费 ★ 18k 4 天前 Python OpenAI API
Station 科研环境 60 · 存在缺口 命令行工具免费 + 模型费 ★ 211 23 天前 Python —

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
25/ 100 五分制 1.3 / 5
本评测基于 2026年8月9日 的源码;此后该项目发布了 1 个正式版本,尚未复审。分数与结论只代表评测时的版本。 最近版本 ↓
信任安全 0/29
可靠稳定 3/14
适用触发 6/18
规范维护 8/18
有效结果 6/13
证据核验 2/8
查看各维度的扣分理由
信任安全0 / 29 · 0.0/5

证据显示仓库未提供权限管理、用户确认、数据流透明性、敏感数据处理、依赖安全、外部影响、回滚或来源归属的说明。未发现恶意行为,但缺乏安全设计文档。因此所有信任标准得分为0。

可靠稳定3 / 14 · 1.1/5

自一致性:README和pyproject.toml中的版本号一致(0.2.5),但README中的更新日期(2025年12月4日)与pyproject.toml版本不匹配,存在轻微不一致。依赖可用性:pyproject.toml列出了依赖,但未提供锁定文件或兼容性说明。失败消息:未提供错误处理或用户提示的文档。

适用触发6 / 18 · 1.7/5

受众和场景:README明确面向研究人员和开发者,提供了模拟场景。能力边界:描述了23种动作和推荐系统,但未明确限制。触发精度:未提供触发机制或精确控制。环境适配:提供了安装和配置说明,但未提及操作系统或硬件要求。

规范维护8 / 18 · 2.2/5

信息架构:README结构清晰,包含快速开始、功能、教程等。安装说明:提供了pip安装和API密钥设置。命名稳定性:版本号存在,但更新日志不完整。示例和FAQ:提供了代码示例和教程链接,但无FAQ。已知限制:未提及。许可证:Apache 2.0,文件存在。版本和变更日志:有更新日志但未提供完整版本历史。维护责任:未明确指定维护者。

有效结果6 / 13 · 2.3/5

输出可用性:提供了模拟结果的可视化教程,但未说明输出格式。边际价值:提供了大规模模拟能力,具有研究价值。成本效益:提供了token消耗参考,但未提供详细成本分析。

证据核验2 / 8 · 1.3/5

声明可追溯性:README引用了论文和数据集,但未提供详细验证。跨来源佐证:有论文和数据集链接,但未提供独立验证。事实与推断分离:未明确区分事实和推断。

风险与缓解建议
  • 源码中未见:最小权限约束只授予完成任务所需的权限:用专用账号或只读令牌,并限定可访问的目录和仓库。
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:数据流向说明运行时观察它连接了哪些外部服务(代理或防火墙日志);弄清数据去向之前不要输入敏感数据。
  • 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
  • 源码中未见:依赖安全审查安装前固定版本并做一次依赖扫描(如 npm audit、pip-audit);优先放在容器里运行。
  • 源码中未见:外部影响披露先弄清它会写入、发送或修改哪些外部系统,用测试账号或测试仓库验证后再接入正式环境。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 源码中未见:来源归属可核验从官方仓库或包源安装,核对发布者和仓库地址,避免同名仿冒包。
  • 仓库未提供安全设计文档,包括权限管理、数据流透明性和敏感数据处理。
  • 依赖未锁定版本,可能引入供应链风险。
  • README中的更新日期与版本号不一致,可能影响版本追踪。
  • 未提供已知限制和失败处理说明,用户可能遇到未预期错误。
证据充分度:低 评估于 2026年8月9日 审查版本 008a2b0dc930 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

最近版本

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

  1. v0.2.6
    发布说明摘录
    Update camel-ai to version 0.2.90. What's Changed * update qr code by @Doudou-Wu in https://github.com/camel-ai/oasis/pull/191 * update qr code by @Doudou-Wu in https://github.com/camel-ai/oasis/pull/192 * update qr code by @Doudou-Wu in https://github.com/camel-ai/oasis/pull/193 * update qr code by @Doudou-Wu in https://github.com/camel-ai/oasis/pull/194 * update qr code by @Doudou-Wu in https://github.com/camel-ai/oasis/pull/195 * update qr code by @Doudou-Wu in https://github.com/camel-ai/oasis/pull/196 * update qr code by @Doudou-Wu in https://github.com/camel-ai/oasis/pull/199 …
    在 GitHub 查看 ↗
  2. v0.2.5
    发布说明摘录
    Update camel-ai to version 0.2.78. What's Changed * feat: Add Docker and Docker Compose Support by @JoyceXu02 in https://github.com/camel-ai/oasis/pull/140 * Fixes:#131 follows_env_template by @Raysin-cn in https://github.com/camel-ai/oasis/pull/147 * Upgarde camel-ai to 0.2.70 and fix #113 by @zhangzaibin in https://github.com/camel-ai/oasis/pull/149 * feat: Update the Cookbook in the Docs and use the ModelManager #134 by @DiligenceLai in https://github.com/camel-ai/oasis/pull/155 …
    在 GitHub 查看 ↗
  3. v0.2.3
    发布说明摘录
    Add the report post action to mark inappropriate content.
    在 GitHub 查看 ↗

常见问题

运行一次模拟会消耗多少 token?
给出的测量参考中,100 名智能体、激活概率 1、1 个时间步使用 335,600 输入 token 和 16,750 输出 token,模型为 QWEN_TURBO。实际用量会随智能体数量、激活概率和时间步增加。
是否必须使用 OpenAI?
所给快速开始示例使用 OPENAI_API_KEY、ModelPlatformType.OPENAI 和 GPT_4O_MINI。项目更新说明提到可自定义每个智能体的模型、工具和提示词,但材料未给出其他提供商的具体配置方法。
我能精确控制某些智能体的行为吗?
可以。ManualAction 可直接指定动作类型和参数,例如创建帖子或评论;也可以将 LLMAction() 分配给智能体,让模型生成动作。
模拟输出保存在哪里?
由 database_path 参数决定。示例使用 ./data/reddit_simulation.db,并在运行前检查并删除同路径的旧文件。
在 GitHub 查看 ↗ 安装 ↓

相关 Agents