@sokeai/cli 1.0.73 → 1.0.75
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/scripts/build-binaries.sh +12 -0
- package/scripts/release.sh +50 -1
- package/skills/SKILL.md +1 -1
- package/skills/ai-coach-director/SKILL.md +379 -45
- package/skills/ai-coach-director/coaching/prompt-engineer/parts/part2-roles.md +8 -8
- package/skills/ai-coach-director/coaching/prompt-engineer/prompt-engineer.md +70 -43
- package/skills/ai-coach-director/platform/adapters/README.md +68 -0
- package/skills/ai-coach-director/platform/adapters/qclaw.md +67 -0
- package/skills/ai-coach-director/platform/adapters/workbuddy.md +45 -0
- package/skills/ai-coach-director/platform/adapters/wukong.md +70 -0
- package/skills/ai-coach-director/platform/adapters/zework.md +89 -0
- package/skills/ai-coach-director/platform/api-fallback.md +262 -0
- package/skills/ai-coach-director/platform/interaction.md +13 -10
- package/skills/ai-coach-director/platform/publish-gate.md +44 -0
- package/skills/ai-coach-director/platform/resource-finalizer.md +128 -0
- package/skills/ai-coach-director/platform/sync-engine.md +217 -90
- package/skills/ai-coach-director/references/env-check.md +46 -11
- package/skills/ai-coach-director/references/platform-api-pitfalls.md +15 -1
- package/skills/ai-coach-director/references/role-resource-matching.md +53 -16
- package/skills/ai-coach-director/references/verified-cli-cheatsheet.md +26 -12
- package/skills/soke-cli/345/256/211/350/243/205/346/214/207/345/215/227.md +45 -7
- package/skills/soke-course/soke-cli/345/256/211/350/243/205/346/214/207/345/215/227.md +44 -6
- package/skills/soke-exam-question-pool/SKILL.md +76 -45
- package/skills/soke-learning-map/soke-cli/345/256/211/350/243/205/346/214/207/345/215/227.md +45 -7
- package/skills/soke-task/SKILL.md +29 -9
- package/skills/ai-coach-director/.learnings/LEARNINGS.md +0 -71
|
@@ -29,19 +29,19 @@
|
|
|
29
29
|
- 角色禁忌 → `ai_roles[].role_data.taboos_objections`
|
|
30
30
|
- 不能只写业务画像,必须确保每个属性都有 JSON 字段目的地。
|
|
31
31
|
|
|
32
|
-
**2.
|
|
33
|
-
- Part2
|
|
34
|
-
- 角色卡模板中的「头像资源URL」「语音资源ID
|
|
35
|
-
- Part2
|
|
32
|
+
**2. 头像与语音由平台资源库自动匹配——禁止手工预设、禁止向用户展示。**
|
|
33
|
+
- Part2 内容展示阶段**严禁**手工填入头像和语音。
|
|
34
|
+
- 角色卡模板中的「头像资源URL」「语音资源ID」属于隐藏字段,不向用户展示,也不要求用户确认。
|
|
35
|
+
- Part2 内容完整展示并由用户确认后,`sync-engine.md` 自动执行资源匹配流程(见 `references/role-resource-matching.md`):
|
|
36
36
|
1. 拉取系统头像库:`soke-cli ai-training +list-role-avatars --pretty`
|
|
37
37
|
2. 拉取系统语音库:`soke-cli ai-training +list-role-voices --pretty`
|
|
38
38
|
3. 按角色的**姓名 → 性别暗示 → 年龄段 → 职业/身份**(匹配优先级 P0→P1→P2)从库中匹配最合适的资源
|
|
39
|
-
4. `
|
|
39
|
+
4. 在生成 `part2-operations.json` 和 `part2-role-XX.json` 前写入 `avatar`(头像资源 URL,来自 `+list-role-avatars` 的 `url` 字段)和 `voice_id`(语音资源 ID,来自 `+list-role-voices` 的 `id` 字段)
|
|
40
40
|
- 匹配维度优先级:
|
|
41
41
|
- P0:性别暗示(从姓名/描述/沟通风格提取)+ 年龄段(从背景判断)
|
|
42
42
|
- P1:职业/身份(从姓名/描述提取关键词)
|
|
43
43
|
- P2:气质风格(从 MBTI/沟通风格推断)
|
|
44
|
-
- **禁止在 Part2
|
|
44
|
+
- **禁止在 Part2 展示阶段手工指定或伪造资源**:avatar 和 voice_id 不向用户展示,由用户确认后的后台资源匹配流程自动写入角色级 JSON,并随角色主体一次落地。
|
|
45
45
|
|
|
46
46
|
**3. 知识水平必须按枚举语义输出。**
|
|
47
47
|
- `knowledge_level` 必须按数组语义准备,可选如:`["小白"]`、`["半桶水"]`、`["专家级"]`。
|
|
@@ -280,7 +280,7 @@ AI技能 1:[技能名称,如:信息迷雾制造]
|
|
|
280
280
|
* **知识水平:** [小白/半桶水/专家级] (后续需可直接映射到 `knowledge_level` 数组)
|
|
281
281
|
* **角色禁忌:** [导致对话失败、愤怒、直接离店的雷区] (后续需可拆成 `taboos_objections` 列表)
|
|
282
282
|
* **MBTI性格类型:** [代码] - [类型名称]
|
|
283
|
-
* **平台资源:**
|
|
283
|
+
* **平台资源:** 隐藏字段,不向用户展示;用户确认后后台自动匹配头像资源URL与语音资源ID,来源=`custom`
|
|
284
284
|
|
|
285
285
|
**角色背景 (深度心理画像) → JSON: `background`(直接复制四段全文,不压缩):**
|
|
286
286
|
> ⚠️ **来源硬约束**:以下四段必须基于用户上传的业务材料提取,禁止 AI 凭空生成。每段末尾标注材料来源(如「来源:客户提供的销冠话术第3页」)。
|
|
@@ -305,7 +305,7 @@ AI技能 1:[技能名称,如:信息迷雾制造]
|
|
|
305
305
|
|
|
306
306
|
在把 Part2 交给 `interaction.md` 确认前,必须逐项自检:
|
|
307
307
|
|
|
308
|
-
-
|
|
308
|
+
- 头像/语音是否已从用户展示内容中隐藏,并等待用户确认后由平台资源自动匹配写入(❌ 不可手写资源 ID,❌ 不可写 CDN URL,❌ 不可让用户确认资源匹配步骤)
|
|
309
309
|
- 角色姓名 + 性别暗示 + 年龄段信息是否足以支撑后续资源匹配(如不足,补充后再输出 Part2)
|
|
310
310
|
- `knowledge_level` 是否能直接落成数组,而不是自然语言描述
|
|
311
311
|
- `角色标签` 是否足够精炼,能直接转成 `tags`
|
|
@@ -60,45 +60,56 @@ prompt-engineer 只管"产出什么内容",platform 层管"怎么确认、怎么
|
|
|
60
60
|
|
|
61
61
|
任一步未通过,先修复环境,再进入创建流程。
|
|
62
62
|
|
|
63
|
-
### Step 1:输出 Part1 → 弹窗确认 →
|
|
63
|
+
### Step 1:输出 Part1 → 弹窗确认 → 选封面 → 创建场景
|
|
64
64
|
|
|
65
65
|
1. 基于用户需求和业务资料,读取 `parts/part1-basic.md`,仅输出 Part1 内容。
|
|
66
66
|
2. **⛔ 展示检查(必做,弹窗前闸门)**:确认 Part1 全部内容已在对话中逐字段完整展示——场景名称 + 全部标签 + 场景描述全文(训练对象/业务情境/训练目标/边界条件全部段落)+ 考核关键点全部条目 + 场景语言。**未完整展示 → 禁止弹窗,回退补充。**
|
|
67
67
|
3. 按 `../../platform/interaction.md` 的「模板 1」弹窗确认 Part1(弹窗策略见 interaction.md 附录 A)。
|
|
68
|
-
4.
|
|
69
|
-
5.
|
|
70
|
-
|
|
71
|
-
- 封面应体现场景核心要素(行业、角色、互动感),避免抽象无意义的装饰图
|
|
72
|
-
6. **上传封面**:执行 `soke-cli ai-training +upload-scenario-cover --file ./scenario-cover.png --pretty`,从返回结果提取 CDN URL,写入 `step1-create.json.scenario_cover`。
|
|
73
|
-
7. 自动执行:`soke-cli ai-training +create-scenario --request-file ./step1-create.json --pretty`。
|
|
68
|
+
4. 选「确认,同步到平台(推荐)」后,**封面相关步骤后台自动执行,不向用户展示过程、不二次确认**。封面 URL 默认固定使用以下平台图:`https://newsokeeditorcdn.soke.cn/public/ai/cover/lingshou_daogou.png`。仅当用户明确指定其他封面、或后续资源补救流程主动替换时,才允许改用别的 URL。
|
|
69
|
+
5. 根据 `../../platform/sync-engine.md` 生成 `part1-create.json` 或沿用 `step1-create.json`,`scenario_cover` 字段写入后台自动确定的 URL。
|
|
70
|
+
6. **立即执行**:`soke-cli ai-training +create-scenario --request-file <part1-create.json|step1-create.json> --pretty`。
|
|
74
71
|
如需复制完整命令模板,统一参考 `../../references/verified-cli-cheatsheet.md`。
|
|
75
|
-
|
|
76
|
-
|
|
72
|
+
7. 从返回结果提取 `scenario_id`,写入 `state-snapshot.json`。
|
|
73
|
+
- **若未提取到非空 `scenario_id`**:视为创建失败,必须立即向用户报错并停止,禁止继续 Part2。
|
|
74
|
+
8. **创建后验证**:执行 `soke-cli ai-training +get-scenario --scenario-id <id> --pretty`,确认 `key_points`、`description`、`name`、`tags` 均已正确写入平台。
|
|
77
75
|
- 若 `key_points` 为空或缺失,检查 `step1-create.json` 中 `key_points` 是否为字符串格式(非数组)
|
|
78
|
-
-
|
|
79
|
-
|
|
80
|
-
|
|
76
|
+
- 若 `get-scenario` 验证失败:必须向用户报错并停止,禁止继续 Part2
|
|
77
|
+
9. 只有在 `scenario_id` 已成功写入且创建后验证通过时,才允许立即继续 Part2。
|
|
78
|
+
10. 选「内容需要微调」→ 调整 Part1,重新输出,再次用模板 1 弹窗。
|
|
81
79
|
|
|
82
80
|
> ⚠️ **Part1 确认后强制同步**:模板 1 不再提供「取消,重新来」选项。一旦确认 Part1,场景必须创建到平台。
|
|
81
|
+
> 🔴 **Part1 失败不可静默续流(v2.20.4)**:若前台已显示“已确认”,但后台 `+create-scenario` 未执行、执行失败、未返回 `scenario_id`、或 `get-scenario` 校验失败,必须立即向用户暴露失败并停在 Part1。严禁跳过失败直接继续输出 Part2。
|
|
83
82
|
|
|
84
|
-
|
|
83
|
+
> ⚠️ **确认后前台静默(v2.20.8)**:用户一旦回复“确认”,后续后台创建/同步步骤不再以前台消息展示任何中间过程。成功则直接进入下一 Part;失败才前台报错。
|
|
84
|
+
|
|
85
|
+
### Step 2:输出 Part2 → 弹窗确认 → 后台拆分同步并回读
|
|
85
86
|
|
|
86
87
|
1. 读取 `state-snapshot.json` 中已确认的 Part1 和 `scenario_id`,生成 Part2。
|
|
87
88
|
2. 默认直接生成 Part2;仅当资料特别杂、需要抽取 2-3 类典型客户、或用户明确要求按需画像时,才调用 `role-profiler`,结果缓存到 `state-snapshot.json` 的 `cached.role_profile`。
|
|
88
89
|
3. 生成 Part2 角色卡内容(名称、描述、性格、背景、MBTI、沟通风格、禁忌等)。
|
|
89
|
-
4.
|
|
90
|
+
4. **⚠️ Part2 资源前置后台自动执行**:在 Part2 内容完整展示并由用户确认后,系统自动执行资源查询和匹配,不向用户展示过程、不要求用户确认:
|
|
91
|
+
a. 自动查询 `+list-role-avatars` 和 `+list-role-voices`
|
|
92
|
+
b. 按 `../../references/role-resource-matching.md` 为每个角色匹配头像 URL 和 voice_id
|
|
93
|
+
c. 匹配结果直接写入 `role_data.avatar` 和 `role_data.voice_id`
|
|
94
|
+
d. 不允许默认写空值再回头补——头像和声音必须和角色主体一起落地
|
|
95
|
+
e. 若某个角色匹配失败,后台标注待补;只有在影响发布时才向用户暴露
|
|
90
96
|
5. 禁止把 `knowledge_level` 写成单个字符串;禁止只产出裸 `role_data` 而不考虑完整 custom role 外壳。
|
|
91
|
-
6. **⛔ 展示检查(必做,弹窗前闸门)**:确认 Part2
|
|
97
|
+
6. **⛔ 展示检查(必做,弹窗前闸门)**:确认 Part2 全部内容已在对话中按固定顺序逐字段完整展示——先展示 OS 整体设定全文(A1-A7 + 价格防御模板 + 考核反馈 + AI技能配置全部章节完整原文),再逐个展示角色1、角色2、角色3...(名称/描述/沟通风格/背景四段全文/MBTI/性格/标签/禁忌/知识水平 逐字段)。**未完整展示 → 禁止弹窗,回退补充。**
|
|
92
98
|
7. 按 `../../platform/interaction.md` 的「模板 2」弹窗确认 Part2(弹窗策略见 interaction.md 附录 A)。
|
|
93
99
|
8. 内部运行 Part2 一致性扫描(含 background 四维完整性检查:每个角色的 background 是否包含了四段深度画像的全部完整原文——我是谁/我的困扰/我的过往经历/我今天的心态)。无告警不输出;有告警则在确认前简要提示。
|
|
94
|
-
9. 选「确认」→
|
|
95
|
-
10. **⚠️ JSON 写入后、preview 前强制闸门**:逐字比对每个角色 `role_data.background` 与 Part2
|
|
96
|
-
11.
|
|
100
|
+
9. 选「确认」→ 后台先执行资源匹配,再同时生成 `part2-operations.json` 与 `part2-update.json`。此步骤不向用户确认或展示资源匹配结果。
|
|
101
|
+
10. **⚠️ JSON 写入后、preview 前强制闸门**:逐字比对每个角色 `role_data.background` 与 Part2 展示文本中的「角色背景」是否完全一致(标点、措辞、空格均不可有差异)。同时执行 B4.1 四维完整性检查。**任一项不通过 → 驳回,修正后重新走闸门,禁止直接 preview。**
|
|
102
|
+
11. **Part2 默认逐个保守写入**:不要默认整包 `replace_ai_roles` 一次写多个角色。优先策略是:生成完整 `part2-operations.json` 作为总定义后,后台拆分为 `part2-role-01.json`、`part2-role-02.json`、`part2-role-03.json`、`part2-os.json`;先单独写入第1个角色 → 回读验证;再逐个追加剩余角色 → 最后单独 `update_basic` 写入 OS。若 `get-scenario` 回读正常则按字段验收;若 `get-scenario` 仍为空,但平台实际已展示,则按已知平台回读异常记账通过。只有在平台侧也未展示时,才判定失败。
|
|
103
|
+
12. 自动执行 Part2 预览、应用与回读。默认角色级同步单元逐个执行;排障时再退回 `--request-file ./part2-update.json` 或 `--operations-file ./part2-operations.json` + `--base-updated-at` 模式。⚠️ 此时 JSON 中已包含真实的 avatar/voice_id,不需要 apply 后再跑资源回填。
|
|
97
104
|
如需复制完整命令模板,统一参考 `../../references/verified-cli-cheatsheet.md`。
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
105
|
+
13. 每个角色写入后优先回读验证该角色字段完整、无「角色数据异常」、avatar 为 URL、voice_id 为 ID;OS 写入后优先回读验证 `ai_roles_overall_description` 非空且与 OS 原文开头一致。若 CLI 回读为空,但平台实际已展示对应角色/OS,则按已知回读异常记账通过;仅当平台侧也未展示时,才视为失败并修复重试,仍失败才向用户暴露异常。
|
|
106
|
+
14. 全部角色与 OS 同步成功后更新 `state-snapshot.json`。
|
|
107
|
+
15. **若未生成 `part2-operations.json` / `part2-update.json`、未执行 preview/apply、或平台侧验收未通过**:必须立即向用户报错并停在 Part2,禁止继续 Part3。仅 CLI 回读为空但平台实际已展示,不算失败。
|
|
108
|
+
16. 自动获取最新 `updated_at/base_updated_at`,然后才输出 Part3。
|
|
109
|
+
17. 选「调整角色设定」→ 调整 Part2,重新输出,再次弹窗。
|
|
110
|
+
18. 选「重设角色设定」→ 回到内容层重新生成。
|
|
111
|
+
|
|
112
|
+
> 🔴 **Part2 失败不可静默续流(v2.20.6)**:若前台已显示“Part2 已确认”,但后台没有生成 Part2 JSON、没有执行真实平台同步、或平台侧也未展示角色/OS,必须立即向用户暴露失败并停在 Part2。**仅 CLI `get-scenario` 回读为空但平台实际已展示,不得误判为失败。**
|
|
102
113
|
|
|
103
114
|
### Step 3:输出 Part3 → 弹窗确认 → 自动预览并应用
|
|
104
115
|
|
|
@@ -106,12 +117,17 @@ prompt-engineer 只管"产出什么内容",platform 层管"怎么确认、怎么
|
|
|
106
117
|
2. **⛔ 展示检查(必做,弹窗前闸门)**:确认 Part3 全部内容已在对话中逐字段完整展示——开场引导语完整原文 + 每个环节(环节名/学员目标完整原文/AI任务完整原文含环节进入条件+IF-THEN逻辑+环节退出条件/最大轮次,题库和话术库不可省略)。**未完整展示 → 禁止弹窗,回退补充。**
|
|
107
118
|
3. 内部运行 Part3 一致性扫描。无告警不输出;有告警则在确认前简要提示。
|
|
108
119
|
4. 按 `../../platform/interaction.md` 的「模板 3」弹窗确认 Part3(弹窗策略见 interaction.md 附录 A)。
|
|
109
|
-
5. 选「确认」→
|
|
110
|
-
6. 自动执行 Part3 预览与应用 CLI
|
|
120
|
+
5. 选「确认」→ 同时生成 `part3-operations.json` 与 `part3-update.json`。
|
|
121
|
+
6. 自动执行 Part3 预览与应用 CLI,默认优先使用 `--request-file ./part3-update.json`;排障时再退回 operations 模式。
|
|
111
122
|
如需复制完整命令模板,统一参考 `../../references/verified-cli-cheatsheet.md`。
|
|
112
|
-
7.
|
|
113
|
-
8.
|
|
114
|
-
9.
|
|
123
|
+
7. 若 apply 后 `get-scenario` 回读未反映 `conversation_steps`,或连 `opening_dialogue` 也未同步反映,按已知平台回读问题处理:记录到状态快照后,**直接标记 Part3 通过并继续 Part4**;仅当 preview/apply 本身失败,或后续步骤出现明确依赖阻塞时,才判定为同步失败并回到 JSON/CLI 排查。
|
|
124
|
+
8. **若未生成 `part3-operations.json` / `part3-update.json`,或 preview/apply 本身失败**:必须立即向用户报错并停在 Part3,禁止继续 Part4。
|
|
125
|
+
9. 应用成功后更新状态,立即进入 Part4。
|
|
126
|
+
10. 选「调整流程设置」→ 调整 Part3,重新输出,再次弹窗。
|
|
127
|
+
11. 选「重设流程设置」→ 回到内容层重新生成。
|
|
128
|
+
|
|
129
|
+
> 🔴 **Part3 失败不可静默续流(v2.20.5)**:Part3 仅对“CLI 已执行成功但回读口径异常”允许直接续流。若 preview/apply 未真实执行、执行失败、或 JSON 根本未生成,必须立即报错并停在 Part3,严禁直接继续到 Part4。
|
|
130
|
+
|
|
115
131
|
|
|
116
132
|
### Step 4:输出 Part4 → 弹窗确认 → 自动预览并应用 → 验收评分已同步
|
|
117
133
|
|
|
@@ -119,7 +135,7 @@ prompt-engineer 只管"产出什么内容",platform 层管"怎么确认、怎么
|
|
|
119
135
|
2. **⛔ 展示检查(必做,弹窗前闸门)**:确认 Part4 全部内容已在对话中逐字段完整展示——评分标准名称 + 评分标准描述完整原文 + 每个维度(名称/描述/权重/scoring_rule 完整含分档标准和一票否决全文/criteria 完整列表/维度 code)。**未完整展示 → 禁止弹窗,回退补充。**
|
|
120
136
|
3. 内部运行 Part4 一致性扫描(评分维度与 Part1 key_points 一一对应、权重之和 = 100、每个维度 scoring_rule 含一票否决条件)。
|
|
121
137
|
4. 按 `../../platform/interaction.md` 的「模板 4」弹窗确认 Part4(弹窗策略见 interaction.md 附录 A)。
|
|
122
|
-
5. 选「确认」→
|
|
138
|
+
5. 选「确认」→ 同时生成 `part4-operations.json` 与 `part4-update.json`。
|
|
123
139
|
- 使用 `replace_scoring_criteria_config` operation type
|
|
124
140
|
- 必须包含 `scenario_criteria_id`、`customization_level`、`is_custom_criteria`、`customized_fields` 四个外壳字段
|
|
125
141
|
- 必须用 `data.config.criteria_data` 包裹(参考 `../../references/platform-api-pitfalls.md` 第 2 条和 `../../platform/sync-engine.md` Part4 字段映射表)
|
|
@@ -127,16 +143,19 @@ prompt-engineer 只管"产出什么内容",platform 层管"怎么确认、怎么
|
|
|
127
143
|
- `criteria_data` 内部必须包含 `source_type`、`total_weight`、`tags`
|
|
128
144
|
- 每个维度必须包含 `id`(格式 `dim_{code}`)和 `sort_order`(从 1 递增)
|
|
129
145
|
- 不再使用全局 `one_vote_veto` 字段;一票否决条件已嵌入各维度 `scoring_rule` 末尾
|
|
130
|
-
6. 自动执行 Part4 预览 CLI
|
|
131
|
-
7. 预览通过后立即执行 Part4 应用 CLI
|
|
146
|
+
6. 自动执行 Part4 预览 CLI:默认 `soke-cli ai-training +preview-scenario-update --request-file ./part4-update.json ...`
|
|
147
|
+
7. 预览通过后立即执行 Part4 应用 CLI:默认 `soke-cli ai-training +apply-scenario-update --request-file ./part4-update.json ...`;排障时再退回 operations 模式
|
|
132
148
|
如需复制完整命令模板,统一参考 `../../references/verified-cli-cheatsheet.md`。
|
|
133
|
-
8. **apply 后强制验收**:立即执行 `soke-cli ai-training +get-scenario --scenario-id <id> --pretty
|
|
149
|
+
8. **apply 后强制验收**:立即执行 `soke-cli ai-training +get-scenario --scenario-id <id> --pretty`,优先验证返回结果中 `scoring_criteria_config` 非空且含 `criteria_data.dimensions`。若 CLI 回读仍为 `null`,但平台实际已展示评分标准,则按已知平台回读异常记账通过。
|
|
134
150
|
9. 验收通过后更新 `state-snapshot.json` 的 `confirmed_data.part4` 和 `applied.part4`。
|
|
135
|
-
10.
|
|
136
|
-
11.
|
|
137
|
-
12.
|
|
151
|
+
10. **若未生成 `part4-operations.json` / `part4-update.json`、未执行 preview/apply、或平台侧也未展示评分配置**:必须立即向用户报错并停在 Part4,禁止继续 Part5。
|
|
152
|
+
11. 立即进入 Part5。
|
|
153
|
+
12. 选「调整评分标准」→ 调整 Part4,重新输出,再次弹窗。
|
|
154
|
+
13. 选「重设评分标准」→ 回到内容层重新生成。
|
|
155
|
+
|
|
156
|
+
> 🔴 **Part4 失败不可静默续流(v2.20.7)**:若前台已显示“Part4 已确认”,但后台没有生成 JSON、没有执行真实平台同步、或平台侧也未展示评分配置,必须立即向用户暴露失败并停在 Part4。**仅 CLI `get-scenario` 回读为 `scoring_criteria_config: null` 但平台实际已展示,不得误判为失败。**
|
|
138
157
|
|
|
139
|
-
> ⚠️ **Part4 评分标准必须同步到平台**:Part4
|
|
158
|
+
> ⚠️ **Part4 评分标准必须同步到平台**:Part4 不可仅做内容输出而不同步。评分标准未通过平台验收时,不得进入 Part5;但若 `preview/apply` 已成功且平台实际已展示评分标准,则即使 `get-scenario --pretty` 仍回读为 `scoring_criteria_config: null`,也按已知回读异常处理,不阻断流程。
|
|
140
159
|
> ⚠️ **Part4 不生成知识库内容**:提示词文档中可保留金牌话术作为参考资料,但不纳入 Part4 operations JSON、不缓存到 state-snapshot、不同步到平台。`golden_dialogue_description` 仅包含 Part3 SOP 流程摘要。
|
|
141
160
|
> ⚠️ **Part4 scoring_rule 禁止嵌入示例话术**:评分规则的各档描述中禁止出现引号包裹的示例对话(如"太好了谢谢姐!""最近怎么样"等),这些属于金牌话术库内容。scoring_rule 仅描述行为标准和得分条件,不写具体台词示例。criteria 评分点同样适用此规则。
|
|
142
161
|
|
|
@@ -146,14 +165,18 @@ prompt-engineer 只管"产出什么内容",platform 层管"怎么确认、怎么
|
|
|
146
165
|
2. 输出 Part5 固定模板(练习配置已写死:时长关闭、最大次数 10、通关分数 60、完成规则 all_steps、AI助答开启、难度中)。
|
|
147
166
|
3. **⛔ 展示检查(必做,弹窗前闸门)**:确认 Part5 练习配置固定模板已在对话中完整展示(练习时间默认关闭/最大练习次数/通关分数/完成规则/AI助答/通关难度全部数值和说明)。**未完整展示 → 禁止弹窗,回退补充。**
|
|
148
167
|
4. 按 `../../platform/interaction.md` 的「模板 5」弹窗确认 Part5(弹窗策略见 interaction.md 附录 A)。
|
|
149
|
-
5. 选「确认」→
|
|
168
|
+
5. 选「确认」→ 同时生成 `part5-operations.json` 与 `part5-update.json`。
|
|
150
169
|
- Part5 operations 使用固定值:`min_practice_duration`=0, `max_practice_duration`=0, `max_practice_attempts`=10, `passing_score`=60, `pass_difficulty`=2, `completion_rule`="all_steps", `ai_assistance_enabled`=true
|
|
151
170
|
- JSON 生成后逐项核对每个字段值与固定模板一致
|
|
152
171
|
- 确认不包含收尾话术、SOP 摘要、考核关键点摘要(这些已在 Part1 创建场景或 Part3 中同步)
|
|
153
|
-
6. 自动执行 Part5 预览与应用 CLI
|
|
172
|
+
6. 自动执行 Part5 预览与应用 CLI,默认优先使用 `--request-file ./part5-update.json`;排障时再退回 operations 模式。
|
|
154
173
|
如需复制完整命令模板,统一参考 `../../references/verified-cli-cheatsheet.md`。
|
|
155
|
-
7.
|
|
156
|
-
8.
|
|
174
|
+
7. Part5 同步后,执行发布闸门检查(`publish-gate.md`)确认所有资源字段已就绪。若前序 Part1/Part2 已正确写入封面/头像/声音,应直接通过发布闸门。
|
|
175
|
+
8. 若发布闸门发现资源缺失(如 Part1 用了方案C兜底封面、或某角色资源匹配失败),且无法自动补齐,则调用 `resource-finalizer.md` 做最后一次兜底补救。仍不通过则禁止发布。
|
|
176
|
+
9. **若未生成 `part5-operations.json` / `part5-update.json`、未执行 preview/apply、或练习配置验收失败**:必须立即向用户报错并停在 Part5,禁止输出“已完成创建”类摘要。
|
|
177
|
+
10. 选「不确认,跳过同步」→ 仅做内容输出,不生成 JSON。
|
|
178
|
+
|
|
179
|
+
> 🔴 **Part5 失败不可静默结束(v2.20.5)**:若前台已显示“Part5 已确认”,但后台没有生成 JSON、没有执行真实平台同步、或练习配置字段未成功写入平台,必须立即向用户暴露失败并停在 Part5。严禁误报“创建完成”。
|
|
157
180
|
|
|
158
181
|
> ⚠️ **Part5 练习配置已写死**:所有场景统一使用固定模板,不提供"调整"或"重设"选项。Part5 仅负责练习时长/次数/通关/助答等配置项,收尾话术、SOP 流程摘要、考核关键点摘要已在 Part1(`step1-create.json.key_points`)和 Part3(`opening_dialogue`、`closing_dialogue`)中同步到平台。
|
|
159
182
|
|
|
@@ -174,7 +197,7 @@ prompt-engineer 只管"产出什么内容",platform 层管"怎么确认、怎么
|
|
|
174
197
|
- Part2的AI技能必须能支撑Part3各环节的触发逻辑
|
|
175
198
|
- 每个 Part 的修改都必须标记其下游受影响 Part,并在确认前提示是否需要联动复核
|
|
176
199
|
- 所有角色卡必须严格遵循上述格式,不可缺项
|
|
177
|
-
- Part2
|
|
200
|
+
- Part2 生成 JSON 前必须先完成头像和语音资源匹配:`role_data.avatar` 写真实 URL(不能是空字符串),`role_data.voice_id` 写真实声音 ID(不能是空字符串)。资源匹配失败时允许留空并标注待补,但不允许默认留空。头像和语音和角色主体一起写入,不再分两次操作
|
|
178
201
|
- **⚠️ `avatar` 必须用头像资源的 `url`,不是 `id`**:`+list-role-avatars` 返回的每一项同时含 `id` 和 `url`。写入 `ai_roles[].role_data.avatar` 时必须使用 `url`(如 `https://newsokeeditorcdn.soke.cn/public/ai/roles_avatars/lnf2.png`),严禁使用 `id`(如 `816d9390-...`)。平台不识别纯 ID 字符串作为头像。
|
|
179
202
|
- **⚠️ `voice_id` 必须用声音资源的 `id`**:`+list-role-voices` 返回的 `id` 字段(如 `zh_female_shuangkuaisisi_emo_v2_mars_bigtts`),不是 `sample_url`。
|
|
180
203
|
- **⚠️ `replace_ai_roles` 使用 `data.roles` 结构**(非 `data.ai_roles`),且必须为每个角色提供 `scenario_role_id` 便于后续 `patch_ai_role` 定位。
|
|
@@ -183,7 +206,7 @@ prompt-engineer 只管"产出什么内容",platform 层管"怎么确认、怎么
|
|
|
183
206
|
- 所有台词必须极度口语化,禁止书面语
|
|
184
207
|
- 生成的提示词应与对应标杆类型的已交付提示词在结构完整性上保持一致。繁体语境场景需特别注意:产品知识内嵌、分龄触发逻辑、禁忌体系
|
|
185
208
|
- 平台同步 JSON 必须写入独立文件,禁止在聊天中输出 JSON 正文(`sync-engine.md`)
|
|
186
|
-
- **JSON 忠实搬运原则**:生成 `step1-create.json` / `part2/3/4/5-operations.json` 时,每个字段的值必须是已确认 Part 内容的 1:1 搬运,严禁在此阶段重新缩略、改写、扩写或重组文案。用户确认的 Part1 描述全文就是 `description` 的值,确认的 Part3 开场语全文就是 `opening_dialogue` 的值,以此类推
|
|
209
|
+
- **JSON 忠实搬运原则**:生成 `step1-create.json` / `part2/3/4/5-operations.json` / `part2/3/4/5-update.json` 时,每个字段的值必须是已确认 Part 内容的 1:1 搬运,严禁在此阶段重新缩略、改写、扩写或重组文案。用户确认的 Part1 描述全文就是 `description` 的值,确认的 Part3 开场语全文就是 `opening_dialogue` 的值,以此类推
|
|
187
210
|
- **强制逐字对比检查**:JSON 生成后、preview 前,必须对照 `../../platform/sync-engine.md` 中「逐 Part 内容搬运检查清单」逐段验证——JSON 中的文案长度、措辞、编号、标点必须与原文完全一致。发现任何差异必须修正,不得以「大意相同」为由放过
|
|
188
211
|
- **重点关注易丢失内容**:Part2 整体设定 OS(A1-A7 全部要入 `ai_roles_overall_description`)
|
|
189
212
|
- **违规即驳回**:若 preview/apply 后发现 JSON 内容与用户确认的 Part 原文不一致,视为严重合规问题,直接回滚并重新生成对应 JSON
|
|
@@ -210,8 +233,12 @@ prompt-engineer 只管"产出什么内容",platform 层管"怎么确认、怎么
|
|
|
210
233
|
|
|
211
234
|
| 内容 | 说明 |
|
|
212
235
|
|---|---|
|
|
213
|
-
|
|
|
214
|
-
|
|
|
236
|
+
| 所有 `.json` 文件名和路径 | **严禁在对话中出现**,含 `step1-create.json`、`part2-operations.json`、`state-snapshot.json` 等 |
|
|
237
|
+
| JSON 文件生成提示(如 "📄 同步文件已生成") | 禁止在对话中出现 |
|
|
238
|
+
| `state-snapshot.json` 写入 | 引擎内部接续机制,不展示 |
|
|
215
239
|
| role-profiler 调用 / 缓存命中 | 引擎内部机制 |
|
|
240
|
+
| `soke-cli` 命令及输出 | 严禁在对话中出现,含 `+get-scenario`、`+apply-scenario-update`、`+create-scenario`、`+publish-scenario` 等 |
|
|
241
|
+
| `python3` 生成脚本及输出 | 严禁在对话中出现 |
|
|
242
|
+
| `base_updated_at` / `scenario_id` / `idempotency_key` 等引擎变量 | 严禁在对话中出现 |
|
|
216
243
|
| 一致性扫描结果(无告警时) | 有告警才输出 ⚠️ |
|
|
217
244
|
| 字段映射过程 | 全在 `sync-engine.md` 规则中 |
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# 平台交互适配器
|
|
2
|
+
|
|
3
|
+
> 内部规则文件。定义不同 AI Agent 平台的交互适配策略,确保业务逻辑层(Part1-5 管线)在不同平台上行为一致。
|
|
4
|
+
|
|
5
|
+
## 适配器接口(统一契约)
|
|
6
|
+
|
|
7
|
+
每个平台适配器必须实现三个能力:
|
|
8
|
+
|
|
9
|
+
| 能力 | 说明 | 输入 | 输出 |
|
|
10
|
+
|------|------|------|------|
|
|
11
|
+
| **内容展示** | 向用户展示 Part 完整内容 | Part 结构化数据 | 平台原生形式的内容渲染 |
|
|
12
|
+
| **选项确认** | 向用户展示选项并收集选择 | 标题 + 问题 + 选项列表 | 用户选择的分支索引 |
|
|
13
|
+
| **CLI 执行** | 执行 soke-cli 命令 | CLI 命令字符串 | 命令输出 |
|
|
14
|
+
|
|
15
|
+
## 平台路由规则
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
检测运行环境 → 匹配平台 → 加载对应适配器
|
|
19
|
+
├─ WorkBuddy (AskUserQuestion / render_ui) → workbuddy.md
|
|
20
|
+
├─ 悟空 (钉钉 IM 对话) → wukong.md
|
|
21
|
+
├─ QClaw (ClawHub 技能) → qclaw.md
|
|
22
|
+
└─ Zework (内部平台) → zework.md
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
> 若无法检测运行环境,降级为纯文本交互(universal fallback),选项以编号结构展示,用户回复编号确认。
|
|
26
|
+
|
|
27
|
+
## 适配器文件
|
|
28
|
+
|
|
29
|
+
| 平台 | 文件 | 交互机制 | CLI 执行 |
|
|
30
|
+
|------|------|---------|---------|
|
|
31
|
+
| WorkBuddy | `workbuddy.md` | `AskUserQuestion` / `render_ui` | `dangerouslyDisableSandbox: true` |
|
|
32
|
+
| 悟空 | `wukong.md` | 钉钉 IM 结构化文本 | 悟空沙箱 CLI |
|
|
33
|
+
| QClaw | `qclaw.md` | ClawHub 技能格式 | OpenClaw 框架 Bash |
|
|
34
|
+
| Zework | `zework.md` | 纯文本 + 编号交互 | 内部 CLI / API fallback |
|
|
35
|
+
| 通用降级 | 本文件 §通用降级 | 纯文本结构化 | REST API fallback |
|
|
36
|
+
|
|
37
|
+
## 通用降级(Universial Fallback)
|
|
38
|
+
|
|
39
|
+
当平台无法识别或平台适配器能力不足时,使用纯文本模式:
|
|
40
|
+
|
|
41
|
+
### 内容展示
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
## 🔨 PartN:{标题}
|
|
45
|
+
|
|
46
|
+
{Part 完整纯文本内容,逐字段展示}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 选项确认
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
请选择:
|
|
53
|
+
1. {选项1}
|
|
54
|
+
2. {选项2}
|
|
55
|
+
3. {选项3}
|
|
56
|
+
|
|
57
|
+
回复数字编号即可。
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
> ⚠️ **纯文本确认选项展示规则**:只展示编号 + 选项文案,禁止追加 `— {说明}`、破折号说明、括号外说明、同步后动作说明。示例:`1. 确认,同步到平台(推荐)`,不要写成 `1. 确认,同步到平台(推荐)— 场景基础信息确认无误...`。
|
|
61
|
+
|
|
62
|
+
> ⚠️ **前台隐私/技术痕迹隐藏规则**:确认选项、进度提示和最终摘要中不得出现任何 `.json` 文件名、路径、CLI 命令、脚本名或中间同步文件信息。所有 JSON/CLI 细节仅在后台执行。
|
|
63
|
+
|
|
64
|
+
用户回复解析:精确匹配编号("1""2""3")或完整选项文案,模糊匹配优先正向操作(选项 1)。
|
|
65
|
+
|
|
66
|
+
### CLI / API 执行
|
|
67
|
+
|
|
68
|
+
按 `../api-fallback.md` 降级为 REST API 直接调用。
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# QClaw 平台适配器
|
|
2
|
+
|
|
3
|
+
> QClaw 是腾讯电脑管家的桌面 AI 助手,基于 OpenClaw 框架,通过 ClawHub 技能生态和微信远程操控进行交互。
|
|
4
|
+
|
|
5
|
+
## 运行环境检测
|
|
6
|
+
|
|
7
|
+
- 对话上下文包含 QClaw / OpenClaw / ClawHub 平台特征
|
|
8
|
+
- 无 `AskUserQuestion` 工具可用
|
|
9
|
+
- 交互方式为自然语言对话或微信消息
|
|
10
|
+
|
|
11
|
+
## 交互机制
|
|
12
|
+
|
|
13
|
+
### 内容展示
|
|
14
|
+
|
|
15
|
+
在对话中以 Markdown 纯文本完整展示 Part 内容。使用 `## 🔨 PartN:{标题}` 格式开头,逐字段输出全部正文。
|
|
16
|
+
|
|
17
|
+
QClaw 基于 OpenClaw 框架,支持标准 Markdown 渲染。
|
|
18
|
+
|
|
19
|
+
### 选项确认
|
|
20
|
+
|
|
21
|
+
使用结构化文本编号确认:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
请选择:
|
|
25
|
+
1. {选项1}(推荐)— {说明}
|
|
26
|
+
2. {选项2} — {说明}
|
|
27
|
+
3. {选项3} — {说明}
|
|
28
|
+
|
|
29
|
+
回复数字编号即可。
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
微信远程操控场景同理——用户通过微信回复编号即可。
|
|
33
|
+
|
|
34
|
+
选项文案和分支路由与 WorkBuddy 完全一致(参考 `../interaction.md` 模板 1-6)。
|
|
35
|
+
|
|
36
|
+
用户回复解析规则:
|
|
37
|
+
- 精确匹配编号("1""2""3")→ 走对应分支
|
|
38
|
+
- 精确匹配完整选项文案 → 走对应分支
|
|
39
|
+
- 模糊匹配 → 优先正向操作(选项 1),并在执行前简短确认
|
|
40
|
+
|
|
41
|
+
### CLI 执行
|
|
42
|
+
|
|
43
|
+
QClaw 基于 OpenClaw 框架,可以执行系统命令。soke-cli 为 npm 全局安装的 Go 编译二进制,可在 QClaw 中直接执行。
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# QClaw 中执行 soke-cli 命令
|
|
47
|
+
soke-cli ai-training +create-scenario --request-file ./step1-create.json --pretty
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
若 soke-cli 在 QClaw 环境中不可用,降级为 REST API 直接调用(参考 `../api-fallback.md`)。
|
|
51
|
+
|
|
52
|
+
### ClawHub 技能打包说明
|
|
53
|
+
|
|
54
|
+
QClaw 使用 ClawHub 技能生态,需将本技能按 ClawHub 格式打包。
|
|
55
|
+
|
|
56
|
+
要将本技能发布到 ClawHub:
|
|
57
|
+
1. 查阅 ClawHub 技能开发规范,转换为对应格式
|
|
58
|
+
2. 交互逻辑使用本适配器的纯文本模式
|
|
59
|
+
3. CLI 执行通过 OpenClaw 框架的 Bash 能力
|
|
60
|
+
4. 微信远程操控场景:用户在微信回复编号即可完成确认
|
|
61
|
+
|
|
62
|
+
## 适配器路由
|
|
63
|
+
|
|
64
|
+
当检测到以下特征时,启用 QClaw 适配器:
|
|
65
|
+
- 对话环境无 `AskUserQuestion` / `render_ui` 工具
|
|
66
|
+
- 平台支持 OpenClaw 框架的系统命令执行
|
|
67
|
+
- 可能通过微信进行远程交互
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# WorkBuddy 平台适配器
|
|
2
|
+
|
|
3
|
+
## 运行环境检测
|
|
4
|
+
|
|
5
|
+
在 WorkBuddy 环境中,`AskUserQuestion` 和 `render_ui` 工具可用。
|
|
6
|
+
|
|
7
|
+
## 交互机制
|
|
8
|
+
|
|
9
|
+
### 内容展示
|
|
10
|
+
|
|
11
|
+
在对话中以 Markdown 纯文本完整展示 Part 内容。使用 `## 🔨 PartN:{标题}` 格式开头,逐字段输出全部正文。
|
|
12
|
+
|
|
13
|
+
### 选项确认
|
|
14
|
+
|
|
15
|
+
使用 `AskUserQuestion` 工具弹窗确认:
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
AskUserQuestion(
|
|
19
|
+
question="<模板标题>",
|
|
20
|
+
options=["<选项1>(推荐)", "<选项2>", "<选项3>"]
|
|
21
|
+
)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
| Part | 标题 | 选项 1(推荐) | 选项 2 | 选项 3 |
|
|
25
|
+
|------|------|--------------|--------|--------|
|
|
26
|
+
| Part1 | 场景确认 | 确认,同步到平台(推荐) | 内容需要微调 | — |
|
|
27
|
+
| Part2 | 角色确认 | 确认,同步角色(推荐) | 调整角色设定 | 重设角色设定 |
|
|
28
|
+
| Part3 | 流程设置确认 | 确认,同步流程设置(推荐) | 调整流程设置 | 重设流程设置 |
|
|
29
|
+
| Part4 | 评分确认 | 确认,同步评分(推荐) | 调整评分标准 | 重设评分标准 |
|
|
30
|
+
| Part5 | 教练设置确认 | 确认,完成创建(推荐) | 调整教练设置 | 重设教练设置 |
|
|
31
|
+
|
|
32
|
+
WebChat 环境额外支持 `render_ui` QuestionForm jsonl。
|
|
33
|
+
|
|
34
|
+
### CLI 执行
|
|
35
|
+
|
|
36
|
+
所有 soke-cli 命令通过 Bash 工具执行,必须设置 `dangerouslyDisableSandbox: true`:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# 示例
|
|
40
|
+
soke-cli ai-training +create-scenario --request-file ./step1-create.json --pretty
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 适配器路由
|
|
44
|
+
|
|
45
|
+
WorkBuddy 是默认平台,无需额外检测——当 `AskUserQuestion` 工具可用时,自动视为 WorkBuddy 环境。
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# 悟空 (Wukong) 平台适配器
|
|
2
|
+
|
|
3
|
+
> 悟空是阿里钉钉的企业级 AI Agent 平台,通过钉钉 IM 进行自然语言对话交互。不支持 `AskUserQuestion` 或 `render_ui`。
|
|
4
|
+
|
|
5
|
+
## 运行环境检测
|
|
6
|
+
|
|
7
|
+
- 对话上下文包含钉钉/悟空平台特征
|
|
8
|
+
- 无 `AskUserQuestion` 工具可用
|
|
9
|
+
- 交互方式为自然语言对话
|
|
10
|
+
|
|
11
|
+
## 交互机制
|
|
12
|
+
|
|
13
|
+
### 内容展示
|
|
14
|
+
|
|
15
|
+
在对话中以 Markdown 纯文本完整展示 Part 内容。使用 `## 🔨 PartN:{标题}` 格式开头,逐字段输出全部正文。
|
|
16
|
+
|
|
17
|
+
悟空平台支持 Markdown 渲染(标题、列表、加粗),按标准 Markdown 输出即可。
|
|
18
|
+
|
|
19
|
+
### 选项确认
|
|
20
|
+
|
|
21
|
+
使用结构化文本编号确认(悟空不支持弹窗按钮):
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
请选择:
|
|
25
|
+
1. {选项1}(推荐)— {说明}
|
|
26
|
+
2. {选项2} — {说明}
|
|
27
|
+
3. {选项3} — {说明}
|
|
28
|
+
|
|
29
|
+
回复数字编号即可。
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
选项文案和分支路由与 WorkBuddy 完全一致(参考 `../interaction.md` 模板 1-6),仅渲染机制从 `AskUserQuestion` 降级为纯文本。
|
|
33
|
+
|
|
34
|
+
用户回复解析规则:
|
|
35
|
+
- 精确匹配编号("1""2""3")→ 走对应分支
|
|
36
|
+
- 精确匹配完整选项文案 → 走对应分支
|
|
37
|
+
- 模糊匹配 → 优先正向操作(选项 1),并在执行前简短确认
|
|
38
|
+
|
|
39
|
+
### CLI 执行
|
|
40
|
+
|
|
41
|
+
悟空内置 Python 3.12 + Node.js + Bun + Chromium,通过 Tauri + Rust 架构执行系统命令。
|
|
42
|
+
|
|
43
|
+
soke-cli 在悟空中的执行方式:
|
|
44
|
+
- 悟空有企业级安全沙箱(不同于 WorkBuddy 的沙箱)
|
|
45
|
+
- soke-cli 是 npm 全局安装的 Go 编译二进制,可直接调用
|
|
46
|
+
- 若悟空中 `soke-cli` 命令受限,降级为 REST API 直接调用(参考 `../api-fallback.md`)
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# 悟空中执行 soke-cli 命令(无需 dangerouslyDisableSandbox)
|
|
50
|
+
soke-cli ai-training +create-scenario --request-file ./step1-create.json --pretty
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 悟空 Skill 市场打包说明
|
|
54
|
+
|
|
55
|
+
悟空有自己的 AI 能力市场(Skill 市场),使用独立的 Skill 格式。
|
|
56
|
+
|
|
57
|
+
要将本技能发布到悟空 Skill 市场:
|
|
58
|
+
1. 将 SKILL.md 转换为悟空 Skill 格式(需查阅悟空 Skill 开发文档)
|
|
59
|
+
2. 交互逻辑使用本适配器的纯文本模式
|
|
60
|
+
3. CLI 执行层保持 soke-cli 原生调用
|
|
61
|
+
4. 如有 MCP 协议需求,悟空内置 MCP 支持
|
|
62
|
+
|
|
63
|
+
## 适配器路由
|
|
64
|
+
|
|
65
|
+
当检测到以下特征时,启用悟空适配器:
|
|
66
|
+
- 对话环境无 `AskUserQuestion` / `render_ui` 工具
|
|
67
|
+
- 平台支持 Markdown 渲染
|
|
68
|
+
- 可执行系统 CLI 命令
|
|
69
|
+
|
|
70
|
+
> 若 soke-cli 在悟空中完全不可用(如企业安全策略禁止),整条管线降级为:纯文本展示 Part 内容 → 用户确认 → 生成 JSON → 通过 REST API (api-fallback.md) 直接调用 MentorAI API 完成同步。
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Zework 平台适配器
|
|
2
|
+
|
|
3
|
+
> Zework 是内部/私有 AI Agent 平台。由于平台细节未公开,本适配器使用通用降级策略——纯文本交互 + soke-cli 优先 / REST API 兜底。
|
|
4
|
+
|
|
5
|
+
## 运行环境检测
|
|
6
|
+
|
|
7
|
+
- 对话上下文包含 Zework 平台特征
|
|
8
|
+
- 无 `AskUserQuestion` 工具可用
|
|
9
|
+
- 交互方式未知(默认按纯文本处理)
|
|
10
|
+
|
|
11
|
+
## 交互机制
|
|
12
|
+
|
|
13
|
+
### 内容展示
|
|
14
|
+
|
|
15
|
+
在对话中以 Markdown 纯文本完整展示 Part 内容。使用 `## 🔨 PartN:{标题}` 格式开头,逐字段输出全部正文。
|
|
16
|
+
|
|
17
|
+
### 选项确认
|
|
18
|
+
|
|
19
|
+
使用结构化文本编号确认:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
请选择:
|
|
23
|
+
1. {选项1}
|
|
24
|
+
2. {选项2}
|
|
25
|
+
3. {选项3}
|
|
26
|
+
|
|
27
|
+
回复数字编号即可。
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
确认选项只展示编号和选项文案,禁止在选项后追加破折号说明、下一步动作说明或执行解释。例如只写:
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
1. 确认,同步到平台(推荐)
|
|
34
|
+
2. 内容需要微调
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
不要写:`1. 确认,同步到平台(推荐)— 场景基础信息确认无误,立即创建场景到 MentorAI 平台`。
|
|
38
|
+
|
|
39
|
+
所有 `.json` 文件名、文件路径、CLI 命令、脚本名、中间同步文件和命令输出均为后台信息,不得展示在 Zework 对话前台。
|
|
40
|
+
|
|
41
|
+
选项文案和分支路由与 WorkBuddy 完全一致(参考 `../interaction.md` 模板 1-6)。
|
|
42
|
+
|
|
43
|
+
### CLI / API 执行
|
|
44
|
+
|
|
45
|
+
优先级:soke-cli(如可用)→ REST API fallback(参考 `../api-fallback.md`)。
|
|
46
|
+
|
|
47
|
+
## 资源匹配(头像 + 声音)
|
|
48
|
+
|
|
49
|
+
> ⚠️ **Zework 平台关键问题**:Zework 通常**没有预装 soke-cli**,而角色头像和声音匹配在 CLI 路径下依赖 `soke-cli ai-training +list-role-avatars` / `+list-role-voices` 命令。**若只检测 CLI 不可用就直接跳过资源匹配,角色上线后将无头像无声音。**
|
|
50
|
+
|
|
51
|
+
### 匹配流程(Zework 专用)
|
|
52
|
+
|
|
53
|
+
Zework 上的资源匹配**必须走 REST API 路径**:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Part2 完整展示并由用户确认
|
|
57
|
+
→ 检测 soke-cli: which soke-cli → 大概率不可用
|
|
58
|
+
→ ⚠️ 不跳过!路由到 REST API fallback
|
|
59
|
+
→ 获取 Token(引导用户从授客AI开放平台获取,或从 `soke-cli config show` 提取)
|
|
60
|
+
→ 查询头像库: GET /api/v1/ai-training/role-avatars?gender=<g>&age_group=<a>&lang=zh
|
|
61
|
+
→ 查询语音库: GET /api/v1/ai-training/role-voices?gender=<g>&age_group=<a>&lang=zh
|
|
62
|
+
→ 特征匹配(与 WorkBuddy 相同的 P0-P3 降级规则)
|
|
63
|
+
→ 生成含 avatar + voice_id 的角色级 JSON
|
|
64
|
+
→ 逐个角色 PATCH/apply + GET 验证 → 失败重试 1 次
|
|
65
|
+
→ 全部角色与 OS 同步完成后输出 Part3
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
完整实现细节:`../api-fallback.md`「资源匹配完整流程」
|
|
69
|
+
|
|
70
|
+
### 匹配规则引用
|
|
71
|
+
|
|
72
|
+
性别/年龄映射、P0-P3 降级链路、合并写入规则 → `../../references/role-resource-matching.md`
|
|
73
|
+
|
|
74
|
+
### 用户交互
|
|
75
|
+
|
|
76
|
+
- 资源匹配过程中,若需要 Token 而 `soke-cli config show` 不可用,在对话中引导用户:「请提供授客AI开放平台的 API Token(从平台设置 → API 密钥获取),用于为角色匹配头像和声音资源」
|
|
77
|
+
- 资源匹配、写入、回读过程默认不在对话中展示;只有失败且影响继续同步时,才输出最小必要异常
|
|
78
|
+
|
|
79
|
+
## 扩展指南
|
|
80
|
+
|
|
81
|
+
当 Zework 平台的具体能力明确后,可按以下方式扩展本适配器:
|
|
82
|
+
|
|
83
|
+
1. **交互增强**:若 Zework 有弹窗/按钮等 UI 能力,在本文件中添加对应渲染模板
|
|
84
|
+
2. **CLI 定制**:若 Zework 有特殊的命令执行沙箱,添加对应的 CLI 调用规则
|
|
85
|
+
3. **Skill 格式**:若 Zework 有自己的 Skill 格式规范,添加打包说明
|
|
86
|
+
|
|
87
|
+
## 适配器路由
|
|
88
|
+
|
|
89
|
+
当检测到 Zework 平台特征且无匹配的更具体适配器时启用。默认行为 = 通用降级模式。
|