7a01f944dda327d17eaa4f9a9ddb2bc970f123ee
原型系统几分钟就能跑完同一条链路且全程有澄清问答,生产链路 run 11/12/13 三次
澄清轮数都是 0。拓扑不是差异来源——两边都是 D11。差的是 Supervisor 读到的
东西:原型给它一份 1.4k 的专用提示词,明写「你不生产策划内容」和固定动作序列;
生产给它的是 13.5k 的通用总控合同,预设手里有 43 个工具、六个专业组、isolated
child、正式任务图和视觉产物合同,而 plan 根一个都没有。
此前的做法是在通用合同上逐段做减法($visualContract、supervisorIntro、
isolatedTemplateCatalogIntro、$isolatedAgentTemplates 四个 `if plan_root`
分支)。这个形状本身在漏:模板目录那一段就是漏到第三轮才发现的,而每漏一段
都是一次已实测的偏航。现在整份换成 manifest 里的 supervisorPlan composition,
plan 根的段落清单一眼可读,不再散落在两个函数的四个否定分支里。
保留的三段各有硬理由:
- isolatedAgentContract —— expectedArtifacts 合同,agent.delegate 同样要用。
- supervisorRepair —— 返工必须用原 delegationId 重读 claimedDelegateContract
并逐字继承 acceptanceCriteria/expectedArtifacts。run 12 连撞两次的就是这条。
- planCommon —— common.md 的子集副本,见下。
替换的两段:
- planSupervisorIdentity 取代 supervisorIdentityContract。后者的「用验收标准和
预期产物把边界清晰的任务委派给合适的专业 Agent」正是替用户预先裁定的压力源,
且 plan 根只有一个可委派目标;末句的黑板与 Agent 记忆在收窄后的工具面上是
死文本。
- planSupervisorPlaybook 取代 supervisorPlaybook。后者首段讲 spawn_isolated
批次与 manifest DAG、末段要求「manifest 正式任务图已完成」,在本链路都不可
执行。新段落照原型形状写死六步动作顺序,并补上生产此前完全没有的转述保真
规则:`[已确认] {header} → 用户答:{原文}` 逐条列出,任务接近长度上限时压缩
自己的说明而不是压缩用户答案。
删掉的三段:
- common.md 有 43% 是 plan 根执行不了的内容(改码流程、git 提交、联网检索、
整段「作为被委派的专业 Agent 时」的身份错位),其中「最后一次修改后必须成功
执行 project.verify 才能 respond_to_user」还是一道 plan 根永远满足不了的假
门禁。但同一段压着这条链路唯一的原创性红线、user.input_request 协议和静态
委派协议——D11 的协议正文在这里,不在 playbook。所以 planCommon 逐字复制这
三段,并用 tripwire 断言反向钉住:planCommon 的每段都必须能在 common.md 里
逐字找到。
- supervisorClaimGate 讲 minIsolatedGroupsBeforeClaim,无 isolated group 时恒
不触发。
- $platform 整段是 command.start/exec/poll/stdin/terminate 的用法合同,plan 根
一个 command 工具都没有。GDD 里的平台事实由 Runtime 另行注入,与这段无关。
提示词头部改用上一笔提交的 allowlist 拼工具清单,与 Provider 请求实际广告的
函数目录共用同一份事实。两边各自维护一份就会退回「合同说有 43 个、请求里只有
9 个」的自相矛盾,而那正是收窄工具面本身要消灭的东西;这一致性单独钉了一条
断言。
supervisor/playbook.md 里的反预先裁定段落保留。执行层只单向拦住 plan 根,
agent.delegate 的 agentId 是自由字符串,gui/cli Supervisor 委派 project-planning
并未被禁,那段在通用 lane 不是死文本。两份逐字相同,另有一条 tripwire 钉住。
plan 根实际拼到的提示词从 13531 字节降到 9049 字节,但重点不是体积——是被删的
全部执行不了、补上的固定动作序列此前完全缺失。
已变异验证四条新断言。全量 2238 passed / 10 failed,逐条单线程复跑后 7 条转绿
(并行噪声),剩余 3 条是本机缺 rg 与 CRLF,与本次改动无关。
尚未验证的是这些文字是否真的改变模型行为——单测只能证明它进了提示词。判据是
下一次 E2E 能否触发 AGC_NEEDS_USER_INPUT_V1 信封。
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
AI Native Visual RPG
一个以“AI 叙事 + 本地规则 + 像素演出”为核心的视觉 RPG 原型。
当前已经具备这些主要能力:
- 世界与角色选择
- AI 剧情推进与流式对话
- 战斗演出、NPC 战斗、切磋
- NPC 交易、送礼、求助、招募
- 宝藏交互
- 同伴跟随与战斗
- 游戏主流程内嵌的角色资产工坊、自定义世界实体编辑与角色形象编辑
- 自动存档与继续游戏
运行
前置条件:
- Node.js
- Rust / Cargo
- SpacetimeDB CLI
安装依赖:
npm install
准备环境变量:
- 复制
.env.example为.env.local - 填入
LLM_API_KEY/ARK_API_KEY - 按需设置
VITE_LLM_MODEL - 如需启用阿里云短信验证码登录,填写
ALIYUN_SMS_ACCESS_KEY_ID、ALIYUN_SMS_ACCESS_KEY_SECRET,并确认SMS_AUTH_PROVIDER="aliyun" - 本地联调短信登录时,建议将
VITE_AUTH_ALLOW_DEV_GUEST设为false,避免开发模式自动进入游客账号而跳过登录页 - 如需打印完整 prompt/output,可把
VITE_LLM_DEBUG_LOG设为true
启动开发环境:
npm run dev
补充说明:
npm run dev会启动 SpacetimeDB standalone、独立bgfilter-worker、Rustapi-server、主站 Vite 与后台 Vite,适合完整联调;内部 worker ready 后才启动 API。- 主站默认地址是
http://127.0.0.1:3000,后台可从http://127.0.0.1:3000/admin/进入,也可直连http://127.0.0.1:3102。 - 五个模块可独立启动:
npm run dev:spacetime、npm run dev:api-server、npm run dev:bgfilter-worker、npm run dev:web、npm run dev:admin-web;其中dev:api-server会安全带起同 runner 的 BgFilter worker 依赖。 - 如需自动刷新后端模块,使用
npm run dev -- --watch;其中spacetime-module改动后只会重新发布模块,不会重启 standalone,Rust 源码改动会把api-server与bgfilter-worker作为一个组合单元重启。主站和后台前端源码变化交给 Vite 自身 HMR,不由外层 watcher 重启。非 watch 模式下可在npm run dev终端输入rs api-server、rs bgfilter-worker、rs web、rs admin-web、rs spacetime或rs all,其中rs spacetime也是只重新发布模块。
构建生产包:
npm run build
常用检查
类型检查:
npm run lint
编码检查:
npm run check:encoding
内容引用校验:
npm run check:data
编辑器 override 校验:
npm run check:overrides
关键内容 smoke 检查:
npm run check:smoke
一键内容检查:
npm run check:content
主要结构
主运行时:
主流程内嵌编辑能力:
- src/components/image-editor/ImageCanvasEditorView.tsx
- src/components/rpg-creation-editor/RpgCreationEntityEditorModal.tsx
- src/components/rpg-creation-asset-studio/RpgCreationRoleAssetStudioModal.tsx
核心数据:
- src/data/scenePresets.ts
- src/data/characterPresets.ts
- src/data/npcInteractions.ts
- src/data/treasureInteractions.ts
文档入口
docs/ 已在 2026-05-15 完成压缩整理,旧 PRD、设计、审计、阶段计划和技术流水账不再作为实现依据。当前只读取:
- docs/README.md:当前文档总入口。
- docs/【项目基线】当前产品与工程约束-2026-05-15.md:产品、命名、UI、协作和废弃路线。
- docs/【后端架构】server-rs与SpacetimeDB数据契约-2026-05-15.md:DDD 边界、API 分组、SpacetimeDB schema 规则和表目录。
- docs/【玩法创作】平台入口与玩法链路-2026-05-15.md:创作入口、草稿架和各玩法当前口径。
- docs/【开发运维】本地开发验证与生产运维-2026-05-15.md:本地启动、检查、部署、埋点和运营查询。
- UI_CODING_STANDARD.md:像素 UI 资产与编码规范。
Description
Languages
Rust
56.1%
TypeScript
24.4%
JavaScript
10%
Java
3.7%
Go
3.1%
Other
2.6%