dsh-intent-recognition:DSH 五层意图识别与场景管理

前言

在 DSH 里做智能体路由时,常见做法是把用户话术交给大模型「猜意图」,或手写少量 if/else。前者成本高、边界不稳;后者一多场景就难维护,也缺少可观测的召回与分层兜底。DeepSeek Harness 社区插件 dsh-intent-recognition(维护者 lilixinsniper)把意图识别做成可配置的流水线:规则、向量检索、概率打分、微调仲裁、LLM 结构化兜底,并附带场景/意图管理界面与可对外提供的 API 服务,便于在 Agent 工具或 Cordis 里直接消费。

这是什么

dsh-intent-recognition 是 DSH 插件(npm 包名 dsh-intent-recognition,当前资料中版本 0.7.1,MIT 许可证)。它提供:

  • 控制面:侧边栏 Intent Recognition 管理面板(与 Plugins 同级,可在 More 菜单固定/取消固定),以及 Settings → Intent Recognition(同一套 UI,不参与对话)。
  • 数据面:按场景运行的识别服务,可通过 Agent 工具 或 Cordis 服务 调用。

默认 基础版(Basic) 使用本地 JSON 文件存储,零数据库依赖;需要 L2 向量检索时,可在页面升级到 高级版(Advanced)(PostgreSQL + pgvector),已有场景/意图/模型/服务会自动迁移。

五层识别流水线

用户 query 依次经过下列层级;每一层可按服务单独关闭,关闭的层会被完全跳过:

User query
   │
   ▼
┌─ L1 rule hard filter ───────── greeting / exit / command / keyword strong match
│      │ miss
├─ L2 vector retrieval ───────── pgvector cosine search → Top5–Top10 候选
│      │
├─ L3 Jev probabilistic scoring ─ 高置信直接路由;中 → L4;低 → L5
│      │
├─ L4 fine-tuned model ───────── BERT / 小 LLM 仲裁近义意图与边界
│      │
└─ L5 LLM structured fallback ── 多意图 / 跨轮上下文 / 槽位 / 开放问,JSON 输出

基础版开箱可用时,L2 在测试控制台中会因版本原因自动跳过并给出说明;向量能力在升级到高级版后启用。

核心功能(资料已列能力)

  • 零配置起步:安装后即可在页面建场景、意图、模型与服务;高级版在 Database 页保存 PostgreSQL 连接后升级。
  • 意图管理:按场景的意图目录(名称/code/描述/示例/关键词/黑白名单/路由配置),Excel 导入(合并或替换)与导出;高级版支持一键重建 embedding。
  • 模型配置:Embedding、Jev、微调模型、LLM 均在页面配置(OpenAI 兼容或普通 http JSON 端点),带连通性测试。
  • 服务管理:按场景的 API 服务,各层独立开关与参数;服务可运行/停止/删除/复制;每服务 API Key;内置测试控制台与调用日志。
  • Vector lab(高级版):L2 召回调试(召回测试、分块浏览、场景覆盖与重建)。
  • 路由执行:每意图可配置路由(无 / DSH workflow / subagent / Cordis service),服务级 route_mode(auto / suggest)。
  • Agent 集成:运行中的服务自动注册/撤销工具 intent_recognize_<service-slug>;可选向 system prompt 贡献可用意图服务列表。
  • 双通道消费:
通道 说明 适用
Agent tool(推荐) 高置信命中在工具内执行路由 DSH 主 Agent 对用户轮次路由
Cordis service ctx.intentRecognition.predict(service, query, context) 其他插件程序化集成

管理页 Tab 顺序:Intents → Models → Services → Vector(高级)→ Database。首个服务创建前,页顶有三步引导条。

安装与启用

前置条件(README 原文):Node.js ≥ 20;已安装 DSH(npm i -g @deepseek-ai/dsh)。基础版不需要数据库。

方式 A:DSH 插件市场(推荐)

侧边栏 Plugins Marketplace → 搜索 dsh-intent-recognition → Install;按提示刷新页面后,侧边栏会出现 Intent Recognition 入口。

方式 B:npm / 本地包

# 1. 安装插件
dsh plugin --profile web add dsh-intent-recognition
# 或本地目录 / tarball
dsh plugin --profile web add ./dsh-intent-recognition
dsh plugin --profile web add ./dsh-intent-recognition-0.7.1.tgz

# 2. 重启 dsh web(桌面端:重启应用或 Ctrl+R 刷新)
# 3. 点击左侧 Intent Recognition(或 Settings → Intent Recognition)
# 4. 按 Tab 顺序配置:Intents → Models → Services
# 5. 需要向量检索:Database Tab 保存 PostgreSQL 连接以升级

包声明 dsh.bundle.patch,dsh plugin add 会自动挂载到 profile bundle,无需手改 cordis.patch.yml。

桌面端提示:安装或升级后若侧边栏无入口,先刷新页面;插件详情页应显示 running。若 Settings → Intent Recognition 也无法渲染,说明客户端 bundle 未加载成功。

插件在 package.json 中声明 DSH 引擎范围:dsh >=0.1.0-rc.6 <0.3.0。

典型用法

  1. 管理面:在 Intents 建场景与意图(可 Excel 批量导入),在 Models 配齐各层模型并做连通性测试,在 Services 创建并 Run 服务。
  2. 调试:在服务管理中使用测试控制台,查看五层 trace;高级版在 Vector lab 做 L2 召回排查。
  3. 对话路由:服务运行后,主 Agent 可调用 intent_recognize_<service-slug>;其他插件通过 Cordis 调用 predict。
  4. 升级存储:仅在需要 L2 时于 Database Tab 升级;可随时切回基础版,本地文件不被破坏(README 说明 ids 与 API keys 保留)。

适用场景与注意

适合:需要在 DSH 内做可运维的意图库、分层识别、可分发 API,并希望与 workflow / subagent / Cordis 路由打通的团队。

注意:

  • 插件以当前 DSH 进程权限运行;安装前请阅读 GitHub 源码 与 MIT 许可证,确认能力与合规要求。
  • 社区目录 skillhub.cn 插件页 为独立生态站点,与 DeepSeek / 幻方无官方从属关系;安装命令以 README 为准,勿自行拼接未文档化的 github:owner/repo 形式。
  • 高级版依赖 PostgreSQL + pgvector;Embedding 与各层模型需自行准备兼容端点。

结尾

dsh-intent-recognition 把意图识别从「单点 Prompt」拆成可开关的五层流水线,并用同一套 UI 管理场景、模型与服务,默认本地文件即可跑通,需要向量时再升级数据库。进一步了解可访问社区目录页与仓库:

  • 目录页:https://www.skillhub.cn/plugins/lilixinsniper/dsh-intent-recognition
  • GitHub:https://github.com/lilixinsniper/dsh-intent-recognition
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜