SpecFusion/dsh-plugin

54Star15Fork0Issue1Watching

为 DeepSeek Harness 接入云端 API 文档检索,让模型直接搜 20 个中国开放平台的 6.5 万+篇文档,免切浏览器翻官方文档站。

语言
TypeScript
License
MIT
分支
main
ai-agentsalipayapi-documentationchinese-apiclaude-codecursordeepseek-harnessdingtalk

安装

$ dsh plugin --profile web add github:wxkingstar/SpecFusion/dsh-plugin

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

一句话定位

SpecFusion 是为 DeepSeek Harness (DSH) 打造的插件,把云端 6.5 万+篇中国开放平台 API 文档接到 DSH 里。用户在写代码时直接问"飞书如何创建审批实例"这种问题,模型就能调出对应接口的路径、必填参数和请求示例,不用切浏览器翻官方文档站。

核心能力

  • 搜索 20 个中国开放平台的 API 文档,支持接口名、API 路径、错误码、功能概念四种关键词
  • 获取指定文档全文,或用 summary: true 取结构化摘要(参数表、示例、错误码)
  • 列出已接入的全部文档源及各自文档数量
  • 按平台浏览文档分类目录,便于不确定搜索词时发现可用 API 领域
  • 查看近期新增或更新的文档,追踪平台文档变更

技术实现

  • 语言: JavaScript ESM(无构建步骤,lib/ 即发布产物)
  • 关键依赖: @deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/schemastery
  • 架构模式: Cordis 插件,注入 skillstools 两个 ctx 服务,注册 1 个运行时 skill (specfusion) + 5 个并发安全的原生工具
  • 入口文件: lib/index.js,导出 apply(ctx, config) / name / inject / Config

适用场景

在 DSH 里写代码需要对接国内任一常见开放平台(企业微信、飞书、钉钉、淘宝、抖音电商、微信支付、支付宝、京东、SHEIN、得物、火山引擎、阿里云百炼等)的 API 时,模型可以即时调出对应接口的路径、必填参数、错误码与请求示例,省去切浏览器翻官方文档站的时间。错误排查阶段也能用错误码数字或 API 路径直接反向定位到具体接口文档。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness (DSH)0.1.0-rc.6+由 peerDependencies @deepseek-ai/dsh-skill@deepseek-ai/dsh-tools 推断
@deepseek-ai/cordis^4.0.1peerDependency,DSH 内核运行时
Node.js未声明package.json 未声明 engines 字段
平台跨平台package.json 未限制 os/cpu
原生模块纯 ESM JavaScript,依赖 fetch,无 node-gyp 模块

安装方式

dsh plugin --profile web add github:wxkingstar/SpecFusion/dsh-plugin

安装后重启 dsh web 让 profile 重新加载即可生效。

配置项

配置类型说明默认值
baseUrl字符串SpecFusion 云端服务地址,接自部署实例时改成自己的域名https://specfusion.inagora.org/api

baseUrl 可通过三种方式按优先级覆盖:cordis.patch.yml 里 specfusion-dsh 行的 baseUrl 字段 → SPECFUSION_BASE_URL 环境变量 → 内置默认值。

常见问题

Q: 安装后立即能用吗?

A: 安装后重启 dsh web 让 profile 重新加载即可,无需额外配置,默认走公共云端服务 https://specfusion.inagora.org/api。

Q: 想接自部署实例怎么改地址?

A: 两种方式:设置环境变量 export SPECFUSION_BASE_URL="http://your-host:3456/api",或者在 profile 的 cordis.patch.yml 里覆盖 specfusion-dsh 行的 baseUrl 字段。

Q: 工具返回的是什么格式?

A: 全部返回 Markdown 纯文本(Content-Type 为 text/markdown),不是 JSON,可以直接喂给模型阅读或渲染。

Q: 能直接搜错误码吗?

A: 可以,把错误码数字(如 60011、40001)当搜索关键词传入即可,工具会按文档 ID 与正文匹配。

Q: 默认会搜全部平台吗?

A: 是的,不传 source 时搜索全部 20 个已接入平台;想限定平台可传 source 参数(如 wecom、feishu、taobao)。

Q: 企业微信几种开发模式要分清吗?

A: 要。企业微信区分自建应用(internal)、第三方应用(third_party)、服务商代开发(service_provider),可用 mode 参数过滤,默认不过滤。

Q: 能离线用吗?

A: 不能。5 个工具全部依赖对远端服务发起 HTTP 调用,离线或云端宕机时会返回错误,模型会引导访问官方文档站兜底。

Q: 怎么卸载?

A: 用 dsh plugin --profile web remove @wxkingstar/specfusion-dsh 即可(标准 cordis 卸载命令),无需手动清理数据。

上手难度

入门 — 装上重启 profile 即可用,普通用户无需懂 Cordis 或 API 细节;只有自部署或精细化配置时才需要看 baseUrl 与环境变量。

已知问题与限制

  • 所有 API 强依赖云端服务,离线或服务端宕机时全部 5 个工具不可用;skill 内置降级方案为引导访问各平台官方文档站
  • 仅检索各平台 API 开发文档(接口名称、参数、错误码),不覆盖平台内部用户文档(如"如何在企业微信后台设置考勤")
  • 企业微信场景需用户主动区分 internal / third_party / service_provider 三种开发模式,工具默认不过滤
  • 源码中未发现 TODO / FIXME / HACK 标记