lhk229 7a01f944dd 立项策划根 run 改用专用 Supervisor prompt,不再是通用合同的差集
原型系统几分钟就能跑完同一条链路且全程有澄清问答,生产链路 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>
2026-08-21 04:50:37 +00:00
2026-08-08 16:18:45 +08:00
2026-08-17 12:42:29 +08:00
2026-08-15 18:30:08 +08:00
2026-06-13 16:22:18 +08:00
2026-08-20 11:48:29 +00:00
2026-07-17 22:07:52 +08:00
2026-04-26 18:06:23 +08:00
2026-07-07 14:04:08 +08:00
2026-07-16 18:33:06 +08:00
2026-05-08 17:58:33 +08:00
2026-08-10 20:14:30 +08:00
2026-07-08 17:35:45 +08:00
2026-07-17 22:07:52 +08:00
1
2026-05-14 14:21:17 +08:00
2026-07-23 18:06:29 +08:00

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_IDALIYUN_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、Rust api-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:spacetimenpm run dev:api-servernpm run dev:bgfilter-workernpm run dev:webnpm run dev:admin-web;其中 dev:api-server 会安全带起同 runner 的 BgFilter worker 依赖。
  • 如需自动刷新后端模块,使用 npm run dev -- --watch;其中 spacetime-module 改动后只会重新发布模块,不会重启 standalone,Rust 源码改动会把 api-serverbgfilter-worker 作为一个组合单元重启。主站和后台前端源码变化交给 Vite 自身 HMR,不由外层 watcher 重启。非 watch 模式下可在 npm run dev 终端输入 rs api-serverrs bgfilter-workerrs webrs admin-webrs spacetimers 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

主要结构

主运行时:

主流程内嵌编辑能力:

核心数据:

文档入口

docs/ 已在 2026-05-15 完成压缩整理,旧 PRD、设计、审计、阶段计划和技术流水账不再作为实现依据。当前只读取:

S
Description
叙世
Readme 725 MiB
Languages
Rust 56.1%
TypeScript 24.4%
JavaScript 10%
Java 3.7%
Go 3.1%
Other 2.6%