本示例展示如何运行一个基本的石器时代模拟,观察智能体如何从个体生存发展为复杂的社会结构。
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)。
特征:
- 智能体专注于基础生存需求
- 寻找食物、水源、庇护所
- Trinity 开始观察行为模式
典型日志:
Turn 1: Rok(0) 移动寻找食物
Turn 2: Ash(1) 采集了2个苹果
Turn 3: Flint(2) 发现了石头资源
Turn 4: Clay(3) 尝试制作简单工具
Turn 5: Storm(4) 与其他智能体分享食物
Trinity 行动:
- 观察到重复的觅食行为,创建 "觅食" 技能
- 观察到工具制作尝试,创建 "原始工艺" 技能
特征:
- 智能体开始相互交流
- 形成初步的社会联系
- 出现简单的合作行为
典型事件:
Turn 8: Rok 与 Ash 开始频繁交流
Turn 10: 智能体们聚集在石头资源点附近
Turn 12: Clay 教授 Flint 工具制作技巧
Turn 14: 形成了第一个小群体:Rok、Ash、Clay
Trinity 响应:
- 创建 "社交" 技能解锁聊天能力
- 创建 "教学" 技能允许知识传递
- 触发资源发现事件增加合作动机
特征:
- 正式群体结构出现
- 分工和专业化开始
- 技术创新加速
重要发展:
Turn 18: "原始部落" 群体正式成立,Rok 为首领
Turn 20: Flint 专精工具制作,获得 "工匠" 技能
Turn 22: 发现了新的制作配方:石斧
Turn 24: 群体建造了第一个共同庇护所
Trinity 干预:
- 生成轻微的食物短缺,促进合作
- 创建 "领导力" 技能给表现出色的首领
- 解锁 "建筑" 技能使群体项目成为可能
特征:
- 多个群体共存
- 群体间交流和贸易
- 复杂的社会层次
社会结构:
群体1 "石头部落" (5成员):专精工具制作
群体2 "果实部落" (3成员):专精食物采集
独立智能体 (2个):在群体间游走的商人
技术进步:
- 石器制作技术成熟
- 食物保存方法发现
- 简单的建筑技术
- 自然分工: 智能体根据技能自然形成专业化
- 社会层次: 领导者自然产生,不是预设的
- 知识传播: 技能通过教学和观察传播
- 群体忠诚: 群体成员优先帮助同群体成员
- 技能催化: 将重复行为抽象为正式技能
- 危机制造: 通过事件推动合作
- 创新引导: 奖励创新行为,推动技术进步
- 平衡维护: 防止某个群体过于强大
最终状态统计:
- 存活智能体: 10/10 (100%)
- 发现技能: 8个 (觅食、工艺、社交、教学、领导力、建筑、贸易、生存)
- 形成群体: 2个
- 技术发现: 3项 (石斧、食物保存、简单建筑)
- 社会网络密度: 0.67 (高度连接)
uv run python -m sociology_simulation.main \
simulation.era_prompt="资源稀缺的荒漠环境" \
world.num_agents=15 \
runtime.turns=40预期结果: 更强的合作压力,可能出现冲突和资源争夺
uv run python -m sociology_simulation.main \
simulation.era_prompt="资源丰富的热带雨林" \
world.num_agents=8 \
runtime.turns=25预期结果: 更快的技术发展,可能出现艺术和文化活动
uv run python -m sociology_simulation.main \
simulation.era_prompt="地震频发的山区部落" \
world.num_agents=12 \
runtime.turns=35预期结果: 强调生存技能,可能发展出预警和应急机制
- 第一次合作: 注意智能体何时开始主动合作
- 领导者产生: 观察自然领导者如何脱颖而出
- 技能传播: 新技能如何在群体中传播
- 群体分裂: 大群体如何自然分裂成小群体
- 技能创建时机: Trinity 何时决定创建新技能
- 事件触发: 自然事件如何响应社会发展
- 干预程度: Trinity 的干预是否恰当
- 合作频率: 智能体间合作行为的增加
- 专业化程度: 智能体角色分化的明显程度
- 知识积累: 群体知识总量的增长
- 社会稳定性: 群体结构的持续时间
- 智能体死亡过多: 调整
world.initial_resources增加初始资源 - 社会发展缓慢: 增加
runtime.interaction_frequency促进交流 - Trinity 干预过少: 降低
trinity.intervention_threshold增加干预
- 减少智能体数量: 如果运行缓慢,减少到5-8个智能体
- 缩小地图: 使用16x16或32x32地图提高运行速度
- 批量处理: 启用
runtime.batch_processing=true
这个基础示例展示了 Project Genesis 的核心能力:从简单的个体行为涌现出复杂的社会结构。通过观察这个过程,你可以理解系统如何工作,并为更复杂的实验做准备。