OASIS 社交模拟器
用大语言模型智能体模拟大规模社交媒体互动与传播。
按维度查看评分与理由
证据显示仓库未提供权限管理、用户确认、数据流透明性、敏感数据处理、依赖安全、外部影响、回滚或来源归属的说明。未发现恶意行为,但缺乏安全设计文档。因此所有信任标准得分为0。
自一致性:README和pyproject.toml中的版本号一致(0.2.5),但README中的更新日期(2025年12月4日)与pyproject.toml版本不匹配,存在轻微不一致。依赖可用性:pyproject.toml列出了依赖,但未提供锁定文件或兼容性说明。失败消息:未提供错误处理或用户提示的文档。
受众和场景:README明确面向研究人员和开发者,提供了模拟场景。能力边界:描述了23种动作和推荐系统,但未明确限制。触发精度:未提供触发机制或精确控制。环境适配:提供了安装和配置说明,但未提及操作系统或硬件要求。
信息架构:README结构清晰,包含快速开始、功能、教程等。安装说明:提供了pip安装和API密钥设置。命名稳定性:版本号存在,但更新日志不完整。示例和FAQ:提供了代码示例和教程链接,但无FAQ。已知限制:未提及。许可证:Apache 2.0,文件存在。版本和变更日志:有更新日志但未提供完整版本历史。维护责任:未明确指定维护者。
输出可用性:提供了模拟结果的可视化教程,但未说明输出格式。边际价值:提供了大规模模拟能力,具有研究价值。成本效益:提供了token消耗参考,但未提供详细成本分析。
声明可追溯性:README引用了论文和数据集,但未提供详细验证。跨来源佐证:有论文和数据集链接,但未提供独立验证。事实与推断分离:未明确区分事实和推断。
- 仓库未提供安全设计文档,包括权限管理、数据流透明性和敏感数据处理。
- 依赖未锁定版本,可能引入供应链风险。
- README中的更新日期与版本号不一致,可能影响版本追踪。
- 未提供已知限制和失败处理说明,用户可能遇到未预期错误。
这个 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() 关闭环境。
- 社会计算研究者需要在 Reddit 式环境中检验信息扩散、群体极化或从众行为时,可用大量带画像的智能体推进实验。
- 推荐系统研究者希望比较兴趣推荐与热度评分推荐对内容发现和互动的影响时,可在 OASIS 环境中运行社交行为步骤。
- 需要复现特定社交操作链路的研究团队,可用
ManualAction明确安排发帖、评论、关注或搜索动作。 - 希望让模型根据环境状态自行选择社交动作的实验者,可向每个智能体提交
LLMAction()。 - 要在实验结束后做社交仿真数据可视化与分析的用户,可将运行数据保存到自定义数据库路径,并结合项目教程继续处理。
这个 Agent 有哪些优点和局限?
- 项目明确面向最多一百万智能体的社交仿真规模。
- 同时提供人工指定动作的
ManualAction与模型驱动的LLMAction,便于在可控实验和自主行为之间切换。 - 内置兴趣型与热度评分型推荐机制,而非仅模拟孤立智能体。
- 环境接口包含 agent graph、平台类型、数据库路径以及异步
reset/step生命周期,实验执行边界清晰。
- 快速开始直接依赖 OpenAI API 密钥及 CAMEL 的 OpenAI 模型配置,运行会产生模型调用成本。
- README 的成本参考仅覆盖 QWEN_TURBO 的特定参数组合;实际消耗随智能体数量、激活概率和时间步变化。
- 公开示例只展示 Reddit 平台和一个本地画像 JSON 路径,其他平台的完整配置流程未在所给材料中展开。
- 运行需要管理本地画像文件和数据库文件;示例还会在启动前删除已有的数据库文件。
如何安装或部署这个 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()。
常见问题
运行一次模拟会消耗多少 token?
是否必须使用 OpenAI?
OPENAI_API_KEY、ModelPlatformType.OPENAI 和 GPT_4O_MINI。项目更新说明提到可自定义每个智能体的模型、工具和提示词,但材料未给出其他提供商的具体配置方法。我能精确控制某些智能体的行为吗?
ManualAction 可直接指定动作类型和参数,例如创建帖子或评论;也可以将 LLMAction() 分配给智能体,让模型生成动作。模拟输出保存在哪里?
database_path 参数决定。示例使用 ./data/reddit_simulation.db,并在运行前检查并删除同路径的旧文件。