8.4 KiB
Session: 2026-05-25 19:55:11 GMT+8
- Session Key: agent:xiaoyan:feishu:direct:ou_8b79b7f711e42a4004f3f3c225a1a99c
- Session ID: c06e2631-9fb0-4940-829a-da20e5b48450
- Source: feishu
Conversation Summary
user: 组件配置-json https://makee-interactive.feishu.cn/wiki/IhDYwITBfii8cxkWsG1c0JWHnQh assistant: 文档是「L1-S2-U17-L2 迟到的包裹」,包含知识点和剧本两个内嵌 Sheet。让我先读取这两个 Sheet 的数据。 assistant: Let me look at the component configuration skills to understand the expected JSON format. assistant: Now I have a clear picture. This is the L1-S2-U17-L2 lesson script with 17 interactive components. Let me extract and parse all component configurations into structured JSON. assistant: 已将 17 个互动组件配置全部解析。以下是汇总:
文档: L1-S2-U17-L2 迟到的包裹
知识点: get / month / year / ago / ... be happy with... / ... month(s)/year(s) ago.
组件配置 JSON(17个组件,7种类型)
| # | 类型 | ID | 任务标题 | 知识点 |
|---|---|---|---|---|
| 1 | 图片单选 | 1217201 | 为包裹找到正确的日期牌子 | ago |
| 2 | 对话朗读 | 1217202 | 朗读90天前的包裹信息 | ago |
| 3 | 对话朗读 | 1217203 | 理解天数和月数的换算 | month |
| 4 | 对话组句 | 1217204 | 用单词组句描述包裹信息 | ... month(s)/year(s) ago. |
| 5 | 对话朗读 | 1217205 | 朗读90天前的包裹信息 ⚠️ | year |
| 6 | 对话选读 | 1217206 | 选择你想表达的感受 | ago |
| 7 | 图片多选 | 1217207 | 找出几个月前的包裹 | — |
| 8 | 图片单选 | 1217208 | 找出写有一年前的包裹 | — |
| 9 | 对话挖空 | 1217209 | 补全对Sunny说的句子 | ... be happy with... |
| 10 | 对话选读 | 1217210 | 选择帮Grace拿包裹的说法 | get |
| 11 | 对话朗读 | 1217211 | 对Anna的提醒 | ... be happy with... |
| 12 | 对话组句 | 1217212 | 用单词组句主动帮忙 | get |
| 13 | 对话挖空 | 1217213 | 补全对Jack说的话 | — |
| 14 | 听力拖拽 | 1217214 | 告诉Lin你们分发包裹的事迹 | month/year/ago/句型 |
| 15 | 对话选读 | 1217215 | 选择表达满意的方式 | ... be happy with... |
| 16 | 对话挖空 | 1217216 | 补全User想要包裹的句子 | — |
| 17 | 对话朗读 | 1217217 | 朗读收到帽子的喜悦 | get |
⚠️ 发现的问题
- ID 1217205 任务标题有误:标题写"朗读90天前的包裹信息",但实际内容是
That's 2 years!,应改为如「朗读两年前的包裹信息」 - ID 1217207/1217208/1217213/1217216 组件配置列未填知识点:这些组件的"组件配置"列中未填写对应知识点标签
需要我把这个 JSON 写入 bitable,还是做其他处理? user: 不用,直接把生成的html发给我 assistant: 已发送,共 17 个互动组件、7 种题型。HTML 支持点击卡片折叠/展开,带有快速导航和类型标签。
⚠️ 发现一个问题:ID 1217205 标题写的是"朗读90天前的包裹信息",但实际内容为 That's 2 years!,标题与内容不符,需要修正。
user: 刚刚调用的那个skill?请把你刚刚的调用逻辑和过程告诉我
assistant: 整个流程没有命中任何单一专项 skill,而是组合了多个技能的方法来完成。以下是详细过程:
调用链路
第一步:读取飞书知识库文档
收到 wiki 链接后,判断其为知识库文档(/wiki/ 路径),触发了 MEMORY.md 中定义的强制规则:必须用 Bot 身份操作。于是我读了 lark_wiki_operate_as_bot 技能,按其链路执行:
# 步骤1:获取节点信息
lark-cli wiki spaces get_node --params '{"token":"IhDYwI…HnQh"}' --as bot
# → 返回 obj_token: IUJGdZS98oKbLix5zZ4cramQnke, obj_type: docx
# 步骤2:读取文档 markdown
lark-cli docs +fetch --doc IUJGdZS98oKbLix5zZ4cramQnke --as bot
# → 返回文档全文 markdown,其中包含两个 <sheet token=*** 标签
第二步:读取内嵌 Sheet
文档 markdown 中有 <sheet token="VBozs…"/> 等标签,触发了 feishu-embedded-sheet 技能。按其流程:
# 获取 Bot token
curl -X POST "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" ...
# 获取 sheet 元数据(6个子表)
curl "https://open.feishu.cn/open-apis/sheets/v3/spreadsheets/VBozs8u24h4KgdtSSiFc9vHEnBd/sheets/query"
# 读取知识点 sheet (QNssxC, 7行)
# 读取剧本 sheet (Q8AyX5, 183行) — 分三次读 (1-50, 51-120, 121-183)
第三步:理解组件配置格式
剧本 sheet 中包含"对话朗读、图片单选、对话组句、对话选读、图片多选、对话挖空、听力拖拽"共 7 种题型,我读了 5 个组件配置 skill 来理解每种题型的字段规范:
| Skill | 对应题型 |
|---|---|
dialogue-reading-config |
对话朗读 |
dialogue-choose-config |
对话选读 |
dialogue-fill-in-blanks-config |
对话挖空 |
dialogue-sentence-building-config |
对话组句 |
dialogue-single-choice-image-config |
图片单选 |
还读了 core-content-json-standard 了解核心互动内容的 JSON 标准结构(但最终未使用该格式,因为用户要的是原始配置的提取而非标准化 JSON)。
第四步:解析 & 生成
17 个组件的配置散落在 183 行数据中,不是标准 JSON 格式,而是飞书文档中的结构化文本(【任务标题】\n...\n【情境引入】\n... 等)。用 Python 脚本按 【】 标记解析每个组件的配置字段为 JSON:
# 按 【xxx】 作为字段名,提取字段内容
def parse_config(text):
result = {}
for line in text.strip().split('\n'):
if line.startswith('【') and line.endswith('】'):
# 新字段开始
else:
# 追加到当前字段
return result
第五步:生成 HTML & 发送
用户要 HTML 而非 JSON,生成了带折叠卡片、快速导航、类型标签的自包含 HTML,通过 message 工具以文件附件发回。
关键决策点
-
为什么没直接用 core-content-json-standard? — 该标准覆盖的是核心互动(合作阅读、合作听力等 14 种题型),与剧本中的对话互动组件(图片单选/对话朗读/挖空/组句等)是两套不同的配置体系,字段结构完全不同,不适用。
-
为什么一次性读了 5 个 config skill? — 因为我需要确认每种题型的配置字段规范,而这些 skill 各管一种题型,只能逐个读取。
-
为什么用 Python 而非纯 shell 解析? — shell 处理多行嵌套文本和 JSON 生成容易出错(之前 MEMORY.md 里就记过 shell 转义的坑),Python 更可靠。
如果你想让我把这个处理流程固化为一个可复用的 skill,我可以创建。或者你有其他改进方向?
user: 组件配置-json https://makee-interactive.feishu.cn/wiki/IhDYwITBfii8cxkWsG1c0JWHnQh
assistant: 上次没用对 skill。正确的入口在 business_production/组件配置/interactive-component-json/,有完整的 LLM 驱动流水线。现在直接跑:
assistant: 流水线已完成并自动发送 HTML 报告给你。
结果汇总: 16/17 成功,1 个失败
| 状态 | 组件 | ID | cType |
|---|---|---|---|
| ✓ | 图片单选 | 1217201 | mid_image_choose |
| ✓ | 对话朗读 | 1217202 | mid_dialog_repeat |
| ✓ | 对话朗读 | 1217203 | mid_dialog_repeat |
| ✓ | 对话组句 | 1217204 | mid_dialog_sentence |
| ✓ | 对话朗读 | 1217205 | mid_dialog_repeat |
| ✓ | 对话选读 | 1217206 | mid_dialog_select |
| ✓ | 图片多选 | 1217207 | mid_image_multiple |
| ✓ | 图片单选 | 1217208 | mid_image_choose |
| ✗ | 对话挖空 | 1217209 | LLM JSON 解析失败 |
| ✓ | 对话选读 | 1217210 | mid_dialog_select |
| ✓ | 对话朗读 | 1217211 | mid_dialog_repeat |
| ✓ | 对话组句 | 1217212 | mid_dialog_sentence |
| ✓ | 对话挖空 | 1217213 | mid_dialog_fillin |
| ✓ | 听力拖拽 | 1217214 | core_listening_drag (7步) |
| ✓ | 对话选读 | 1217215 | mid_dialog_select |
| ✓ | 对话挖空 | 1217216 | mid_dialog_fillin |
| ✓ | 对话朗读 | 1217217 | mid_dialog_repeat |
失败原因: ID 1217209 的 LLM 返回了非标准 JSON(doubao 在字段尾多了额外数据),需要重试。另外 MySQL 知识点匹配全线失败 — Access denied (using password: NO),pipeline 中 kp_matcher 的数据库密码未配置。