ai_member_xiaoyan/memory/2026-05-17.md

47 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 2026-05-17 工作记忆
## 经验教训
### Feishu docx API 缓存不同步问题
- **现象**文档被用户编辑添加新表格后APIblocks/raw_content持续返回旧版本内容已刷新 8 次仍不变
- **表现**:用户截图显示文档有 7 列脚本表格,但 API 只返回制作人员表 + 角色表 + 梗概表3 个表)
- **排查方式**:让用户在文档中做一次微小编辑(末尾加空格再删除),触发飞书保存以强制缓存失效
- **教训**:当 API 返回数据与用户描述不一致时,优先考虑 API 缓存问题,不要反复争论「就是没有」
### 用户反馈
- 李应瑛 (ou_1bd7317ae2ccfeb57e1132028847279e):组件生产任务,文档链接 `NjCXw6KS2iVlp3k4gqtcJyj8nhh`7 列脚本表格待组件回填
- 待文档缓存刷新后继续执行
## 组件生产 — L1-S2-U17-L3 紧急拜访(完成)
### 文档发现
- Wiki 文档 `K6DIwFqpgi1SjZkEPS9cNESfn0d` 中的脚本表格**以嵌入式 Sheetgrid_column type 30存储**,而非 docx 原生 table
- `raw_content` API 不暴露此类嵌入 Sheet需通过 blocks API 查找 `block_type=30` 的 grid_column 节点来发现 sheet token
- 该文档含 2 个嵌入 Sheet`zbfYO4`(知识点区)和 `Nr3Ovs`243 行 × 8 列脚本表)
### 已完成的组件回填14/14 对话组件)
| 组件类型 | 数量 | 所用 skill |
|---------|:--:|-----------|
| 对话朗读 | 6 | dialogue-reading-config |
| 对话朗读-配图 | 2 | dialogue-reading-config |
| 对话挖空 | 2 | dialogue-fill-in-blanks-config |
| 对话挖空-配图 | 1 | dialogue-fill-in-blanks-config |
| 对话选择-配图 | 1 | dialogue-choose-config |
| 对话选读 | 1 | **dialogue-selective-reading-config新建** |
| 对话组句 | 1 | dialogue-sentence-building-config |
### Skill 库补全
- **新建 skill**`~/.openclaw/workspace-xiaoyan/skills/dialogue-selective-reading-config/SKILL.md`
- 格式来源:`dialogue-interaction-config` 技能business_production/组件生产/skills/
- 与对话选择的核心差异:无正确选项,所有选项平等配反馈,要求为「选择一个你想表达的观点」
- **更新**`~/.openclaw/workspace-xiaoyan/skills/task-router/component_configs.yaml` — dialogue_selective_reading 配置从占位格式更新为实际格式
### 关键技术点
- **嵌入 Sheet 写入**:使用 feishu-embedded-sheet 技能,通过 curl 调用 `sheets/v2/spreadsheets/{token}/values` 批量 PUT
- **多行写入验证**:写入后按行回读确认每行 H 列内容完整性
- **Shell 转义**component 内容含多行文本+特殊字符时,用 Python subprocess 传 curl 避免 shell 变量展开破坏数据
### 未处理行
- R181 信息拼词、R188 信息组句 — 不属于 6 类对话组件,需单独处理