前言¶
在 DeepSeek Harness(DSH)里跑智能体或对话时,重复问题仍会反复调用模型,结构化输出也可能在 schema 不合规时才暴露问题。社区插件 dsh-infer-kit(维护者 trid11111-arch,分类:模型推理)面向同一套 DSH 路由下的任意模型提供商,提供三件与具体厂商无关的工具:语义缓存、廉价草稿再 expensive 验证的级联,以及按 JSON Schema 校验后再展示结果。思路部分借鉴 DeepSeek 开源推理引擎 DeepInfer(Apache 2.0)。DSH 生态强调「一切皆插件」;目录站点 skillhub.cn 上的条目与 DeepSeek / 幻方无官方从属关系,安装前仍建议自行查看源码与 MIT 许可证。
这是什么¶
dsh-infer-kit 是 DeepSeek Harness 的推理工具包,简介为:Inference toolkit for DeepSeek Harness — semantic cache, draft cascade, and JSON validation。安装并重启后,任意模型均可调用下列三个工具:
| 工具 | 作用 |
|---|---|
infer_cache_lookup |
对答案与工具结果做语义缓存;Jaccard 相似度 ≥ 0.62 视为命中。保留期:agent 3 天,chatbot 7 天。 |
infer_draft_cascade |
廉价草稿 → 高成本验证的级联(客户端侧类似 speculative decoding);任意 OpenAI 兼容端点均可。 |
infer_json_validate |
在展示结构化输出前,按 JSON Schema 校验;支持 type、properties、required、additionalProperties、items、enum、min/max、minLength/maxLength 等。 |
宿主侧 index.js 仅使用 Node 内置模块,无 @deepseek-ai/* 导入;客户端 client.js 为 React 状态按钮,侧边栏底部注册 InferKit,无需单独构建步骤。
安装与启用¶
官方安装命令如下。完成后需重启 dsh web(或桌面应用),插件在下次启动时生效。
dsh plugin --profile web add dsh-infer-kit
若从源码手动安装,README 给出的形式为(需替换为你的 GitHub 用户名):
dsh plugin --profile web add github:YOUR_USERNAME/dsh-infer-kit
环境要求:DSH >= 0.2.0-rc.2(package.json 中 peer 为 @deepseek-ai/dsh ^0.2.1-rc.2);运行环境需具备 Node 内置 fetch;无额外运行时依赖。插件以当前 dsh 进程权限运行:会读写可配置的 JSON 缓存文件,并在配置草稿端点时对该 URL 发起 HTTP 请求;自述无遥测、除可选草稿端点外不依赖其他外部服务。
核心配置¶
配置写在 profile 的 cordis.patch.yml 的 config: 下:
| 键 | 默认 | 说明 |
|---|---|---|
storePath |
插件 index.js 旁的 store.json |
持久化缓存路径 |
maxEntries |
512 |
最大条目数,超出淘汰最旧 |
similarityThreshold |
0.62 |
缓存命中 Jaccard 阈值(0–1) |
ttlAgentDays |
3 |
kind=agent 的 TTL(天) |
ttlChatDays |
7 |
kind=chatbot 的 TTL(天) |
draftEndpoint |
null |
OpenAI 兼容草稿端点 URL |
draftModel |
null |
草稿请求使用的模型名 |
draftMaxTokens |
600 |
草稿调用 max_tokens |
draftTimeoutMs |
25000 |
单次草稿超时(毫秒) |
草稿级联示例配置:
config:
draftEndpoint: 'https://inference.dahl.global/v1/chat/completions'
draftModel: 'deepseek-ai/DeepSeek-V4-Flash-0731'
draftTimeoutMs: 90000
API Key 从凭证 DAHO_API_KEY 读取(在 Settings → Models 中与其它提供商密钥同样设置);每次草稿调用会重新解析,轮换密钥可自动生效。web 与 desktop profile 共用同一 storePath 时,缓存存储共享。
典型用法¶
语义缓存¶
查询:
{
"mode": "lookup",
"key_text": "What is the capital of France?",
"kind": "chatbot"
}
写入:
{
"mode": "store",
"key_text": "What is the capital of France?",
"value": "Paris is the capital of France.",
"kind": "chatbot",
"tags": ["geography", "quick-facts"]
}
草稿级联¶
{
"task": "List all files in the project root",
"context": "TypeScript monorepo with packages/api, packages/web, packages/shared",
"accept": true
}
返回通常为 100–600 token 的草稿,由你验证后再定稿。若草稿端点不可用,会回退到完整质量的自完成,不抛错。
JSON 校验¶
{
"json": "{\"id\": 42, \"name\": \"Alice\"}",
"schema": {
"type": "object",
"required": ["id", "name"],
"properties": {
"id": { "type": "integer" },
"name": { "type": "string", "minLength": 1 }
}
}
}
返回 ok: true,或可供修正的具体错误列表。
宿主还提供 GET /infer-kit/status 供 Web GUI 查询状态。
适用场景与注意¶
适合希望在 DSH 内减少重复推理、用廉价模型先出草稿再人工或主模型确认、以及强制结构化输出合规的团队或个人。README 记录了针对 inference.dahl.global 与 deepseek-ai/DeepSeek-V4-Flash-0731 的草稿级联实测(三次运行的 token 数与延迟见仓库 Live test results),仅为维护者自测数据,不构成 SLA。
安装插件等同于授予其读写本地缓存与访问所配置草稿端点的能力;使用前请阅读 GitHub 仓库 源码与 MIT 许可证。当前 package 版本为 0.1.1。