完善配方驱动的创作编排

为可重复技能补充参数校验与展示,统一配方、编排器和执行单元术语。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
moran
2026-07-30 17:59:20 +08:00
co-authored by Cursor
parent e670a5129c
commit 6392af54b4
49 changed files with 1671 additions and 626 deletions
+7 -7
View File
@@ -23,7 +23,7 @@ function buildMainAgentSystemPrompt(
? workers.map((w) => `- ${w.id}:${w.description}`).join("\n")
: "- (当前 skill 未加载 worker 列表)";
return `你是写作系统的导演(Main Agent)。你的职责是调度演员(worker),而不是直接创作正文。
return `你是写作系统的编排器(Main Agent)。你的职责是调度执行单元(worker),而不是直接创作正文。
规则:
1. 你不能直接生成小说/文章正文。
@@ -34,27 +34,27 @@ function buildMainAgentSystemPrompt(
6. requiresApproval 表示运行 worker 前是否需要用户确认。代笔模式通常为 true。
7. run_worker 可选 workerContext:{ "roleId": "A" },用于 role-decide 等指定当前决策角色(Runtime 写入 世界.当前角色.id)。
8. 你不能把未验收内容当作事实。
9. 向用户提问是 worker 的能力(ask_user tool),不是独立 worker。导演只在调度层提问。
9. 向用户提问是 worker 的技能(ask_user tool),不是独立 worker。编排器只在调度层提问。
10. blackboardIndex 只有 tag 索引,不含正文 content。
## 调度思维
用需求正推:「用户需要 [具体体验/能力] → 调用 [worker/skill] 来 [生成/补充/调整] [什么],以便更好满足用户。」
用需求正推:「用户需要 [具体体验/技能] → 调用 [worker/skill] 来 [生成/补充/调整] [什么],以便更好满足用户。」
禁止否定式路由:「某模式 / 背景形态 → 不需要某步骤 / 跳过某 worker」。
反例(禁止):「背景为单一角色,无需世界构建」「不是规则怪谈,跳过 write-rules」「默认上世界模拟套件」
正例:「用户已选世界模拟器导演且要网恋对话 → design-flow 排出近期增量步骤(可调味、可后补)→ 用户认可后反复 design-step;需要再补规则/实例 → 再 design-flow 追加同能力 → 收成后若需开局 → opening-generator;用户手动进 play」
正例:「用户已选世界模拟器配方且要网恋对话 → design-flow 排出近期增量步骤(可调味、可后补;有编排参数的步骤须钉 params)→ 用户认可后反复 design-step;需要再补规则/实例 → 再 design-flow 追加同技能并写齐 params → 收成后若需开局 → opening-generator;用户手动进 play」
当前 skill 可用 worker(workerId 必须与下列 id 完全一致):
${workerLines}
## design 优先顺序
- 尚无「设计.创作流程」→ **design-flow**(近期 horizon;status=open;未选导演则先请用户选)
- 流程已验收且还有未完成步骤 → **design-step**(一次一步;能力由程序注入)
- 尚无「设计.创作流程」→ **design-flow**(近期 horizon;status=open;未选配方则先请用户选)
- 流程已验收且还有未完成步骤 → **design-step**(一次一步;技能由程序注入)
- 已列步骤都验收但流程仍 **status=open** → 再 **design-flow**(追加反复步或 closed)
- 禁止调度已废弃的 design-core / design-fixed / design-worker / design-refine
- 终稿已 accept 且可用 opening-generator、尚无开场产物 → opening-generator
- 进 play 由用户手动决定
- **禁止**替用户猜测或改选导演
- **禁止**替用户猜测或改选配方
- **禁止**一次编排排死全程固定 DAG
输出必须是 JSON 对象,字段:
+8 -7
View File
@@ -68,29 +68,30 @@ function buildToolLoopSystemPrompt(
「不是规则怪谈,跳过 write-rules。」
示例(好):
- 「用户已选导演且要 1v1 网恋 → design-flow 排出近期增量步骤(可调味)→ 认可后反复 design-step;不够再追加。」
- 「用户已选配方且要 1v1 网恋 → design-flow 排出近期增量步骤(可调味)→ 认可后反复 design-step;不够再追加。」
- 「尚无设计.创作流程 → run_worker(design-flow);有未完成步骤 → design-step;steps 完但 status=open → 再 design-flow。」
- 「Worker 集已 accept 且声明需要开局 → 调用 opening-generator 写开场白。」
- 「运行规格已 accept 且声明需要开局 → 调用 opening-generator 写开场白。」
示例(坏):
- 「调度 design-core / design-fixed(已废弃)。」
- 「一次 design-flow 排死全程固定 DAG。」
- 「跳过流程编排直接写满 Worker 集。」
- 「跳过流程编排直接写满运行规格。」
- 「默认先上世界模拟全套再问用户要什么。」
- 「替用户改选 / 猜测导演。」
- 「替用户改选 / 猜测配方。」
在 reasoning / 可见 content 中请用 **正推句式** 写出调度理由;终止 tool 的 reason 字段同样用正推表述。
## design 阶段提示
- 尚无「设计.创作流程」→ **优先 design-flow**(近期 horizon;status=open;未选则先请用户选)。
- 流程已验收、还有未完成步骤 → **design-step**(一次一步)。
- 已列步骤全验收但 **status=open** → 再 **design-flow**(追加生成规则/具体实例等,或设 closed)。
- 已列步骤全验收但 **status=open** → 再 **design-flow**(追加生成规则/具体实例等并钉齐 params,或设 closed)。
- 有编排参数的步骤缺必填 params → 先让 design-flow askUser,不要空壳跑 design-step。
- 禁止 run_worker(design-core|design-fixed|design-worker|design-refine)——已废弃。
- 不要重复问用户「想做什么」——意图已在 用户.需求。
- Worker 集已 accept,且可用 worker 含 opening-generator,尚无开场产物 → opening-generator。
- 运行规格已 accept,且可用 worker 含 opening-generator,尚无开场产物 → opening-generator。
- 进 play 由用户手动决定。
- 未声明开局、用户也未要求开场时,不要硬调 opening-generator。
- **禁止**替用户猜测或改选导演。
- **禁止**替用户猜测或改选配方。
- **禁止**一次编排排死全程固定长链。
当前 skill 可用 worker:
${workerLines}