83 lines
4.9 KiB
Markdown
83 lines
4.9 KiB
Markdown
# MEMORY.md - 长期记忆
|
||
|
||
本文件存储团队共享的业务知识和工作经验。所有与你交互的同事都会看到这些内容。
|
||
|
||
## 重要提示
|
||
|
||
- **本文件是共享的:** 所有通过飞书与你交互的同事,在每次会话中都会加载此文件
|
||
- **不要存放个人隐私:** 不要在此记录特定同事的个人偏好、私人对话内容
|
||
- **只存放通用业务知识:** 业务规则、数据口径、经验教训、团队共识
|
||
|
||
## 核心规则
|
||
|
||
1. **飞书知识库/文档操作规则**:所有飞书文档读取、编辑、管理操作,统一遵循`lark_wiki_operate_as_bot`技能规范:
|
||
- 永远使用Bot身份执行,绝对不触发任何用户个人授权弹窗
|
||
- 仅支持读取/编辑`/wiki/`开头的知识库文档,不支持读取用户私有个人文档(`/doc/`/`/sheet/`等非wiki开头路径)
|
||
- Bot无权限访问时提示用户将Bot应用添加为目标知识空间成员并授予查看权限
|
||
- 所有文档编辑操作以Bot身份执行,不触发用户授权申请
|
||
|
||
2. **飞书消息发送规则**:所有向个人用户或群组发送飞书消息的操作,统一使用`lark-send-message-as-bot`技能:
|
||
- 给个人发消息使用租户级唯一`user_id`(优先从`vala_users_list.md`对照表获取,避免`open_id`跨应用问题)
|
||
- 给群组发消息使用租户级唯一`chat_id`(格式`oc_xxx`)
|
||
- **永远使用Bot身份执行**,绝对不触发任何用户身份授权申请弹窗
|
||
- 发送前确认目标用户在应用可用范围内,Bot已加入目标群组
|
||
|
||
## 业务知识
|
||
|
||
### 飞书群消息数据库存储方案(2026-04-23更新)
|
||
- 飞书群消息已从电子表格迁移到MySQL数据库 `vala_test.feishu_group_message` 表
|
||
- 支持记录引用回复关系:通过 `quote_message_id` 字段记录被引用消息的 `message_id`
|
||
- 与微信反馈数据库表结构保持一致(参考 `wechat_group_message` 表)
|
||
- 定时任务:每4小时自动同步「内容测试问题反馈」群消息到数据库
|
||
- 查询示例见:`skills/feishu-group-msg-sync/references/query_examples.md`
|
||
|
||
### 用户反馈问题优先级规则(动态判定引擎)
|
||
|
||
**⚠️ 优先级判定以 `skills/feishu-feedback-sync/scripts/priority_classifier.py` 为唯一权威来源。**
|
||
|
||
#### 等级定义(人类参考)
|
||
- **P0**:阻断使用 / 大面积影响 / 严重数据问题,需 2 小时内处理
|
||
- **P1**:核心流程问题,影响较大,3 天内修复
|
||
- **P2**:一般问题或体验问题,当周排期
|
||
- **P3**:建议/优化项,低影响,不单独排期
|
||
|
||
#### 判定机制(由 priority_classifier.py 执行)
|
||
1. **基础优先级** — 基于 ~20 条关键词正则匹配,覆盖崩溃/功能异常/体验瑕疵/细节优化四档
|
||
2. **频率动态调整** — 必现/高概率 → 升级;低概率/偶现 → 降级(最多一级)
|
||
3. **范围动态调整** — 影响全部用户 → 升级;极少数用户 → 降级(最多一级)
|
||
4. **最终优先级** — 基础优先级 ± 频率调整 ± 范围调整,夹紧到 P0-P3 范围
|
||
|
||
**不要在 MEMORY.md 中维护静态分类映射表,所有规则变更直接修改 priority_classifier.py。**
|
||
|
||
## 经验教训
|
||
|
||
### 微信反馈全链路(2026-05-22 刘新玉确认)
|
||
微信用户反馈与飞书使用完全一致的采集→整理→归纳→分发流程,复用相同代码仅替换数据源和文档目标。
|
||
|
||
**crontab 全貌:**
|
||
| 频率 | 飞书 | 微信 |
|
||
|------|------|------|
|
||
| 每分钟 | `run_export_lark_feedback.sh` → 表格导出 | `sync_wechat_feedback_minutely.sh` → 表格同步 |
|
||
| 每分钟 | `detect_p0_realtime.py` → P0 实时推送 | `detect_p0_wechat.py` → P0 实时推送 |
|
||
| 每5分钟 | `run_lark_group_sync.sh` → MySQL 入库 | N/A(外部直接写库) |
|
||
| 10:00/10:02 | `sync_feishu_feedback_wrapper.sh` → 聚类+占位符 | `sync_wechat_feedback_wrapper.sh` → 聚类+占位符 |
|
||
| 10:05/10:07 | `ai_summarize_feedback.py` → DeepSeek+回写+分发 | `ai_summarize_feedback.py --channel wechat` → DeepSeek+回写+分发 |
|
||
|
||
**关键文件:**
|
||
- `scripts/sync_wechat_feedback.py` — 微信同步(monkey-patch 飞书常量 + 自定义 fetch_wechat_data)
|
||
- `scripts/detect_p0_wechat.py` — 微信 P0 实时检测
|
||
- `scripts/sync_wechat_feedback_minutely.sh` — 分钟级表格同步
|
||
- `scripts/ai_summarize_feedback.py` — 已扩展 `--channel wechat` 支持
|
||
- `sync_feishu_feedback.py` — `update_summary_doc_as_children` 新增 `title_prefix` 参数
|
||
|
||
**注意:**
|
||
- 微信数据映射:`svr_msg_id→message_id`, `refer_msg_svrid→quote_message_id`
|
||
- AI 描述索引对齐:`generate_summary` 跳过单消息簇后需用 `index_mapping` 修正占位符编号
|
||
- `--apply-ai` 重建聚类时需保留原始 `message_id`,否则空串导致 Union-Find 递归死循环
|
||
|
||
(在此记录工作中总结的经验教训,供后续参考)
|
||
|
||
---
|
||
|
||
此文件由数字员工在工作过程中持续维护和更新。敏感信息和权限相关内容请维护在 `USER.md` 中。
|