DSH(deepseek-harness-java)Java Native Plugin 场景案例 P82:净水器租赁平台 + AI 管家插件。
「water-purifier」是一个净水器租赁场景的演示项目,包含:
- w-app:Spring Boot 应用(端口
18121),提供机型、网点、租赁、统计等 REST 接口和一个可视化管家台页面。 - w-plugin:DSH Java Native Plugin(agent:
purifier-copilot),以 SPI 方式接入 DSH,提供 5 个可被大模型调用的工具。
用户在管家台页面与 AI 对话即可完成机型咨询、租赁下单、租赁单查询、运营问数等操作,AI 通过 DSH 调用插件工具读写业务数据。
| 模块 | 说明 |
|---|---|
| 租赁机型 | 5 款机型:家用基础款 RO400G(押金 ¥199 / 月租 ¥29)、家用大通量 RO600G(¥299 / ¥39)、母婴专款反渗透(¥399 / ¥59)、商用立式 RO800G(¥699 / ¥99)、全屋前置过滤器(¥399 / ¥19) |
| 服务网点 | 3 个网点:城东服务中心(S01)、城西服务中心(S02)、高新区服务中心(S03),含评分与在租量 |
| 租赁 | 租金按月预付;租 12 个月起送 1 次免费深度清洗;24 小时内上门装机;滤芯到期自动上门更换 |
| 租赁单 | 单号 W3001+,状态:已装机 / 服务中 / 已退租;退租凭机器完好押金原路退回 |
| 统计 | 总单量、在租 / 已退租、收入、按机型 / 按网点分布、运营建议 |
| 工具 | 说明 |
|---|---|
model_list |
机型列表(押金 / 月租金 / 说明 / 租赁规则) |
branch_list |
服务网点列表(编号 / 特点 / 评分 / 在租量) |
lease |
租赁下单(客户 / 电话 / 机型 / 租期),先复述要素再执行 |
lease_info |
租赁单查询(单号、状态、滤芯提醒) |
stats |
运营统计(单量 / 收入 / 分布 / 建议) |
cd ~/.dsh/standalone && java -Dspring.profiles.active=standalone -Dserver.port=8090 \
-jar ~/.dsh/skills/dsh-java-plugin-skills/runtime/deepseek-harness-java-app.jarmvn clean package
cd w-app && java -jar target/w-app-1.0.0-SNAPSHOT.jar --server.port=18121cp w-plugin/target/w-plugin-1.0.0-SNAPSHOT.jar ~/.dsh/standalone/plugins/purifier-copilot.jar
curl -X POST http://127.0.0.1:8090/api/harness/plugins/install \
-H 'Content-Type: application/json' \
-d '{"pluginId":"purifier-copilot","displayName":"AI 净水器租赁管家","pluginVersion":"1.0.0","runtimeType":"JAVA_NATIVE","sourcePath":"/Users/<you>/.dsh/standalone/plugins/purifier-copilot.jar","entrypoint":"cn.xiaofuge.w.plugin.WaterPurifierPlugin"}'
curl -X POST http://127.0.0.1:8090/api/harness/plugins/activate \
-H 'Content-Type: application/json' -d '{"pluginId":"purifier-copilot"}'浏览器访问 http://127.0.0.1:18121,点击右侧 AI 面板的快捷按钮或直接对话,例如:
- 「有哪些机型?押金和月租多少?」
- 「我要租一台家用大通量 RO600G 12 个月,城东服务中心装机,冷先生 13800778811」
- 「查一下租赁单 W3001 的状态和滤芯情况」
- 「今天运营情况怎么样?」
python3 purifier_e2e.py依次验证 5 个工具调用(机型 / 网点 / 租赁 / 查询 / 统计)。
| 截图 | 说明 |
|---|---|
![]() |
管家台首页:运营看板 + 租赁机型 + 最新租赁单 |
![]() |
AI 咨询机型与押金月租 |
![]() |
AI 复述确认后下单成功(租满 12 个月送深度清洗) |
![]() |
AI 查询租赁单状态与滤芯提醒 |
![]() |
AI 运营问数与建议 |
water-purifier/
├── pom.xml # 父工程(w-app / w-plugin)
├── w-app/ # Spring Boot 应用(18121)
│ └── src/main/java/cn/xiaofuge/w/app/
│ ├── WaterPurifierApplication.java # 启动类
│ ├── WStore.java # 业务数据中心(内存)
│ ├── WController.java # REST 接口
│ └── AssistantController.java # SSE 代理 → DSH /api/agent/stream
├── w-plugin/ # DSH Java Native Plugin
│ └── src/main/java/cn/xiaofuge/w/plugin/
│ └── WaterPurifierPlugin.java # 5 个工具 + 系统提示词
├── docs/ # 使用说明 + 截图
└── purifier_e2e.py # E2E 验证脚本
- Java Native Plugin:继承
AbstractHarnessPlugin,内部工具继承AbstractTool,以plugin__purifier-copilot__<name>暴露给大模型。 - SPI 注册:
META-INF/services/cn.xiaofuge.deepseek.harness.domain.spi.JavaHarnessPlugin指向cn.xiaofuge.w.plugin.WaterPurifierPlugin。 - SSE 透传:前端
/api/assistant/stream→ DSH/api/agent/stream(agentId=purifier-copilot),流式返回。 - 数值容错:LLM 常传字符串数字(如
"12"),Controller 对months做双格式解析。 - 安全红线:系统提示词约定「先复述要素再下单」「租金按月预付」「退租凭机器完好退押金」等规则。
dsh-java dsh-java-plugin water-purifier rental spring-boot




