模型输出触顶时自动发送继续,让回复接着往下写
30.8/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/29 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Soulize/dsh-continue-on-limit-host该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 33 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(unknown · 2026/11/1) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意未发布到 npm registry,仅可从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-continue-on-limit-host(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/13 11:39:55
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
读写/删除本地文件
查看扫描证据(共 2 处,展示前 2 条)
- 写入本地文件lib/index.js:79
mkdirSync(logDir, { recursive: true }) - 写入本地文件lib/index.js:80
appendFileSync(logPath, `${new Date().toISOString()} ${message}\n`, 'utf8')
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/dsh-client-ui-plugin-manager@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-llm@deepseek-ai/dsh-settings给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 触顶自动发送继续
- 回复接着续写
DeepSeek Harness 自动续写:本地模型撞到输出 token 上限时,自动发「continue」,让回复接着往下写
README
由 DeepSeek 最新模型翻译生成dsh-continue-on-limit-host
DeepSeek Harness / DSH 的 Host 侧全局 max-tokens 自动续写插件。
模式
插件提供两个严格互斥的实现:
Follow-up(默认)
provider finish=max-tokens
↓
AgentLoop 正常记录 max-tokens ↓ agent/turn-stopping ↓
agent.followup("继续")
↓
下一 Turn
Follow-up 保留 DSH 原生语义:
- Assistant stream 中仍是 finish=max-tokens
- 当前 Turn 仍是 turn/end(max-tokens)
- “继续”进入 next-turn
Steer(透明同 Turn)
0.4.0 起,Steer 不再等 max-tokens 进入 AgentLoop 后补救,而是在官方 llm/stream waterfall 直接截获终止 chunk:
Provider
finish=max-tokens
↓
dsh-continue-on-limit-host
↓
展开完整文档(README 剩余 1 节)
dsh-continue-on-limit-host
DeepSeek Harness / DSH 的 Host 侧全局 max-tokens 自动续写插件。
模式
插件提供两个严格互斥的实现:
Follow-up(默认)
provider finish=max-tokens
↓
AgentLoop 正常记录 max-tokens ↓ agent/turn-stopping ↓
agent.followup("继续")
↓
下一 Turn
Follow-up 保留 DSH 原生语义:
- Assistant stream 中仍是 finish=max-tokens
- 当前 Turn 仍是 turn/end(max-tokens)
- “继续”进入 next-turn
Steer(透明同 Turn)
0.4.0 起,Steer 不再等 max-tokens 进入 AgentLoop 后补救,而是在官方 llm/stream waterfall 直接截获终止 chunk:
Provider
finish=max-tokens
↓
dsh-continue-on-limit-host
↓
max-tokens 仅作为插件内部触发信号 ↓ 需要时 agent.steer("继续") -> next-step ↓ 对 AgentLoop 输出 finish=stop ↓ AgentLoop 从未进入 sticky max-tokens 状态
0.4.2 起,Steer 对“max-tokens 时已经输出的 tool-call”提供两种可选策略。
discard:0.4.1 安全策略(默认)
DSH 自己的 BlockAssembler 在 finish=max-tokens 时会丢弃该响应中的全部 tool-call。这个模式保持相同语义:
Provider finish=max-tokens
+ zero or more tool-call blocks
↓
从第一个 tool-call 起暂存后续 stream ↓ 最终确认 max-tokens ↓ 丢弃该响应中的全部 tool-call chunks 保留 text / reasoning ↓
agent.steer("继续")
↓
对 AgentLoop 输出 finish=stop
若最终不是 max-tokens,暂存内容会按原顺序全部释放,所以正常 finish=tool-calls 不受影响。
passthrough:0.4.0 兼容策略
这个模式不暂存 tool-call。chunk 会直接进入 Harness:
tool-call chunks
↓
直接进入 Harness
最终 finish=max-tokens ↓ 如果此前至少有一个 tool-call 已 block-end → 对外改成 finish=tool-calls → 不额外 steer 否则 → 对外改成 finish=stop → agent.steer("继续")
它的用途是保留模型在达到输出上限前已经生成的工具调用,避免续写后的模型认为该调用已经发生而跳过它。
这是 0.4.0 的兼容行为:因为 tool-call chunk 已经提前交给 Harness,最终发现 max-tokens 后无法再撤回,因此它会绕过 DSH 原生的“max-tokens 一律丢弃 tool-call”策略。用户需要自行选择这一取舍。
两种策略都满足同一个目标:
- AgentLoop 不会看到 FinishReason { kind: "max-tokens" }
- 持久化 assistant/message.stream 中不会记录 max-tokens
- 不会触发 DSH 的 sticky turnEnds=max-tokens
- 不需要修改 Session.append()
- 不需要改写 turn/end
- 不需要 tool-loop bridge
对 shipped pi-ai adapter,discard 会把 replay stopReason: "length" 改成 stop 并删除 tool-call replay entries;passthrough 会按最终伪装结果改成 stop 或 toolUse。DeepSeek Messages 的 replay metadata 本身不保存 stop reason。
配置
enabled: true
continuationMode: followup # followup | steer
steerToolCallPolicy: discard # discard | passthrough
continueText: 继续 maxConsecutive: 3 minIntervalMs: 0 includeSubagents: true debugLogging: false
字段说明:
| 字段 | 默认值 | 说明 |
| enabled | true | 总开关 |
| continuationMode | followup | Follow-up 或透明 Steer |
| steerToolCallPolicy | discard | Steer 遇到 max-tokens + tool-call 时:discard=0.4.1 暂存并丢弃;passthrough=0.4.0 兼容透传 |
| continueText | 继续 | 自动 Steer / Follow-up 的文本 |
| maxConsecutive | 3 | 最多连续注入多少次续写;0 不限 |
| minIntervalMs | 0 | 自动注入之间的最小间隔 |
| includeSubagents | true | 是否处理 Subagent |
| debugLogging | false | 详细日志 |
在 Steer 模式中,maxConsecutive 限制的是插件主动注入的 agent.steer() 次数。discard 每次截获 max-tokens 都会尝试 Steer;passthrough 在已经有 closed tool-call 时改走原生工具执行,不额外消耗一次 Steer 计数。
配置为 volatile,可在 Plugins 页面热更新;模式切换会清空上一模式的连续计数和已处理状态。
Steer 为什么要在 llm/stream 做
DSH AgentLoop 对 max-tokens 有 sticky 语义:
const stepEnd = await this.step(decision)
if (turnEnds === null || turnEnds.kind !== 'max-tokens') {
turnEnds = stepEnd
}
一旦某个 Step 把 turnEnds 设成 max-tokens,后面的正常 tool-calls / completed 都不能覆盖它。
所以 Steer 0.4.0 的策略是:不让这个标识进入 AgentLoop。
插件只在 llm/stream 内部看到真实 max-tokens,然后按 steerToolCallPolicy 把对外终止原因替换为普通 stop 或 tool-calls。这样 AgentLoop 不会进入 sticky max-tokens 状态。
Follow-up 检测
Follow-up 仍在 agent/turn-stopping 读取最新 Assistant settlement:
latest assistant/message | assistant/attempt
↓
lastAssistantStreamChunk(stream, "finish")
↓
finish.reason.kind === "max-tokens"
然后调用 agent.followup()。
队列处理
自动注入前会检查:
agent.inbox.nextTurn
agent.inbox.nextStep
已有待处理工作时不再重复插入。
Steer 已截获的 max-tokens 即使因为 inbox、次数上限或运行中配置变化而没有再注入,也不会重新暴露给 AgentLoop。
Subagent
includeSubagents=true 时,live Subagent 与主 Agent 使用同一策略。
- Follow-up:max-tokens Turn 结束前排入 next-turn
- Steer:max-tokens 在模型流边界被隐藏,同 Turn 按原生 Step/tool loop 继续
Steer 模式最终正常完成时,Subagent 看到的是普通 completed Turn,而不是 max-tokens settlement。
日志
日志:
$DSH_HOME/logs/dsh-continue-on-limit-host.log
Windows 通常为:
%USERPROFILE%\.dsh\logs\dsh-continue-on-limit-host.log
Follow-up 重点标记:
MAX_TOKENS_PRESTOP_CAPTURED
FOLLOWUP_MAX_TOKENS_CAPTURED
FOLLOWUP_QUEUED
Steer 重点标记:
STEER_MAX_TOKENS_INTERCEPTED ... policy=discard
STEER_MAX_TOKENS_INTERCEPTED ... policy=passthrough ... mask=tool-calls
STEER_QUEUED
STEER_SEND_SKIPPED reason=closed-tool-call
TURN_END_CAPTURED ... reason=completed
安装
dsh plugin --profile web add github:Soulize/dsh-continue-on-limit-host
更新时建议固定到最新 commit:
dsh plugin --profile web add github:Soulize/dsh-continue-on-limit-host#
自检
npm test
Smoke test 覆盖:
- Follow-up 保留 max-tokens
- Steer 将 max-tokens 映射为 stop
- discard:max-tokens 响应中的 tool-call 全部丢弃
- passthrough:closed tool-call 在 max-tokens 下按 0.4.0 行为保留
- 正常非截断 tool-calls 原样通过
- pi-ai replay length 同步隐藏
- Steer 次数上限下仍不向 AgentLoop 暴露 max-tokens
- Follow-up / Steer 热切换隔离
- Plugins 配置页注册
兼容性
- DSH:>=0.1.7-rc.1
- 不设置最高 DSH 版本上限
- Node.js:>=20
关键接口:
- llm/stream
- isAgentLoopRequest()
- agent/turn-stopping
- Agent.followup()
- Agent.steer()
- Agent.inbox
- session/event
- volatile Config
- plugins.row.config
License
MIT预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Soulize/dsh-continue-on-limit-host
模型输出触顶时自动发送继续,让回复接着往下写
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 14,822已汉化DeepSeek 客户端
73
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 718已汉化DSH
71.2
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,261已汉化DSH
70.7
破甲评测WoYun520/dsh-purge
在本机分离宿主拦截与模型拒绝,做受控红队评测
★ 199已汉化DSH
69.7