DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

irerc /

irerc/dsh-deepseek-web

Verified

DSH 插件:把 chat.deepseek.com 网页版包成 OpenAI 兼容接口(无浏览器直连、多账号、自带设置界面)

★ 1 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: main@f9bcb445

dsh-deepseek-web

GitHub stars Release

把 chat.deepseek.com 网页版 包成 OpenAI 兼容接口的 DeepSeek Harness 插件。如果它帮你省下了 API 费用,欢迎点个 Star ⭐

  • 不需要浏览器:Node 直连网页接口(PoW 用站点自带的 wasm 在本地算),因此在 Android/proot 容器里也能跑。
  • 多账号:轮询 + 429 冷却 + 401 自动切换,设置界面可增删。
  • 选模型即启动:平时只监听一个极轻量的入口,首次调用网页版模型时才拉起引擎,空闲自动休眠。
  • 自带设置界面:DSH 设置 →「DeepSeek 网页版」,可登录、管理账号、调参、看日志。
  • 即装即用:包内自带 cordis.patch.yml,安装后由 DSH 自动应用 provider 配置。

安装(新设备一条命令/粘贴链接即可用)

中国大陆推荐走 gh-proxy 镜像,下面三条任选其一:

① 粘贴到 DSH「插件 → 安装插件」(镜像)

git+https://gh-proxy.com/https://github.com/irerc/dsh-deepseek-web.git

② 发行版压缩包(镜像,最快)

https://gh-proxy.com/https://github.com/irerc/dsh-deepseek-web/releases/download/v1.0.33/dsh-deepseek-web-1.0.33.tgz

③ 仓库页(镜像浏览)

https://gh-proxy.com/https://github.com/irerc/dsh-deepseek-web

镜像不可用时,把上面链接里的 https://gh-proxy.com/ 去掉即可直连 GitHub(官方速度可能较慢):

  • 插件 spec:https://github.com/irerc/dsh-deepseek-web
  • 压缩包:https://github.com/irerc/dsh-deepseek-web/releases/download/v1.0.33/dsh-deepseek-web-1.0.33.tgz

不需要任何 API key:插件自带 provider 配置与本地网关(127.0.0.1:18081),装好即用。

安装后重启 DSH,设置里会出现「DeepSeek 网页版」,模型列表会多出两个模型:

  • DeepSeek-V4(网页版·快速) → deepseek-chat
  • DeepSeek-V4(网页版·深度思考) → deepseek-reasoner

首次使用需要在插件设置里登录一次(见下)。

开发时用本机路径安装
dsh plugin --profile web add link:/root/dsh-deepseek-web

或把目录复制到 ~/.dsh/profiles/<profile>/node_modules/dsh-deepseek-web,并在 package.json 的 dsh.profile.bundles 里加上 dsh-deepseek-web。

登录(需要你在浏览器里完成一次)

  1. 在手机或电脑浏览器打开 https://chat.deepseek.com 并登录(人机验证由你完成)。
  2. 取 localStorage.userToken:
    • 电脑:F12 → Console → JSON.parse(localStorage.userToken).value → 复制结果
    • 手机:地址栏输入 javascript:prompt('token',JSON.parse(localStorage.userToken).value)(需手动敲入,粘贴会被浏览器去掉 javascript: 前缀)
  3. 打开 DSH 设置 →「DeepSeek 网页版」→ 粘贴 token → 「校验并保存」。

也可以命令行:

dsh-deepseek-web login --token <userToken> --label 工作号
dsh-deepseek-web doctor

邮箱验证码登录在无浏览器环境下通常被人机验证拦住,设置界面里保留入口但多为兜底用。

账号与风控

  • 每个账号的请求串行、带最小发送间隔(默认 1200ms,可调),失败会退避。
  • 429 → 该账号冷却 60s 起指数退避(上限 10min)并切下一个账号。
  • 401 → 标记「登录失效」,不会自动重登,需重新粘贴 token。
  • 指定账号:模型名写 deepseek-chat@工作号 即可固定到某个账号。

设置项

字段 默认 说明
autoStart true 选择/调用网页版模型时自动拉起引擎
idleStopMs 600000 空闲多少毫秒后关停引擎
sendGapMs 1200 同一账号两次请求的最小间隔
maxConcurrency 4 全局并发上限(账号池总和)
sectionOrder usage,engine,accounts,addAccount,log 设置页卡片顺序,由最下方「页面设置」的 ↑/↓ 调整

设置页卡片从上到下默认是:网页版用量 → 运行设置 → 账号管理 → 添加账号 → 引擎日志 → 页面设置(没有账号时「添加账号」会临时置顶)。 「页面设置」(默认收起)可以调整前五块的先后顺序(自动保存,可「恢复默认顺序」)。

最底部是「关于」卡片:作者 irerc · DeepSeek Harness,显示插件名与版本。

最下方独立的「维护」卡片提供两个操作:

  • 清空 Token 用量记录:删除 state/usage.json,插件内累计用量归零(不影响账号、会话、登录状态)。
  • 重置所有插件设置:把 config 恢复默认值(自动启动、空闲休眠、发送间隔、并发、卡片顺序),会先弹出确认窗口再执行;窗口里可选勾选「同时删除已登录账号和 token(不可恢复)」,不勾选则保留账号。
    • 确认窗口内还有二级页「删除所有账号和数据」:彻底清空账号/token/cookie、用量统计、cookie 罐与全部设置(POST /factory-reset),需再点一次「确认彻底删除」。

目录

lib/index.js          Host 插件:入口监听、按需拉起引擎、设置界面路由
lib/client.js         客户端设置分区(__ModuleLoader__ 手写 bundle)
server/server.mjs     OpenAI 网关(流式、工具调用、续聊)
server/engine-http.mjs HTTP 引擎(PoW、SSE、账号池)
server/pow.mjs        DeepSeekHashV1 求解(wasm)
server/accounts.mjs   多账号存储与选择
server/config.mjs     运行配置
bin/cli.mjs           login/accounts/start/stop/status/doctor

状态目录:state/(accounts.json、config.json、engine.log,权限 0600)。

排障

  • 模型调用报「没有可用账号」→ 设置里没登录或 token 全部失效。
  • 报 502 AUTH_REQUIRED → token 过期,重新粘贴。
  • 引擎起不来 → 看设置页「引擎日志」或 state/engine.log。
  • 端口冲突:入口固定 127.0.0.1:18081,引擎内部用 18082。

风险提示

直连网页接口属于自动化访问,可能触发站点风控;多账号会放大风险。插件做了串行、节流、真实浏览器请求头与自然提示词,但不能保证不被限流或封禁。

MIT License

更新日志

v1.0.33

  • token 统计改用上游真实数字:网页接口的流里其实带了 accumulated_token_usage(站点自己分词算出来的「上下文 + 输出」合计),以前没用上、全靠按字数估。现在优先用它反推 prompt_tokens,上下文越大越准,不会再把长对话的输入量估小。
  • 缓存读取修对了:以前只认「插件自己记的那条网页会话还在不在」,一旦换了账号、站点回收了会话、或者 DSH 压缩历史换了指纹,缓存读取就直接掉成 0。现在按前缀语义算:除了最后一条 assistant 之后新追加的内容,其余都已经在上下文里,算缓存命中;全新对话(还没有 assistant 消息)才记 0。长对话实测能到 99%+,和官方 API 的 prompt_cache_hit_tokens 语义一致。
  • 续聊固定回到同一个账号:网页会话属于某个账号,多账号轮换时第二句换了号,上游会回 invalid chat session id。现在每条对话都会记住自己的账号,续聊照着回;万一那个号不可用,会自动换新会话 + 完整上下文重试一次,不再把 502 甩给用户。
  • 分词系数校准:中文 0.52、英文 1/3.8,跟着 DeepSeek 真实分词器走(原来 0.7 把中文估多了三成)。
  • 设置页用量卡片显示缓存读取:总 tokens / 输入 / 输出 / 缓存读取(命中率)/ 轮次,各对话详情里也加了「缓存」一列。

v1.0.32

  • 安装后明确提示需要重启:插件会比对「磁盘上装好的版本」和「正在运行的版本」,只要不一致,设置页顶部就出现橙色横幅:「已安装 vX,需要重启 DSH 后生效(当前运行 vY)」,并写明重启方法。装完即刻出现,不会再让人以为没生效。
  • 「维护」拆成两块:上半「版本更新」(检查更新 / 复制链接 / 安装),下半「数据与还原」(清空用量 / 重置设置),中间分隔线,更新和还原不再混在同一排按钮里。

v1.0.31

  • 安装链接可以直接复制:Release 说明里的安装地址改成代码块(GitHub 自带复制按钮),不再是被自动识别成超链接、换行后没法选中的样子。
  • 插件界面加「复制链接」:查到新版本时,「维护」卡片里多一个「复制链接」(复制 gh-proxy 镜像地址,一键粘贴到别的设备);「关于」卡片的仓库地址旁边也能一键复制。

v1.0.30

  • 一键安装补两道保护:装之前先看磁盘上已有的版本,已经是最新就不重复下载;link 安装(开发模式)直接拒绝并给出下载地址,不会动链接。

v1.0.29

  • 检查更新后可以一键安装:查到新版本时,「维护」卡片会多出一个绿色「安装 vX.Y.Z」按钮。
    • 从 gh-proxy 镜像下载(失败自动回退 GitHub 直链),解压后只替换 <DSH_HOME>/profiles/<profile>/node_modules/dsh-deepseek-web 这一个目录;
    • 旧目录先备份成 dsh-deepseek-web.bak-<时间戳>,替换失败自动回滚,只保留最近一份备份;
    • 安装前会先停掉引擎子进程;装完提示「重启 DSH 后生效」。
    • 如果当前是 link 安装(开发模式),不会动链接,只把安装包下好并提示路径。
  • 安装包和进度都在「维护」卡片里直接看得到,不用再去 GitHub 手动下载。

v1.0.28

  • 「已是最新版本」不再显示在运行设置中间:操作结果以前统一塞在「运行设置」卡片里,点「检查更新」后提示就夹在勾选框和空闲休眠之间,位置很怪。现在结果横幅固定在整块设置最上方(可点 × 关闭,15 秒自动消失),「维护」卡片里也会常驻显示「当前版本 vX.Y.Z / 最新版本」。
  • 账号显示账号名:账号以前全叫「浏览器登录」,失效时分不清是哪个号。现在会自动补上邮箱(启动时补、检查时补),账号列表直接显示邮箱;登录失效的账号会额外提示「登录已失效,需要重新登录(邮箱)」。

v1.0.27

  • 修复「浏览器登录抓不到 token」的真正原因:v1.0.26 里为了从网络层抓 token 写的那段注入脚本,正则里的 / 没转义,被模板字符串吃掉后整段脚本语法错误 —— 于是状态栏、提示、抓取全部失效。现在注入脚本拆成独立文件 server/inject.html(不再受转义影响),并在发布前做了语法校验。
  • 抓取来源扩到四条:请求头 Authorization: Bearer …、登录/MFA 响应里的 token、localStorage(含 {value:…} 包一层的老格式)、Cookie 与 IndexedDB(站点新版把登录态搬到这里)。随便哪条能拿到就立刻回传。
  • 新增「提取并保存 token」按钮:登录页右上角,已登录状态下点一下就会从当前页面把所有来源扫一遍,不用重新登录。
  • 抓不到时有诊断:页面 12 秒内没抓到 token,会把「localStorage / Cookie / IndexedDB 清单」回传给插件(只记 key 名,不记值),日志里可查,方便定位。
  • 「检查更新」修好了:之前 res 变量名把 HTTP 响应对象盖住,一点就报 res.writeHead is not a function。现在正常返回,没有新版本时明确显示「当前已是最新版本 vX.Y.Z(无需更新)」。
  • 风控拦截不再白屏:登录页返回 AWS WAF 人机验证(202 challenge)时自动重试两次,仍失败会显示中文说明页(等 30 秒重试,或改用邮箱+密码登录)。

v1.0.26

  • 修复 v1.0.24 的编辑事故:维护 / 页面设置 / 关于 三张卡片被误删(表现为「之前的数据全都没了」),已恢复。
  • 数据不再随插件升级丢失:状态目录从「插件包内 state/」迁移到「~/.dsh/storages/dsh-deepseek-web/」,首次启动自动把老数据复制过去(已有数据不会被覆盖)。
  • 浏览器登录能抓到 token 了:站点新版本把 token 存进 IndexedDB,原来只轮询 localStorage.userToken 抓不到;现在直接从网络层取(请求头 Authorization: Bearer …,以及登录/MFA 响应里的 user.token),新旧存储方式都覆盖。
  • 维护卡片新增「检查更新」:查 GitHub 最新 release,与当前版本比较,给出下载链接(含 gh-proxy 镜像)。
  • 接口 404 有明确提示:返回 HTTP 404:该功能需要重启 DSH 后才会加载,不再静默无反应。

v1.0.25

  • 批量登录支持验证码排队:粘贴多行 邮箱----密码 后,需要验证码的账号会自动发码并列入「待填验证码」清单,每个账号一行输入框,逐个填 6 位码即可完成登录,不用重新走一遍密码流程。
  • 批量结果会区分「已登录 / 待验证码 / 失败(含服务端原因)」。

v1.0.24

  • 新增「邮箱 + 密码登录」(不再依赖浏览器):设置 → DeepSeek 网页版 → 添加账号 →「邮箱 + 密码登录」。
    • 国外(邮箱注册)账号需要挂 VPN / 海外网络,并把「登录线路」选成「海外(邮箱注册)」。
    • 新设备首次登录会被要求邮箱验证码,界面会自动多出发码/填码两栏(支持 MFA 流程)。
    • 登录成功后自动加入账号池,失败会返回服务端原文(如 PASSWORD_OR_USER_NAME_IS_WRONG)。
  • 批量登录:一次粘贴多行 邮箱----密码 或 备注----邮箱----密码,逐个登录并加入账号池,需要验证码的行会单独列出。
  • 批量导入 token:手动添加区块支持多行 备注----token----cookie,一次导入多个已有账号。

v1.0.23

  • 注册页可用性提示:/sign_up 会做人机验证,在本地反代域名(127.0.0.1)下常常过不了,表现是「注册」按钮一直转圈。现在注册页顶部会提示改用邮箱验证码登录(首次登录自动创建账号,效果等同注册),并给出返回登录的路径。
  • 登录按钮不再遮挡页面:注入的「没有账号?邮箱注册 / 退出本页登录」移到右上角竖排,注册页自动隐藏注册入口,不再压在「返回登录」上。
  • 登录/注册失败有据可查:所有 /api/v0/users/* 请求只要返回的 code 非 0(或 biz_code 非 0),页面底部就会显示服务端原文;请求超过 15 秒没返回也会提示。

v1.0.22

  • 登录页不再白屏:静态资源(main.js 等)带 2 次快速重试(6s/次),失败立刻回磁盘缓存;缓存键去掉了页面每次加载都会变的 ?t=,同一份 main.js 现在能真正命中缓存;缓存目录只保留最近 30 个文件。
  • CDN 响应分级:只有「200 + javascript/css」才当作成功并写缓存;503/502、WAF 挑战页(200 但返回 text/html)一律走重试→缓存→报错,不会再把坏内容写进缓存或当脚本执行。
  • 站点页重试预算收紧:从 3×30s 改成 2×8s,弱网下快速失败而不是干等 90 秒。
  • 登录失败能看到真实原因:登录/注册/发码接口返回非成功时,页面底部会显示上游返回的原文(例如字段校验失败、风控拒绝)。
  • 安装链接固定到 tag:README 与各旧发行版的说明都改成 releases/download/v<版本>/…,不会再因为发新版本而 404。

v1.0.21

  • 历史对话没有名称时显示「未命名对话 xxxxxxxx」(老记录产生时还没有存名称),新对话一律显示首条提问。

v1.0.20

  • token 数量带单位显示:累计用量和单对话用量过万显示 K、百万显示 M、十亿显示 B(如 3.67M tok、1.25B tok),鼠标悬停可看完整数字;万以下仍显示原数字。

v1.0.19

  • 登录线路支持国内 / 海外:设置 → DeepSeek 网页版 → 添加账号 → 「登录线路」三选一。
    • 自动:跟随浏览器语言(默认)。
    • 国内:中文登录页,手机号 / 微信 / 邮箱登录。
    • 海外(邮箱注册):英文登录页,可直接用邮箱注册 DeepSeek 海外账号;登录页右下角新增「没有账号?邮箱注册」入口。
    • 发验证码的 locale 也会跟着线路切换(zh_CN / en_US),登录页状态栏会显示当前线路。
  • 对话详情显示对话名称:用量卡片里的各对话详情不再显示一串哈希 ID,改成该对话第一条用户消息(如「帮我统计一下这个仓库里 mjs 文件的数量…」),最多 40 字;老记录没有名称时仍回退显示 ID。

v1.0.18

  • 引擎日志并入「维护」卡片:不再单独占一张卡,改成维护卡片里的一行「▸ 引擎日志(最近 40 行)」,点开才显示;「页面设置」的可排序列表里也同步去掉了它。

v1.0.17

  • 「网页版用量」里的各对话详情默认收起,点「▸ 各对话详情(N)」才展开,卡片更短。

v1.0.16

  • 「显示任务执行中的说明文字」的说明收进开关后面的 ? 气泡里,点击展开/收起,默认不占版面。

v1.0.15

  • 设置项文案改写:开关改为「显示任务执行中的说明文字」,解释改成两句人话——「模型在动手前常会先写一句说明……开启后这句说明会显示;关闭只保留命令执行记录和最终回答」。

v1.0.14

  • 新增开关「显示执行任务过程中的思考输出」(设置 → DeepSeek 网页版 → 运行设置): 默认关闭。关闭时,调用工具的轮次只显示工具调用本身,不再显示模型先写的那段大号白字说明(「我先看看 XX / 继续排查 YY」);思考块与最终回答不受影响,打开后恢复原样。

v1.0.13

  • 内部标记不再漏进正文:网页模型会吐 <|DSML|tool_calls>、写成歪格式的 <DSML||calls>(全角竖线)、甚至整段 {"role":"assistant",...} JSON。现在这些一律解析成 tool_calls 或被吞掉,任何情况下都不会出现在对话里。
  • 参数修不好也不再丢弃调用:以前缺必填参数会丢掉调用、并在正文里写一句「参数不完整,已忽略」,用户只能手动说「继续」;现在照原样透传给宿主工具层,由工具报错、模型在同一轮里自己改(与官方 API 行为一致)。
  • 写坏的 JSON 自动修复:字符串里漏转义的换行/制表符会被补回;实在解析不了就按 "name"/"arguments" 逐字段抠出调用。
  • 支持同时跑多个对话:去掉全局串行锁,改为「全局并发 maxConcurrency + 每账号并发 perAccountConcurrency(默认 2)」。两个对话同时请求实测 7.3s(串行需 12.0s)。

v1.0.12

  • 大幅减少「上下文已压缩」的频率:DSH 的自动压缩阈值是 min(窗口×0.8, 窗口 − 回复预留 − 65536),而默认 headroom 固定 65536。之前窗口声明 131072、回复预留 32768, 阈值只剩 32768 token —— 每多几轮就压一次,还常常只压掉 1 条记录(约 3~4k token),上下文被反复切碎。 现在改为声明窗口 196608(192K)、回复预留 16384,阈值抬到 约 114688 token,压缩频率降到原来的 1/3.5。
  • 插件自身的 prompt 预算同步放宽到 118K token / 330K 字符(仍低于网页版真实 128K 上限),避免刚放宽阈值就被插件自己截断。

v1.0.11

  • 工具参数按 schema 自动纠正类型:网页模型没有约束解码,常把 timeoutMs: 60000 写成 "60000"、run_in_background: true 写成 "true",导致 DSH 报 invalid arguments: "timeoutMs" must be a number 并空转重试。 现在按 tools 里的 JSON Schema 逐层纠正:数字字符串 → 数字(含科学计数法)、"true"/"false" → 布尔、JSON 字符串 → 数组/对象,嵌套对象与数组元素同样处理;纠正后再做必填校验,日志里会打印 [tool] coerced args。
  • 回复契约里补一句「参数类型严格按 schema,数字/布尔写裸值」,从源头减少此类错误。

v1.0.10

  • 仓库迁移:GitHub 用户名由 wsxuyue 改为 irerc,仓库地址变为 https://github.com/irerc/dsh-deepseek-web。 旧的 wsxuyue 链接会被 GitHub 自动 301 跳转到新地址,已安装的用户无需重装。
  • 安装命令、徽章、package.json 的 repository/homepage/issues 与插件「关于」页链接全部同步为新地址。

v1.0.9

  • 请求体 100% 是 API JSON:发出去的整段内容就是 {"model":"deepseek-web","messages":[…],"tools":[…],"tool_choice":"auto"}, JSON 外面不再有任何中文包装;「按 assistant JSON 回复」的要求改成 messages 里的一条 system 消息。

v1.0.8

  • 请求体就是真正的 API JSON:发给网页模型的是标准 OpenAI 请求体 {"model":"deepseek-web","messages":[...],"tools":[...]}(消息里保留 role / content / tool_calls / tool_call_id),后面再附一小段「按 assistant 消息 JSON 回复」的要求。
  • 回复解析兼容两种形状:{"role":"assistant",...} 与完整响应 {"choices":[{"message":{...}}]}。

v1.0.7

  • 空参数的工具调用直接拦下:模型信息不足时经常甩一个 {} 调用(截图里 输入 {} → 无障碍服务报 ACCESSIBILITY_UNAVAILABLE)。现在参数为空但工具需要参数时判为无效,返回「参数不完整,请补全」提示,不再把坏调用丢给工具层。
  • 配合 v1.0.6:工具调用缺 description 自动补全,缺其它必填则丢弃并回提示。

v1.0.6

  • 按 API 格式收发:发给网页模型的是 API 请求体形状的内容(messages[] 带 role / tool_calls / tool_call_id,加工具清单),并要求模型按 OpenAI assistant 消息格式回复: {"role":"assistant","content":...,"tool_calls":[{"name":...,"arguments":{...}}]}
    • 桥接器解析后翻译成标准 OpenAI 响应(正文 + tool_calls),解析失败自动退回纯文本,不会把 JSON 漏给用户。
    • 需要旧式「正文 + 标记」协议时:环境变量 DSW_REPLY_FORMAT=text。
  • 上游报错不再静默:网页端返回「消息发送过于频繁」等提示时直接回 429/502 说明原因,不再空回复重试三次、越retry越被限流。

v1.0.5

  • 一段 DSH 对话只用一条网页对话:首轮新建,之后一直复用,不再因为历史对不上、重试、压缩就新开。
  • 压缩后能认回原会话:DSH 压缩上下文、首条消息变了时,用「最近几轮回复的指纹」把原来的网页会话找回来,并补最近 8 条继续(日志里是 adopted existing web session by reply digest / continuation+resync)。
  • 超长交给网页端:不再本地整段重发或新开会话,上下文超过网页端上限时由网页端自行清理。

v1.0.4

  • 行为对齐官方 API:同一段对话能复用网页会话时只补「网页会话里还没有的那部分」(省 token、命中缓存);一旦历史对不上(编辑/压缩/换会话),整段重发 —— 效果与无状态 API 一致。
  • 工具参数校验与修补:DSH 的工具会拒收缺必填参数的调用,模型收到报错后会反复重试坏调用(截图里的 missing required property "description" 循环)。
    • description 缺失时由 command 自动推导补全;
    • 其他必填缺失或参数不是合法 JSON 时丢弃该调用,并回一句「参数不完整,请补全重试」,不再把坏调用交给工具层。
  • 工具说明标注「必填:…」,并在协议里强调缺参数会被拒绝。

v1.0.3

  • 修复「满屏 \n」的乱码回复:模型给出的工具调用块参数过长、被上游截断(没有结束标记)时,旧代码会把整段 JSON 当正文吐出来,用户就看到带 \n 转义的乱码。
    • 现在:能解析就照常当工具调用;解析不了只给一句「工具调用内容过长被截断,请拆成更小步骤」,不再把原始 JSON 当正文。
    • 正文里成片出现的 \n 转义会自动还原成真实换行。
  • 提示词约束:正文必须用真实换行 / 普通 Markdown,禁止输出 JSON 转义写法;工具参数里的长文本要求分块(单次约 2000 字)。
  • 历史里展示工具参数时会把转义还原成可读文本,避免模型跟着模仿。

v1.0.2

  • 上下文不再被截断:以前 prompt 超过 6 万字符会把工具说明整段丢掉,导致模型「不会用工具、看不到提问功能」。现在按 token 预算(默认 96K,可用 DSW_MAX_PROMPT_TOKENS 调)分配:
    • 系统设定与工具说明永远保留(工具说明放不下时先降级压缩,而不是删除)
    • 只从最旧的历史开始裁剪,并在正文里标注省略了多少条
  • 工具结果可见:最后一条用户消息之后的 assistant(tool_calls) 与 tool 结果现在会一起发给网页模型,并在历史里标成「(我调用了工具 X)/(X 的返回结果)」,模型不会再重复调用同一个工具。
  • 工具调用协议更明确:提示词要求「整条回复只输出工具块」,并点明需要用户选择时调用 ask_user_question 这类提问工具。
  • 流式返回补充 role: assistant 起始块,兼容更多 OpenAI 客户端。
  • 工具说明默认给出更完整的描述与参数(600 字描述 / 2400 字参数),预算不足时自动压缩。
—/ 5

No ratings yet

Verified DSH bundle

Commit f9bcb44554f2

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout