ai_member_xiaokui/memory/2026-05-22.md
2026-05-23 08:10:01 +08:00

202 lines
11 KiB
Markdown
Raw Permalink 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-22 工作日志
## 刘新玉 - 反馈调度链路优化
### AI 归纳质量修复
- **DeepSeek 返回空根因**`max_tokens: 256` 被 v4-pro 推理reasoning全部消耗实际输出 token=0。修复`max_tokens` 改为 `1024`
- **空描述回退**:在 `ai_summarize_feedback.py``generate_descriptions()` 中新增 `generate_fallback_description()`AI 返回空时回退到关键词规则生成import `sync_feishu_feedback``extract_location_elements` + `generate_problem_description`
- **修复后效果**4 个簇全部 AI 生成,质量对比规则版提升显著(见下方对照表)
### 2026-05-21 数据修复后的效果对照
| 簇 | 规则版10:00 群聊) | AI 版(修复后) |
|----|---------------------|----------------|
| #1 (27条) | "在关卡4-4组件数据丢失" | "U13-4的听力选择题型缺少重点句配置" |
| #2 (9条) | "媒体文件: a8c55e4a3670.png" | "项目中音频文件se_Spaceship_TV_Food存在ogg和mp3格式重名" |
| #3 (4条) | "如果一定要删除一个的话" | "游戏音效存在ogg和mp3两个文件实际播放调用mp3" |
| #4 (2条) | "图片 (1/1)" | "无明确问题" |
### 新调度流程(明天 5/23 生效)
```
10:00 → sync(步骤1-6) + 保存 context.json + 生成占位符文档 ❌不分发
10:05 → DeepSeek 归纳 → 回写文档 → 📨分发到小葵小葵群
```
### "今日问题拆解"逻辑梳理
刘新玉查看了文档效果,分析了三个关键生成逻辑:
1. **聚类 (sort_threads)**Union-Find 算法,直接引用+推断引用。当前问题:簇#1 27条消息多个不同话题被合并
2. **结论提取 (extract_conclusion)**:关键词匹配("已修复"→已修复,"设计如此"→非问题等)。当前问题:簇#1 多个子问题被一个结论覆盖
3. **发言人标记**:🚩 标记首条消息发送者,✅ 标记末条消息发送者。多子问题长对话时标记不准
### 已知待优化问题
1.#1 话题混杂U13知识点 + 音频跟读 + Spine bug
2.#2#3 本质是同一问题ogg/mp3重名被拆成两个簇
3. 结论提取用关键词导致"设计如此"覆盖了不同子问题的结论
4. 刘新玉尚未给出具体优化方向
### 修改的文件
- `/root/.openclaw/workspace-xiaokui/scripts/ai_summarize_feedback.py` — max_tokens 256→1024新增 generate_fallback_descriptionimport sync_feishu_feedback 用于回退
- `/root/.openclaw/workspace-xiaokui/scripts/sync_feishu_feedback_wrapper.sh` — 10:00 任务改为 --ai-placeholders --skip-dispatch
- `/root/.openclaw/workspace-xiaokui/skills/feishu-feedback-sync/scripts/sync_feishu_feedback.py` — --apply-ai 回写成功后新增 dispatch_summary_to_chat 分发
# 2026-05-22 工作日志
## 刘新玉 - 反馈调度链路优化
### AI 归纳质量修复
- **DeepSeek 返回空根因**`max_tokens: 256` 被 v4-pro 推理reasoning全部消耗实际输出 token=0。修复`max_tokens` 改为 `1024`
- **空描述回退**:在 `ai_summarize_feedback.py``generate_descriptions()` 中新增 `generate_fallback_description()`AI 返回空时回退到关键词规则生成import `sync_feishu_feedback``extract_location_elements` + `generate_problem_description`
- **修复后效果**4 个簇全部 AI 生成,质量对比规则版提升显著(见下方对照表)
### 2026-05-21 数据修复后的效果对照
| 簇 | 规则版10:00 群聊) | AI 版(修复后) |
|----|---------------------|----------------|
| #1 (27条) | "在关卡4-4组件数据丢失" | "U13-4的听力选择题型缺少重点句配置" |
| #2 (9条) | "媒体文件: a8c55e4a3670.png" | "项目中音频文件se_Spaceship_TV_Food存在ogg和mp3格式重名" |
| #3 (4条) | "如果一定要删除一个的话" | "游戏音效存在ogg和mp3两个文件实际播放调用mp3" |
| #4 (2条) | "图片 (1/1)" | "无明确问题" |
### 新调度流程(明天 5/23 生效)
```
10:00 → sync(步骤1-6) + 保存 context.json + 生成占位符文档 ❌不分发
10:05 → DeepSeek 归纳 → 回写文档 → 📨分发到小葵小葵群
```
### "今日问题拆解"逻辑梳理
刘新玉查看了文档效果,分析了三个关键生成逻辑:
1. **聚类 (sort_threads)**Union-Find 算法,直接引用+推断引用。当前问题:簇#1 27条消息多个不同话题被合并
2. **结论提取 (extract_conclusion)**:关键词匹配("已修复"→已修复,"设计如此"→非问题等)。当前问题:簇#1 多个子问题被一个结论覆盖
3. **发言人标记**:🚩 标记首条消息发送者,✅ 标记末条消息发送者。多子问题长对话时标记不准
### 已知待优化问题
1.#1 话题混杂U13知识点 + 音频跟读 + Spine bug
2.#2#3 本质是同一问题ogg/mp3重名被拆成两个簇
3. 结论提取用关键词导致"设计如此"覆盖了不同子问题的结论
4. 刘新玉尚未给出具体优化方向
### 修改的文件
- `/root/.openclaw/workspace-xiaokui/scripts/ai_summarize_feedback.py` — max_tokens 256→1024新增 generate_fallback_descriptionimport sync_feishu_feedback 用于回退
- `/root/.openclaw/workspace-xiaokui/scripts/sync_feishu_feedback_wrapper.sh` — 10:00 任务改为 --ai-placeholders --skip-dispatch
- `/root/.openclaw/workspace-xiaokui/skills/feishu-feedback-sync/scripts/sync_feishu_feedback.py` — --apply-ai 回写成功后新增 dispatch_summary_to_chat 分发
## 刘新玉 - 聚类/结论/发言人三项优化5/22 上午)
### 聚类优化
- **内容相似度校验**`infer_missing_references` 策略2同发送者和策略3最近不同发送者加入 `content_similarity()` 校验,低于 `SIMILARITY_FLOOR=0.08` 不建立推断引用
- **超大簇拆分**:新增 `split_oversized_clusters()`,对超过 `MAX_CLUSTER_MSGS=15` 条的簇按相邻消息内容相似度找边界拆分
- **相似度算法**中文2字以上词 + 英文3字以上词的 Jaccard 系数,过滤停用词(收到/好的/明白等)
- **拆分层数限制**最多拆3次每段至少3条消息以 sender 切换 + 相似度 < 0.05 为边界
### 结论提取优化
- `extract_conclusion` >8 条消息的簇改为聚焦后 30% 消息至少3条避免前面无关结论污染
### 发言人标记优化
- `summarize_cluster` 新增 `is_topic_initiator()` 检测函数,识别话题切换点并用 📌 标记多话题发起者
- 判定逻辑:非首发言人、非简单回复(屏蔽"好的/收到/OK"等)、发送者切换、含问题特征关键词
### 2026-05-21 回归验证结果
| 指标 | 优化前 | 优化后 |
|------|--------|--------|
| 簇数 | 4 | 7 |
| 最大簇 | 27条 | 12条 |
| ogg/mp3 问题 | 拆成2个簇 | 合并为1个簇 ✅ |
| Spine bug | 混在U13里丢失 | 独立为簇 #7 ✅ |
| U13知识点 | 和音频/Spline混 | 独立为簇 #2 + #4 ✅ |
### 新增常量/函数
- `SIMILARITY_FLOOR = 0.08`、`MAX_CLUSTER_MSGS = 15`
- `content_similarity(text1, text2)`、`split_oversized_clusters(clusters_dict)`、`is_topic_initiator(prev_name, name, text)`
- 修改:`infer_missing_references()`、`extract_conclusion()`、`summarize_cluster()`、`sort_threads()`
## 刘新玉 - 分发文档链接修复5/22 11:20
### 问题
分发到小葵小葵群的文档链接硬编码为总文档 `RaL6whoYMijyYHkSlWrc7OLLnBy`,而非当天子文档
### 修复
- `dispatch_summary_to_chat()` 新增 `doc_url` 参数
- `--apply-ai` 流程:从 `list_child_nodes()` 返回的 `nodes[title]["node_token"]` 构造链接
- `main()` 分发循环:同上,对每个 day 查 `list_child_nodes()` 获取对应 node_token
- 链接格式:`https://makee-interactive.feishu.cn/wiki/{node_token}`
## 刘新玉 - AI 描述人名脱敏5/22 11:30
### 问题
问题描述中包含员工姓名"江涛"
### 修复(两层防护)
1. **System Prompt** 新增规则6严禁出现员工姓名用"某角色/某员工"替代
2. **`strip_names(description, cluster_data)` 后处理**
- 步骤1从 cluster 提取发送者姓名,精确替换
- 步骤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 下午)
### 背景
刘新玉要求微信用户反馈流程与飞书一致(收集→整理→归纳→分发),之前微信只有 MySQL 入库和每分钟同步到表格。
### 新增文件
- `scripts/sync_wechat_feedback.py` — 微信同步脚本,复用飞书所有逻辑(聚类/优先级/归纳/分发),仅替换数据源和文档目标
- `scripts/sync_wechat_feedback_wrapper.sh` — crontab wrapper
### 改动文件
- `skills/feishu-feedback-sync/scripts/sync_feishu_feedback.py``update_summary_doc_as_children()` 新增 `title_prefix` 参数,支持 "微信-" 前缀
- `scripts/ai_summarize_feedback.py` — 新增 `--channel wechat` 参数,支持微信专属上下文路径和回写脚本
### 微信数据映射
```
wechat_group_message → sync_wechat_feedback.fetch_wechat_data() → 统一元组格式
svr_msg_id → message_id (r[0])
sender_name → sender_name (r[1])
msg_type → msg_type (r[2])
content → content (r[3])
media_url → media_url (r[4])
refer_msg_svrid → quote_message_id (r[5])
msg_time → msg_time (r[6])
msg_timestamp → msg_timestamp (r[7])
```
### 知识库结构
| 文档 | node_token | 父文档 | 用途 |
|------|-----------|--------|------|
| 飞书问题反馈 | FOxgwkVtLiTl3ZkrkIXcT8T2nJg | SB3dwaSshie7ifklKlLc2GswnqX | 飞书原始数据 |
| 微信问题反馈 | R4HRwNU42iwH1Hk3OMCcB6i7n1u | SB3dwa... | 微信原始数据 |
| 飞书用户反馈问题汇总 | RaL6whoYMijyYHkSlWrc7OLLnBy | SB3dwa... | 飞书每日归纳 |
| 微信用户反馈问题汇总 | XhtGwjitFizzCNkw8Xzc2IXsnuf | SB3dwa... | 微信每日归纳 |
### 飞书表格
| 表格 | sheet token | 用途 |
|------|-------------|------|
| 内容测试问题反馈 | AHtnsehwShUVyDtjasSciIvgn7b | 飞书导出 |
| 用户救火群 | RUXfsytPzhJO5kt2uwCcvdIgnLg | 微信导出 |
### WeChat 2026-05-21 测试结果
- 62 条消息 → 28 个初始簇 → 10 个有效簇≥2条
- P0: 3 个(阅读问题、发音问题)— 自动判定正常
- AI 归纳 dry-run 通过,占位符替换逻辑正确
### 待确认
- 微信 crontab 条目是否已添加 ✅ 全部就位
- 微信父文档 `XhtGwjitFizzCNkw8Xzc2IXsnuf` 下子文档创建权限 ✅ 已验证
- 飞书总文档名称是否需要更新为 "飞书用户反馈问题汇总"(当前显示为 "用户反馈问题汇总"