🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

微信网关适配 sulfide2085/dsh-llm-wechat

DeepSeek Harness
sulfide208579 天前有提交已提供中文文档扫描:未发现敏感能力

让微信小程序模型接入 DSH,思考与工具调用正常

30.2/100
综合分
5
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add sulfide2085/dsh-llm-wechat
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · platform
装得上吗
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 79 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
⚠︎ 实装验证未通过(dependency_conflict · 2026/11/2) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包@deepseek-ai/dsh-llm-wechat(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/7 13:15:19

安全扫描自动 · 静态分析源码
v2.7.0
🟢 扫描:未发现敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。

发起外部网络请求
查看扫描证据(共 1 处,展示前 1 条)
  • 发起网络请求
    lib/index.js:333
    response = await fetch(`${connection.baseURL}/chat/completions`, {
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/dsh-llm@deepseek-ai/dsh-llm-deepseek@deepseek-ai/dsh-credentials@deepseek-ai/dsh-launch-environment@deepseek-ai/dsh-settings@deepseek-ai/dsh-anonymous-user-id@deepseek-ai/dsh-timeout@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 接入DSH模型
  • 流式think标签转译

DeepSeek Harness 微信网关适配插件:复用 DeepSeekAdapter + 流式 think 标签转译

README

由 DeepSeek 最新模型翻译生成
@deepseek-ai/dsh-llm-wechat 独立公开仓库:本插件从项目内独立维护,源码位于 dsh-llm-wechat 仓库。 DeepSeek Harness 的微信网关适配插件:让 DSH 把微信小程序「Coding Plan」的 Deepseek-v4-flash(chatapi.weixin.qq.com)当作官方 DeepSeek 使用——思考进思考块、工具调用正常、正文无标签。 复用官方 dsh-llm-deepseek 的 DeepSeekAdapter(请求序列化、错误映射、模型解析、重试策略全部继承),只在响应侧加了一层流式转译。不修改任何 DSH / pi-ai 源码。
展开完整文档(README 剩余 1 节)
@deepseek-ai/dsh-llm-wechat

独立公开仓库:本插件从项目内独立维护,源码位于 dsh-llm-wechat 仓库。

DeepSeek Harness 的微信网关适配插件:让 DSH 把微信小程序「Coding Plan」的 Deepseek-v4-flash(chatapi.weixin.qq.com)当作官方 DeepSeek 使用——思考进思考块、工具调用正常、正文无标签。

复用官方 dsh-llm-deepseek 的 DeepSeekAdapter(请求序列化、错误映射、模型解析、重试策略全部继承),只在响应侧加了一层流式转译。不修改任何 DSH / pi-ai 源码。

为什么需要这个插件

微信网关的返回有三个官方 DeepSeek 没有的怪癖,DSH 原生解析器无法处理:

| 微信的怪癖 | 插件处理 |
| 思考内容不放 reasoning_content,而是连同 标签整个塞进 content | 流式拦截器把 之前的文本剥离并重排进 reasoning_content,正文只留纯净答案 |
| 工具调用流式 delta 的后续片段显式发 id: null / name: null,覆盖首个 delta 的正确值 | 只接受非空字符串更新 id/name |
| DSH 的工具结果以 tool-result 块存放,序列化时需展开为 role: tool 消息 | 对齐官方完整版(含 (no output) 兜底) |

工作原理

微信流: "We need answer... final. 141.3717" (思考+标签全在 content) │ ▼ WechatAdapter.request(拦截器:parseSse 与 translate 之间) DSH 流: reasoning_content: "We need answer... final." content: "141.3717" (标准格式,DSH 上层无感)

- 请求侧:微信端点协议与官方 DeepSeek 完全一致(OpenAI 兼容),原样透传,仅映射思考档位 off/high/max → thinking: {type} + reasoning_effort。
- 响应侧:translate 前插入 ThinkTagSplitter 状态机(处理标签跨 chunk 被切开、思考含尖括号、思考未闭合兜底等边界)。
- system 增强:微信模型对"工具只能通过 run_code 调用"的遵循较弱,插件在 system 末尾追加一段强约束(仅 wechat 通道生效)。

安装

方式一:dsh plugin(推荐,官方规范)

在包含 dsh-llm-wechat 目录的位置执行
dsh plugin --profile web add ./dsh-llm-wechat

dsh plugin add 会把包以 link: 方式装进 profile,并把 dsh.bundle 声明的 patch 层(cordis.patch.yml)追加到 dsh.profile.bundles——无需手动改任何文件。

发布到 npm 后(待发布):

dsh plugin --profile web add @deepseek-ai/dsh-llm-wechat

方式二:手动

1. 把包复制到 DSH 安装树的 node_modules/@deepseek-ai/dsh-llm-wechat;
2. 在 $DSH_HOME/profiles/web/package.json 的 dependencies 加 "@deepseek-ai/dsh-llm-wechat": "link:",跑 pnpm install(生成 lock);
3. 在 $DSH_HOME/profiles/web/cordis.patch.yml 加:

- insert:
- id: llm-wechat
name: '@deepseek-ai/dsh-llm-wechat'

配置 credentials

在 $DSH_HOME/.credentials.yaml 存微信 Token(也可以在启动环境导出 WECHAT_API_KEY):

WECHAT_API_KEY:

配置(settings.yaml)

重启 DSH 后,在 $DSH_HOME/settings.yaml 加 llm-wechat: 段(热加载,无需重启):

llm-wechat:
apiKeyEnv: WECHAT_API_KEY # credentials 引用 baseURL: https://chatapi.weixin.qq.com/openai/v1 thinking: enabled # enabled | disabled(disabled 锁死 off 档) reasoningEffort: high # off | high | max,默认 high maxTokens: 48000 # 微信 maxOutput 上限 48000 defaultContextWindow: 200000 # 微信 maxInput 上限 200000 models:
- id: Deepseek-v4-flash
name: WeChat Deepseek-V4-Flash
contextWindow: 200000
maxTokens: 48000
stripThinkingTags: true # 是否剥离 标签(默认 true) streamIdleTimeoutMs: 300000 # 流式空闲超时,默认 5 分钟 requestTimeoutMs: 55000 # 单请求总超时;默认 55s,避免撞微信约 60s 网关硬超时 retryPolicy: # 可选;默认有界重试 mode: always backoff: initialDelayMs: 500 maxDelayMs: 10000 jitterRatio: 0.1

配置字段与官方 dsh-llm-deepseek 对齐(thinking/reasoningEffort/models/retryPolicy 等),另加 stripThinkingTags 与 requestTimeoutMs。模型选择器里会出现 WeChat → Deepseek-V4-Flash,思考强度可选 off / high / max。

注意:插件注册的 provider route 是 wechat。如果之前在 llm-pi-ai.providers.weixin 配过微信,必须删除该段,否则 DUPLICATE_ADAPTER 冲突。

推理等级自动暴露

装了这个插件,wechat 供应商的模型在模型选择器里会自动出现推理等级下拉(off / high / max),无需任何额外配置。

原理:DSH 的模型选择器只要检测到模型元数据里有 reasoning.efforts 就会渲染等级下拉。插件注册的 wechat route 的 resolveModel 无条件返回:

reasoning: {
efforts: [{ id: "off" }, { id: "high" }, { id: "max" }],
defaultEffort: "high" // 跟随 settings 的 reasoningEffort }

链路:装插件(注册 wechat route)→ DSH 读取元数据 → 返回 reasoning.efforts → UI 自动显示等级下拉。

对比:如果你之前用 pi-ai 或其他通道配 wechat,模型元数据里没有 reasoning.efforts(pi-ai 需要手动配置 reasoningEfforts 映射才暴露),所以 UI 里看不到等级。插件把这个写死在元数据里,开箱即用。

档位说明

| 档位 | 效果 | 建议 |
| off | thinking: {type: "disabled"},不思考 | 简单问题/省 token |
| high | thinking: {type: "enabled"} + reasoning_effort: high | 日常推荐 |
| max | thinking: {type: "enabled"} + reasoning_effort: max | 思考最长,但易撞微信 60s 网关超时 |

只暴露这三档是因为微信网关只认 off/high/max(传其他值报 UNSUPPORTED_REASONING_EFFORT),与官方 DeepSeek 行为一致。

给第三方用户的快速接入清单

1. 安装插件(dsh plugin --profile web add ./dsh-llm-wechat);
2. 在 $DSH_HOME/.credentials.yaml 存 WECHAT_API_KEY;
3. (可选)在 $DSH_HOME/settings.yaml 加 llm-wechat: 段设置默认档位(默认 high);
4. 重启 dsh web;
5. 模型选择器 → WeChat → Deepseek-V4-Flash → 选择推理等级(off/high/max)→ 开聊。

如果你之前用 llm-pi-ai.providers.weixin(或其他方式)配过微信,删除旧配置再装插件,避免选择器里出现两组重复且旧组无等级。

已知限制

微信网关固有问题(插件无法解决)

- 60 秒请求超时:max 档思考很长(实测可达 19k+ 字符),容易撞网关 60s 掐断 → TIMEOUT / 408。建议日常用 high 档;max 档需配合更大的 maxTokens 并接受较高失败率。
- 限流:每 5 小时约 1200 请求配额;并发上限 6。DSH agent 的多步工具循环会快速消耗配额,触发 RATE_LIMIT(429)。
- 模型对工具规则遵循不稳定:偶发直接调用 collapsed 工具(glob/pwsh 等)导致 unknown tool。插件已在 system 末尾追加强约束缓解,但无法 100% 消除。
- reasoning_content 字段恒空:思考只在 content 里(已由插件剥离解决)。

插件自身

- 复制了官方 dsh-llm-deepseek 的 translate/parseSse/serializeRequest(模块私有无法 import)——官方升级不会自动同步,DSH 大版本升级后需重新对齐。
- 已为微信网关的约 60s 硬超时增加默认 55s 的请求级总超时(requestTimeoutMs),超时会以 TIMEOUT 快速失败并交给重试策略,避免半开连接占用并发槽位。
- peerDependencies 已放宽为 (不锁版本),但 DSH 接口变化仍可能破坏插件——升级 DSH 后需回归测试(运行时兼容性不受 npm 检查保护)。
- 只支持文本;微信本身不支持图像输入,无影响。

错误码

与官方 adapter 一致(LlmError):AUTH(401/403)、RATE_LIMIT(429)、TIMEOUT(408/超时)、QUOTA、CONTEXT_WINDOW_EXCEEDED、TRANSPORT、STREAM_CLOSED(无 [DONE])、MALFORMED_RESPONSE、EMPTY_RESPONSE、MISSING_CREDENTIAL、UNSUPPORTED_REASONING_EFFORT。

开发与测试

node --check lib/index.js && node --check lib/wechat-translate.js # 语法
转译器单测(ThinkTagSplitter 状态机):见 test/ 目录真实微信流式集成:node test/live-stream.test.mjs(需要有效 Token)

发布规范

遵循 deepseek-harness 插件发布指南:

- dsh.bundle.patch 声明 bundle 层(本包自带 cordis.patch.yml)
- publishConfig.access: public(scope 包)
- files 白名单:lib/*、cordis.patch.yml、README.md
- 版本对齐 DSH 的 0.1.0-rc.x;发布前需测试 DSH 升级兼容
预览分享卡片长什么样 ↓sulfide2085/dsh-llm-wechat
分享 · DeepSeek Harness Hub
sulfide2085/dsh-llm-wechat

让微信小程序模型接入 DSH,思考与工具调用正常

这是你的仓库?认领条目

回到顶部