DeepSeek Harness Hub
← 返回列表

Degurechaff57/dsh-openapi

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

让 DeepSeek Harness 通过安全、结构化的工具调用任意 OpenAPI 3.x API。

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/13 · 已提供中文文档

DeepSeek Harness 的安全 OpenAPI 3.x 发现与 API 调用工具

综合分
28.7
GitHub 分
28.7
用户评分
★ Stars
3
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add Degurechaff57/dsh-openapi
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools@deepseek-ai/schemastery
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-openapi

让 DeepSeek Harness 通过安全、结构化的工具调用任意 OpenAPI 3.x API。

English · DeepSeek Harness

dsh-openapi 是 DeepSeek Harness 原生 bundle,会索引配置好的 OpenAPI 文档,并注册三个模型工具:

- openapi_list:列出 API、搜索 operation。
- openapi_describe:查看某个 operation 的参数、请求体、服务器和响应。
- openapi_call:校验并调用 operation,限制返回大小。

项目直接使用 ESM JavaScript,因此从 GitHub 安装时不会执行构建或 prepare 脚本。

为什么需要它

Harness 已经有 Shell,但 API 更适合更窄、更可控的接口:无需把巨大的规范塞进模型上下文;只允许规范声明的参数;凭据来自环境变量;默认只读;校验 SSRF 风险;限制响应大小。本插件通过 Harness 官方扩展点实现这些能力,不修改 agent loop。

安装

dsh plugin --profile web add github:Degurechaff57/dsh-openapi

安装后的 API 目录为空。在 profile 的 cordis.patch.yml 中加入配置:

- id: openapi
config:
apis:
- id: petstore
source: https://petstore3.swagger.io/api/v3/openapi.json
baseUrl: https://petstore3.swagger.io/api/v3
allowedMethods: [GET, HEAD]

启动 Harness 后可以直接说:

用 openapi_list 找到列出宠物的接口,先描述参数,再调用它。

本地源码安装:

dsh plugin --profile web add /absolute/path/to/dsh-openapi

凭据配置

不要把密钥写入 YAML。将请求头映射到环境变量:

- id: openapi
config:
apis:
- id: internal-api
source: ./openapi/internal.yml
baseUrl: https://api.example.com/v1
headers:
Accept: application/json
credentials:
- header: Authorization
env: INTERNAL_API_TOKEN
prefix: 'Bearer '
allowedMethods: [GET, HEAD, POST]

凭据请求头最后写入,模型参数无法覆盖;环境变量缺失时会在发出网络请求前失败。

配置项

顶层配置:

| 字段 | 默认值 | 用途 |
|---|---:|---|
| apis | [] | API 文档列表 |
| timeoutMs | 30000 | 单次调用超时 |
| maxSpecBytes | 2097152 | 本地或远程规范大小上限 |
| maxResponseBytes | 262144 | 返回给模型的响应体上限 |
| maxRedirects | 3 | 重定向上限;每一跳都会重新校验 |
| maxOperationsPerApi | 1000 | 单个 API 的 operation 上限 |

每个 apis 条目支持:

| 字段 | 默认值 | 用途 |
|---|---:|---|
| id | 必填 | 工具调用使用的稳定 id |
| source | 必填 | HTTP(S) URL、file: URL、绝对路径,或相对 Harness 进程的路径 |
| baseUrl | 规范中的 server | 显式覆盖 API 服务器 |
| headers | {} | 静态非敏感请求头 |
| credentials | [] | 请求头与环境变量映射 |
| allowedMethods | [GET, HEAD] | 工具允许调用的方法 |
| allowPrivateNetwork | false | 显式允许回环/私网目标 |

安全默认值

- 规范只能由管理员配置,模型不能在运行时任意加载 URL。
- 默认只开放 GET、HEAD。
- 只接受 operation 声明过的参数。
- 默认阻止 URL 内凭据、localhost、私网 IP,以及 DNS 解析到私网的主机;每次重定向都会重新检查,跨域重定向会移除凭据。
- 响应体有硬上限,set-cookie 等敏感响应头不会返回给模型。
- 密钥来自环境变量,覆盖调用参数,永远不会出现在工具结果中。

本地开发服务需要设置 allowPrivateNetwork: true。这是明确的信任选择,不是网络沙箱。DNS 在校验和连接之间仍可能变化;高安全场景不要使用不可信的 OpenAPI 文档或恶意 DNS 环境。

当前范围

- OpenAPI 3.0 / 3.1,JSON / YAML
- 本地 #/... 引用
- 常见 path、query、header、cookie 参数序列化
- JSON 与文本响应

暂不跟随远程 $ref,也不猜测 deepObject 等特殊序列化;遇到不明确的输入会直接失败。

DeepSeek Harness 仍处于开发者预览期。本版本已测试当前源码 CLI(0.1.0-rc.5)和 npm 预发布版(0.1.0-rc.6),上游发生破坏性变更后会快速跟进。

开发与测试

npm install
npm run check

测试覆盖解析、引用、operation 索引、请求构造、凭据优先级、方法限制、私网阻止、重定向检查、输出截断和插件注册。

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群