前言¶
在 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。
典型用法¶
- 管理面:在 Intents 建场景与意图(可 Excel 批量导入),在 Models 配齐各层模型并做连通性测试,在 Services 创建并 Run 服务。
- 调试:在服务管理中使用测试控制台,查看五层 trace;高级版在 Vector lab 做 L2 召回排查。
- 对话路由:服务运行后,主 Agent 可调用
intent_recognize_<service-slug>;其他插件通过 Cordis 调用predict。 - 升级存储:仅在需要 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