dsh-openapi
by degurechaff57
DeepSeek Harness 的安全 OpenAPI 3.x 发现与 API 调用工具
Safe OpenAPI 3.x discovery and API calling tools for DeepSeek Harness
安装
dsh plugin --profile web add github:degurechaff57/dsh-openapiGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗
安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。
README
让 DeepSeek Harness 通过安全、结构化的工具调用任意 OpenAPI 3.x API。
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 索引、请求构造、凭据优先级、方法限制、私网阻止、重定向检查、输出截断和插件注册。
许可证
原始 README: https://github.com/Degurechaff57/dsh-openapi/blob/main/README.zh-CN.md ↗
同类插件
查看全部 →
deepseek-harness
从仓库或系统描述生成经过校验的自包含交互式架构图、流程图、时序图、数据流图和生命周期图。

dsh-plugin
通过 DSH MCP 客户端挂载 Ouroboros 的纯配置包,在 DSH 中提供 36 个涵盖需求访谈、Seed、执行、评估与演化流程的工具。

dsh-tongflow
基于 TongFlow 的“片场”插件,用于图片、配音、音乐与视频制作:agent 为每个资产生成 TongFlow 工作流文件(.tongflow.json)并通过 TongFlow 插件执行,内嵌工作流画布,按镜头/角色/take 组织项目,附漫剧模板;以 @tongflow 开头的会话进入 Studio 界面。

helloagents
AI 编码 CLI 的工作流层:技能、项目知识、交付检查、更安全的配置写入与可恢复执行

dsh-ai-novel-writer
安装专用 AI 小说创作预设与工作台:提供带修订号的本地项目资产、紧凑侧边工作台,以及需要原生审批的逐文件变更。

rea
用 agent 逆向任何东西:从应用行为到原生二进制