docs: make Chinese README the default
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
<!-- WEHUB_ZH_README -->
|
||||
> [!NOTE]
|
||||
> 本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
|
||||
> [English](./README.en.md) · [原始项目](https://github.com/XiaoLuoLYG/GOD) · [上游 README](https://github.com/XiaoLuoLYG/GOD/blob/HEAD/README.md)
|
||||
> 原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
|
||||
|
||||
<h1 align="center">
|
||||
<img src="docs/assets/logo_no_bg.png" alt="GOD logo" height="32" />
|
||||
GOD · Govern · Observe · Direct
|
||||
@@ -7,28 +13,28 @@
|
||||
<img src="docs/assets/screenshots/00-hero.png" alt="GOD — Govern · Observe · Direct" width="100%" />
|
||||
</p>
|
||||
<p align="center">
|
||||
<b>🌩️ Be like a god to a town of agents.</b><br/>
|
||||
Pause time. Whisper to a soul. Bend the next step. Reset the world — all from a single click.
|
||||
<b>🌩️ 像上帝一样,俯瞰一座由 Agent 组成的小镇。</b><br/>
|
||||
暂停时间。操控环境。对某个灵魂发问。一键重置 —— 全部在一个屏幕里完成。
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://xiaoluolyg.github.io/GOD/replays/god-town/"><b>▶ Try browser replay</b></a>
|
||||
· no install, no API key ·
|
||||
<a href="#-quick-start"><b>Run locally</b></a>
|
||||
<a href="https://xiaoluolyg.github.io/GOD/replays/god-town/"><b>▶ 浏览器回放</b></a>
|
||||
· 无需安装、无需 API key ·
|
||||
<a href="#-快速开始"><b>本地运行</b></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<a href="#-live-demo"><b>🌐 Live Demo</b></a> ·
|
||||
<a href="#-quick-start"><b>🚀 Quick Start</b></a> ·
|
||||
<a href="#-updates">Updates</a> ·
|
||||
<a href="#-浏览器回放"><b>🌐 浏览器回放</b></a> ·
|
||||
<a href="#-快速开始"><b>🚀 快速开始</b></a> ·
|
||||
<a href="#-更新">更新</a> ·
|
||||
<a href="#%EF%B8%8F-roadmap">Roadmap</a> ·
|
||||
<a href="#-highlights">Highlights</a> ·
|
||||
<a href="#-features">Features</a> ·
|
||||
<a href="#-built-in-experiments">Built-in Experiments</a> ·
|
||||
<a href="https://xiaoluolyg.github.io/GOD/">Public Site</a> ·
|
||||
<a href="https://xiaoluolyg.github.io/GOD/developer/">Developer Docs</a> ·
|
||||
<a href="CONTRIBUTING.md">Contributing</a> ·
|
||||
<a href="README.zh-CN.md">🌏 中文</a>
|
||||
<a href="#-亮点">亮点</a> ·
|
||||
<a href="#-核心能力">核心能力</a> ·
|
||||
<a href="#-内置实验">内置实验</a> ·
|
||||
<a href="https://xiaoluolyg.github.io/GOD/zh/">公开站</a> ·
|
||||
<a href="https://xiaoluolyg.github.io/GOD/developer/zh/">开发者文档</a> ·
|
||||
<a href="CONTRIBUTING.zh-CN.md">参与开发</a> ·
|
||||
<a href="README.md">🌏 English</a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -36,7 +42,7 @@
|
||||
<img alt="Release" src="https://img.shields.io/github/v/release/XiaoLuoLYG/GOD?style=flat-square" />
|
||||
</a>
|
||||
<a href="https://xiaoluolyg.github.io/GOD/replays/god-town/">
|
||||
<img alt="Live replay" src="https://img.shields.io/badge/demo-browser%20replay-22c55e?style=flat-square" />
|
||||
<img alt="Live replay" src="https://img.shields.io/badge/demo-浏览器回放-22c55e?style=flat-square" />
|
||||
</a>
|
||||
<img alt="Python" src="https://img.shields.io/badge/python-3.11%2B-3776AB?style=flat-square&logo=python&logoColor=white" />
|
||||
<img alt="React" src="https://img.shields.io/badge/React-18-61DAFB?style=flat-square&logo=react&logoColor=black" />
|
||||
@@ -48,65 +54,64 @@
|
||||
|
||||
---
|
||||
|
||||
> Most agent-society demos let you watch a simulation play out. GOD gives you the controls.
|
||||
> 大多数 agent-society demo 只能让你看着仿真自己跑完,GOD 把控制权交回到你手里。
|
||||
>
|
||||
> Replay a run, question any resident, change what happens next, and export a pack others can rerun, all from one screen.
|
||||
> It is built for inspecting language-agent societies, not for claiming they are socially realistic.
|
||||
> 在同一个屏幕里回放一次运行、向任意居民提问、改变接下来发生的事,再导出一个别人能照着复现的包。
|
||||
> 它是用来检查 language-agent society 的,不负责声称它们有多接近真实社会。
|
||||
|
||||
## 🗓️ Updates
|
||||
## 🗓️ 更新
|
||||
|
||||
- **2026-06-11 · [v0.2.0](https://github.com/XiaoLuoLYG/GOD/releases/tag/v0.2.0):** public site with browser replays;
|
||||
Experiment / Map / Agent pack hubs and ZIP import-export; Windows launcher; hardened first-run startup.
|
||||
([#64](https://github.com/XiaoLuoLYG/GOD/pull/64) [#65](https://github.com/XiaoLuoLYG/GOD/pull/65))
|
||||
- **2026-06-06 · Site & packs:** rebuilt public site and frontend; site packs delivered through release assets; map pack preview pages. ([#61](https://github.com/XiaoLuoLYG/GOD/pull/61) [#62](https://github.com/XiaoLuoLYG/GOD/pull/62) [#63](https://github.com/XiaoLuoLYG/GOD/pull/63))
|
||||
- **2026-06-01 · Portable packs:** unified ExperimentPack downloads; GOD package import/export; curated experiment library.
|
||||
([#57](https://github.com/XiaoLuoLYG/GOD/pull/57) [#59](https://github.com/XiaoLuoLYG/GOD/pull/59) [#60](https://github.com/XiaoLuoLYG/GOD/pull/60))
|
||||
- **2026-05-30 · Windows launcher & hubs:** `god.cmd start` matches the macOS/Linux flow; AgentPack hubs and public replay exports; parallel JiuwenClaw requests. ([#45](https://github.com/XiaoLuoLYG/GOD/pull/45) [#49](https://github.com/XiaoLuoLYG/GOD/pull/49) [#50](https://github.com/XiaoLuoLYG/GOD/pull/50))
|
||||
- **2026-05 · Operator studios:** bilingual control room, map-first `/ask` + `/intervene` rail,
|
||||
Agent Studio, Map Studio, unified skill runtime.([#26](https://github.com/XiaoLuoLYG/GOD/pull/26) to [#31](https://github.com/XiaoLuoLYG/GOD/pull/31))
|
||||
- **2026-05-21 · [v0.1.0](https://github.com/XiaoLuoLYG/GOD/releases/tag/v0.1.0):** first tagged release with two built-in experiments and the PKU campus map. ([#21](https://github.com/XiaoLuoLYG/GOD/pull/21) [#24](https://github.com/XiaoLuoLYG/GOD/pull/24))
|
||||
- **2026-06-11 · [v0.2.0](https://github.com/XiaoLuoLYG/GOD/releases/tag/v0.2.0):** 公开站与浏览器回放;
|
||||
Experiment / Map / Agent 包 hub 与 ZIP 导入导出;Windows 一键启动;首次启动硬化。([#64](https://github.com/XiaoLuoLYG/GOD/pull/64) [#65](https://github.com/XiaoLuoLYG/GOD/pull/65))
|
||||
- **2026-06-06 · 公开站与资源包:** 重做公开站与前端;站点资源包改走 release assets;地图包预览页。
|
||||
([#61](https://github.com/XiaoLuoLYG/GOD/pull/61) [#62](https://github.com/XiaoLuoLYG/GOD/pull/62) [#63](https://github.com/XiaoLuoLYG/GOD/pull/63))
|
||||
- **2026-06-01 · 可移植包:** 统一 ExperimentPack 下载;GOD 包导入导出;精选实验库。([#57](https://github.com/XiaoLuoLYG/GOD/pull/57) [#59](https://github.com/XiaoLuoLYG/GOD/pull/59) [#60](https://github.com/XiaoLuoLYG/GOD/pull/60))
|
||||
- **2026-05-30 · Windows 启动器与 hub:** `god.cmd start` 对齐 macOS/Linux 流程;AgentPack hub 与公开 replay 导出;JiuwenClaw 请求并行化。([#45](https://github.com/XiaoLuoLYG/GOD/pull/45) [#49](https://github.com/XiaoLuoLYG/GOD/pull/49) [#50](https://github.com/XiaoLuoLYG/GOD/pull/50))
|
||||
- **2026-05 · 操作台与 Studio:** 双语控制台、地图优先 `/ask` + `/intervene` rail、
|
||||
Agent Studio、Map Studio、统一 skill runtime。([#26](https://github.com/XiaoLuoLYG/GOD/pull/26) 到 [#31](https://github.com/XiaoLuoLYG/GOD/pull/31))
|
||||
- **2026-05-21 · [v0.1.0](https://github.com/XiaoLuoLYG/GOD/releases/tag/v0.1.0):** 首个打标发布,内置两个实验和 PKU 校园地图。([#21](https://github.com/XiaoLuoLYG/GOD/pull/21) [#24](https://github.com/XiaoLuoLYG/GOD/pull/24))
|
||||
|
||||
## ✨ Highlights
|
||||
## ✨ 亮点
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" width="20%">⏯️<br/><b>Pause time</b><br/><sub>Stop, scrub, fast-forward, auto-play any live step.</sub></td>
|
||||
<td align="center" width="20%">💬<br/><b>Ask anyone</b><br/><sub>Ask one resident, a group, or the whole town, mid-run.</sub></td>
|
||||
<td align="center" width="20%">🎛️<br/><b>Steer the next step</b><br/><sub>Inject instructions and inspect how agents respond.</sub></td>
|
||||
<td align="center" width="20%">🪄<br/><b>No-code setup</b><br/><sub>Configure model, scenario and agents from a browser wizard.</sub></td>
|
||||
<td align="center" width="20%">🔄<br/><b>Reset run state</b><br/><sub>One command wipes a stale run and re-seeds a clean world.</sub></td>
|
||||
<td align="center" width="20%">⏯️<br/><b>暂停时间</b><br/><sub>任意 step replay、暂停、加速、自动推进。</sub></td>
|
||||
<td align="center" width="20%">💬<br/><b>定向提问</b><br/><sub>在 live session 里向某个居民、群组或全镇发问。</sub></td>
|
||||
<td align="center" width="20%">🎛️<br/><b>引导下一步</b><br/><sub>注入指令,并检查 Agent 后续响应。</sub></td>
|
||||
<td align="center" width="20%">🪄<br/><b>零代码上手</b><br/><sub>浏览器配置向导:模型、剧本、Agent 一站搞定。</sub></td>
|
||||
<td align="center" width="20%">🔄<br/><b>重置运行状态</b><br/><sub>一条命令清掉旧数据,重新生成干净的小镇状态。</sub></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## 🖼️ Screenshots
|
||||
## 🖼️ 截图
|
||||
|
||||
<p align="center">
|
||||
<img src="docs/assets/screenshots/01-control-room.png" alt="GOD control room" width="94%" />
|
||||
<img src="docs/assets/screenshots/01-control-room-zh.png" alt="GOD 控制台" width="94%" />
|
||||
</p>
|
||||
|
||||
<p align="center"><sub>Live control room: PKU map, step controls, targeted ask, and resident roster in one view.</sub></p>
|
||||
<p align="center"><sub>实时控制台:PKU 地图、step 控制、定向提问、居民列表全在一个界面里。</sub></p>
|
||||
|
||||
## 🌐 Live Demo
|
||||
## 🌐 浏览器回放
|
||||
|
||||
Browse everything in your browser on the [**public site**](https://xiaoluolyg.github.io/GOD/): curated replays, map packs, agent packs, and downloadable experiments. No install or API key needed.
|
||||
打开 [**公开站**](https://xiaoluolyg.github.io/GOD/zh/) 在浏览器里逛一圈:精选回放、地图包、Agent 包和可下载实验。无需安装,也不用 API key。
|
||||
|
||||
<p align="center">
|
||||
<a href="https://xiaoluolyg.github.io/GOD/">
|
||||
<img src="docs/assets/screenshots/03-public-site.png" alt="GOD public site" height="190" />
|
||||
<a href="https://xiaoluolyg.github.io/GOD/zh/">
|
||||
<img src="docs/assets/screenshots/03-public-site-zh.png" alt="GOD 公开站" height="190" />
|
||||
</a>
|
||||
|
||||
<a href="https://xiaoluolyg.github.io/GOD/map-packs/">
|
||||
<img src="docs/assets/screenshots/04-map-packs.png" alt="GOD map packs" height="190" />
|
||||
<img src="docs/assets/screenshots/04-map-packs-zh.png" alt="GOD 地图包" height="190" />
|
||||
</a>
|
||||
|
||||
<a href="https://xiaoluolyg.github.io/GOD/agent-packs/">
|
||||
<img src="docs/assets/screenshots/05-agent-packs.png" alt="GOD agent packs" height="190" />
|
||||
<img src="docs/assets/screenshots/05-agent-packs-zh.png" alt="GOD Agent 包" height="190" />
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p align="center"><sub>Left to right: the public site homepage, downloadable map packs, and downloadable agent packs.</sub></p>
|
||||
<p align="center"><sub>从左到右:公开站首页、可下载地图包、可下载 Agent 包。</sub></p>
|
||||
|
||||
## 🚀 Quick Start
|
||||
## 🚀 快速开始
|
||||
|
||||
```bash
|
||||
git clone https://github.com/XiaoLuoLYG/GOD.git
|
||||
@@ -114,84 +119,84 @@ cd GOD
|
||||
./scripts/god.sh start
|
||||
```
|
||||
|
||||
Windows PowerShell: from the repo root, run `.\scripts\god.cmd start`.
|
||||
Windows PowerShell:进入仓库根目录后运行 `.\scripts\god.cmd start`。
|
||||
|
||||
On the first run the script installs everything, opens a **browser-based setup wizard**, and waits for you to finish. You never have to edit `.env` or pass command-line flags by hand.
|
||||
首次启动会自动装好依赖,打开 **浏览器中的实验配置向导**,然后等你填完。你不用手改 `.env`,也不用记命令行参数。
|
||||
|
||||
<p align="center">
|
||||
<img src="docs/assets/screenshots/02-setup-wizard-en.png" alt="GOD setup wizard" width="100%" />
|
||||
<img src="docs/assets/screenshots/02-setup-wizard-zh.png" alt="GOD 实验配置向导" width="100%" />
|
||||
</p>
|
||||
|
||||
<p align="center"><sub>The Setup Wizard: model config, experiment choice, and custom society creation in one browser flow.</sub></p>
|
||||
<p align="center"><sub>实验配置向导:模型配置、默认实验选择、自建实验发布都在同一个浏览器流程里。</sub></p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center" width="16%">🔌<br/><b>1. Model</b><br/><sub>Paste an OpenAI-compatible API key, base URL, and model name.</sub></td>
|
||||
<td align="center" width="16%">🧭<br/><b>2. Choose</b><br/><sub>Open GOD Town, open PKU Trump Visit, or create your own.</sub></td>
|
||||
<td align="center" width="16%">🧪<br/><b>3. Scenario</b><br/><sub>Describe your world: date, weather, vibes, rules.</sub></td>
|
||||
<td align="center" width="16%">🤖<br/><b>4. Generate</b><br/><sub>The GOD agent drafts agent profiles and a step plan.</sub></td>
|
||||
<td align="center" width="16%">✏️<br/><b>5. Edit</b><br/><sub>Tweak personalities, relationships, locations, or steps.</sub></td>
|
||||
<td align="center" width="16%">▶️<br/><b>6. Launch</b><br/><sub>Publish the experiment and step into the control room.</sub></td>
|
||||
<td align="center" width="16%">🔌<br/><b>1. 模型</b><br/><sub>填入 OpenAI 兼容的 API key、base URL 和模型名。</sub></td>
|
||||
<td align="center" width="16%">🧭<br/><b>2. 选择</b><br/><sub>打开 GOD Town、打开 PKU Trump Visit,或新建实验。</sub></td>
|
||||
<td align="center" width="16%">🧪<br/><b>3. 剧本</b><br/><sub>用自然语言描述世界:日期、天气、氛围、规则。</sub></td>
|
||||
<td align="center" width="16%">🤖<br/><b>4. 生成</b><br/><sub>GOD agent 自动起草 agent profile 和 step 计划。</sub></td>
|
||||
<td align="center" width="16%">✏️<br/><b>5. 编辑</b><br/><sub>调整人物性格、关系、地点、步骤。</sub></td>
|
||||
<td align="center" width="16%">▶️<br/><b>6. 启动</b><br/><sub>发布为当前实验,直接进入控制台。</sub></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
Any OpenAI-compatible endpoint works. When the wizard hands off, the script prints a URL like:
|
||||
任意 OpenAI 兼容接口都可以。向导收尾后,脚本会打印类似这样的地址:
|
||||
|
||||
```text
|
||||
http://127.0.0.1:5174/pixel-replay/god_town/1
|
||||
```
|
||||
|
||||
Full walkthrough: **[Quickstart →](QUICKSTART.md)**
|
||||
完整步骤见 **[快速开始 →](QUICKSTART.zh-CN.md)**
|
||||
|
||||
## 🧩 Features
|
||||
## 🧩 核心能力
|
||||
|
||||
| | Feature | What you get |
|
||||
| | 能力 | 你得到什么 |
|
||||
| --- | --- | --- |
|
||||
| 🎬 | **Replay control** | Scrub a live or recorded replay by step. Pause, jump, auto-play. |
|
||||
| 💬 | **Targeted ask** | Send a natural-language question to one agent, a group, or the whole town. |
|
||||
| 🎛️ | **Real-time intervention** | Inject instructions into the *next* step; agents read them on their next turn. |
|
||||
| ⌨️ | **Command composer** | Type `/ask` or `/intervene`, use `@Name #id` completions, and send operator commands without leaving the map. |
|
||||
| 🪄 | **No-code setup wizard** | Browser-based: configure model + scenario, let GOD generate agents and steps, edit, then launch. |
|
||||
| 🧬 | **Agent Studio** | Add or edit residents through a map-aware wizard for seed, identity, appearance, personality, routine, and review. |
|
||||
| 🧭 | **Map Studio** | Generate or upload a map draft, calibrate locations and collisions, validate it, then publish it as a local map package. |
|
||||
| 🧼 | **One-command reset** | Wipe replay data and seed a clean society without leaving the terminal. |
|
||||
| 🗺️ | **Pixel town world** | A live tiled map: locations, actions, messages, statuses, all replay-friendly per step. |
|
||||
| 🧱 | **Single current experiment** | `.env` stores local model/port settings; `.god/current_experiment.json` stores the one active experiment. |
|
||||
| 🌐 | **Browser replays** | Curated replays on GitHub Pages, no local setup or API key required. |
|
||||
| 📦 | **Pack library** | Import and export Experiment, Map, and Agent packs; browse more on the public site. |
|
||||
| 🪟 | **Windows launcher** | `god.cmd start` on PowerShell, the same one-command flow as macOS/Linux. |
|
||||
| 🎬 | **Replay 控制** | 按 step 拖动、暂停、跳转、自动推进,live 或已记录 replay 都行。 |
|
||||
| 💬 | **定向提问** | 用自然语言向某个 Agent、某组人或全镇提问。 |
|
||||
| 🎛️ | **实时干预** | 给即将执行的 step 注入指令,Agent 下一回合就读得到。 |
|
||||
| ⌨️ | **命令输入器** | 在地图上直接输入 `/ask` 或 `/intervene`,用 `@Name #id` 自动补全目标。 |
|
||||
| 🪄 | **零代码配置向导** | 浏览器里配置模型 + 剧本,让 GOD 生成 Agent 和 step,编辑后启动。 |
|
||||
| 🧬 | **Agent Studio** | 用地图感知的向导新增 / 编辑居民:seed、身份、外貌、性格、日程、review 一步步完成。 |
|
||||
| 🧭 | **地图工作台** | 生成或上传地图草稿,校准地点与碰撞层,校验后发布为本地地图包。 |
|
||||
| 🧼 | **一键重开** | 一条命令清掉 replay 数据,孵化一座干净的小镇。 |
|
||||
| 🗺️ | **像素小镇世界** | 地点、动作、消息、状态都是结构化、replay 友好的。 |
|
||||
| 🧱 | **唯一当前实验** | `.env` 只保存模型、API、端口等本机配置;`.god/current_experiment.json` 保存唯一 active 实验。 |
|
||||
| 🌐 | **浏览器回放** | GitHub Pages 上的精选回放,无需本地安装或 API key。 |
|
||||
| 📦 | **资源包库** | Experiment / Map / Agent 包导入导出;公开站还有更多可下载场景。 |
|
||||
| 🪟 | **Windows 启动器** | PowerShell 下 `god.cmd start`,与 macOS/Linux 同样一条命令。 |
|
||||
|
||||
## 🛣️ Roadmap
|
||||
|
||||
### ✅ Completed
|
||||
### ✅ 已完成
|
||||
|
||||
- [x] 🗺️ **Pluggable map packages**: drop a folder under `agentsociety/custom/maps/<map_id>/`, refresh the wizard, and a new world is selectable. Auto-discovered, validated, hot-swappable. See [`docs/MAP_PACKAGES.md`](docs/MAP_PACKAGES.md).
|
||||
- [x] 🏫 **PKU campus map**: the PKU map package is bundled as a first-class map alongside The Ville.
|
||||
- [x] 🪄 **No-code setup wizard**: browser flow for model setup, built-in experiment choice, custom experiment generation/editing, and launch.
|
||||
- [x] 🧪 **Scripted experiments**: reproducible experiments ship as plain folders under `quick_experiments/<hypothesis>/<experiment>/`; choosing or publishing one makes it the current experiment.
|
||||
- [x] 🎮 **Control Room command rail**: replay controls, resident roster, live console, targeted Ask, and Intervene now live in one map-first operator surface.
|
||||
- [x] 🧬 **Agent Studio v1**: map-aware add/edit flow with structured profile metadata, ID validation, setup integration, and sprite generation support.
|
||||
- [x] 🧭 **Map Studio v1**: prompt/reference-image map draft generation, anchor and collision calibration, package validation, publishing, and Setup handoff.
|
||||
- [x] 🌏 **Bilingual runtime UI**: English/Chinese UI and runtime-owned labels for setup, replay, maps, statuses, actions, and system events.
|
||||
- [x] 🔌 **Agent skill-runtime path**: the shipped JiuwenClaw agent adapter now uses the AgentSociety skill runtime as the canonical execution path.
|
||||
- [x] 🌐 **Public site & browser replays**: GitHub Pages hosts curated replays, map packs, agent packs, and downloadable experiments, with no local setup or API key.
|
||||
- [x] 📦 **Portable packs & import/export**: Experiment, Map, and Agent packs with ZIP import/export, delivered through release assets.
|
||||
- [x] 🪟 **Windows one-key launcher**: `god.cmd start` mirrors the one-command macOS/Linux flow.
|
||||
- [x] 🗺️ **可拔插地图包**:把一个文件夹丢到 `agentsociety/custom/maps/<map_id>/`,刷新向导即出现新世界。自动发现、自动校验、热插拔。详见 [`docs/MAP_PACKAGES.zh-CN.md`](docs/MAP_PACKAGES.zh-CN.md)。
|
||||
- [x] 🏫 **PKU 校园地图**:PKU 地图包已经作为一等地图随仓库发布,和 The Ville 一起可选。
|
||||
- [x] 🪄 **零代码配置向导**:浏览器流程,模型配置、内置实验选择、自建实验生成 / 编辑 / 发布,一台空机器到真实的小镇。
|
||||
- [x] 🧪 **可复现实验**:实验以普通文件夹形式发布,位于 `quick_experiments/<hypothesis>/<experiment>/`。选择或发布一个实验后,它就会成为 current。
|
||||
- [x] 🎮 **控制台命令 rail**:replay 控制、居民列表、Live Console、定向 Ask 和 Intervene 都合并在一个地图优先的操作界面里。
|
||||
- [x] 🧬 **Agent Studio v1**:地图感知的新增 / 编辑 Agent 流程,包含结构化 profile metadata、ID 校验、Setup 集成和 sprite 生成支持。
|
||||
- [x] 🧭 **Map Studio v1**:prompt / 参考图生成地图草稿,锚点与碰撞层校准,地图包校验、发布,以及返回 Setup 的 handoff。
|
||||
- [x] 🌏 **双语运行时 UI**:setup、replay、地图、状态、动作和系统事件中的产品侧文本支持 English / 中文。
|
||||
- [x] 🔌 **Agent skill-runtime 路径**:随仓库发布的 JiuwenClaw adapter 现在以 AgentSociety skill runtime 作为标准执行路径。
|
||||
- [x] 🌐 **公开站与浏览器回放**:GitHub Pages 托管精选回放、地图包、Agent 包和可下载实验,无需本地安装或 API key。
|
||||
- [x] 📦 **可移植包与导入导出**:Experiment / Map / Agent 包支持 ZIP 导入导出,通过 release assets 分发。
|
||||
- [x] 🪟 **Windows 一键启动**:`god.cmd start`,与 macOS/Linux 一样一条命令。
|
||||
|
||||
### 🛣️ Not Yet Done
|
||||
### 🛣️ 未完成 / 进行中
|
||||
|
||||
- [ ] 🤖 **Pluggable agent runtimes**: swap LLM runtimes and persona templates as cleanly as we now swap maps.
|
||||
- [ ] 🧪 **Multi-experiment orchestration**: run experiments, control groups, repeats, and ablations side by side.
|
||||
- [ ] 🗺️ **Live map generation**: maps that evolve with events, repairs, blockages, and crowds.
|
||||
- [ ] 🌦️ **Event-responsive worlds**: weather, accidents, festivals, rumors, and shortages that change agent behavior over time.
|
||||
- [ ] 🌐 **Large-scale simulation**: AgentSociety batching, sharded runs, sampled replay, and performance-minded replay summaries.
|
||||
- [ ] 📊 **Experiment evaluation**: cross-run metrics, behavior diffs, intervention effect analysis.
|
||||
- [ ] 📝 **Operator workflow**: per-step notes, tags, bookmarks, key-event summaries.
|
||||
- [ ] 🌍 **Hosted live control room**: a hosted demo where you can steer a run, not just watch replays, plus community scenario templates.
|
||||
- [ ] 🤖 **可拔插 Agent 运行时**:让 LLM runtime 和 persona 模板能像地图一样干净地替换。
|
||||
- [ ] 🧪 **多实验编排**:在同一个控制台里跑实验、对照组、重复试验和 ablation。
|
||||
- [ ] 🗺️ **实时地图生成**:地图随事件、修缮、阻塞、人群动态演化。
|
||||
- [ ] 🌦️ **事件响应世界**:天气、事故、节日、谣言、供应短缺影响 Agent 行为。
|
||||
- [ ] 🌐 **大规模仿真**:接入 AgentSociety 的批量 Agent、分片运行、采样 replay 和性能友好的 replay 摘要。
|
||||
- [ ] 📊 **实验评估**:跨实验指标、行为差异、干预效果分析和可分享报告。
|
||||
- [ ] 📝 **操作员工作流**:每个 step 的笔记、标签、书签、保存命令宏和关键事件摘要。
|
||||
- [ ] 🌍 **托管 live 控制台**:一个可以真正操控运行(而不只是看回放)的托管 demo,外加社区场景模板。
|
||||
|
||||
Have an idea? [Open an issue or PR](#-contributing).
|
||||
有想法?欢迎来 [issue 和 PR](#-参与开发) 聊。
|
||||
|
||||
## 🏗️ How It Works
|
||||
## 🏗️ 架构
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
@@ -218,144 +223,142 @@ flowchart LR
|
||||
classDef data fill:#fdf2f8,stroke:#db2777,color:#831843,stroke-width:2px;
|
||||
```
|
||||
|
||||
GOD is intentionally local-first: the control room, backend, runtime bridge, experiment files, and replay store all run on your machine. The model endpoint is the only external service you choose.
|
||||
GOD 是 local-first:控制台、后端、runtime bridge、实验文件和 replay store 都运行在本机。唯一外部服务是你选择的模型接口。
|
||||
|
||||
GOD keeps three concepts separate:
|
||||
GOD 把三个概念分开:
|
||||
|
||||
- **Experiment** is the playable setup: map, agents, scenario context, and step plan.
|
||||
- **Replay** is the viewable result of an experiment after it has been played.
|
||||
- **Runtime state** is local machine data such as SQLite replay stores, logs, and agent snapshots; it is not part of an ExperimentPack and should not be committed.
|
||||
- **Experiment** 是可玩的实验设定:地图、智能体、场景上下文和 step 计划。
|
||||
- **Replay** 是实验被运行之后可以观看的结果。
|
||||
- **本地运行状态** 是 SQLite replay store、日志、agent snapshot 等机器数据;它不属于 ExperimentPack,也不应该提交到仓库。
|
||||
|
||||
| Layer | What it does |
|
||||
| 层 | 职责 |
|
||||
| --- | --- |
|
||||
| 🎮 **Control Room** | React/Vite browser UI: replay, ask, intervention, status. |
|
||||
| ⚙️ **Backend** | Local FastAPI service exposing live and replay APIs. |
|
||||
| 🗺️ **Pixel Town** | Replay-friendly social world: locations, actions, messages, agent status. |
|
||||
| 🤖 **Agent Runtime** | Out-of-process LLM agents reached over a local WebSocket. |
|
||||
| 🎮 **Control Room** | React/Vite 控制台,replay、ask、intervention、status 都在这里。 |
|
||||
| ⚙️ **Backend** | 本地 FastAPI,提供 live 和 replay API。 |
|
||||
| 🗺️ **Pixel Town** | 像素小镇社会状态:地点、动作、消息、Agent 状态。 |
|
||||
| 🤖 **Agent Runtime** | 独立进程的 LLM Agent,通过本地 WebSocket 连接。 |
|
||||
|
||||
## ⚙️ Commands
|
||||
## ⚙️ 常用命令
|
||||
|
||||
```bash
|
||||
./scripts/god.sh start # start the full stack (idempotent)
|
||||
./scripts/god.sh configure # open setup to switch defaults or create an experiment
|
||||
./scripts/god.sh restart # stop everything cleanly, then start again
|
||||
./scripts/god.sh new-run # wipe local runtime state for the current experiment and start fresh
|
||||
./scripts/god.sh status # ports, URLs, model status
|
||||
./scripts/god.sh stop # stop everything
|
||||
./scripts/god.sh tail # follow logs
|
||||
./scripts/god.sh open # open the frontend pages in the default browser
|
||||
./scripts/god.sh start # 启动完整栈(可重复执行)
|
||||
./scripts/god.sh configure # 打开配置向导,切换默认实验或新建实验
|
||||
./scripts/god.sh restart # 先干净停止,再重新启动
|
||||
./scripts/god.sh new-run # 清空当前实验的本地运行状态,并开一个新的 session
|
||||
./scripts/god.sh status # 查看端口、URL、模型状态
|
||||
./scripts/god.sh stop # 停止所有服务
|
||||
./scripts/god.sh tail # 跟随日志
|
||||
./scripts/god.sh open # 在浏览器里打开前端页面
|
||||
```
|
||||
|
||||
On Windows, replace `./scripts/god.sh` with `.\scripts\god.cmd`.
|
||||
Windows 下把 `./scripts/god.sh` 替换成 `.\scripts\god.cmd` 即可。
|
||||
|
||||
## 🧪 Built-in Experiments
|
||||
## 🧪 内置实验
|
||||
|
||||
GOD ships two built-in experiments and treats them exactly like experiments you publish yourself. The setup wizard writes the selected experiment to `.god/current_experiment.json`; `start`, `open`, and `new-run` then act only on that current experiment.
|
||||
GOD 现在内置两个默认实验,并且和你自己发布的实验使用同一套 current model。配置向导会把你选择的实验写到 `.god/current_experiment.json`;之后 `start`、`open`、`new-run` 都只作用于这个当前实验。
|
||||
|
||||
More downloadable scenarios live on the [**public site**](https://xiaoluolyg.github.io/GOD/experiments/): Empty City Gate, Gaokao Blackout, Hogwarts Parent Meeting, and others.
|
||||
[**公开站**](https://xiaoluolyg.github.io/GOD/zh/experiments/) 上还有更多可下载场景,比如空城计、高考停电、霍格沃茨家长会。
|
||||
|
||||
`.env` is intentionally local-only and only stores model, API, port, and similar machine settings. It no longer decides the default experiment or map, so an old `GOD_MAP_ID=pku` cannot make GOD Town load the PKU map.
|
||||
`.env` 只保存本机模型、API、端口等配置,不再决定默认实验或地图。因此即使旧 `.env` 里残留 `GOD_MAP_ID=pku`,选择 GOD Town 时仍然会使用 `the_ville` 地图,不会串台。
|
||||
|
||||
|
||||
### 🏘️ An ordinary weekday in The Ville
|
||||
### 🏘️ The Ville 的一个普通工作日
|
||||
|
||||
A late-spring Tuesday morning at 8:20. Sunny, 18°C, light breeze. A 200-person town with **10 residents who know each other but don't live in each other's pockets**. It is a slice-of-life simulation, not a quest script.
|
||||
晚春的工作日清晨 8:20,晴朗微风,气温 18°C。一座 200 多人的小镇,**10 位常住居民彼此熟识但各过各的生活**。它是一段日常生活切片,不是任务驱动的剧本。
|
||||
|
||||
➡️ **Choose `god_town` in the Setup Wizard to make this the current experiment.** It is bound to `hypothesis_god_town/experiment_1` and the `the_ville` map.
|
||||
➡️ **在配置向导选择 `god_town` 即可把它设为当前实验。** 它固定绑定 `hypothesis_god_town/experiment_1` 和 `the_ville` 地图。
|
||||
|
||||
➡️ See [`hypothesis_god_town/experiment_1/`](agentsociety/quick_experiments/hypothesis_god_town/experiment_1/README.md) for the full breakdown of locations, profiles, and interactions.
|
||||
➡️ 完整的地点 / 居民 / 交互拆解见 [`hypothesis_god_town/experiment_1/`](agentsociety/quick_experiments/hypothesis_god_town/experiment_1/README.md)。
|
||||
|
||||
<p align="center">
|
||||
<img src="docs/assets/screenshots/map-the-ville.png" alt="The Ville map" width="94%" />
|
||||
<img src="docs/assets/screenshots/map-the-ville.png" alt="The Ville 地图" width="94%" />
|
||||
</p>
|
||||
|
||||
<p align="center"><sub>The Ville: all 10 residents going about a typical day across home, school, library, cafe, park, market, pharmacy, pub, and dorm.</sub></p>
|
||||
<p align="center"><sub>The Ville 地图:10 位居民在家、学校、图书馆、咖啡馆、公园、市场、药房、酒馆、宿舍之间度过普通一天。</sub></p>
|
||||
|
||||
<table>
|
||||
<tr><td colspan="5" align="center"><b>🗺️ 10 Locations · 65 location-scoped interactions</b></td></tr>
|
||||
<tr><td colspan="5" align="center"><b>🗺️ 10 个地点 · 65 个 location-scoped 交互</b></td></tr>
|
||||
<tr>
|
||||
<td align="center" width="20%">🏠<br/><b>Home</b><br/><sub>cook · sleep · tidy · read · WFH · video-call</sub></td>
|
||||
<td align="center" width="20%">🏫<br/><b>School</b><br/><sub>attend / teach class · grade · office hours</sub></td>
|
||||
<td align="center" width="20%">📚<br/><b>Library</b><br/><sub>read · study · research · borrow / return</sub></td>
|
||||
<td align="center" width="20%">☕<br/><b>Hobbs Cafe</b><br/><sub>light meal · coffee chat · cafe shift · meetup</sub></td>
|
||||
<td align="center" width="20%">🌳<br/><b>Johnson Park</b><br/><sub>walk · meet · exercise · public announcement</sub></td>
|
||||
<td align="center" width="20%">🏠<br/><b>家</b><br/><sub>做饭 · 睡觉 · 整理 · 阅读 · 居家办公 · 视频家人</sub></td>
|
||||
<td align="center" width="20%">🏫<br/><b>学校</b><br/><sub>上课 / 教书 · 批改 · 课后答疑</sub></td>
|
||||
<td align="center" width="20%">📚<br/><b>图书馆</b><br/><sub>阅读 · 学习 · 查资料 · 借还书</sub></td>
|
||||
<td align="center" width="20%">☕<br/><b>Hobbs Cafe</b><br/><sub>简餐 · 咖啡聊天 · 值班 · 随性碰头</sub></td>
|
||||
<td align="center" width="20%">🌳<br/><b>Johnson Park</b><br/><sub>散步 · 见友 · 晨练 · 公共播报</sub></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" width="20%">🛠️<br/><b>Supply Store</b><br/><sub>repair · restock · lend tools · customer service</sub></td>
|
||||
<td align="center" width="20%">🛒<br/><b>Market</b><br/><sub>buy food · haggle · deliver · chat w/ regulars</sub></td>
|
||||
<td align="center" width="20%">💊<br/><b>Pharmacy</b><br/><sub>buy medicine · refill · check BP · home visit prep</sub></td>
|
||||
<td align="center" width="20%">🍻<br/><b>Pub</b><br/><sub>socialize · watch match · host small event</sub></td>
|
||||
<td align="center" width="20%">🛏️<br/><b>Dorm</b><br/><sub>rest · self-study · common-room hangout · video call</sub></td>
|
||||
<td align="center" width="20%">🛠️<br/><b>供给店</b><br/><sub>修理 · 上货 · 借工具 · 顾客接待</sub></td>
|
||||
<td align="center" width="20%">🛒<br/><b>市场</b><br/><sub>买食物 · 议价 · 送单 · 和老客闲聊</sub></td>
|
||||
<td align="center" width="20%">💊<br/><b>药房</b><br/><sub>买药 · 续方 · 量血压 · 上门准备</sub></td>
|
||||
<td align="center" width="20%">🍻<br/><b>酒馆</b><br/><sub>社交 · 看比赛 · 主持小活动</sub></td>
|
||||
<td align="center" width="20%">🛏️<br/><b>宿舍</b><br/><sub>休息 · 自习 · 公共区休闲 · 视频家里</sub></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<tr><td colspan="5" align="center"><b>👥 10 residents, each with a real life</b></td></tr>
|
||||
<tr><td colspan="5" align="center"><b>👥 10 位居民,每个人都有真实生活</b></td></tr>
|
||||
<tr>
|
||||
<td align="center" width="20%">🧭<br/><b>Alice</b> · 34<br/><sub>Neighborhood coordinator</sub></td>
|
||||
<td align="center" width="20%">🛠️<br/><b>Bob</b> · 45<br/><sub>Supply-store shopkeeper</sub></td>
|
||||
<td align="center" width="20%">📖<br/><b>Charlie</b> · 39<br/><sub>High-school history teacher</sub></td>
|
||||
<td align="center" width="20%">💊<br/><b>Dana</b> · 41<br/><sub>Pharmacy nurse</sub></td>
|
||||
<td align="center" width="20%">☕<br/><b>Elena</b> · 36<br/><sub>Cafe owner</sub></td>
|
||||
<td align="center" width="20%">🧭<br/><b>Alice</b> · 34<br/><sub>社区协调员</sub></td>
|
||||
<td align="center" width="20%">🛠️<br/><b>Bob</b> · 45<br/><sub>市场五金店主</sub></td>
|
||||
<td align="center" width="20%">📖<br/><b>Charlie</b> · 39<br/><sub>中学历史老师</sub></td>
|
||||
<td align="center" width="20%">💊<br/><b>Dana</b> · 41<br/><sub>社区药房护理员</sub></td>
|
||||
<td align="center" width="20%">☕<br/><b>Elena</b> · 36<br/><sub>咖啡馆老板</sub></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" width="20%">🎒<br/><b>Farah</b> · 16<br/><sub>High-school student</sub></td>
|
||||
<td align="center" width="20%">📮<br/><b>George</b> · 68<br/><sub>Retired postman</sub></td>
|
||||
<td align="center" width="20%">💻<br/><b>Hana</b> · 28<br/><sub>Remote software engineer</sub></td>
|
||||
<td align="center" width="20%">🦺<br/><b>Ivan</b> · 52<br/><sub>Public-safety volunteer</sub></td>
|
||||
<td align="center" width="20%">🍅<br/><b>Mei</b> · 47<br/><sub>Market vegetable vendor</sub></td>
|
||||
<td align="center" width="20%">🎒<br/><b>Farah</b> · 16<br/><sub>高中学生</sub></td>
|
||||
<td align="center" width="20%">📮<br/><b>George</b> · 68<br/><sub>退休邮递员</sub></td>
|
||||
<td align="center" width="20%">💻<br/><b>Hana</b> · 28<br/><sub>远程软件工程师</sub></td>
|
||||
<td align="center" width="20%">🦺<br/><b>Ivan</b> · 52<br/><sub>社区安全志愿者</sub></td>
|
||||
<td align="center" width="20%">🍅<br/><b>Mei</b> · 47<br/><sub>市场蔬果摊主</sub></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<sub>Every resident carries a full profile: age, family, housing, economic status, health, daily routine, skills, needs, worries, secrets, social network, language style, quirks, short- & long-term goals.</sub>
|
||||
<sub>每位居民都有完整 profile:年龄、家庭、住房、经济状况、健康、日常作息、技能、需求、担忧、秘密、社交圈、语言风格、小怪癖、短期/长期目标。</sub>
|
||||
|
||||
### 🏫 PKU Trump Visit
|
||||
|
||||
A campus public-situation experiment on a stylized PKU map. Daily routines begin around gates, classrooms, library, lake, dining hall, dormitory, and Centennial Hall, then a high-attention visit event tests how residents notice, ask, gather, and react.
|
||||
这是一个发生在风格化北大校园地图上的公共事件实验。Agent 会先在校门、教学楼、图书馆、未名湖、食堂、宿舍、百周年纪念讲堂等地点开始日常行动,然后在一次高关注访问事件中表现出注意、询问、聚集和讨论。
|
||||
|
||||
➡️ **Choose `pku_trump_visit` in the Setup Wizard to make this the current experiment.** It is bound to `hypothesis_pku_trump_visit/experiment_1` and the `pku` map.
|
||||
➡️ **在配置向导选择 `pku_trump_visit` 即可把它设为当前实验。** 它固定绑定 `hypothesis_pku_trump_visit/experiment_1` 和 `pku` 地图。
|
||||
|
||||
➡️ See [`hypothesis_pku_trump_visit/experiment_1/`](agentsociety/quick_experiments/hypothesis_pku_trump_visit/experiment_1/README.md) for the full scenario, cast, operator notes, and replay data.
|
||||
➡️ 完整场景、角色、操作脚本和 replay 数据见 [`hypothesis_pku_trump_visit/experiment_1/`](agentsociety/quick_experiments/hypothesis_pku_trump_visit/experiment_1/README.md)。
|
||||
|
||||
<p align="center">
|
||||
<img src="docs/assets/screenshots/map-pku.png" alt="PKU campus map" width="94%" />
|
||||
<img src="docs/assets/screenshots/map-pku.png" alt="PKU 校园地图" width="94%" />
|
||||
</p>
|
||||
|
||||
<p align="center"><sub>PKU campus map: gates, classrooms, library, Weiming Lake, Boya Pagoda, dining hall, dorm, and Centennial Hall, with named residents and the Trump-visit cast.</sub></p>
|
||||
<p align="center"><sub>PKU 校园地图:校门、教学楼、图书馆、未名湖、博雅塔、食堂、宿舍、百周年纪念讲堂,以及 PKU Trump Visit 的角色阵容。</sub></p>
|
||||
|
||||
## 🗺️ Pluggable Map Packages
|
||||
## 🗺️ 可拔插地图包
|
||||
|
||||
GOD now discovers map packages automatically from `agentsociety/custom/maps/<map_id>/`. To add a map, copy [`agentsociety/custom/maps/_template/`](agentsociety/custom/maps/_template/), replace `map.yaml`, `visuals/map.json`, tileset PNGs, and optional `characters/` or `location_assets/`, then run:
|
||||
GOD 会自动从 `agentsociety/custom/maps/<map_id>/` 发现地图包。想加一张新地图?复制 [`agentsociety/custom/maps/_template/`](agentsociety/custom/maps/_template/README.zh-CN.md),替换 `map.yaml`、`visuals/map.json`、tileset PNG,以及可选的 `characters/` 和 `location_assets/`,然后跑:
|
||||
|
||||
```bash
|
||||
cd agentsociety
|
||||
uv run python scripts/validate_map_package.py custom/maps/<map_id>
|
||||
```
|
||||
|
||||
The setup wizard will list valid packages without code changes. v1 supports Tiled JSON maps with PNG tilesets and a `Collisions` layer where `0` means walkable. The PKU campus package now ships in the repository at `agentsociety/custom/maps/pku/`. See [docs/MAP_PACKAGES.md](docs/MAP_PACKAGES.md) for the full package contract.
|
||||
配置向导会自动列出所有合法的地图包,完全不用改代码。v1 支持带 PNG tileset 的 Tiled JSON 地图,并要求一个 `Collisions` 层(`0` 表示可走)。PKU 校园地图包现在已经随仓库发布,路径是 `agentsociety/custom/maps/pku/`。完整契约见 [docs/MAP_PACKAGES.zh-CN.md](docs/MAP_PACKAGES.zh-CN.md)。
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
Issues and pull requests are very welcome. To set up a dev environment:
|
||||
## 🤝 参与开发
|
||||
|
||||
```bash
|
||||
./scripts/god.sh start
|
||||
```
|
||||
|
||||
That installs Python and Node dependencies, brings up the full stack, creates a live session, and runs the first step so the control room opens on a populated town. From there, edit and reload.
|
||||
会自动装好 Python、Node 依赖,启动完整栈,创建 live session,并先跑完第 1 步,让控制台打开时就是已初始化的小镇。改完代码刷新即可。
|
||||
|
||||
Full guide: **[CONTRIBUTING.md →](CONTRIBUTING.md)** covers branching, the PR checklist, style, and how to ship a new map or experiment.
|
||||
完整指南见 **[CONTRIBUTING.zh-CN.md →](CONTRIBUTING.zh-CN.md)**:分支策略、PR 检查表、代码风格,以及怎么提交一张新地图或新实验。
|
||||
|
||||
## 🙌 Acknowledgements
|
||||
## 🙌 致谢
|
||||
|
||||
GOD builds on open research and open-source work. It bundles two trimmed upstream checkouts:
|
||||
GOD 构建在开源研究和开源代码之上。仓库内集成了两份精简过的上游代码:
|
||||
|
||||
- [AgentSociety](https://github.com/tsinghua-fib-lab/AgentSociety): large-scale generative-agent simulation framework.
|
||||
- [JiuwenClaw](https://github.com/openJiuwen-ai/jiuwenclaw): out-of-process agent runtime.
|
||||
- [AgentSociety](https://github.com/tsinghua-fib-lab/AgentSociety):大规模 generative-agent 模拟框架。
|
||||
- [JiuwenClaw](https://github.com/openJiuwen-ai/jiuwenclaw):进程外 Agent runtime。
|
||||
|
||||
And takes inspiration from [Generative Agents](https://arxiv.org/abs/2304.03442) and [OASIS](https://github.com/camel-ai/oasis).
|
||||
同时受 [Generative Agents](https://arxiv.org/abs/2304.03442) 与 [OASIS](https://github.com/camel-ai/oasis) 启发。
|
||||
|
||||
## 📚 Citation
|
||||
## 📚 引用
|
||||
|
||||
```bibtex
|
||||
@article{piao2025agentsociety,
|
||||
@@ -388,6 +391,6 @@ And takes inspiration from [Generative Agents](https://arxiv.org/abs/2304.03442)
|
||||
|
||||
## 📄 License
|
||||
|
||||
Released under the [Apache-2.0](LICENSE) license. Upstream LICENSE and NOTICE files are kept inside the integrated runtime checkouts and apply to those subtrees.
|
||||
[Apache-2.0](LICENSE)。集成的上游代码各自保留了它们的 LICENSE / NOTICE,对应子树仍受其约束。
|
||||
|
||||
<p align="center"><sub>If GOD is useful to you, a ⭐ helps other people find it.</sub></p>
|
||||
<p align="center"><sub>如果 GOD 对你有用,点个 ⭐ 能帮更多人找到它。</sub></p>
|
||||
|
||||
Reference in New Issue
Block a user