基于钉钉的员工 AI 问答助手 · 第二版架构 + 深度规划模块
当前系统已上线能用,但三类问题决定了它"3 个月后是不是还好用"。
一个好用的知识库 bot 由三个因子相乘决定。缺任一项,质量都会被那一项拉下来。
现系统 ≈ 检索一般 × 回答不错 × 闭环很弱 →
所以短期能用,长期会慢慢"变笨"
每层职责单一。红标签 = 必改,绿标签 = 保留不动,金标签 = 最大升级点。
Stream 模式(不变)· 多管理员配置化(不再硬编码 Jocelyn)· 角色感知预留(员工/店长/HR/超管架构留口,前期仅 Jocelyn)
BM25 + 向量 + 重排(替代纯 BM25)· 按条款/章节语义切片(替代 700 字硬切)· 小模型 query 改写(替代手写同义词)· 按部门/地区预过滤 · 高频答案缓存
4 档路由:Haiku(简单事实)/ Sonnet(流程类)/ Opus + [缺位] 自检(敏感)/ 缺位通知(低置信)· 情感三档(紧急/麻烦事/普通)保留 · 敏感问题走审批流(不直接答) · 隐私硬性过滤
员工一键 👍👎(不打字)· Jocelyn 自然语言纠错("第二步应该是 Y"→ 自动生成 override 规则)· 缺位三分类(文档缺失 / 检索失败 / 问题歧义)· 每周自动学习
周报(问答量/命中率/👎 热点/缺位分类)· 月度文档健康度(时效性巡检 / 从没命中 / 矛盾项)· 评估集每日自动回归 · 每周全量备份 · 成本上限 + 降级
以"厨房伙伴:我能请年假吗"为例,走一遍新系统的链路。
这是现系统最弱、重做后最有价值的部分。
| 环节 | 现系统 | 新系统 |
|---|---|---|
| 员工反馈 | 无 | 一键 👍👎 |
| Jocelyn 纠错 | 无(只能改源文档重 ingest) | 钉钉里说一句自然语言 |
| 缺位清单 | 纯列表 | 三分类 + 下周行动建议 |
| 学习机制 | 不自动学 | 👎 + override + 重复追问 每周复盘 |
五个典型场景,展示员工侧的实际对话体验。
管理员侧是这套系统的"驾驶位",关键场景示例。
六项核心深度功能 + 四项运营增强 + 两项架构预留。按流程图方式展开。
系统上线前跑一次:扫描全部 86 份文档 → 倒推所有可能问答 → 逐条打分 → 输出结论文档(Excel + Markdown),Jocelyn 分批审阅。
LLM 基于文档内容设计全新的两层分类树(不看旧分类),自动归档到本地 + 同步钉盘。
三源融合推出知识库"应该覆盖但还没覆盖"的中高频问题,按重要性排序,给 Jocelyn 补文档的优先级清单。
Jocelyn 随手钉钉发文件 → 系统自动完成扫描 / 归类 / 入库 / 更新 QA 清单 / 钉盘同步 / 冲突处理。一条流水线。
两种触发:(A)员工主动索要文件;(B)问题涉敏,系统不直接答。两条都走 Jocelyn 审批。
代码 / 电脑配置 / Claude 记忆 / 知识库文件 / 数据库,全部打包加密,自动上传钉盘,给 Jocelyn 发下载链接。
逐项核对了 Motada 现有代码 + 钉钉开放平台能力 + OpenClaw 2026.4.14 机制。结论:整体可行,但有 1 个硬前置 + 3 类外部依赖,必须先让 Jocelyn 知道。
| 能力 | 工作量 | 所依赖 | 风险 |
|---|---|---|---|
| 钉盘上传 / 下载链接 / 分享过期 | 大 | 钉钉云盘 OpenAPI(需前置 1) | 首次实现;大文件分片 |
| 混合检索(向量 + rerank) | 中 | sqlite-vec + voyage-3-lite + cohere rerank | sqlite-vec Windows 兼容性要先测 |
| 结构化 chunking(按条款切) | 中 | regex + Haiku 标注 | 条款边界识别覆盖率 |
| ActionCard 审批流(员工文件 + 敏感问答) | 中 | 钉钉 IM ActionCard API + sqlite 状态机 | 审批超时处理逻辑 |
| override 表 + 自然语言纠错 | 中 | sqlite + Jocelyn 交互 skill | 纠错指令解析准确度 |
| 全量 QA 倒推 + 评分 | 中 | Opus / Sonnet 批量生成 | 冷启动一次性成本 $50–150 |
| 缺失问题三源融合推理 | 小 | query_log + Opus | 成本约 $20–50 一次 |
| 答案缓存层(语义) | 小 | 向量库 + TTL | 要等向量检索先落地 |
| 多管理员配置化 + 缺位清单三分类 | 小 | config.json 改字段 | 无 |
| 文档重构归类 + 冲突检测 | 中 | Sonnet 分类 + hash + 主题相似度 | 批量操作需分批 + 回滚 |
| 文档时效性巡检 | 小 | 正则 + mtime | "过期"定义要和 Jocelyn 对齐 |
| 错答主动推送更正 | 小 | query_log 反查 | 推送频率不要打扰员工 |
| 对话审计模式 | 小 | query_log 查询 skill | 合规数据保留期 |
| 新员工 onboarding 主动模式 | 中 | 钉钉通讯录变更事件订阅 | 事件订阅需额外权限 |
| 语音提问 | 中 | 阿里云 NLS ASR(海外阻塞时用) | 语音识别准确度 + 粤语 |
| 类别 | 依赖项 | 状态 | 说明 |
|---|---|---|---|
| 钉钉开放平台 | 钉盘读写权限 | 待 Jocelyn 开通 | 硬前置,5 分钟操作 |
| 钉钉开放平台 | 通讯录变更事件订阅 | 待开通 | 仅 onboarding 需要(P2 才用) |
| API · Anthropic | Claude Haiku / Sonnet / Opus | 已配 | ANTHROPIC_API_KEY 已在系统环境变量 |
| API · 向量 | voyage-3-lite embedding | 待申请 | 注册 voyageai.com 拿 key |
| API · 重排 | cohere rerank-multilingual | 待申请 | 注册 cohere.com 拿 key |
| 本地 · Python 库 | sqlite-vec | 待装 + 测 Windows | Windows 兼容性要实测,失败就 fallback qdrant-local |
| 本地 · OCR | Tesseract-OCR | 部分装 | 现系统部分情况静默跳过,要补齐 |
| 本地 · Word COM | Microsoft Word(.doc→.docx) | 已用 | admin-commands 已在跑 |
| 本地 · PDF | poppler (pdf2image) | 已装 | ingest.py 在用 |
P0 = 必做;P1 = 强烈建议;P2 = 有余力再做;架构预留 = 前期不做但代码留口。
| 优先 | 功能 | 现状 |
|---|---|---|
| P0 | 混合检索(BM25 + 向量 + 重排) | 纯 BM25 |
| P0 | 结构化 chunking | 定长 700 字 |
| P0 | 查询改写(小模型)替代同义词表 | 手写 30 条 |
| P0 | 多管理员配置化 | 硬编码 |
| P0 | 答案缓存 | 无 |
| P0 | 钉盘来源链接 | 待实现 |
| P0 | Jocelyn 自然语言纠错 → override 表 | 无 |
| P0 | 员工 👍👎 一键反馈 | 无 |
| P0 | 缺位清单三分类 | 纯列表 |
| P0 | 评估集 + 自动回归 | 无 |
| P0 | 🆕 全量 QA 清单倒推 + 评分(冷启动) | 无 |
| P0 | 🆕 缺失问题主动推理清单 | 无 |
| P0 | 🆕 每周全量备份到钉盘 | 有 backup.py 但有 bug |
| P0 | 🆕 文件接收全链路 + 冲突检测 | 基础版已有 |
| P0 | 🆕 员工文件申请 + 敏感问题审批流 | 无 |
| P1 | 角色/部门/地区预过滤 | 无 |
| P1 | 4 档路由(加 Haiku 分流) | 3 档 |
| P1 | 周报 + 月度文档健康度 | 仅周报 |
| P1 | 成本上限 + 自动降级 | 无 |
| P1 | 🆕 文档重构归类 + 钉盘同步 | 无 |
| P1 | 🆕 文档时效性巡检 | 无 |
| P1 | 🆕 错答主动推送更正 | 无 |
| P1 | 🆕 对话审计模式 | 无 |
| P2 | 🆕 新员工 onboarding 主动模式 | 无 |
| P2 | 语音提问(钉钉语音转文字) | 无 |
| 架构预留 | 多角色分权 | — |
| 架构预留 | 多部门知识库(财务/采购/厨房/店务) | — |
别一次重做全部。第 0 波是两天准备动作(大部分 Jocelyn 自己点几下即可),之后分三波升级,每波都有独立产出,风险递减价值递增。
不会。第 0 波纯前置配置,主流程不碰。第一波只叠加反馈按钮和配置化。第二、三波在测试环境验证过再切,旧系统留作 fallback。
要分两块看:
① 冷启动一次性 $80–200(全量 QA 倒推 + 缺失推理,上限是算力开满跑 Opus;用 Sonnet 可降到 $30–60)。
② 日常运营持平或略降。加向量后每次检索成本 × 1.5,但 Haiku 分流 + 答案缓存能把简单问题降 80%,新增 voyage + cohere 约 $3–8/月,整体月成本 $20–40。
每周全量备份只占钉盘空间,不产生 API 成本。
6 个功能依赖它:备份上传、文档同步、员工文件下载链接、冲突文件删除、重构后归档、时效性巡检标注。没这个权限 6 项全做不了,只能做问答质量升级这一半。所以列为硬前置,5 分钟操作。
按业务重要性 × 预估员工提问频率降序,每周审 100 条,3 个月左右审完;不重要的尾部可以批量 👍 通过。Jocelyn 不是每条都要动脑子改,大部分是"看一眼 OK 通过"。
会,这正是目的。目前是灰度期,重构一次立个更合理的基线。LLM 给的新分类是基于文档内容本身推理的,不是瞎分。Jocelyn 有最终批准权,不满意可以反复调。批准前旧分类不动,批准后一次性迁移 + 钉盘同步。
取决于 Jocelyn 处理速度。可以设置"无人响应 24 小时自动给员工回复:已转人工,预计 X 工作日内答复",避免员工无限等。审批是通过钉钉 ActionCard(聊天里带按钮的卡片),不用走钉钉审批应用——Jocelyn 点一下就处理完。
分两种情况:
① Anthropic Claude:当前 ANTHROPIC_API_KEY 可用。若被封,可切 Azure / AWS Bedrock 上的 Claude(代码 2 行改)。
② Voyage + Cohere:本身就是可选增强,阻塞时降级回纯 BM25(现状水平),不会挂。
整体系统具备"降级而不挂"的能力。
每周全量备份到钉盘(加密)包含了:代码 + 配置 + Claude 记忆 + 知识库文件 + 数据库。新电脑装好 Python + OpenClaw,从钉盘拉最近一份备份解压覆盖,一小时内就能跑。灾备的关键是——钉盘权限必须先开。
不用。新系统的核心是"自然语言就能教 bot"——纠错、审批、补文档、看周报、提需求都在钉钉里完成,不碰代码。
每一步都可回滚。第一波改动都能单独开关;第二、三波上线前会保留旧系统作为 fallback,一条命令切回去。