🤝 为 GOD 做贡献
欢迎提 issue 与 PR。
无论是修一个错别字、加一张地图,还是重写一段 runtime —— 谢谢你。
🌏 English
---
## 🧭 你可以怎么贡献
| | |
| --- | --- |
| 🐛 **报 bug** | 提一个 [issue](https://github.com/XiaoLuoLYG/GOD/issues/new),附上复现步骤、截图,以及 `./scripts/god.sh status` 的输出。 |
| 💡 **提需求** | 先提一个 issue,简短描述 + 一段使用场景就够。 |
| 🗺️ **加新地图** | 把文件夹丢到 `agentsociety/custom/maps//`,遵循 [`docs/MAP_PACKAGES.zh-CN.md`](docs/MAP_PACKAGES.zh-CN.md)。欢迎 PR。 |
| 🧪 **加新实验** | 把文件夹丢到 `agentsociety/quick_experiments///`。参考 [`hypothesis_god_town/experiment_1/`](agentsociety/quick_experiments/hypothesis_god_town/experiment_1/README.zh-CN.md) 的形态。 |
| ✏️ **改文档** | 修翻译、打磨措辞、加截图、加图示。 |
| 🔌 **接 Runtime** | 欢迎为新的 LLM runtime 或 persona 模板提 adapter PR —— 见 `agentsociety/custom/agents/`。 |
## 🚀 开发环境
```bash
git clone https://github.com/XiaoLuoLYG/GOD.git
cd GOD
./scripts/god.sh start
```
会自动装好 Python 和 Node 依赖,启动完整栈,创建 live session,先跑完第 1 步,
让控制台打开时就是已初始化的小镇。改完代码刷新即可。
常用命令:
```bash
./scripts/god.sh restart # 先干净停止,再重新启动
./scripts/god.sh new-run # 清掉 replay 数据,开一个新 session
./scripts/god.sh status # 查看端口、URL、模型状态
./scripts/god.sh tail # 跟随日志
./scripts/god.sh stop # 停止所有服务
```
## 🌳 分支与 PR 流程
1. Fork 仓库,从 `main` 拉一个 topic 分支。
2. PR 要 **小而聚焦** —— 每个 PR 只做一件事。
3. 跑你改过部分的校验器:
```bash
# 改过地图包
cd agentsociety
uv run python scripts/validate_map_package.py custom/maps/
# 改过 Python 服务
cd agentsociety/packages/agentsociety2
uv run pytest
```
4. 把 PR 提到 `main`。正文里写清楚 **改了什么** 和 **为什么**。UI 改动配上截图或短视频效果更好。
5. 耐心等等 —— reviewer 可能在另一个时区。
## 📝 代码风格
- **Python:** 4 空格缩进,必要的地方加类型注解,不要留无用 import。
目前没有强制统一 formatter,跟周围代码风格一致即可。
- **TypeScript / React:** 跟周围组件风格保持一致。
- **行宽:** 合理的地方控制在 **120 字符以内**。
- **不使用前置声明**(项目规则)。
- **注释** 只解释非显然的意图,不要复述代码做了什么。
- **Commit:** 现在时、短主题(约 60 字符)、需要再加正文。
- **文档:** 同时存在 `.md` 和 `.zh-CN.md` 的,改一个就两个都改。
请用地道的中英文,不要直译。
## 🗺️ 提交新地图包 · 检查表
- [ ] 目录名 `agentsociety/custom/maps//`
- [ ] 含 `map.yaml`、`README.md`、`ATTRIBUTION.md`
- [ ] Tiled JSON 包含 `Collisions` 层
- [ ] 所有图块素材路径都落在地图包内
- [ ] `uv run python scripts/validate_map_package.py custom/maps/` 通过
- [ ] PR 正文至少附一张截图
## 🧪 提交新实验 · 检查表
- [ ] 目录在 `agentsociety/quick_experiments///`
- [ ] `README.md`(英文)+ `README.zh-CN.md`(中文)
- [ ] `init/init_config.json` + `init/steps.yaml`
- [ ] `run.sh` 能用 AgentSociety CLI 拉起实验
- [ ] 如果有操作员脚本,补一份手动运行说明(参考 PKU Trump 实验的模式)
## 📜 License
向 GOD 贡献内容,即表示你同意按 [Apache License 2.0](LICENSE) 授权你的贡献。
集成的上游代码(`agentsociety/`、`jiuwenclaw/`)各自保留了它们的 LICENSE / NOTICE,
对应子树仍受其约束。
## 🛡️ 友善些
GOD 是一个小型开源项目。请保持耐心、具体描述,给出你也愿意收到的那种反馈。
我们要做的是一座由 Agent 组成的小镇 —— 也希望围绕它,慢慢长出一个温暖的小社区。
---
谢谢你让 GOD 变得更好。⭐