前言¶
DeepSeek Harness (DSH) 的核心理念是「一切皆插件」。在使用 Cline Pass 作为网关代理时,一个常见需求是将流量钉死在 DeepSeek 官方渠道上,防止回退到其他路由。dsh-clinepass-deepseekv4.1 插件正是为此设计,它将 Cline Pass 集成进 DSH,通过本地拦截与响应校验,强制保证请求只通过 DeepSeek 上游。
核心功能¶
插件主要解决三个问题:路由配置、渠道钉选校验、用量监控。
-
路由与 Key 管理
插件通过一个标准的pi-ai provider profile实现路由。API Key 不需要手动配置文件,直接在 DSH 的 设置 → 模型 界面填写即可。模型目录、地址等界面元素均由 DSH 原生提供,无需自写 UI。 -
用量条显示
卡片上集成了用量监控,显示 5 小时、每周、每月三个时间窗口的剩余量。数据由 DSH 进程通过凭据库中的 Key 请求网关获取,挂载在同源路径上供浏览器读取,浏览器端无法直接接触到 Key。 -
端口与路径行为
- 0.5.0 版本起:插件不再开启任何本地监听端口。
- 0.7.0 版本起:为了供浏览器读取用量数据,插件在 DSH 的 HTTP 服务上注册了一条路径
/api/clinepass.usage,但进程内依然没有任何 Socket 监听。
工作原理¶
插件的核心逻辑分为请求注入、响应校验和提示词处理三个部分。
1. 请求注入与提示词处理¶
- 钉选字段注入:虽然 Vercel AI Gateway 目前不再执行
providerOptions.gateway.only字段,插件仍会在发出的请求体中保留该字段,以备将来网关行为变更。 - 提示词模型名去前缀:网关要求
model字段为type/model格式,而 DSH 的 catalog ID 本身不带前缀。插件会在提示词装配阶段,将模板中的{{model}}替换为完整的渠道 ID(如cline-pass/deepseek-v4.1-flash),而不会影响网关请求体中的实际 ID。
2. 本地闸机制¶
这是插件最关键的部分。由于网关在 2026-09-22 之后的实测中不再执行 only 字段,插件在本地实现了拦截逻辑:
- 响应捕获:插件对 SSE 流式响应进行逐帧转发,但会扣留最后一帧
data: [DONE]。 - 裁决:在收到终止帧时,解析响应中的
routing元数据(包括finalProvider、resolvedProvider、modelAttempts等),检查是否有非 DeepSeek 渠道的记录。 - 拦截与撤回:
- 如果发现违规,插件会拒绝放行内容,导致本次调用作废,不会将内容装配进上下文,也不会触发工具调用。
- 流式场景:采用「撤回」策略,即内容虽然显示过,但实际已作废。这避免了缓冲策略带来的 TPS(tokens per second)数据失真问题。
- 非流式场景:读取完响应后直接判违规,返回 HTTP 400 错误。
3. 文案净化¶
为了防止渠道名被滥用(如将 context_length_exceeded 插入错误文案),插件对显示的渠道名做了过滤。只有符合特定形状且不含危险词根的名字才会写入错误文案,其他一律退回固定说法。
配置与用法¶
由于依赖 DSH 的内部行为,使用该插件无需编写复杂的安装脚本。
-
配置 Key
在 DSH 界面进入 设置 → 模型,找到对应的 provider profile,填入 Cline Pass 的 API Key。 -
配置校验级别
在 profile 的配置中设置enforcement参数:strict(默认):拦截所有违规流量。warn:仅告警,不拦截。off:关闭校验,仅保留请求注入逻辑。
# cordis.patch.yml 或配置文件中的相关段
- id: clinepass
config:
enforcement: strict
注意事项¶
-
非官方与维护状态
这是一个分享性质的快照项目,非长期维护。作者按 MIT 协议原样提供,不承诺跟进上游接口漂移。如果 DeepSeek Harness 改变其内部行为(例如pi-ai组件不再使用全局fetch),插件会静默失效。 -
上游依赖风险
插件依赖 DSH 的内部行为。如果上游改掉行为,插件不会报错,只是不再起作用。建议在使用前阅读源码确认依赖点。 -
版本差异
事实显示 package.json 版本为0.9.0,而 README 中有线索显示为v4.1,使用时请以实际文件为准。 -
Releases 页面为空
维护者通过RELEASING.md流程发版,仅推 Tag,因此 GitHub Releases 页面可能为空,但这不影响插件的正常使用。