ai_member_xiaokui/memory/.dreams/short-term-recall.json
2026-05-28 08:10:01 +08:00

1081 lines
62 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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.

{
"version": 1,
"updatedAt": "2026-05-27T02:50:23.510Z",
"entries": {
"memory:memory/2026-04-18.md:1:5": {
"key": "memory:memory/2026-04-18.md:1:5",
"path": "memory/2026-04-18.md",
"startLine": 1,
"endLine": 5,
"source": "memory",
"snippet": "# 2026-04-18 工作日志 ## 术语共识 [李若松确认] 术语「飞书反馈消息数据库」默认指代用户反馈收集技能中的飞书内部测试反馈MySQL数据表 `vala_test.lark_group_message`存储「内容测试问题反馈」群oc_fabff7672e62a9ced7b326ee4a286c26的同步消息数据。",
"recallCount": 8,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 8,
"maxScore": 1,
"firstRecalledAt": "2026-04-30T03:47:21.989Z",
"lastRecalledAt": "2026-05-27T02:15:55.251Z",
"queryHashes": [
"353f9765c086",
"a6b740c99377",
"9625ed0029fd",
"f865295b9ac7",
"42fe8210f22c",
"81f7a2647922",
"261597c52d5b",
"3fe44d618bf6"
],
"recallDays": [
"2026-04-30",
"2026-05-06",
"2026-05-07",
"2026-05-25",
"2026-05-26",
"2026-05-27"
],
"conceptTags": [
"vala-test.lark-group-message",
"工作",
"日志",
"术语",
"共识",
"若松",
"确认",
"反馈"
]
},
"memory:memory/2026-04-30.md:198:224": {
"key": "memory:memory/2026-04-30.md:198:224",
"path": "memory/2026-04-30.md",
"startLine": 198,
"endLine": 224,
"source": "memory",
"snippet": "3. 问题描述留 `[AI归纳]` 占位符 - 运行时 AI即助手本身根据元数据 + 对话上下文,生成精炼的问题描述 #### AI 归纳的最终输出格式(固定模板) ```markdown ### 问题 N > **在{端}端{环节}内({课程}{角色/组件}出现了{现象}** | 发言人 | 要点 | |--------|------| | ... | ... | **当前问题排查结论:** ... ``` #### 结论提取规则增强 - 解释性关键词:上云/预下载/加载/原因是/改为了/首次 → 标记为分析性发言 - 分析性发言 + 日志上传 → 输出「疑似{原因},已上传日志,排查中」 - 分析性发言 + 无日志 → 输出「{原因},待确认」 - 无分析 + 无日志 → 改为「暂未排查到问题」(刘新玉确认,比「暂未排查到根因」更准确) #### 4/28 最终归纳结果AI 生成) 1. **NPC HUD 显示**在移动端关卡内11-2NPC 头上的 HUD 偶尔变成一小条 → 暂未排查到问题 2. **iOS Loading 慢**:在 iOS 端关卡内L1 3-2Loading 耗时约 10 秒(正常 3 秒),导致组件数据丢失/无音频 → 疑似关卡内容上云加载导致,已上传日志,排查中 #### 结论提取的边界 - 刘新玉指出:\"暂未排查到问题\" vs \"暂未排查到根因\" → 前者更准确(问题被描述了但可能没被排查)",
"recallCount": 6,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 6,
"maxScore": 1,
"firstRecalledAt": "2026-05-06T13:30:08.593Z",
"lastRecalledAt": "2026-05-22T02:16:39.747Z",
"queryHashes": [
"f865295b9ac7",
"cd9c89262c30",
"ac7fd0b52a4e",
"49c0959dc960",
"f23f51c6129c",
"015553fc9cb1"
],
"recallDays": [
"2026-05-06",
"2026-05-07",
"2026-05-22"
],
"conceptTags": [
"角色/组件",
"上云/预下载/加载/原因是/改为了/首次",
"4/28",
"11-2",
"3-2",
"导致组件数据丢失/无音频",
"问题",
"描述"
]
},
"memory:memory/2026-04-30.md:116:142": {
"key": "memory:memory/2026-04-30.md:116:142",
"path": "memory/2026-04-30.md",
"startLine": 116,
"endLine": 142,
"source": "memory",
"snippet": "问题:很多消息有关联但没有 `quote_message_id`(飞书 API 的 `root_id`/`parent_id` 未采集) **推断规则(按优先级)** 1. **@提及匹配**:消息中 @了某人 → 关联到被@者最近一条消息 2. **同发送者聚类**:同一人在 2 分钟窗口内连续发多条 → 认为是对同一目标消息的回复 3. **最近不同发送者**关联到最近一条不同发送者的消息30 分钟内) 已测试效果:上午 NPC HUD 问题链成功串联,下午 iOS 问题链准确分组。部分跨话题误判仍需 AI 语义辅助策略3待后续评估。 #### 触发方式 - 手动:「同步飞书反馈」「整理反馈对话链」 - 定时:每天 10:00 crontab 自动执行 ## 步骤4问题归纳功能开发 [刘新玉] - 2026-04-30 18:38 完成 ### 步骤4 包含两部分 1. **问题描述**:在{端}{环节}内({课程}{角色/组件}出现了{现象} 2. **当前问题排查结论**:从对话最后 1-2 条提取,匹配规则: - \"日志上传/排查/查\" → \"日志已上传,排查中\" - \"确认/确实\" → \"已确认,待修复\" - \"已修复/已解决\" → \"已修复\" - \"不是 bug/设计如此\" → \"非问题,设计如此\" - 无明确结论 → \"暂未排查到根因\" ### 归纳格式 ```markdown ### 问题 N",
"recallCount": 8,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 8,
"maxScore": 1,
"firstRecalledAt": "2026-05-06T13:30:08.593Z",
"lastRecalledAt": "2026-05-22T02:16:39.747Z",
"queryHashes": [
"f865295b9ac7",
"cd9c89262c30",
"ac7fd0b52a4e",
"49c0959dc960",
"70caeba05281",
"2f315a9f8529",
"f23f51c6129c",
"015553fc9cb1"
],
"recallDays": [
"2026-05-06",
"2026-05-07",
"2026-05-11",
"2026-05-21",
"2026-05-22"
],
"conceptTags": [
"quote-message-id",
"root-id",
"parent-id",
"角色/组件",
"1-2",
"日志上传/排查/查",
"确认/确实",
"已修复/已解决"
]
},
"memory:memory/2026-04-30.md:134:166": {
"key": "memory:memory/2026-04-30.md:134:166",
"path": "memory/2026-04-30.md",
"startLine": 134,
"endLine": 166,
"source": "memory",
"snippet": "- \"日志上传/排查/查\" → \"日志已上传,排查中\" - \"确认/确实\" → \"已确认,待修复\" - \"已修复/已解决\" → \"已修复\" - \"不是 bug/设计如此\" → \"非问题,设计如此\" - 无明确结论 → \"暂未排查到根因\" ### 归纳格式 ```markdown ### 问题 N > **在{端}端{环节}内({课程}{角色/组件}出现了{现象}** | 发言人 | 要点 | |--------|------| | 报告人 | 🚩 报告:... | | ... | ... | | 最终人 | ✅ 结论/待排查 | ``` ### 维度提取规则 | 维度 | 优先级/来源 | |------|------------| | 端 | iOS > iPad > pad端 > Android > 移动端 > PC正则匹配忽略大小写 | | 环节 | 关卡内/知识巩固/单元挑战/听力挑战/阅读挑战/口语挑战/写作挑战/单元强化/瓦拉学院/报告(从消息文本匹配) | | 课程 | 匹配数字编号(如 11-2、L1 3-2 | | 角色/组件 | NPC/HUD/音频/组件/数据/Loading/加载/日志(从消息文本匹配) | | 现象 | 从消息中提取要害描述,截断在 35 字符以内 | ### 现象提取逻辑 1. 优先从包含 \"Bug的表现是这样的\"、\"问题是\"、\"发现\"、\"出现\" 等关键词的消息中截取描述句 2. 提取的句子去除 URL、图片标记、疑问句 3. 截断到 35 字符防止过长 ### Bug 修复记录",
"recallCount": 6,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 6,
"maxScore": 1,
"firstRecalledAt": "2026-05-06T13:30:08.593Z",
"lastRecalledAt": "2026-05-22T02:16:39.747Z",
"queryHashes": [
"f865295b9ac7",
"cd9c89262c30",
"ac7fd0b52a4e",
"49c0959dc960",
"f23f51c6129c",
"015553fc9cb1"
],
"recallDays": [
"2026-05-06",
"2026-05-07",
"2026-05-22"
],
"conceptTags": [
"日志上传/排查/查",
"确认/确实",
"已修复/已解决",
"bug/设计如此",
"角色/组件",
"结论/待排查",
"优先级/来源",
"11-2"
]
},
"memory:memory/2026-04-30.md:177:205": {
"key": "memory:memory/2026-04-30.md:177:205",
"path": "memory/2026-04-30.md",
"startLine": 177,
"endLine": 205,
"source": "memory",
"snippet": "- iOS 的两个相关话题(组件无音频 / Loading 慢因无引用关系而分成两个簇需策略3语义聚类解决 - 单消息簇被跳过(需至少 2 条消息才能形成问题) ### Skill 文件最终状态 - `skills/feishu-feedback-sync/SKILL.md`已包含完整步骤1-4的文档 - `skills/feishu-feedback-sync/scripts/sync_feishu_feedback.py`:已集成 `summarize_cluster()`、`extract_location_elements()`、`generate_summary()` 函数 - crontab 每日 10:00 执行与步骤3一起 ### 步骤4 架构调整AI 归纳取代规则生成 [刘新玉] - 2026-04-30 19:07 #### 问题 脚本规则匹配生成的问题描述质量差: - 组件匹配失败NPC/HUD → \"未知组件\" - 现象摘取了完整原始消息(含 @、无关词) - 端识别不稳定 #### 决策 **脚本输出结构化元数据 + 对话表AI 负责归纳描述。** - 脚本 `summarize_cluster` 改为输出: 1. 位置元数据(端/环节/课程/组件)— 由 `extract_location_elements` 提取 2. 发言人-要点表格(规则生成) 3. 问题描述留 `[AI归纳]` 占位符 - 运行时 AI即助手本身根据元数据 + 对话上下文,生成精炼的问题描述 #### AI 归纳的最终输出格式(固",
"recallCount": 7,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 7,
"maxScore": 1,
"firstRecalledAt": "2026-05-06T13:30:08.593Z",
"lastRecalledAt": "2026-05-22T02:16:39.747Z",
"queryHashes": [
"f865295b9ac7",
"cd9c89262c30",
"ac7fd0b52a4e",
"49c0959dc960",
"70caeba05281",
"f23f51c6129c",
"015553fc9cb1"
],
"recallDays": [
"2026-05-06",
"2026-05-07",
"2026-05-11",
"2026-05-22"
],
"conceptTags": [
"已包含完整步骤1-4的文档",
"summarize-cluster",
"extract-location-elements",
"generate-summary",
"npc/hud",
"端/环节/课程/组件",
"发言人-要点表格",
"ios"
]
},
"memory:memory/2026-05-06.md:61:86": {
"key": "memory:memory/2026-05-06.md:61:86",
"path": "memory/2026-05-06.md",
"startLine": 61,
"endLine": 86,
"source": "memory",
"snippet": "- `generate_summary()` 调用 `compute_final_priority()` + `sort_by_priority()` 排序 - 新增 `--skip-priority` CLI 参数 - 修复了推断引用算法的孤立簇问题:在 sort_threads Union-Find 后增加合并单条孤立消息到有发送者重叠的大簇的逻辑 #### 3. 更新 SKILL.md 文档 - 增加了步骤5的完整文档说明 - 增加了优先级判定规则速查表 #### 4. 真实数据验证结果 - 2026-04-28 数据2个问题 - P0iOS端Loading超时致数据丢失/无音频15条 - P1移动端NPC HUD偶尔变成一小条8条 #### 5. 刘新玉要求简化文档格式(~11:46 - 反馈文档太繁琐,只要在原有格式把\"问题 1\"改成\"P0-问题 1\" - 去掉了优先级分布汇总、额外信息行,只保留标题前缀 + 一行判定依据 - 最终格式:`### P0-问题 1` + `**优先级判定:** 规则...` - 知识库文档已更新为简洁版 #### 6. 修复推断引用算法 Bug - 策略2的 else 分支(同发送者无引用时往前找不同发送者)缺少时间限制 - 导致胡陈辰 20:45 的媒体消息被推断引用到徐思清 12:29跨8小时 - 修复:加了 `GAP_THRESHOLD_MIN` 检查 #### 7. 文档写入方式改进 - 从 `insert_before` + `replace_range` 改为 `append` 模式",
"recallCount": 6,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 6,
"maxScore": 1,
"firstRecalledAt": "2026-05-07T02:22:47.713Z",
"lastRecalledAt": "2026-05-22T02:16:39.747Z",
"queryHashes": [
"cd9c89262c30",
"ac7fd0b52a4e",
"49c0959dc960",
"70caeba05281",
"f23f51c6129c",
"015553fc9cb1"
],
"recallDays": [
"2026-05-07",
"2026-05-11",
"2026-05-22"
],
"conceptTags": [
"generate-summary",
"compute-final-priority",
"sort-by-priority",
"skip-priority",
"sort-threads",
"union-find",
"skill.md",
"ios端loading超时致数据丢失/无音频"
]
},
"memory:memory/2026-04-30.md:73:102": {
"key": "memory:memory/2026-04-30.md:73:102",
"path": "memory/2026-04-30.md",
"startLine": 73,
"endLine": 102,
"source": "memory",
"snippet": "### 飞书问题反馈按引用关系重新排序 [刘新玉] 要求按问题完整解决过程排序——通过 `quote_message_id` 串联同一问题的讨论链。 #### 排序逻辑 1. 从数据库读取全部消息及引用关系 2. 构建引用图:每个消息的 `quote_message_id` 指向其父消息 3. 聚合问题链cluster同一引用链的消息归为一组连续排列 4. 同 cluster 内按时间排序,子回复紧跟父消息 5. Cluster 间按最早时间排序 6. 无引用关系的独立消息按时间线补充 #### 处理过程 - 写入前先通过 `lark-cli sheets +write` 清空 sheet`--raw-data=\"[]\"` - 4/28 23条 → 生成完整引用链排序,写入 - 4/29 2条 → 无引用关系,直接写入 #### 4/28 问题链总结 | 问题 | 涉及人 | 消息数 | |------|--------|--------| | NPC HUD显示bug仅移动端 | 徐思清→王胤鑫 | 3 | | 关卡出现规律 | 王胤鑫→庞鸿潇→梁晨 | 4 | | Playtesting数据记录 | 孙时敏 | 1 | | iOS组件无音频+Loading慢/数据丢失 | 胡陈辰→安君仪/毋益飞/王胤鑫 | 11 | | 网络问题4/29 | Ann | 2 | ### 飞书群 4/25-4/27 数据查询结果 - 查询 MySQL `lark_group_message` 2026-04-25 ~ 2026-04-27 数据 - 结果0 条,",
"recallCount": 4,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 4,
"maxScore": 1,
"firstRecalledAt": "2026-05-07T02:22:47.713Z",
"lastRecalledAt": "2026-05-22T02:16:39.747Z",
"queryHashes": [
"cd9c89262c30",
"ac7fd0b52a4e",
"49c0959dc960",
"015553fc9cb1"
],
"recallDays": [
"2026-05-07",
"2026-05-22"
],
"conceptTags": [
"网络",
"quote-message-id",
"lark-cli",
"raw-data",
"4/28",
"4/29",
"loading慢/数据丢失",
"安君仪/毋益飞/王胤鑫"
]
},
"memory:memory/2026-04-17.md:1:23": {
"key": "memory:memory/2026-04-17.md:1:23",
"path": "memory/2026-04-17.md",
"startLine": 1,
"endLine": 23,
"source": "memory",
"snippet": "# 2026-04-17 工作日志 ## 飞书群消息同步改造(李若松要求) ### 变更内容 - **存储从飞书表格改为 MySQL**:新建 `vala_test.lark_group_message` 表,结构参考 `wechat_group_message` - **同步频率**从每6小时改为每4小时 - **数据范围**2026.4.1 起的「内容测试问题反馈」群消息 - **数据库账户**chatbottest环境仅对 lark_group_message 有写入权限) ### 完成事项 1. ✅ 创建 `lark_group_message` 表(唯一键 message_id 防重复) 2. ✅ 编写新同步脚本 `scripts/sync_lark_group_to_mysql.py`(基于原有 sync_group_to_sheet.py 改造) 3. ✅ 首次全量同步完成172 条记录2026-04-01 ~ 2026-04-17含文本134条、图片17条、视频10条、富文本9条、表情2条 4. ✅ crontab 定时任务已替换旧的每6小时飞书表格同步 → 新的每4小时MySQL同步 5. ✅ 更新 secrets.md 记录 chatbot 账户 6. ✅ 更新 user-feedback-collector SKILL.md 反馈数据源信息 ### 文件变更 - 新增:`scripts/sync_lark_group_to_mysql.py`(核心同步脚本) - 新增:`scripts/run_lark_group_sync.s",
"recallCount": 3,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 3,
"maxScore": 1,
"firstRecalledAt": "2026-05-08T10:25:44.365Z",
"lastRecalledAt": "2026-05-21T10:38:19.153Z",
"queryHashes": [
"cc0dd7ef50d7",
"5abc37103c15",
"2f315a9f8529"
],
"recallDays": [
"2026-05-08",
"2026-05-11",
"2026-05-21"
],
"conceptTags": [
"vala-test.lark-group-message",
"wechat-group-message",
"2026.4.1",
"lark-group-message",
"message-id",
"sync-group-to-sheet.py",
"secrets.md",
"user-feedback-collector"
]
},
"memory:memory/2026-04-23.md:28:55": {
"key": "memory:memory/2026-04-23.md:28:55",
"path": "memory/2026-04-23.md",
"startLine": 28,
"endLine": 55,
"source": "memory",
"snippet": "- 创建脚本:`scripts/sync_feishu_full_history.py` - 同步时间范围2026-04-10 至今 - 成功处理 57 条消息(包含文本、图片、视频等多种类型) - 所有媒体文件已上传到 COS - 数据已全部写入数据库 4. **定时任务配置** - 每 4 小时自动同步「内容测试问题反馈」群消息 - crontab: `0 */4 * * * cd /root/.openclaw/workspace-xiaokui/skills/feishu-group-msg-sync/scripts && python3 sync_group_to_mysql.py` 5. **文档更新** - `feishu-group-msg-sync/SKILL.md`: 说明数据库存储方案和引用回复支持 - `user-feedback-collector/SKILL.md`: 更新飞书反馈数据源为 MySQL - `feishu-group-msg-sync/references/query_examples.md`: 提供引用回复查询示例 ### 技术要点 - **引用回复识别**: 从消息 `body.quote` 字段提取被引用消息的 `message_id` - **去重机制**: 使用 `UNIQUE KEY (chat_id, message_id)` 避免重复记录 - **数据一致性**: 使用 `ON DUPLICATE KEY UPDATE` 处理重复消息 - **媒体文",
"recallCount": 2,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 2,
"maxScore": 1,
"firstRecalledAt": "2026-05-08T10:25:44.365Z",
"lastRecalledAt": "2026-05-11T10:43:36.686Z",
"queryHashes": [
"cc0dd7ef50d7",
"5abc37103c15"
],
"recallDays": [
"2026-05-08",
"2026-05-11"
],
"conceptTags": [
"sync-group-to-mysql.py",
"feishu-group-msg-sync/skill.md",
"user-feedback-collector/skill.md",
"body.quote",
"message-id",
"chat-id",
"创建",
"脚本"
]
},
"memory:memory/2026-04-30.md:95:120": {
"key": "memory:memory/2026-04-30.md:95:120",
"path": "memory/2026-04-30.md",
"startLine": 95,
"endLine": 120,
"source": "memory",
"snippet": "| iOS组件无音频+Loading慢/数据丢失 | 胡陈辰→安君仪/毋益飞/王胤鑫 | 11 | | 网络问题4/29 | Ann | 2 | ### 飞书群 4/25-4/27 数据查询结果 - 查询 MySQL `lark_group_message` 2026-04-25 ~ 2026-04-27 数据 - 结果0 条,该群此时间段无消息记录 ### 反馈同步 Skill 创建 [刘新玉] 将飞书问题反馈同步流程封装为 `feishu-feedback-sync` skill并计划注册定时任务。 #### Skill 文件 - `skills/feishu-feedback-sync/SKILL.md` — 完整技能文档 - `skills/feishu-feedback-sync/scripts/sync_feishu_feedback.py` — 核心同步脚本 - `scripts/sync_feishu_feedback_wrapper.sh` — 定时任务包装脚本 #### Skill 功能 1. 从 MySQL `lark_group_message` 查询近 N 天数据 2. 写入知识库电子表格(按天分 sheet 3. **反馈对话链排序**:按引用关系将同一问题讨论聚合呈现 #### 策略2推断缺失引用关系 [刘新玉] 问题:很多消息有关联但没有 `quote_message_id`(飞书 API 的 `root_id`/`parent_id` 未采集) **推断规则(按优先级)** 1. **@提及匹配**:消息中 @了某人",
"recallCount": 3,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 3,
"maxScore": 1,
"firstRecalledAt": "2026-05-08T10:25:44.365Z",
"lastRecalledAt": "2026-05-22T02:16:39.747Z",
"queryHashes": [
"cc0dd7ef50d7",
"5abc37103c15",
"015553fc9cb1"
],
"recallDays": [
"2026-05-08",
"2026-05-11",
"2026-05-22"
],
"conceptTags": [
"网络",
"loading慢/数据丢失",
"安君仪/毋益飞/王胤鑫",
"4/29",
"4/25-4/27",
"lark-group-message",
"feishu-feedback-sync",
"quote-message-id"
]
},
"memory:memory/2026-04-23.md:47:72": {
"key": "memory:memory/2026-04-23.md:47:72",
"path": "memory/2026-04-23.md",
"startLine": 47,
"endLine": 72,
"source": "memory",
"snippet": "- **数据一致性**: 使用 `ON DUPLICATE KEY UPDATE` 处理重复消息 - **媒体文件处理**: 下载飞书媒体文件并上传到腾讯 COS记录可访问 URL ### 验证结果 - ✅ 数据库表结构已更新3 个新字段) - ✅ 历史数据已同步57 条消息) - ✅ 定时任务已配置 - ✅ 文档已更新 - 当前数据中无引用回复消息quote_message_id 都是 NULL说明这段时间内群消息都是直接发送的 ### 查询能力 支持以下查询场景: - 查询某条消息的所有回复 - 查询完整对话链(原消息 + 所有回复) - 统计热门话题(被回复最多的消息) - 按时间、发送人、关键词筛选 ### 文件清单 - `scripts/alter_lark_group_message.sql` - 数据库表结构升级脚本 - `scripts/sync_feishu_full_history.py` - 完整历史数据同步脚本 - `skills/feishu-group-msg-sync/scripts/sync_group_to_mysql.py` - 增量同步脚本 - `skills/feishu-group-msg-sync/references/query_examples.md` - 查询示例文档",
"recallCount": 2,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 2,
"maxScore": 1,
"firstRecalledAt": "2026-05-08T10:25:44.365Z",
"lastRecalledAt": "2026-05-11T10:43:36.686Z",
"queryHashes": [
"cc0dd7ef50d7",
"5abc37103c15"
],
"recallDays": [
"2026-05-08",
"2026-05-11"
],
"conceptTags": [
"quote-message-id",
"数据",
"一致性",
"使用",
"duplicate",
"key",
"update",
"处理"
]
},
"memory:memory/2026-05-07.md:86:116": {
"key": "memory:memory/2026-05-07.md:86:116",
"path": "memory/2026-05-07.md",
"startLine": 86,
"endLine": 116,
"source": "memory",
"snippet": "| 9 | 用户反馈问题 | 建议、反馈、体验、优化 | | 10 | 其他问题 | (默认兜底) | ### 脚本修改 - `priority_classifier.py` 新增 `proble m_category(keyword)` 函数和 `CATEGORY_KEYWORDS` 规则 - `sync_feishu_feedback.py` 中 `summarize_cluster()` 新增 `category` 字段 - `generate_summary()` 输出格式改为按优先级+分类分组 --- ## 新增步骤7问题分发 [刘新玉] - 2026-05-07 11:09 ### 需求 将每日问题归纳同步到「小葵小葵」群P0问题@相关负责人跟进。 ### 分发规则 1. 将\"今日问题归纳\"内容发送到指定群(格式:标题+归纳正文+文档链接) 2. P0问题 @相关负责人的 @列表(从 `summarize_cluster` 的 `operators` 字段提取发言人) ### Bot身份问题 - Bot应用名**小研**App ID: `cli_a931175d41799cc7` - Bot发消息需要已经加入目标群 - 小葵Bot在「小葵小葵」群中发消息报 500 \"chat does not exist\" → 可能是不同应用 - **待解决**:需要确认\"小葵小葵\"群里加的是哪个应用或者把小研Bot加进去 ### 脚本修改 - `sync_feishu_feedback.py` 新增 `dispatch_to_group()` 函数 -",
"recallCount": 2,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 2,
"maxScore": 1,
"firstRecalledAt": "2026-05-11T09:48:27.002Z",
"lastRecalledAt": "2026-05-14T13:09:32.054Z",
"queryHashes": [
"70caeba05281",
"9821fd380aab"
],
"recallDays": [
"2026-05-11",
"2026-05-14"
],
"conceptTags": [
"priority-classifier.py",
"m-category",
"category-keywords",
"sync-feishu-feedback.py",
"summarize-cluster",
"generate-summary",
"cli-a931175d41799cc7",
"dispatch-to-group"
]
},
"memory:memory/2026-05-07.md:73:91": {
"key": "memory:memory/2026-05-07.md:73:91",
"path": "memory/2026-05-07.md",
"startLine": 73,
"endLine": 91,
"source": "memory",
"snippet": "``` ### 问题分类规则(按匹配优先级从上到下) | 优先级 | 分类 | 匹配关键词 | |--------|------|-----------| | 1 | 启动/运行异常 | 闪退、崩溃、crash、进不去、卡死、黑屏、重启、服务器宕机、服务器挂了 | | 2 | 版本/更新类 | 更新、升级、新版、版本、安装失败、OTA、热更新、无法更新、下载更新 | | 3 | Loading/加载类 | 加载、loading、loading卡死、转星星、加载慢、加载超时、loading超时、一直加载 | | 4 | 数据/进度类 | 数据丢失、数据异常、进度丢失、数据错误、分数异常、进度不对、记录丢失、数据对不上 | | 5 | 声音/音频类 | 无声、声音、音频、没声音、音效 | | 6 | 语音识别/判分类 | 判分、识别、语音识别、发音、评分、打分、AI判分 | | 7 | 关卡/内容类 | 关卡、题目、答案、内容 | | 8 | UI显示类 | 显示、界面、UI、HUD、动画、层级、图层、渲染 | | 9 | 用户反馈问题 | 建议、反馈、体验、优化 | | 10 | 其他问题 | (默认兜底) | ### 脚本修改 - `priority_classifier.py` 新增 `proble m_category(keyword)` 函数和 `CATEGORY_KEYWORDS` 规则 - `sync_feishu_feedback.py` 中 `summarize_cluster()` 新增 `category` 字段",
"recallCount": 1,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 1,
"maxScore": 1,
"firstRecalledAt": "2026-05-11T09:48:27.002Z",
"lastRecalledAt": "2026-05-11T09:48:27.002Z",
"queryHashes": [
"70caeba05281"
],
"recallDays": [
"2026-05-11"
],
"conceptTags": [
"启动/运行异常",
"版本/更新类",
"loading/加载类",
"数据/进度类",
"声音/音频类",
"语音识别/判分类",
"关卡/内容类",
"priority-classifier.py"
]
},
"memory:memory/2026-04-10.md:44:68": {
"key": "memory:memory/2026-04-10.md:44:68",
"path": "memory/2026-04-10.md",
"startLine": 44,
"endLine": 68,
"source": "memory",
"snippet": "### 验证结果 - 全量同步成功47条记录写入表格5张图片+4个视频上传COS - crontab 每小时整点自动执行:`0 * * * *` - 群IDoc_fabff7672e62a9ced7b326ee4a286c26 ## 封装两个通用Skill **来源:** [李若松] 要求将功能封装为可复用skill ### 1. tencent-cos-upload - 路径:`/root/.openclaw/skills/tencent-cos-upload/` - 功能上传文件到腾讯COS并生成可访问URL - 提供命令行调用和Python模块两种方式 - 核心文件:`scripts/cos_upload.py`CosUploader类 ### 2. feishu-group-msg-sync - 路径:`/root/.openclaw/skills/feishu-group-msg-sync/` - 功能定期同步飞书群聊消息到电子表格媒体上传COS - 依赖 tencent-cos-upload skill - 核心文件:`scripts/sync_group_to_sheet.py`(模板脚本,修改顶部配置即可复用) - 参考文件:`references/lark-cli-cheatsheet.md` ### 项目脚本也改为引用skill - `scripts/sync_feedback_group.py` 现在只做配置覆盖逻辑全部引用自skill",
"recallCount": 2,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 2,
"maxScore": 1,
"firstRecalledAt": "2026-05-11T10:43:36.686Z",
"lastRecalledAt": "2026-05-21T10:38:19.153Z",
"queryHashes": [
"5abc37103c15",
"2f315a9f8529"
],
"recallDays": [
"2026-05-11",
"2026-05-21"
],
"conceptTags": [
"tencent-cos-upload",
"scripts/cos-upload.py",
"feishu-group-msg-sync",
"scripts/sync-group-to-sheet.py",
"scripts/sync-feedback-group.py",
"验证",
"结果",
"全量"
]
},
"memory:memory/2026-05-09.md:46:65": {
"key": "memory:memory/2026-05-09.md:46:65",
"path": "memory/2026-05-09.md",
"startLine": 46,
"endLine": 65,
"source": "memory",
"snippet": "- 注意xiaokui 无法删除 xiaoyan 创建的文档(跨应用权限隔离),需回退到 xiaoyan 凭证删除 **问题三:子文档排序不规则** - 根因:旧 `sort_tag = dt.timestamp()` 升序导致旧日期在前 - 修复:改为 `sort_tag = 9999999999 - int(dt.timestamp())` 实现日期降序 - ⚠️ 不足:飞书 Wiki V2 API 创建节点时 `sort_tag` 参数可能被忽略API 返回均为 null - 兜底方案:按日期由近到远的顺序依次创建子文档,利用 `node_create_time` 自然排序 - 所有旧文档已删除并按正确顺序重建5月8日→5月7日→4月28日5月6日需手动创建 ### 飞书分发消息 `<at>` 标签修复 - 根因:`dispatch_summary_to_chat` 中两步打架——第一步 `re.sub` 注入 HTML `<at>` 文本,第二步 `content_parts` 用正确 `{\"tag\":\"at\"}` 格式插入 - 修复:删除 `re.sub` 注入原始 HTML 标签的代码,仅保留富文本 at tag ### 5月9日补跑问题 - 5月9日10:00定时任务因 `IndentationError` 失败凌晨08:10自动备份 `c3c8dbb` 损坏了脚本) - 修复从上游版本恢复被清空的步骤4-7逻辑 + 模块常量 - 手动补跑5月8日数据8条反馈1个P0成功 ### 待验证 - [ ] 确认「用户反馈问题汇总」下子文档排",
"recallCount": 2,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 2,
"maxScore": 1,
"firstRecalledAt": "2026-05-11T11:26:09.200Z",
"lastRecalledAt": "2026-05-11T11:26:09.201Z",
"queryHashes": [
"cd203fdc056f",
"dbd60c484e39"
],
"recallDays": [
"2026-05-11"
],
"conceptTags": [
"备份",
"sort-tag",
"dt.timestamp",
"node-create-time",
"dispatch-summary-to-chat",
"re.sub",
"content-parts",
"从上游版本恢复被清空的步骤4-7逻辑"
]
},
"memory:memory/2026-05-09.md:1:19": {
"key": "memory:memory/2026-05-09.md:1:19",
"path": "memory/2026-05-09.md",
"startLine": 1,
"endLine": 19,
"source": "memory",
"snippet": "## 2026-05-09 工作日志 ### 飞书反馈同步 - 三个文档问题修复 **问题一:图片无法点击查看** - 根因Markdown表格中 `|` 被 `dialogue_info` 内部的 ` | ` 分隔符破坏 + `![图片]()` 格式在飞书导入时不可靠 - 修复:`info_parts` 分隔符从 `\" | \"` 改为 `<br>`;图片格式从 `![图片](url)` 改为 `📎 [图片](url)` 可点击链接 **问题二:子文档作者显示\"小研\"** - 根因:现有子文档由 xiaoyan bot (`ou_3e97d43a66639a457f0020a0d7f2bd74`) 创建xiaokui 无法直接覆盖 - 修复:在 `update_summary_doc_as_children` 中添加 creator 校验,非 xiaokui 创建则先通过 xiaoyan 凭证删除再重建 - 关键常量:`XIAOKUI_BOT_OPEN_ID = \"ou_fdbf5fdafd91670db34b6ac887f30fb7\"` - 注意xiaokui 无法删除 xiaoyan 创建的文档(跨应用权限隔离),需回退到 xiaoyan 凭证删除 **问题三:子文档排序不规则** - 根因:旧 `sort_tag = dt.timestamp()` 升序导致旧日期在前 - 修复:改为 `sort_tag = 9999999999 - int(dt.timestamp())` 实现日期降序 - ⚠️ 不足:飞书 Wiki V2 API 创建节点时 `sort",
"recallCount": 1,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 1,
"maxScore": 1,
"firstRecalledAt": "2026-05-11T11:26:09.200Z",
"lastRecalledAt": "2026-05-11T11:26:09.200Z",
"queryHashes": [
"cd203fdc056f"
],
"recallDays": [
"2026-05-11"
],
"conceptTags": [
"dialogue-info",
"info-parts",
"update-summary-doc-as-children",
"xiaokui-bot-open-id",
"sort-tag",
"dt.timestamp",
"工作",
"日志"
]
},
"memory:memory/2026-05-09.md:78:95": {
"key": "memory:memory/2026-05-09.md:78:95",
"path": "memory/2026-05-09.md",
"startLine": 78,
"endLine": 95,
"source": "memory",
"snippet": "- 修复:在 `update_summary_doc_as_children` 中添加 creator 校验,非 xiaokui 创建则先通过 xiaoyan 凭证删除再重建 - 关键常量:`XIAOKUI_BOT_OPEN_ID = \"ou_fdbf5fdafd91670db34b6ac887f30fb7\"` - 注意xiaokui 无法删除 xiaoyan 创建的文档(跨应用权限隔离),需回退到 xiaoyan 凭证删除 **问题三:子文档排序不规则** - 根因:旧 `sort_tag = dt.timestamp()` 升序导致旧日期在前 - 修复:改为 `sort_tag = 9999999999 - int(dt.timestamp())` 实现日期降序 - ⚠️ 不足:飞书 Wiki V2 API 创建节点时 `sort_tag` 参数可能被忽略API 返回均为 null - 兜底方案:按日期由近到远的顺序依次创建子文档,利用 `node_create_time` 自然排序 - 所有旧文档已删除并按正确顺序重建5月8日→5月7日→4月28日5月6日需手动创建 ### 飞书分发消息 `<at>` 标签修复 - 根因:`dispatch_summary_to_chat` 中两步打架——第一步 `re.sub` 注入 HTML `<at>` 文本,第二步 `content_parts` 用正确 `{\"tag\":\"at\"}` 格式插入 - 修复:删除 `re.sub` 注入原始 HTML 标签的代码,仅保留富文本 at tag ### 5月9日补跑问题",
"recallCount": 1,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 1,
"maxScore": 1,
"firstRecalledAt": "2026-05-11T11:26:09.201Z",
"lastRecalledAt": "2026-05-11T11:26:09.201Z",
"queryHashes": [
"dbd60c484e39"
],
"recallDays": [
"2026-05-11"
],
"conceptTags": [
"update-summary-doc-as-children",
"xiaokui-bot-open-id",
"sort-tag",
"dt.timestamp",
"node-create-time",
"dispatch-summary-to-chat",
"re.sub",
"content-parts"
]
},
"memory:memory/2026-05-06.md:20:47": {
"key": "memory:memory/2026-05-06.md:20:47",
"path": "memory/2026-05-06.md",
"startLine": 20,
"endLine": 47,
"source": "memory",
"snippet": "- `generate_summary()` 调用 `compute_final_priority()` + `sort_by_priority()` 排序 - 新增 `--skip-priority` CLI 参数 - 修复了推断引用算法的孤立簇问题:在 sort_threads Union-Find 后增加合并单条孤立消息到有发送者重叠的大簇的逻辑 #### 3. 更新 SKILL.md 文档 - 增加了步骤5的完整文档说明 - 增加了优先级判定规则速查表 #### 4. 真实数据验证结果 - 2026-04-28 数据2个问题 - P0iOS端Loading超时致数据丢失/无音频15条 - P1移动端NPC HUD偶尔变成一小条8条 ### 待确认 - 步骤5的优先级标注目前仅在脚本输出中展示尚未写入「用户反馈问题汇总」文档RaL6whoYMijyYHkSlWrc7OLLnBy - 刘新玉需确认是否需要增加文档自动写入能力 ## 刘新玉PDF文件处理 - 刘新玉于11:02发送PDF用户反馈问题优先级判断文档8页A4 - 已用pdftotext解析并完整阅读 - 内容P0-P3四级优先级定义、动态调整规则、三大判断问题 - 已基于此文档实现优先级判定规则 # 2026-05-06 工作日志 ## 刘新玉飞书反馈优先级判定步骤5落地 ### 需求背景 - 刘新玉发来「用户反馈问题优先级判断文档」PDF要求将优先级判定集成到飞书反馈同步流程的第5步",
"recallCount": 1,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 1,
"maxScore": 1,
"firstRecalledAt": "2026-05-11T11:26:09.201Z",
"lastRecalledAt": "2026-05-11T11:26:09.201Z",
"queryHashes": [
"dbd60c484e39"
],
"recallDays": [
"2026-05-11"
],
"conceptTags": [
"generate-summary",
"compute-final-priority",
"sort-by-priority",
"skip-priority",
"sort-threads",
"union-find",
"skill.md",
"ios端loading超时致数据丢失/无音频"
]
},
"memory:memory/2026-05-07.md:23:50": {
"key": "memory:memory/2026-05-07.md:23:50",
"path": "memory/2026-05-07.md",
"startLine": 23,
"endLine": 50,
"source": "memory",
"snippet": "- 「小葵小葵」群 chat_id: `oc_4171a2188f2554522a4309f2d7c27753`小葵Bot已在该群中 - 相关负责人需要往此群发消息时,直接用 Bot 身份向该 chat_id 发送 ### 知识空间信息 - space_id: 7612229802338045122 - 父节点 node_token: RaL6whoYMijyYHkSlWrc7OLLnBy - 父节点 obj_token: J8bKd4dbYoofZixxVsCc06bhnFc (docx) ## 用户反馈问题汇总文档结构调整 [刘新玉] - 2026-05-07 10:45 ### 变更内容 1. 「用户反馈问题汇总」文档改为按日期创建独立子文档,每天一个 2. 子文档标题格式:`YYYY-MM-DD 问题反馈` 3. 父文档RaL6whoYMijyYHkSlWrc7OLLnBy改为索引说明页 4. 子文档 obj_token - 2026-05-06: ISpQdgf6QoIKIyxdZjPcTAa4nEe - 2026-04-28: UusFdRBEioSs4ox9JhPcXGfCnzf ### 脚本修改 - `sync_feishu_feedback.py` 中新增 `update_summary_doc_as_children()` 函数 - 逻辑:先 `list_child_nodes()` 查已有子文档 → 存在则更新、不存在才创建 - **核心规则:每天只新增一个对应日期的子文档,绝不重复创建** ### 同步清理 - 数据库中 s",
"recallCount": 1,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 1,
"maxScore": 1,
"firstRecalledAt": "2026-05-12T06:08:28.032Z",
"lastRecalledAt": "2026-05-12T06:08:28.032Z",
"queryHashes": [
"5d17890944eb"
],
"recallDays": [
"2026-05-12"
],
"conceptTags": [
"chat-id",
"space-id",
"node-token",
"obj-token",
"yyyy-mm-dd",
"sync-feishu-feedback.py",
"update-summary-doc-as-children",
"list-child-nodes"
]
},
"memory:memory/2026-05-07.md:1:28": {
"key": "memory:memory/2026-05-07.md:1:28",
"path": "memory/2026-05-07.md",
"startLine": 1,
"endLine": 28,
"source": "memory",
"snippet": "## 用户反馈问题汇总文档结构调整 [刘新玉] - 2026-05-07 10:45 ### 变更内容 1. 「用户反馈问题汇总」文档改为按日期创建独立子文档,每天一个 2. 子文档标题格式:`YYYY-MM-DD 问题反馈` 3. 父文档RaL6whoYMijyYHkSlWrc7OLLnBy改为索引说明页 4. 子文档 obj_token - 2026-05-06: ISpQdgf6QoIKIyxdZjPcTAa4nEe - 2026-04-28: UusFdRBEioSs4ox9JhPcXGfCnzf ### 脚本修改 - `sync_feishu_feedback.py` 中新增 `update_summary_doc_as_children()` 函数 - 逻辑:先 `list_child_nodes()` 查已有子文档 → 存在则更新、不存在才创建 - **核心规则:每天只新增一个对应日期的子文档,绝不重复创建** ### 同步清理 - 数据库中 sender_name='未知' 的3条无效记录已删除 - 「内容测试问题反馈」电子表格中也清理了\"未知\"发送者的行 - 该电子表格已从\"飞书问题反馈-近3天\"重命名为\"内容测试问题反馈\" ### 飞书群信息 [李若松确认] - 2026-05-07 11:23 - 「小葵小葵」群 chat_id: `oc_4171a2188f2554522a4309f2d7c27753`小葵Bot已在该群中 - 相关负责人需要往此群发消息时,直接用 Bot 身份向该 chat_id 发送 ### 知识空间信",
"recallCount": 1,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 1,
"maxScore": 1,
"firstRecalledAt": "2026-05-12T06:08:28.032Z",
"lastRecalledAt": "2026-05-12T06:08:28.032Z",
"queryHashes": [
"5d17890944eb"
],
"recallDays": [
"2026-05-12"
],
"conceptTags": [
"yyyy-mm-dd",
"obj-token",
"sync-feishu-feedback.py",
"update-summary-doc-as-children",
"list-child-nodes",
"sender-name",
"飞书问题反馈-近3天",
"chat-id"
]
},
"memory:memory/2026-05-09.md:17:37": {
"key": "memory:memory/2026-05-09.md:17:37",
"path": "memory/2026-05-09.md",
"startLine": 17,
"endLine": 37,
"source": "memory",
"snippet": "- 修复:改为 `sort_tag = 9999999999 - int(dt.timestamp())` 实现日期降序 - ⚠️ 不足:飞书 Wiki V2 API 创建节点时 `sort_tag` 参数可能被忽略API 返回均为 null - 兜底方案:按日期由近到远的顺序依次创建子文档,利用 `node_create_time` 自然排序 - 所有旧文档已删除并按正确顺序重建5月8日→5月7日→4月28日5月6日需手动创建 ### 飞书分发消息 `<at>` 标签修复 - 根因:`dispatch_summary_to_chat` 中两步打架——第一步 `re.sub` 注入 HTML `<at>` 文本,第二步 `content_parts` 用正确 `{\"tag\":\"at\"}` 格式插入 - 修复:删除 `re.sub` 注入原始 HTML 标签的代码,仅保留富文本 at tag ### 废弃定时任务的 crontab 清理 - 已删除 xiaokui crontab 中 `*/5 * * * *` 的「飞书问题反馈同步每分钟」任务(含 wrapper 脚本调用) - 该任务每分钟执行一次打开 MySQL 连接/查询/返回存在潜在连接泄漏风险 ### 5月9日补跑问题 - 5月9日10:00定时任务因 `IndentationError` 失败凌晨08:10自动备份 `c3c8dbb` 损坏了脚本) - 修复从上游版本恢复被清空的步骤4-7逻辑 + 模块常量 - 手动补跑5月8日数据8条反馈1个P0成功 ## 2026-05-09 工作日志",
"recallCount": 2,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 2,
"maxScore": 1,
"firstRecalledAt": "2026-05-21T10:38:19.153Z",
"lastRecalledAt": "2026-05-25T02:22:57.259Z",
"queryHashes": [
"2f315a9f8529",
"ae62541246a4"
],
"recallDays": [
"2026-05-21",
"2026-05-25"
],
"conceptTags": [
"备份",
"sort-tag",
"dt.timestamp",
"node-create-time",
"dispatch-summary-to-chat",
"re.sub",
"content-parts",
"连接/查询/返回存在潜在连接泄漏风险"
]
},
"memory:memory/2026-05-07.md:189:209": {
"key": "memory:memory/2026-05-07.md:189:209",
"path": "memory/2026-05-07.md",
"startLine": 189,
"endLine": 209,
"source": "memory",
"snippet": "| 每分钟 | `sync_feishu_feedback_dispatch_p0.sh` | 7仅P0 | P0问题实时分发到群 | | 每天 10:00 | `sync_feishu_feedback_wrapper.sh` | 7全部 | 全量分发到群 | ### 完整数据流 ``` 群消息 → 每1分钟入MySQL → 每1分钟刷新表格 → 每1分钟归纳+分类 → P0实时发群 / 每天10:00全量发群 ``` ### 关键技术细节 - **拆分方式**`sync_feishu_feedback.py` 新增 `--steps` 参数(如 `--steps 1-3`、`--steps 4-6`、`--steps 7` - **分发模式**:新增 `--dispatch-mode` 参数,`p0` 只发P0级`all` 发全部 - **电子表格**`TVivwmzqXiW3YakDUzucFMRenvf`\"内容测试问题反馈\" - **归纳子文档父节点**`RaL6whoYMijyYHkSlWrc7OLLnBy`space_id: 7612229802338045122 - **分发目标群**`oc_4171a2188f2554522a4309f2d7c27753`(「小葵小葵」群) - **分发Bot**xiaokui`/root/.openclaw/credentials/xiaokui` - **新 wrapper 脚本** - `scripts/sync_feishu_feedback_realtime.sh`步骤1-",
"recallCount": 1,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 1,
"maxScore": 1,
"firstRecalledAt": "2026-05-22T02:16:39.747Z",
"lastRecalledAt": "2026-05-22T02:16:39.747Z",
"queryHashes": [
"015553fc9cb1"
],
"recallDays": [
"2026-05-22"
],
"conceptTags": [
"sync-feishu-feedback-wrapper.sh",
"sync-feishu-feedback.py",
"1-3",
"4-6",
"dispatch-mode",
"space-id",
"openclaw/credentials/xiaokui",
"分钟"
]
},
"memory:memory/2026-05-21.md:58:77": {
"key": "memory:memory/2026-05-21.md:58:77",
"path": "memory/2026-05-21.md",
"startLine": 58,
"endLine": 77,
"source": "memory",
"snippet": "- 每天 10:00-10:01 自动清空去重,配合全量分发 2. ✅ crontab 每分钟执行:`* * * * * python3 detect_p0_realtime.py` 3. ✅ 步骤 4-6 不做每分钟恢复(增量改造成本高,日汇总实时性需求弱) ### AI 归纳流程修复 [刘新玉需求] ### 背景 - 5/15 问题描述出现严重退化:问题一变成\"可以在这里Po问题\"(元指令文本),问题二变成\"图片 (1/1)\" - 根因:(1) 关键词模式只能覆盖约 8 类症状,不匹配时退化到首条消息原文 (2) AI 归纳靠心跳触发5/15 当天漏执行 ### 完成事项 1. ✅ 新建 `scripts/ai_summarize_feedback.py` - 读取 `cluster_context_{date}.json`,调用 DeepSeek APIdeepseek-v4-pro生成精炼问题描述 - 保存 `ai_descriptions_{date}.json` → 调用 `--apply-ai` 回写到知识库 - 回写后自动清理 context 文件 2. ✅ crontab 每天 10:05 执行(在 10:00 全量同步之后) 3. ✅ HEARTBEAT.md 移除 AI 归纳任务(已由 crontab 接管) 4. ✅ 扩展 `generate_problem_description()` 关键词覆盖: - 新增:语音识别/判分、内容/命名缺失、后台弹窗残留、网络/VPN、热更/打包/测试包 - 新增:后台",
"recallCount": 1,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 1,
"maxScore": 1,
"firstRecalledAt": "2026-05-25T02:22:57.259Z",
"lastRecalledAt": "2026-05-25T02:22:57.259Z",
"queryHashes": [
"ae62541246a4"
],
"recallDays": [
"2026-05-25"
],
"conceptTags": [
"网络",
"00-10",
"detect-p0-realtime.py",
"4-6",
"5/15",
"1/1",
"scripts/ai-summarize-feedback.py",
"cluster-context"
]
},
"memory:memory/2026-05-21.md:35:64": {
"key": "memory:memory/2026-05-21.md:35:64",
"path": "memory/2026-05-21.md",
"startLine": 35,
"endLine": 64,
"source": "memory",
"snippet": "5. ✅ 未启用步骤 4-6 每分钟执行(理由同刘新玉确认) ### 调度总览(更新后) ``` 每 5 分钟 → 群消息同步入 MySQL 每分钟 → P0 实时检测 + 增量推送 每分钟 → 反馈数据实时导出到表格 每天 10:00 → 全量七步处理 + 全量分发 每天 10:05 → AI 归纳DeepSeek 生成描述 → 回写文档) ``` # 2026-05-21 工作日志 ## P0 实时检测与推送 [刘新玉需求] ### 背景 - 原有两个每分钟 crontab 任务已被注释5/11因为每次全量重跑浪费资源且 P0 会重复推送 - 刘新玉要求做真正的增量 P0 实时分发 ### 完成事项 1. ✅ 新建 `scripts/detect_p0_realtime.py`~200行 - 复用 `sync_feishu_feedback.py` 的聚类逻辑 + `priority_classifier.py` 的优先级判定 - 查询最近 2 小时消息 → 聚类 → 判定 P0 → 去重(簇签名 MD5→ 推送 - 去重状态存在 `tmp/p0_dispatched_state.json`24 小时自动过期 - 每天 10:00-10:01 自动清空去重,配合全量分发 2. ✅ crontab 每分钟执行:`* * * * * python3 detect_p0_realtime.py` 3. ✅ 步骤 4-6 不做每分钟恢复(增量改造成本高,日汇总实时性需求弱) ### AI 归纳流程修复 [刘新玉需求]",
"recallCount": 1,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 1,
"maxScore": 1,
"firstRecalledAt": "2026-05-25T02:22:57.259Z",
"lastRecalledAt": "2026-05-25T02:22:57.259Z",
"queryHashes": [
"ae62541246a4"
],
"recallDays": [
"2026-05-25"
],
"conceptTags": [
"4-6",
"5/11",
"scripts/detect-p0-realtime.py",
"sync-feishu-feedback.py",
"priority-classifier.py",
"tmp/p0-dispatched-state.json",
"00-10",
"detect-p0-realtime.py"
]
},
"memory:memory/2026-05-21.md:1:26": {
"key": "memory:memory/2026-05-21.md:1:26",
"path": "memory/2026-05-21.md",
"startLine": 1,
"endLine": 26,
"source": "memory",
"snippet": "# 2026-05-21 工作日志 ## P0 实时检测与推送 [刘新玉需求] ### 背景 - 原有两个每分钟 crontab 任务已被注释5/11因为每次全量重跑浪费资源且 P0 会重复推送 - 刘新玉要求做真正的增量 P0 实时分发 ### 完成事项 1. ✅ 新建 `scripts/detect_p0_realtime.py`~200行 - 复用 `sync_feishu_feedback.py` 的聚类逻辑 + `priority_classifier.py` 的优先级判定 - 查询最近 2 小时消息 → 聚类 → 判定 P0 → 去重(簇签名 MD5→ 推送 - 去重状态存在 `tmp/p0_dispatched_state.json`24 小时自动过期 - 每天 10:00-10:01 自动清空去重,配合全量分发 2. ✅ crontab 每分钟执行:`* * * * * python3 detect_p0_realtime.py` 3. ✅ 步骤 4-6 不做每分钟恢复(增量改造成本高,日汇总实时性需求弱) ### AI 归纳流程修复 [刘新玉需求] ### 背景 - 5/15 问题描述出现严重退化:问题一变成\"可以在这里Po问题\"(元指令文本),问题二变成\"图片 (1/1)\" - 根因:(1) 关键词模式只能覆盖约 8 类症状,不匹配时退化到首条消息原文 (2) AI 归纳靠心跳触发5/15 当天漏执行 ### 完成事项 1. ✅ 新建 `scripts/ai_summarize_feedback.py`",
"recallCount": 1,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 1,
"maxScore": 1,
"firstRecalledAt": "2026-05-25T02:22:57.259Z",
"lastRecalledAt": "2026-05-25T02:22:57.259Z",
"queryHashes": [
"ae62541246a4"
],
"recallDays": [
"2026-05-25"
],
"conceptTags": [
"5/11",
"scripts/detect-p0-realtime.py",
"sync-feishu-feedback.py",
"priority-classifier.py",
"tmp/p0-dispatched-state.json",
"00-10",
"detect-p0-realtime.py",
"4-6"
]
},
"memory:memory/2026-05-21.md:22:42": {
"key": "memory:memory/2026-05-21.md:22:42",
"path": "memory/2026-05-21.md",
"startLine": 22,
"endLine": 42,
"source": "memory",
"snippet": "- 根因:(1) 关键词模式只能覆盖约 8 类症状,不匹配时退化到首条消息原文 (2) AI 归纳靠心跳触发5/15 当天漏执行 ### 完成事项 1. ✅ 新建 `scripts/ai_summarize_feedback.py` - 读取 `cluster_context_{date}.json`,调用 DeepSeek APIdeepseek-v4-pro生成精炼问题描述 - 保存 `ai_descriptions_{date}.json` → 调用 `--apply-ai` 回写到知识库 - 回写后自动清理 context 文件 2. ✅ crontab 每天 10:05 执行(在 10:00 全量同步之后) 3. ✅ HEARTBEAT.md 移除 AI 归纳任务(已由 crontab 接管) 4. ✅ 扩展 `generate_problem_description()` 关键词覆盖: - 新增:语音识别/判分、内容/命名缺失、后台弹窗残留、网络/VPN、热更/打包/测试包 - 新增:后台加载场景识别 - 5/15 验证:问题一从\"可以在这里Po问题\"→\"语音识别不准确(对话表达,只识别成错误内容)\";问题二从\"图片 (1/1)\"→\"后台加载提示/弹窗未自动消失,持续显示 需确认是否因 VPN/网络代理导致\" 5. ✅ 未启用步骤 4-6 每分钟执行(理由同刘新玉确认) ### 调度总览(更新后) ``` 每 5 分钟 → 群消息同步入 MySQL 每分钟 → P0 实时检测 + 增量推送 每分钟 → 反馈",
"recallCount": 1,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 1,
"maxScore": 1,
"firstRecalledAt": "2026-05-25T02:22:57.259Z",
"lastRecalledAt": "2026-05-25T02:22:57.259Z",
"queryHashes": [
"ae62541246a4"
],
"recallDays": [
"2026-05-25"
],
"conceptTags": [
"网络",
"5/15",
"scripts/ai-summarize-feedback.py",
"cluster-context",
"deepseek-v4-pro",
"ai-descriptions",
"apply-ai",
"heartbeat.md"
]
},
"memory:memory/2026-05-25.md:21:42": {
"key": "memory:memory/2026-05-25.md:21:42",
"path": "memory/2026-05-25.md",
"startLine": 21,
"endLine": 42,
"source": "memory",
"snippet": "- `update_summary_doc_as_children()` 默认 title_prefix 从 `\"\"` 改为 `\"飞书-\"` - `create_child_doc()` 日期提取兼容 `飞书-` / `微信-` 前缀 - `dispatch_summary_to_chat()` 消息标题和链接同步更新 - `get_today_doc_obj_token()`、`--apply-ai` 路径、步骤7分发 的标题格式全部更新 ### 补跑历史数据 - 飞书 5/223条、5/231条AI归纳回写成功 + 自动分发到群聊 - 飞书 5/24当天无飞书群新数据跳过 - 微信 5/2223条、5/2313条、5/2429条AI归纳回写成功 + 自动分发 ### 知识库文档重命名 - 13个飞书历史文档5/6-5/23从 `{date} 问题反馈` 重命名为 `飞书-{date} 用户反馈问题归纳` ## 新增逻辑:飞书/微信文档标题渠道区分 - [刘新玉需求] 飞书文档标题加 `飞书-` 前缀以便与微信区分 - 飞书格式:`飞书-{date} 用户反馈问题归纳` - 微信格式:保持 `微信-{date} 问题反馈`(由 `sync_wechat_feedback.py` 传入 `title_prefix=\"微信-\"` - `update_summary_doc_as_children()` 默认 `title_prefix=\"飞书-\"`,微信调用时显式覆盖为 `\"微信-\"` - `create_child_doc()` 日期提取已兼",
"recallCount": 2,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 2,
"maxScore": 1,
"firstRecalledAt": "2026-05-25T07:11:25.527Z",
"lastRecalledAt": "2026-05-26T03:40:13.634Z",
"queryHashes": [
"1e9d4a024a31",
"442660038a9b"
],
"recallDays": [
"2026-05-25",
"2026-05-26"
],
"conceptTags": [
"update-summary-doc-as-children",
"title-prefix",
"create-child-doc",
"dispatch-summary-to-chat",
"get-today-doc-obj-token",
"apply-ai",
"5/22",
"5/23"
]
},
"memory:memory/2026-05-25.md:38:44": {
"key": "memory:memory/2026-05-25.md:38:44",
"path": "memory/2026-05-25.md",
"startLine": 38,
"endLine": 44,
"source": "memory",
"snippet": "- `update_summary_doc_as_children()` 默认 `title_prefix=\"飞书-\"`,微信调用时显式覆盖为 `\"微信-\"` - `create_child_doc()` 日期提取已兼容两种前缀strip `飞书-` 或 `微信-` 再解析) ## 注意事项 - 今天5/25的反馈数据将在明天 10:00 正常走全流程 - `ai_summarize_feedback.py` 中 `apply_descriptions` 修复后需注意:微信渠道需要 `--date` 参数,飞书渠道 `--date` 可选",
"recallCount": 2,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 2,
"maxScore": 1,
"firstRecalledAt": "2026-05-25T07:11:25.527Z",
"lastRecalledAt": "2026-05-26T03:40:13.634Z",
"queryHashes": [
"1e9d4a024a31",
"442660038a9b"
],
"recallDays": [
"2026-05-25",
"2026-05-26"
],
"conceptTags": [
"update-summary-doc-as-children",
"title-prefix",
"create-child-doc",
"5/25",
"ai-summarize-feedback.py",
"apply-descriptions",
"默认",
"覆盖"
]
},
"memory:memory/2026-05-22.md:129:158": {
"key": "memory:memory/2026-05-22.md:129:158",
"path": "memory/2026-05-22.md",
"startLine": 129,
"endLine": 158,
"source": "memory",
"snippet": "- 步骤2姓氏 + 1个中文字符模式匹配排除内容词白名单文件/资源/游戏/动画/设计等50+词) - 替换为\"相关人员\" ### 修复效果(簇 #7 | 修复前 | 修复后 | |--------|--------| | \"角色江涛的spine动画中眼睛设计应为睁开但实际显示为闭眼。\" | \"Spine动画中角色眼睛呈现闭眼状态与设计不符。\" | ## 刘新玉 - 反馈流程完整概览5/22 12:00 ### 全链路三层架构 ``` 采集层 → 每5分钟(飞书群同步) / 每分钟(微信群导出+P0检测) 汇总层 → 每天 10:00(飞书) 10:02(微信) 聚类+归纳+写入知识库 AI层 → 每天 10:05(飞书) 10:07(微信) DeepSeek生成描述+回写+分发群聊 ``` ### 时间线 | 时间 | 飞书 | 微信 | |------|------|------| | 10:00 | sync_feishu_feedback (占位符,不分发) | — | | 10:02 | — | sync_wechat_feedback (占位符,不分发) | | 10:05 | ai_summarize_feedback (回写+分发) | — | | 10:07 | — | ai_summarize_feedback --channel wechat (回写+分发) | ## 刘新玉 - 微信反馈同步系统搭建5/22 下午) ### 背景 刘新玉要求微信用户反馈流程与飞书一致(收集→整理→归纳→分发),之前微信只有 M",
"recallCount": 2,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 2,
"maxScore": 1,
"firstRecalledAt": "2026-05-25T07:11:25.527Z",
"lastRecalledAt": "2026-05-26T03:40:13.634Z",
"queryHashes": [
"1e9d4a024a31",
"442660038a9b"
],
"recallDays": [
"2026-05-25",
"2026-05-26"
],
"conceptTags": [
"文件/资源/游戏/动画/设计等50",
"5/22",
"sync-feishu-feedback",
"sync-wechat-feedback",
"ai-summarize-feedback",
"步骤",
"姓氏",
"中文"
]
},
"memory:memory/2026-05-27.md:22:32": {
"key": "memory:memory/2026-05-27.md:22:32",
"path": "memory/2026-05-27.md",
"startLine": 22,
"endLine": 32,
"source": "memory",
"snippet": "| 微信 | `--skip-dispatch` → 不分发 | `--apply-ai` → 替换占位符+分发 | 微信依赖 AI 归纳成功才能分发,飞书双重分发(占位符+AI。 ### 5月26日反馈概况 - 飞书17条消息3个问题簇2个有效录音识别率低、飞船音乐不保存 - 微信27条消息14个问题簇4个有效飞船音乐、录音识别、音频无法播放、AI回复无关语句 ### 后续注意 - 删除/修改 `ai_summarize_feedback.py` 后需清理 `__pycache__`,否则缓存版本可能落后于源码",
"recallCount": 1,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 1,
"maxScore": 1,
"firstRecalledAt": "2026-05-27T02:50:23.510Z",
"lastRecalledAt": "2026-05-27T02:50:23.510Z",
"queryHashes": [
"b15d92b2dda8"
],
"recallDays": [
"2026-05-27"
],
"conceptTags": [
"skip-dispatch",
"apply-ai",
"删除/修改",
"ai-summarize-feedback.py",
"skip",
"dispatch",
"不分",
"apply"
]
},
"memory:memory/2026-05-27.md:1:27": {
"key": "memory:memory/2026-05-27.md:1:27",
"path": "memory/2026-05-27.md",
"startLine": 1,
"endLine": 27,
"source": "memory",
"snippet": "# 2026-05-27 工作日志 ## 用户反馈同步故障排查与修复 [刘新玉反馈] ### 问题 5月26日飞书/微信用户反馈定时任务出现回写失败。 ### 根因 1. **Python 缓存过期** — `ai_summarize_feedback.py` 中 `subprocess` 模块导入失败(`NameError: name 'subprocess' is not defined`),实际源码有 `import subprocess`,但 `__pycache__` 中的旧 `.pyc` 未包含此导入 2. **sync_wechat_feedback.py** — 同样因缓存问题导致 `with open(tmp_md)` 写入失败 ### 修复 - 清理了工作区内所有 `__pycache__` 和 `.pyc` 文件 - 重新执行飞书 AI 归纳回写:`sync_feishu_feedback.py --date 2026-05-26 --apply-ai` - 重新执行微信 AI 归纳回写:`sync_wechat_feedback.py --date 2026-05-26 --apply-ai` - 两个渠道均成功回写并分发到「小葵小葵」群 ### 分发架构确认 | 渠道 | 10:00/10:02 Wrapper | 10:05/10:07 AI 归纳 | |------|---------------------|---------------------| | 飞书 | `--dispatch-mode all` → 分发占位符 | `--",
"recallCount": 1,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 1,
"maxScore": 1,
"firstRecalledAt": "2026-05-27T02:50:23.510Z",
"lastRecalledAt": "2026-05-27T02:50:23.510Z",
"queryHashes": [
"b15d92b2dda8"
],
"recallDays": [
"2026-05-27"
],
"conceptTags": [
"5月26日飞书/微信用户反馈定时任务出现回写失败",
"ai-summarize-feedback.py",
"sync-wechat-feedback.py",
"tmp-md",
"sync-feishu-feedback.py",
"apply-ai",
"00/10",
"05/10"
]
},
"memory:memory/2026-04-10.md:20:52": {
"key": "memory:memory/2026-04-10.md:20:52",
"path": "memory/2026-04-10.md",
"startLine": 20,
"endLine": 52,
"source": "memory",
"snippet": "- 图片先下载到工作目录(相对路径),再用 `docs +media-insert` 插入文档 - 去掉 `set -e`,改为手动错误处理避免单条消息失败导致整个脚本退出 - 时间用 ISO 8601 格式存储和传递 ### 验证结果(第一版 → Wiki文档 - 全量同步成功49 条消息 + 5 张图片写入 Wiki 文档 - Wiki文档DfUqddItXoDsnNxPypncbinknxh ## 迭代:改为电子表格 + 腾讯COS **来源:** [李若松] 要求改用表格存储媒体文件上传COS ### 方案 - 脚本改为 Python`scripts/sync_feedback_group.py` - 记录写入飞书电子表格:`E8vFsCmPBhT4SCtNmnJchqeJnJe`sheet_id `7bce8f` - 列:时间 | 反馈人 | 信息类型 | 信息内容(或地址) - 非文本消息(图片/视频/音频/文件下载后上传到腾讯COS - COS桶`static-1317843270`,区域:`ap-beijing` - COS路径结构`vala_llm/user_feedback/{type}/{date}/{filename}` - type: image / video / audio / file - date: YYYY-MM-DD - 访问域名:`https://static.valavala.com/vala_llm/user_feedback/...` - COS凭证已存入 `secrets.md` ### 验证结",
"recallCount": 1,
"dailyCount": 0,
"groundedCount": 0,
"totalScore": 1,
"maxScore": 1,
"firstRecalledAt": "2026-05-27T02:50:23.510Z",
"lastRecalledAt": "2026-05-27T02:50:23.510Z",
"queryHashes": [
"b15d92b2dda8"
],
"recallDays": [
"2026-05-27"
],
"conceptTags": [
"media-insert",
"scripts/sync-feedback-group.py",
"sheet-id",
"图片/视频/音频/文件",
"static-1317843270",
"ap-beijing",
"vala-llm/user-feedback",
"yyyy-mm-dd"
]
}
}
}