# Genesis(创世)

多智能体驱动、随人类进程自然演进的沙盒世界模拟器。精神来源:斯坦福小镇 + 《文明6》+ 我的世界。
你作为造物主,观察并干预 agent 的一生与文明的兴衰。

> 项目代号 Genesis 暂用,正式命名待定。

## 文档
- 产品需求:[`docs/PRD.md`](docs/PRD.md)
- Agent 内核设计:[`docs/agent-core-design.md`](docs/agent-core-design.md)

## 技术栈(方向)
- Python 3.12 · LangGraph(编排 + checkpoint/世界线分叉) · mem0(长期记忆) · DeepSeek(默认 `deepseek-v4-flash`)· PixelLab(素材)

## 本地开发
环境用 conda 管理,env 名 = 项目目录名 `genesis-world`。

```bash
# 安装(可编辑模式 + 测试依赖)
~/miniconda3/envs/genesis-world/bin/pip install -e ".[dev]"

# 跑测试
~/miniconda3/envs/genesis-world/bin/pytest
```

## 当前进度(Phase 1 内核已打通,99 离线单测全绿)
- ✅ L0 人设(MBTI→行为旋钮)· L1 记忆流(检索+反思,mem0)· L2 一拍循环(DeepSeek)
- ✅ L2.5 工具/具身闭环(技能→世界effect + 自身状态 + 结果回灌)· World 层(时钟+地点+目击者广播+级联)
- ✅ 造物主层(透视 + 事件注入 + 时间加速 + 热插拔)· 生成准入规范(manifest)+ WorldBuilder
- ✅ 素材:PixelLab 生成 3 角色 + 2 物体精灵(`assets/sprites/`)
- ⬜ 下一步:可视化(2D 像素小镇)/ L3 个人日程规划

跑 demo:`python examples/demo_director.py`(造物主全链路)/ `demo_town.py`(多agent社交)。
世界配置在 `worlds/smalltown/`(manifest),规范见 `docs/asset-entity-spec.md`。

## Agent 大脑(可切换 / 可灰度回滚)
agent 的"思考→决策"由环境变量 `GENESIS_BRAIN` 选择,三档共用同一份人设/目标/反思与提示词:

| 值 | 说明 |
| --- | --- |
| `langgraph` | **LangGraph 图 + 结构化输出**(`LangGraphMind`):`感知→按模式分流→结构化推断`,用 `ChatLiteLLM.with_structured_output` 拿原生约束的 Pydantic 决策;结构化失败自动回落文本解析。新默认方向。 |
| `llm` | 既有 litellm 直答大脑(`CognitiveMind`),手写 JSON 解析。保留用于对照/回滚。 |
| `stub` | 规则桩(零 LLM 成本),只验证作息/移动/事件链路。 |

```bash
# 用 LangGraph 大脑起服
GENESIS_WORLD=ravenisle GENESIS_BRAIN=langgraph ~/miniconda3/envs/genesis-world/bin/python -m genesis.server.live2
```

`LangGraphMind` 是 `CognitiveMind` 的子类,只覆写"推断"一步,引擎其余逻辑零改动 —— 可逐 agent 灰度、随时切回 `llm` 对照。

## 演进路线
Phase 1 观察沙盒(15–25 人小村落,数据面板)→ 1.5 2D 像素可视化 → 2 文明演进 → 3 人+agent UGC 多人。
