152 lines
5.4 KiB
Markdown
152 lines
5.4 KiB
Markdown
---
|
||
name: update-knowledge-base
|
||
description: |
|
||
更新剧本知识库。当用户要求"更新知识库"、"录入新剧本"、"把剧本写入知识库"、"更新chapters"、
|
||
"更新角色登场记录"等指令时触发。功能包括:
|
||
(1) 读取用户提供的飞书剧本文档链接,提取故事梗概/知识点/角色等信息
|
||
(2) 将故事梗概写入 business_knowledge/chapters/ 对应的Unit文件
|
||
(3) 更新已有角色的登场记录,补充值得记录的特性描述
|
||
(4) 为新出现的角色创建档案文件
|
||
---
|
||
|
||
# 更新知识库
|
||
|
||
## 核心原则:严禁推测与杜撰(强制执行)
|
||
|
||
⚠️ **知识库中的所有内容必须来源于正式剧本原文,不得含有任何推测、杜撰的成分。**
|
||
|
||
此原则适用于本技能全部操作步骤:
|
||
|
||
1. **角色信息**(性格、外观、关系、对话风格、行为模式等)必须从剧本对话、动作描述、场景说明中逐条提取
|
||
2. **故事梗概**必须基于剧本中实际发生的情节概括,不得自行补充未在剧本中出现的事件或因果关系
|
||
3. **知识点**以文档开头标注的"知识点"表格为准,不得自行推断教学意图
|
||
4. **登场角色**以文档中"本关出场角色"表格及剧本正文中实际出现的对话者为准
|
||
5. **剧本中未明确的信息**,一律标注"待确认",不得凭经验或角色设定进行补充推断
|
||
6. **禁止跨剧本迁移**:已有角色的登场记录仅以当前剧本内容为准,不得将其他剧集中该角色的表现引入
|
||
|
||
本原则优先级高于下方各步骤中的具体操作指引。任何步骤的输出内容若超出剧本原文范围,视为违规。
|
||
|
||
---
|
||
|
||
## 前置检查(强制)
|
||
|
||
执行任务前必须确认:
|
||
1. **用户是否提供了剧本文档链接?** 若未提供,立即向用户索要飞书知识库链接(`/wiki/` 格式)
|
||
2. **用户是否说明了这些剧本属于哪个Season/Unit?** 若未说明,从链接或文档标题中推断,推断不了则询问
|
||
|
||
## 工作流程
|
||
|
||
### Step 1: 下载剧本
|
||
|
||
使用 `lark_wiki_operate_as_bot` 技能读取飞书文档(Bot身份):
|
||
|
||
```bash
|
||
# 获取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}/` 目录。
|
||
|
||
**格式规范**(参照已有文件):
|
||
|
||
```markdown
|
||
# 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. 已有角色 — 更新登场记录**
|
||
|
||
读取角色文件,在 `## 登场记录` 部分追加新条目:
|
||
|
||
```markdown
|
||
- S{n}E{nn} {Unit名} L{n} {Lesson名}: 角色在本课的作用/行为简述
|
||
```
|
||
|
||
同时检查剧本中该角色是否有新的性格表现、关系变化或值得记录的特性,若有则补充到对应section。
|
||
|
||
**4b. 新角色 — 创建档案**
|
||
|
||
参照已有角色文件格式创建:
|
||
|
||
```markdown
|
||
# {角色名}
|
||
|
||
## 基本信息
|
||
- 物种/外观:(从剧本中提取实际描述)
|
||
- 身份/职业:
|
||
- 居住地:
|
||
|
||
## 性格与行为
|
||
- 核心性格:(从剧本对话和行为中总结)
|
||
- 行为模式:
|
||
- 弱点/怪癖:
|
||
|
||
## 对话风格
|
||
- 说话特征:
|
||
- 典型台词:(引用剧本原文)
|
||
|
||
## 关系
|
||
- (与其他角色的关系)
|
||
|
||
## 登场记录
|
||
- (按上述格式填写)
|
||
|
||
## 创作备注
|
||
1. (供后续编剧参考的注意事项)
|
||
```
|
||
|
||
**⚠️ 严禁凭空编造角色信息。** 所有性格、外观、性别等必须从剧本原文中提取。剧本未明确的信息标注"待确认"而非臆测。
|
||
|
||
**4c. 更新索引**
|
||
|
||
在 `business_knowledge/characters/README.md` 的角色索引表格中添加新角色条目。
|
||
|
||
### Step 5: 反馈
|
||
|
||
完成后向用户报告:
|
||
1. 更新了哪些chapters文件(新增/修改)
|
||
2. 更新了哪些角色的登场记录
|
||
3. 新建了哪些角色档案
|
||
4. 是否发现需要用户确认的信息(模糊描述、缺失信息等)
|