开源仓库tsinghua-fib-lab/AgentSociety1,118 Stars

AgentSociety

用LLM驱动的大规模社会模拟平台,支撑计算社会科学全流程研究

适合社科研究者用LLM驱动的人格化Agent验证社会机制假说。工作流程:从文献出发生成可执行假设,编排实验步骤,运行模拟后自动产出双语分析报告。

bo老师判断:值得观察

方向值得关注,建议先确认当前任务是否真正需要它。

...互动状态已更新

什么时候用

先判断任务是否合适

  • 想用LLM驱动的人格化Agent模拟信息茧房、群体极化等社会现象
  • 需要设计对照实验来验证政策或干预措施在社会系统中的效果
  • 研究需要从文献检索到模拟分析再到报告产出的全流程自动化

先准备什么

材料越清楚,结果越有用

  • 一个明确的社会科学问题或可验证的社会机制假说
  • OpenAI或其他兼容LLM的API密钥
  • 已安装Python和Ray分布式计算环境
  • 实验所需的Agent人格描述和环境参数

它会怎样推进

从材料到可以检查的结果

  1. 01

    检索文献

    从研究主题出发,通过多源检索获取相关论文并建立结构化文献索引

  2. 02

    生成假设

    基于文献自动生成可验证研究假设,设计实验组与对照组的实验骨架

  3. 03

    编排实验

    将假设转化为可执行实验配方,配置Agent人格、环境模块和步骤序列

  4. 04

    运行模拟

    用Ray分布式调度并行驱动大量Agent在模拟环境中交互和决策

  5. 05

    分析结果

    对模拟数据进行探索性分析,生成图表和双语研究报告

第一次这样开始

把仓库地址直接交给 AI

先让 AI 说明环境和风险,再完成最小安装验证。跑通以后,再把自己的真实材料放进去。

第一次直接复制

帮我安装这个库:https://github.com/tsinghua-fib-lab/AgentSociety
安装前先告诉我需要什么环境,安装后帮我跑通一个最小示例。

结果出来后

先看这些检查点

  • 检查模拟数据量是否足够支撑研究结论
  • 确认LLM决策行为与Agent人格设定的一致性
  • 验证分析报告中的统计推断是否基于多seed重复实验
  • 核对双语报告中的图表是否准确反映模拟结果

常见误区

这些判断仍由你负责

  • 把LLM驱动的Agent当作传统ABM使用,忽视其内生决策随机性
  • 未做多seed重复实验就直接下统计结论
  • 依赖LLM Agent行为的表面真实性,放松对严格实验设计的要求
  • 忽略环境模块的模拟保真度验证,直接采信模拟结果

技术依据

查看能力拆解、验证范围与来源

能力地图6 项已拆解能力
  1. 01

    Agent分布式调度执行

    给定 agentspecs 集合和时钟,并行推进一个 tick:driver 不持有 agent 对象(record-based),每 tick 切批(BATCHSIZE 默认 256)→ 每批一个 Ray Task → task 内 asyncio.gather 并发跑该批所有 agent → 单 agent 异常隔离不中断整批。这是其相对传统 ABM 的架构卖点:内存与 N 解耦,并行来自"大量 Task"。

  2. 02

    LLM-native决策循环ReAct

    给定 tick、当前时间、observation 列表和人格,用 LLM 做多轮 ReAct 决策(每轮 LLM 产 decisions → 执行工具 → 观察追加),直到 finish 或达 maxreactturns。这是 LLM-native ABM 的核心:用 LLM 驱动人格化 agent 决策,而非传统 ABM 的规则驱动。

  3. 03

    假设生成与实验组设计

    把文献索引转换成可执行假设(HYPOTHESIS.md)和实验设计骨架(SIMSETTINGS.json,含 agentclasses、envmodules、实验组/对照组),经 Pydantic schema 校验和模块选择校验(至少一个 agent + 一个 env)。这是"文献→可执行假设+实验设计骨架"的转换,直接命中科研生命周期的实验设计环节。

  4. 04

    实验配置与步骤编排

    把假设(SIMSETTINGS.json)转换成可执行实验配方(initconfig.json + steps.yaml),经模块发现、agent spec 拆分(profile/config)、Pydantic 校验。步骤语言提供 4 类原语:run(N 步×tick 秒)、ask(提问)、intervene(干预/实验操纵)、questionnaire(问卷测量)。对照实验通过多份 profile + 多份 initconfig 实现。

能力主要输入主要输出人工检查

Agent分布式调度执行

源码已核对

  • agentids + workspaceroot + ServiceProxy。
  • 每 tick 的 agent summary 列表 + tokenstats。
  • 核对结果是否符合当前研究问题和证据边界

LLM-native决策循环ReAct

源码已核对

  • tick、当前时间、observation 列表。
  • 可选 question/skillhooks。
  • 最终结果字符串。
  • 落盘的 AGENT.json + trace spans。
  • 核对结果是否符合当前研究问题和证据边界

假设生成与实验组设计

源码已核对

  • 文献索引(literature index)。
  • hypothesis{id}/HYPOTHESIS.md。
  • hypothesis{id}/SIMSETTINGS.json(含 agentclasses、envmodules、实验组)。
  • 核对结果是否符合当前研究问题和证据边界

实验配置与步骤编排

源码已核对

  • SIMSETTINGS.json(来自假设生成)。
  • initconfig.json(envmodules + agents + codegenrouter)。
  • steps.yaml(步骤序列)。
  • configparams.py。
  • 核对结果是否符合当前研究问题和证据边界

文献检索与索引化

源码已核对

  • 研究主题 TOPIC.md(中文或英文)。
  • papers/ 目录 + papers/literatureindex.json。
  • 核对结果是否符合当前研究问题和证据边界

模拟数据收集与持久化replay

源码已核对

  • env step 状态 + agent profile + agent snapshot。
  • run/replay/ 下 sharded JSONL + schema.json catalog。
  • DuckDB 读侧可查询视图。
  • 核对结果是否符合当前研究问题和证据边界

处理机制

  1. 01

    LLM-native社科模拟实验流水线

    AgentSociety 的多张能力卡共享一条完整的研究流水线:文献→假设→实验配置→运行→分析→论文。对象从研究主题出发,经文献库、假设+实验组、initconfig+steps.yaml、agent workspace+replay,最终变成双语报告+经验记忆。本机制卡说明这些对象如何跨阶段传递,以及哪些状态会阻断或降级。

已核对范围

  • 静态确认 record-based 设计:driver 不持有 agent 对象
  • 静态确认 stepagentbatch @ray.remote 切批 + asyncio.gather 并发 + AdaptiveSemaphore 限流
  • 静态确认 per-agent 异常隔离(不中断整批)
  • 静态确认 runreactloop 的 observe → 多轮 ReAct → finish/maxturns 循环
  • 静态确认 6 种路由模式(CodeGen/ReAct/Plan-Execute/Two-Tier-ReAct/Two-Tier-Plan-Execute/Search-Tool)
  • 静态确认 ReactDecision 和 ReactToolResult 对象
  • 静态确认 skills/hypothesis 的 manager/models 和 validatehypothesiswithmodules
  • 静态确认 HypothesisDataModel 和 ExperimentGroupModel(对照/实验组)schema

仍待核对

  • 未真实运行大规模 agent 模拟
  • 未验证 record-based 设计在大 N 下的内存/磁盘表现
  • 未真实运行 agent 决策循环
  • 未验证不同路由模式在社科模拟中的效果差异
  • 未真实运行假设生成
  • 未验证生成假设的科研质量
  • 未真实运行实验编排
  • 未验证对照实验多 config 编排在真实场景的效果

读取版本

source-reviewed

许可

Apache-2.0

最近核对

内容 2026-06-19
Stars 2026-07-11

已完成源码核对

科研之我见

AI 科研全流程怎么搭,我梳理出三个核心入口

每天开工先固定阶段入口、材料入口和验证入口,把庞大的科研全流程收缩成一段可执行、可检查的任务。

查看内容

科研之我见

AI 可以参与科研的哪些环节?一张 11 环节工作流全景图

从选题、文献、理论、数据到投稿,逐环节判断 AI 可以主导、需要人工校验和必须由研究者把关的工作。

查看内容

科研之我见

如何从 300 篇候选文献中筛出 50 篇核心文献

把文献检索与筛选拆开,通过本地文献库、Zotero、外部数据库和引文追踪形成可回查的核心文献清单。

查看内容

文献 · 验证

paper-qa

从本地论文和文档中检索证据并生成带精确引用的科研答案

查看内容

文献 · 分析 · 写作

grobid

把学术论文PDF解析成结构化TEI XML,提取元数据、全文结构和参考文献

查看内容

设计 · 分析 · 验证

CausalPy

用贝叶斯方法做准实验因果推断,含10+方法和稳健性诊断套件

查看内容

相关课程

把单项工具放进完整研究设计流程

课程一从研究问题、文献判断、理论假设和方法骨架继续推进,帮助你建立可以复用的研究设计档案。

查看课程一