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 归纳 → 回写文档 → 📨分发到小葵小葵群
"今日问题拆解"逻辑梳理
刘新玉查看了文档效果,分析了三个关键生成逻辑:
- 聚类 (sort_threads):Union-Find 算法,直接引用+推断引用。当前问题:簇#1 27条消息多个不同话题被合并
- 结论提取 (extract_conclusion):关键词匹配("已修复"→已修复,"设计如此"→非问题等)。当前问题:簇#1 多个子问题被一个结论覆盖
- 发言人标记:🚩 标记首条消息发送者,✅ 标记末条消息发送者。多子问题长对话时标记不准
已知待优化问题
- 簇 #1 话题混杂(U13知识点 + 音频跟读 + Spine bug)
- 簇 #2 和 #3 本质是同一问题(ogg/mp3重名),被拆成两个簇
- 结论提取用关键词导致"设计如此"覆盖了不同子问题的结论
- 刘新玉尚未给出具体优化方向
修改的文件
/root/.openclaw/workspace-xiaokui/scripts/ai_summarize_feedback.py — max_tokens 256→1024,新增 generate_fallback_description,import 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 归纳 → 回写文档 → 📨分发到小葵小葵群
"今日问题拆解"逻辑梳理
刘新玉查看了文档效果,分析了三个关键生成逻辑:
- 聚类 (sort_threads):Union-Find 算法,直接引用+推断引用。当前问题:簇#1 27条消息多个不同话题被合并
- 结论提取 (extract_conclusion):关键词匹配("已修复"→已修复,"设计如此"→非问题等)。当前问题:簇#1 多个子问题被一个结论覆盖
- 发言人标记:🚩 标记首条消息发送者,✅ 标记末条消息发送者。多子问题长对话时标记不准
已知待优化问题
- 簇 #1 话题混杂(U13知识点 + 音频跟读 + Spine bug)
- 簇 #2 和 #3 本质是同一问题(ogg/mp3重名),被拆成两个簇
- 结论提取用关键词导致"设计如此"覆盖了不同子问题的结论
- 刘新玉尚未给出具体优化方向
修改的文件
/root/.openclaw/workspace-xiaokui/scripts/ai_summarize_feedback.py — max_tokens 256→1024,新增 generate_fallback_description,import 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)
问题
问题描述中包含员工姓名"江涛"
修复(两层防护)
- System Prompt 新增规则6:严禁出现员工姓名,用"某角色/某员工"替代
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 下子文档创建权限 ✅ 已验证
- 飞书总文档名称是否需要更新为 "飞书用户反馈问题汇总"(当前显示为 "用户反馈问题汇总")