Skip to content

Latest commit

 

History

History
184 lines (150 loc) · 5.75 KB

File metadata and controls

184 lines (150 loc) · 5.75 KB

基础模拟示例

第一个模拟:石器时代部落

本示例展示如何运行一个基本的石器时代模拟,观察智能体如何从个体生存发展为复杂的社会结构。

运行模拟

uv run python -m sociology_simulation.main \
    simulation.era_prompt="石器时代的原始部落,刚刚学会使用简单工具" \
    world.num_agents=10 \
    world.size=32 \
    runtime.turns=30 \
    runtime.show_conversations=true

实用提示:

  • 行动“gather/consume”已走本地分发,确定性生效(无需 LLM)。
  • 回合摘要先基于事实计算,再由 LLM 生成叙事并做一致性守卫。
  • 地形算法可通过 world.terrain_algorithm 选择 simple|noise|voronoi|mixed(默认 mixed)。

预期发展轨迹

第1-5回合:生存阶段

特征:

  • 智能体专注于基础生存需求
  • 寻找食物、水源、庇护所
  • Trinity 开始观察行为模式

典型日志:

Turn 1: Rok(0) 移动寻找食物
Turn 2: Ash(1) 采集了2个苹果
Turn 3: Flint(2) 发现了石头资源
Turn 4: Clay(3) 尝试制作简单工具
Turn 5: Storm(4) 与其他智能体分享食物

Trinity 行动:

  • 观察到重复的觅食行为,创建 "觅食" 技能
  • 观察到工具制作尝试,创建 "原始工艺" 技能

第6-15回合:社会化阶段

特征:

  • 智能体开始相互交流
  • 形成初步的社会联系
  • 出现简单的合作行为

典型事件:

Turn 8: Rok 与 Ash 开始频繁交流
Turn 10: 智能体们聚集在石头资源点附近
Turn 12: Clay 教授 Flint 工具制作技巧
Turn 14: 形成了第一个小群体:Rok、Ash、Clay

Trinity 响应:

  • 创建 "社交" 技能解锁聊天能力
  • 创建 "教学" 技能允许知识传递
  • 触发资源发现事件增加合作动机

第16-25回合:群体发展阶段

特征:

  • 正式群体结构出现
  • 分工和专业化开始
  • 技术创新加速

重要发展:

Turn 18: "原始部落" 群体正式成立,Rok 为首领
Turn 20: Flint 专精工具制作,获得 "工匠" 技能
Turn 22: 发现了新的制作配方:石斧
Turn 24: 群体建造了第一个共同庇护所

Trinity 干预:

  • 生成轻微的食物短缺,促进合作
  • 创建 "领导力" 技能给表现出色的首领
  • 解锁 "建筑" 技能使群体项目成为可能

第26-30回合:复杂社会阶段

特征:

  • 多个群体共存
  • 群体间交流和贸易
  • 复杂的社会层次

社会结构:

群体1 "石头部落" (5成员):专精工具制作
群体2 "果实部落" (3成员):专精食物采集  
独立智能体 (2个):在群体间游走的商人

技术进步:

  • 石器制作技术成熟
  • 食物保存方法发现
  • 简单的建筑技术

模拟结果分析

涌现的行为模式

  1. 自然分工: 智能体根据技能自然形成专业化
  2. 社会层次: 领导者自然产生,不是预设的
  3. 知识传播: 技能通过教学和观察传播
  4. 群体忠诚: 群体成员优先帮助同群体成员

Trinity 的作用

  1. 技能催化: 将重复行为抽象为正式技能
  2. 危机制造: 通过事件推动合作
  3. 创新引导: 奖励创新行为,推动技术进步
  4. 平衡维护: 防止某个群体过于强大

关键指标

最终状态统计:
- 存活智能体: 10/10 (100%)
- 发现技能: 8个 (觅食、工艺、社交、教学、领导力、建筑、贸易、生存)
- 形成群体: 2个
- 技术发现: 3项 (石斧、食物保存、简单建筑)
- 社会网络密度: 0.67 (高度连接)

进阶实验

实验1: 资源稀缺环境

uv run python -m sociology_simulation.main \
    simulation.era_prompt="资源稀缺的荒漠环境" \
    world.num_agents=15 \
    runtime.turns=40

预期结果: 更强的合作压力,可能出现冲突和资源争夺

实验2: 丰富资源环境

uv run python -m sociology_simulation.main \
    simulation.era_prompt="资源丰富的热带雨林" \
    world.num_agents=8 \
    runtime.turns=25

预期结果: 更快的技术发展,可能出现艺术和文化活动

实验3: 灾害频发环境

uv run python -m sociology_simulation.main \
    simulation.era_prompt="地震频发的山区部落" \
    world.num_agents=12 \
    runtime.turns=35

预期结果: 强调生存技能,可能发展出预警和应急机制

观察要点

关键行为观察

  1. 第一次合作: 注意智能体何时开始主动合作
  2. 领导者产生: 观察自然领导者如何脱颖而出
  3. 技能传播: 新技能如何在群体中传播
  4. 群体分裂: 大群体如何自然分裂成小群体

Trinity 决策观察

  1. 技能创建时机: Trinity 何时决定创建新技能
  2. 事件触发: 自然事件如何响应社会发展
  3. 干预程度: Trinity 的干预是否恰当

社会发展指标

  1. 合作频率: 智能体间合作行为的增加
  2. 专业化程度: 智能体角色分化的明显程度
  3. 知识积累: 群体知识总量的增长
  4. 社会稳定性: 群体结构的持续时间

故障排除

常见问题

  1. 智能体死亡过多: 调整 world.initial_resources 增加初始资源
  2. 社会发展缓慢: 增加 runtime.interaction_frequency 促进交流
  3. Trinity 干预过少: 降低 trinity.intervention_threshold 增加干预

性能优化

  1. 减少智能体数量: 如果运行缓慢,减少到5-8个智能体
  2. 缩小地图: 使用16x16或32x32地图提高运行速度
  3. 批量处理: 启用 runtime.batch_processing=true

这个基础示例展示了 Project Genesis 的核心能力:从简单的个体行为涌现出复杂的社会结构。通过观察这个过程,你可以理解系统如何工作,并为更复杂的实验做准备。