为 DeepSeek Harness 接入云端 API 文档检索,让模型直接搜 20 个中国开放平台的 6.5 万+篇文档,免切浏览器翻官方文档站。
- 语言
- TypeScript
- License
- MIT
- 分支
- main
安装
$ 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 插件,注入
skills与tools两个 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.1 | peerDependency,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 标记
在 Claude Code 里直接搜企业微信、飞书、钉钉、淘宝开放平台、小红书、抖音电商开放平台、微信小程序、微信小店、拼多多开放平台、有赞开放平台、微信支付、支付宝开放平台、京东商家开放平台、SHEIN开放平台、得物开放平台、火山引擎、阿里云百炼、泛微 e-teams 开放平台、北森 iTalent 开放平台的 API 文档。
不用切浏览器,不用翻文档站——输入问题,拿到接口参数,继续写代码。
> 企业微信怎么发应用消息?
搜索到 3 篇相关文档:
1. 发送应用消息 — POST /cgi-bin/message/send
2. 接收消息与事件 — 被动回复消息
3. 消息类型及数据格式 — text/image/voice/...
为什么用 SpecFusion
- 不离开终端 — 写代码时直接问,Claude 帮你查文档、给出接口参数和示例
- 中文搜索准确 — jieba 分词 + FTS5 全文索引,
发送应用消息、access_token、40001都能搜到 - 68,000+ 篇文档 — 企业微信 ~2,790 篇 + 飞书 ~4,260 篇 + 钉钉 ~2,760 篇 + 淘宝 ~6,960 篇 + 小红书 ~100 篇 + 抖音电商 ~1,400 篇 + 微信小程序 ~470 篇 + 微信小店 ~490 篇 + 拼多多 ~290 篇 + 有赞 ~1,250 篇 + 微信支付 ~550 篇 + 支付宝 ~600 篇 + 京东 ~6,280 篇 + SHEIN ~250 篇 + 得物 ~270 篇 + 火山引擎ECS ~121 篇 + 火山引擎 ~36,660 篇 + 阿里云百炼 ~1,670 篇 + 泛微 ~560 篇 + 北森 ~1,090 篇,接口参数、错误码、事件订阅全覆盖
- 零配置 — 云端服务已部署好,安装 Skill 后即可使用,无需自建后端
安装
方式一:skills CLI(推荐)
自动检测已安装的 Agent,一键全局安装到 Claude Code、Codex、Gemini CLI 等:
npx skills add wxkingstar/SpecFusion -g -y
⚠️ 必须加
-g参数! 不加-g会安装到当前目录,只在该目录下生效。加-g安装到~/.claude/skills/,所有项目都能用。
仅安装到 Claude Code:
npx skills add wxkingstar/SpecFusion -g -a claude-code -y
也可以按平台名搜索安装:
npx skills find "feishu" # 搜索飞书相关技能
npx skills find "taobao" # 搜索淘宝相关技能
npx skills find "wecom" # 搜索企业微信相关技能
npx skills find "dingtalk" # 搜索钉钉相关技能
npx skills find "alipay" # 搜索支付宝相关技能
npx skills find "jd" # 搜索京东相关技能
# ... 支持所有已接入平台的英文名搜索
方式二:DeepSeek Harness 插件
在 DeepSeek Harness 中安装 SpecFusion 插件(自动注册 skill + 5 个原生搜索工具,无需 Bash + curl):
dsh plugin --profile web add @wxkingstar/specfusion-dsh
安装后重启 dsh web 即可。插件目录见 dsh-plugin/。
方式三:手动安装
Claude Code(macOS / Linux):
curl -fsSL --create-dirs -o ~/.claude/skills/specfusion/SKILL.md \
https://raw.githubusercontent.com/wxkingstar/SpecFusion/main/specfusion/SKILL.md
Claude Code(Windows PowerShell):
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.claude\skills\specfusion" | Out-Null
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/wxkingstar/SpecFusion/main/specfusion/SKILL.md" `
-OutFile "$env:USERPROFILE\.claude\skills\specfusion\SKILL.md"
Cursor(macOS / Linux):
curl -fsSL --create-dirs -o ~/.cursor/rules/specfusion.mdc \
https://raw.githubusercontent.com/wxkingstar/SpecFusion/main/specfusion/SKILL.md
Cursor(Windows PowerShell):
New-Item -ItemType Directory -Force -Path "$env:USERPROFILE\.cursor\rules" | Out-Null
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/wxkingstar/SpecFusion/main/specfusion/SKILL.md" `
-OutFile "$env:USERPROFILE\.cursor\rules\specfusion.mdc"
安装完成。打开 Claude Code 或 Cursor,开始提问即可。
安装后找不到 Skill?
| 问题 | 原因 | 解决方案 |
|---|---|---|
| Claude Code 找不到 | 安装时没加 -g,只装到了当前目录 | 重新运行 npx skills add wxkingstar/SpecFusion -g -y |
| Cursor 找不到 | skills CLI 目前不会为 Cursor 创建规则文件 | 用上面的手动安装命令 |
| 验证是否安装成功 | — | Claude Code: ls ~/.claude/skills/specfusion/SKILL.mdCursor: ls ~/.cursor/rules/specfusion.mdc |
使用方式
方式一:直接提问(提到企业微信、飞书、钉钉、淘宝、小红书、抖音电商、微信小程序、微信小店、拼多多、有赞、微信支付、支付宝、京东、SHEIN、得物、火山引擎、百炼、泛微、北森等关键词时自动触发)
> 飞书如何创建审批实例?
> 企业微信的 access_token 怎么获取?
> 钉钉怎么发工作通知?
> 淘宝商品发布接口怎么用?
> 抖音电商怎么查询订单列表?
> 微信小程序怎么获取手机号?
> 微信小店怎么获取订单列表?
> 拼多多怎么同步订单?
> 有赞怎么查询交易订单?
> wecom webhook 怎么发消息?
> 微信支付JSAPI下单接口怎么调?
> 支付宝当面付接口怎么用?
> SHEIN商品发布接口怎么调?
> 得物开放平台怎么查询订单?
> 火山引擎ECS怎么创建实例?
> 百炼千问API怎么调用?
> 泛微 e-teams 怎么免登获取 accessToken?
> 北森 iTalent 怎么查询组织单元?
方式二:使用 /specfusion 命令
> /specfusion 企业微信发送应用消息
> /specfusion feishu 获取用户列表
已接入平台
| 平台 | 文档数量 | 覆盖范围 |
|---|---|---|
| 企业微信 | ~2,790 | 服务端 API、客户端 API、应用开发 |
| 飞书 | ~4,260 | 服务端 API、事件订阅、小程序 |
| 钉钉 | ~2,760 | 企业内部应用、服务端 API、客户端 JSAPI |
| 淘宝开放平台 | ~6,960 | 商品、交易、物流、店铺、用户等 API |
| 小红书 | ~100 | 电商开放平台 API(订单、商品、售后、物流等) |
| 抖音电商开放平台 | ~1,400 | 商品、订单、物流、售后、精选联盟、即时零售等 API |
| 微信小程序 | ~470 | 服务端 API(登录、用户信息、小程序码、客服、数据分析、安全、物流等) |
| 微信小店 | ~490 | 商品管理、订单管理、售后管理、物流发货、资金结算、营销优惠券等 API |
| 拼多多开放平台 | ~290 | 订单、商品、物流、售后、营销、店铺、虚拟类目、多多进宝等 API |
| 有赞开放平台 | ~1,250 | 用户、会员、商品、交易、物流、营销、店铺、分销、财务、美业等 API |
| 微信支付 | ~550 | JSAPI/APP/H5/Native/小程序支付、退款、分账、合单支付、代金券、商家转账等 API |
| 支付宝开放平台 | ~600 | 当面付、APP支付、手机网站支付、电脑网站支付、资金、会员、营销、安全等 API |
| 京东商家开放平台 | ~6,280 | 商品、订单、物流、售后、促销、店铺、数据、发票、供应商等 API |
| SHEIN开放平台 | ~250 | 密钥授权、商品、订单、退货退款、采购单、库存、财务、物流、Webhook 等 API |
| 得物开放平台 | ~270 | 商品、订单、售后、出价、入仓、开票、文件、对账单等 API |
| 火山引擎云服务器 | ~121 | 实例、镜像、密钥对、安全组、地域、部署集、专有宿主机、云助手等 API |
| 火山引擎 | ~36,660 | 179 个云产品文档:计算、AI、网络、存储、数据库、容器、安全、CDN、视频云、大数据等 |
| 阿里云百炼 | ~1,670 | 千问大模型、DashScope SDK、OpenAI兼容接口、语音合成/识别、图像/视频生成、应用开发等 |
| 泛微 e-teams 开放平台 | ~560 | 认证免登、组织架构、人员、工作流程、业务表单、任务、考勤、CRM、订单、文档、日程等 API |
| 北森 iTalent 开放平台 | ~1,090 | 招聘、组织员工、假勤、薪酬、绩效、目标、学习云、干部管理、360评估、PaaS 平台等 API |
仅在当前项目安装
如果只想在某个项目中使用,可以安装到项目目录(不加 -g):
# 在项目根目录下运行
npx skills add wxkingstar/SpecFusion -y
或手动安装(将 ~ 换成 .):
Claude Code(macOS / Linux):
curl -fsSL --create-dirs -o .claude/skills/specfusion/SKILL.md \
https://raw.githubusercontent.com/wxkingstar/SpecFusion/main/specfusion/SKILL.md
Claude Code(Windows PowerShell):
New-Item -ItemType Directory -Force -Path ".claude\skills\specfusion" | Out-Null
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/wxkingstar/SpecFusion/main/specfusion/SKILL.md" `
-OutFile ".claude\skills\specfusion\SKILL.md"
Cursor:
curl -fsSL --create-dirs -o .cursor/rules/specfusion.mdc \
https://raw.githubusercontent.com/wxkingstar/SpecFusion/main/specfusion/SKILL.md
自部署
默认使用公共云端服务,无需自部署。如果需要私有化部署或自定义数据源,可以自建。
Docker 部署
docker build -t specfusion .
docker run -d \
-p 3456:3456 \
-v $(pwd)/data:/app/data \
-e ADMIN_TOKEN=your-secret-token \
--name specfusion \
specfusion
启动后将 Skill 中的 API 地址替换为你的实例:
# macOS
sed -i '' 's|https://specfusion.inagora.org/api|http://your-host:3456/api|g' \
~/.claude/skills/specfusion/SKILL.md
# Linux
sed -i 's|https://specfusion.inagora.org/api|http://your-host:3456/api|g' \
~/.claude/skills/specfusion/SKILL.md
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
PORT | 3456 | 服务端口 |
DB_PATH | ./data/specfusion.db | SQLite 数据库路径 |
ADMIN_TOKEN | dev-token | Admin API 认证令牌 |
文档同步
npm install
npm run sync -- --source feishu # 同步飞书文档
npm run sync -- --source wecom # 同步企业微信文档(需要 ego lite 桥接)
npm run sync -- --source dingtalk # 同步钉钉文档(需要 ego lite 桥接)
npm run sync -- --source taobao # 同步淘宝开放平台文档
npm run sync -- --source xiaohongshu # 同步小红书文档(需要 ego lite 桥接)
npm run sync -- --source douyin # 同步抖音电商开放平台文档
npm run sync -- --source wechat-miniprogram # 同步微信小程序文档
npm run sync -- --source wechat-shop # 同步微信小店文档
npm run sync -- --source pinduoduo # 同步拼多多开放平台文档(需先跑 scripts/pdd-refresh.sh)
npm run sync -- --source youzan # 同步有赞开放平台文档
npm run sync -- --source wechat-pay # 同步微信支付文档
npm run sync -- --source alipay # 同步支付宝开放平台文档
npm run sync -- --source jd # 同步京东商家开放平台文档(需要 ego lite 桥接)
npm run sync -- --source shein # 同步SHEIN开放平台文档
npm run sync -- --source dewu # 同步得物开放平台文档(需要 ego lite 桥接)
npm run sync -- --source volcengine-ecs # 同步火山引擎云服务器文档
npm run sync -- --source volcengine # 同步火山引擎文档中心
npm run sync -- --source bailian # 同步阿里云百炼文档
npm run sync -- --source weaver # 同步泛微 e-teams 开放平台文档
npm run sync -- --source beisen # 同步北森 iTalent 开放平台文档
同步完成后数据库文件位于 data/specfusion.db。
本地开发
npm install
npm run dev # 启动开发服务器(热重载)
npm run build # 构建
API 参考
所有 API 返回 Markdown 纯文本(Content-Type: text/markdown),可直接阅读。
Base URL: http://localhost:3456/api(自部署)
| 端点 | 说明 |
|---|---|
GET /api/search?q=关键词&source=wecom&limit=5 | 搜索文档 |
GET /api/doc/{doc_id} | 获取文档全文 |
GET /api/doc/{doc_id}?summary=true | 获取文档摘要 |
GET /api/sources | 查看已接入文档源 |
GET /api/categories?source=wecom | 浏览文档分类 |
GET /api/recent?source=wecom&days=7 | 最近更新的文档 |
GET /api/health | 健康检查(返回 JSON) |
搜索参数
| 参数 | 必填 | 说明 |
|---|---|---|
q | 是 | 搜索关键词(接口名、API 路径、错误码、功能概念) |
source | 否 | 文档来源:wecom / feishu / dingtalk / taobao / xiaohongshu / douyin / wechat-miniprogram / wechat-shop / pinduoduo / youzan / wechat-pay / alipay / jd / shein / dewu / volcengine-ecs / volcengine / bailian / weaver / beisen |
mode | 否 | 开发模式(仅企业微信):internal / third_party / service_provider |
limit | 否 | 返回数量,默认 5,最大 20 |
技术栈
- API: Node.js + Fastify + better-sqlite3 + FTS5
- 中文分词: nodejieba
- Scraper: cheerio + ego lite(浏览器抓取)
- 构建: tsup + tsx
贡献
欢迎提交 Issue 和 Pull Request。
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/xxx) - 提交更改 (
git commit -m 'Add xxx') - 推送分支 (
git push origin feature/xxx) - 创建 Pull Request