7.3 KiB
| name | description |
|---|---|
| update-knowledge-base | 更新剧本知识库。当用户要求"更新知识库"、"录入新剧本"、"把剧本写入知识库"、"更新chapters"、 "更新角色登场记录"等指令时触发。功能包括: (1) 读取用户提供的飞书剧本文档链接,提取故事梗概/知识点/角色等信息 (2) 将故事梗概写入 business_knowledge/chapters/ 对应的Unit文件 (3) 更新已有角色的登场记录,补充值得记录的特性描述 (4) 为新出现的角色创建档案文件 |
更新知识库
核心原则:严禁推测与杜撰(强制执行)
⚠️ 知识库中的所有内容必须来源于正式剧本原文,不得含有任何推测、杜撰的成分。
此原则适用于本技能全部操作步骤:
- 角色信息(性格、外观、关系、对话风格、行为模式等)必须从剧本对话、动作描述、场景说明中逐条提取
- 故事梗概必须基于剧本中实际发生的情节概括,不得自行补充未在剧本中出现的事件或因果关系
- 知识点以文档开头标注的"知识点"表格为准,不得自行推断教学意图
- 登场角色以文档中"本关出场角色"表格及剧本正文中实际出现的对话者为准
- 剧本中未明确的信息,一律标注"待确认",不得凭经验或角色设定进行补充推断
- 禁止跨剧本迁移:已有角色的登场记录仅以当前剧本内容为准,不得将其他剧集中该角色的表现引入
本原则优先级高于下方各步骤中的具体操作指引。任何步骤的输出内容若超出剧本原文范围,视为违规。
数据来源(飞书知识库)
本地 business_knowledge/ 中的资料均从飞书知识库提取和同步。以下为各类资料的权威数据源:
场景数据
- 来源页面: https://makee-interactive.feishu.cn/wiki/GR9awIhYniL4uZkiH3ac4VB1nYf
- 同步目标:
resources/scene_catalog.md
章节数据(从最终版剧本中归纳提取)
章节概要需从各Season目录下的三级子文档(即最终版剧本)中归纳提取。
| Season | 飞书目录页 | 本地路径 |
|---|---|---|
| L1-S1 | https://makee-interactive.feishu.cn/wiki/Ri39w7g2VifUkgkVUhecvxjonfb | chapters/Level1/S1/ |
| L1-S2 | https://makee-interactive.feishu.cn/wiki/TekjwhXLbioX2OkR1H6chg6Hnah | chapters/Level1/S2/ |
| L1-S3 | https://makee-interactive.feishu.cn/wiki/FeiDw6JY7iv1ZMk15PXcZeQgnyc | chapters/Level1/S3/ |
| L1-S4 | https://makee-interactive.feishu.cn/wiki/VWRawLdzpidUp3kipEEcVJlYn4g | chapters/Level1/S4/ |
剧本命名格式: {Lx-Sx-Ux-x} {关卡名}(如 L1-S1-U1-1 沙漠小镇)
每个Season目录下的三级子文档即为各Unit/Lesson的最终版剧本,从中提取章节概要和角色信息。
角色数据(从最终版剧本中归纳提取)
角色信息从上述各Season最终版剧本中归纳提取,包括:
- 角色性格、行为特征
- 对话风格
- 角色关系
- 登场章节
同步目标:characters/main/ 和 characters/supporting/
其他编剧相关资料
所有编剧相关资料来源均可在同一飞书知识空间内查找到。当本地缺少某项资料时,优先在该知识空间中搜索。
前置检查(强制)
执行任务前必须确认:
情况A:用户提供了文档链接
以用户提供的链接为准,直接读取并提取。
情况B:用户未提供文档链接
- 根据上方「数据来源」中的Season目录页,在飞书知识库中查找需要更新的剧本文档
- 将查找到的文档列表向用户展示,请用户确认哪些需要更新
- 用户确认后,再执行读取和写入操作
通用检查
- 用户是否说明了这些剧本属于哪个Season/Unit? 若未说明,从链接或文档标题中推断,推断不了则询问
工作流程
Step 1: 下载剧本
使用 lark_wiki_operate_as_bot 技能读取飞书文档(Bot身份):
# 获取obj_token
LARKSUITE_CLI_CONFIG_DIR=/root/.openclaw/credentials/xiaoyan \
lark-cli wiki spaces get_node --params '{"token":"<wiki_token>"}' --as bot
# 读取文档
LARKSUITE_CLI_CONFIG_DIR=/root/.openclaw/credentials/xiaoyan \
lark-cli docs +fetch --doc <obj_token> --as bot
将原始文档保存到 tmp/lessons/S{n}/U{nn}/L{n}_{name}.md。
Step 2: 提取信息
⚠️ 再次提醒:所有提取内容必须严格来源于剧本原文,禁止推测或杜撰。见上方「核心原则」。
从每个剧本文档中提取:
| 字段 | 提取位置 | 说明 |
|---|---|---|
| 知识点(单词+句型) | 文档开头的"知识点"或"单元知识点"表格 | 每Lesson独立 |
| 登场角色 | "本关出场角色"表格 + 正文对话中的说话者 | 合并去重 |
| 故事梗概 | "剧情梗概/剧情概要"段 或 从TL对话段理解故事主线 | 2-3句话概括 |
注意:不同剧本的文档格式可能不一致(有些有"剧情梗概"段,有些只有剧本正文),需要灵活适配。当自动提取不到梗概时,阅读TL对话段理解故事后手写梗概。
Step 3: 更新 chapters
章节文件位于 business_knowledge/chapters/Level1/S{n}/ 目录。
格式规范(参照已有文件):
# Unit {N} {单元名}
## 整体梗概
3-4句话概括整个Unit的故事主线
## Lesson {N} {中文名} {英文名}
- **知识点:** 单词(xxx);句型(xxx)
- **登场角色:** xxx, xxx, xxx
- **故事梗概:** 2-3句话概括本课故事
规则:
- 若该Unit的章节文件已存在,在末尾追加新Lesson
- 若不存在,创建新文件,文件名格式
{NN}_{单元名}.md - 整体梗概在所有Lesson写完后补充/更新
Step 4: 更新 characters
角色文件位于 business_knowledge/characters/ 下两个子目录:
main/— 主要角色supporting/— 配角
4a. 已有角色 — 更新登场记录
读取角色文件,在 ## 登场记录 部分追加新条目:
- S{n}E{nn} {Unit名} L{n} {Lesson名}: 角色在本课的作用/行为简述
同时检查剧本中该角色是否有新的性格表现、关系变化或值得记录的特性,若有则补充到对应section。
4b. 新角色 — 创建档案
参照已有角色文件格式创建:
# {角色名}
## 基本信息
- 物种/外观:(从剧本中提取实际描述)
- 身份/职业:
- 居住地:
## 性格与行为
- 核心性格:(从剧本对话和行为中总结)
- 行为模式:
- 弱点/怪癖:
## 对话风格
- 说话特征:
- 典型台词:(引用剧本原文)
## 关系
- (与其他角色的关系)
## 登场记录
- (按上述格式填写)
## 创作备注
1. (供后续编剧参考的注意事项)
⚠️ 严禁凭空编造角色信息。 所有性格、外观、性别等必须从剧本原文中提取。剧本未明确的信息标注"待确认"而非臆测。
4c. 更新索引
在 business_knowledge/characters/README.md 的角色索引表格中添加新角色条目。
Step 5: 反馈
完成后向用户报告:
- 更新了哪些chapters文件(新增/修改)
- 更新了哪些角色的登场记录
- 新建了哪些角色档案
- 是否发现需要用户确认的信息(模糊描述、缺失信息等)