Skip to content

cqai-dsh-plugin-xiaobao

Verified

cqai-dsh-plugin-xiaobao · v0.1.1 · MIT · Web UI

e销宝:面向小团队、服务 C 端客户的实时销售话术 Copilot。

Install

dsh plugin add cqai-dsh-plugin-xiaobao

Confirm the layer applied with dsh --profile default --dump-config — see the install guide.

Source

Tags

Creators

Readme

e销宝

面向小团队、服务 C 端客户的实时销售话术 Copilot,作为独立插件安装在「易宝工坊」(DeepSeek Harness)上。

销售人员在通话中打开右侧边栏的「e销宝」面板:客户说完一句,面板给出一条主建议、一条备用说法、一个建议追问、风险提示和来源。销售保留最终判断和表达控制权——e销宝不替销售发言。

客户语音(约 4 秒分段)
  → 平台内置本地 SenseVoice 识别
  → 代码:意图打分 + 混合检索(只读已审核且在生效期内的内容)
  → 代码:转人工规则 + 重复建议抑制
  → DeepSeek:在已检索证据范围内组织结构化建议
  → 代码:结构校验 + 来源白名单 + 禁止承诺拦截
  → 面板展示给销售
  → 销售采纳 / 修改 / 跳过 → 反馈进入复盘

它是什么,不是什么

是:给真人销售用的实时辅助工具。文字输入和语音两条路径都能产生建议;知识库有审核、版本、生效期与回滚;全链路可审计。

不是:不自动替销售与客户通话;不发送短信、邮件、微信或私信;不自动外呼;不自动改价、打折、退款或改合同;不把模型推断写成客户事实。插件没有注册任何发送、外呼、改价或退款类工具,这是代码层的边界,不是提示词里的约定。

核心设计:哪些交给代码,哪些交给模型

这个划分是整个插件的地基:

由代码确定性地做 由模型做
检索哪些话术卡(关键词 + 字符 n-gram + 元数据,RRF 融合) 把已检索到的证据组织成一句销售能直接说出口的话
内容门禁(只有 approved 且在生效期内可检索) —
八条人工接管判定 —
禁止承诺与未授权数字的拦截 —
来源白名单校验(模型引用未提供的依据即整条丢弃) —
重复建议抑制、事件幂等、审计 —

理由很直接:模型输出不可复现、不可解释,也不该被信任去决定「能引用什么」。凡能确定性计算的都不给模型。

模型输出要穿过三道闸门才算数:

  1. 输入受限——只给当前稳定句、最近数轮、意图候选、已审核事实、Top-3 话术卡、禁止承诺与转人工规则。
  2. 结构校验 + 来源白名单——source_cards 只能引用本次候选,policy_refs 只能引用本次已审核事实。越界即判为模型编造依据,整条丢弃。
  3. 展示前拦截——禁止承诺词与未经事实库授权的数字(价格、折扣、百分比)被拦下。

任何一步失败都降级为模板建议(直接用排序第一张已审核卡片的话术)并在界面上标注「已降级」。降级不是错误路径:模型慢或坏,销售仍然拿得到有依据的话术。

功能

右侧边栏 · 实时陪练 会话头与服务状态(音频 / ASR / 推荐三者独立报告)→ 实时转写(临时与稳定区分、客户/销售标签)→ 当前识别(意图、置信度、「需确认」)→ 推荐回应(复制 / 已采用 / 不适用 / 效果不佳)→ 备用说法 → 建议追问 → 风险提示 → 来源 → 暂停 / 结束 / 请求人工协助。

插件配置页 · 知识管理 七个分区:话术库、审核队列、产品与政策、版本与健康、试运行、连接与隐私。发布需权限检查并写审计;试运行是只读沙盘,不写会话也不写审计。

左侧工作台:同一套知识管理的全宽视图,用于批量审核。

五个 Agent 工具 search_phrase_cards、get_product_policy、get_customer_context、save_coaching_feedback、request_human_handoff。

七个运行时技能 b2c-sales-context、b2c-need-discovery、product-recommendation、realtime-sales-coach、objection-handling、human-handoff、conversation-debrief。

安装

见 docs/install.zh.md。简版:把本目录绝对路径填入「插件管理 → 添加插件」,重启应用,右侧边栏即出现「e销宝」。

数据位置

$DSH_HOME/xiaobao/knowledge/(默认 ~/.dsh/xiaobao/knowledge/):

文件 内容
phrase-cards.json 话术卡库
facts.json 产品事实与政策库(价格与产品能力的唯一权威来源)
audit.jsonl 追加式审计:内容变更与推荐反馈

首次启动会把随包的种子知识(30 张话术卡 / 12 条事实)注入空库。种子内容只是让插件开箱可用,不是可信的业务事实——请按自己的产品在配置页替换后再审核发布。

开发

node scripts/build-seed.mjs      # 重新生成种子知识
node scripts/build-fixtures.mjs  # 重新生成评测夹具
node scripts/eval.mjs            # 离线评测 → docs/eval-report.md
node --test-isolation=none --test "test/*.test.mjs"   # 单元测试
node scripts/selfcheck.mjs       # 交付前自检(含全部测试与评测)

测试必须带 --test-isolation=none:默认隔离模式会为每个测试文件派生子进程,而 DSH 的 Windows 沙箱禁止该操作(EPERM)。同进程运行绕过了限制,也符合这些测试无副作用的设计。

零运行时依赖:dependencies 为空,只用 Node 内建模块与平台注入的服务。因此本插件不需要 npm install 即可加载。

lib/client.js 是手写的模块工厂(不是构建产物)。改它的时候注意两件事:工厂形状必须是 window.__ModuleLoader__.load({id, factory})(形状不对时平台不会报错,插件只是永远不出现),以及它只能同步 require 平台种子表里的模块(react、react/jsx-runtime)。两者都有测试守着。

已知限制

诚实列出当前的不足,避免误判能力边界:

  • 语音是分段准实时,不是流式。 平台的语音服务接受的是一次完整的 16 kHz 单声道 WAV,返回整段文本,没有流式回调。插件按约 4 秒切段,因此每段有 1–2 秒的识别延迟,达不到开发计划里「稳定句到意图结果 ≤1.5s」的流式指标。
  • 说话人是人工标签。 平台不提供说话人分离,客户/销售由销售手动切换,可能标错。
  • 检索是进程内 JSON + 字符 n-gram,不是 pgvector 或 BM25 服务。知识库规模到数千张卡片前都够用,更大规模需要换实现。
  • 复盘不写回知识库。 复盘产出的候选只进审核队列,需要人工审核后才可能成为话术卡。
  • 评测存在过拟合。 评测样本与种子话术卡来自同一份夹具,口语化变体在开发中被补进卡片示例,因此指标是 100%。这说明链路和门禁有效,不说明真实通话上的泛化能力。用留出集复测的方法见 docs/eval-report.md。

许可

MIT。见 LICENSE。