dsh-max-token-auto-continue:根智能体在 max-tokens 截断后自动续跑

前言

在 DeepSeek Harness(DSH)里跑长任务时,根智能体某一回合可能因为模型达到最大输出 token 上限而以 turn/end、reason 为 max-tokens 结束。此时会话往往还没做完,但默认需要你再发一条消息才能继续。对需要连续输出的编码、文档生成或多步工作流,这种停顿会打断节奏。

社区插件 dsh-max-token-auto-continue(维护者 Wepoi9)在检测到上述结束原因后,会在智能体进入 idle 后按 DSH 既定路径自动续跑,并用次数上限与 fail-closed 规则避免无限重试。本文基于仓库 README 与 package.json(插件版本 0.1.0,许可证 MIT)整理安装与行为说明;DSH 社区插件目录见 SkillHub 条目(与 DeepSeek Harness 核心发行版无从属关系,属社区维护)。

这是什么

dsh-max-token-auto-continue 是 DSH 的 community host plugin:当 根智能体 因 max-tokens 结束回合时,自动继续会话;普通会话走 agent.followup(),若存在已 disarm 的活跃 /goal 则走 GoalService.resume()。它不冒充人类输入,不持久化会话数据,也不访问外部网络。

分类上在 SkillHub 归为 工作流;GitHub 星标数为 0(以目录/仓库公开信息为准)。

核心行为

触发条件与续跑路径如下。

  1. 监听根智能体回合以 turn/end、reason max-tokens 结束。
  2. 等待智能体变为 idle。
  3. 按会话类型续跑:
    - 普通会话:agent.followup();
    - 活跃且已 disarm 的 /goal:GoalService.resume()。

续跑文本与延迟在插件内 固定,README 未提供可配置项。

安全与边界

README 明确下列约束,便于评估是否启用。

要点 说明
作用范围 仅 根智能体;子智能体回合不会自动续跑
输入来源 不冒充人类;续跑消息使用 source.kind: "dsh-max-token-auto-continue"、form: "notice"
Goal 状态 对 paused、blocked、complete,或 active 且 armed 的 goal 不 自动续跑
取消条件 更新的的人类输入、更新的回合、插件卸载或禁用会使待处理的续跑失效
失败策略 出错时停止续跑路径,不会 无限重试
副作用 无持久化、无 UI 自动化、无后台网络重试、无外部网络访问

连续自动续跑次数由配置 maxConsecutive 限制(默认 3),形成「有上界的 max-token 链」。

配置

在目标 profile 的 cordis.patch.yml 中,以 id dsh-max-token-auto-continue 添加配置项可覆盖默认(bundle 声明会写入 profile 所需条目)。

配置项 默认值 含义
enabled true 是否启用自动续跑
maxConsecutive 3 同一连续 max-token 链上,最多自动续跑次数

安装与启用

插件 不提供 dsh plugin add github:... 一类远程一键安装;需本地检出仓库、构建后,用 绝对路径 加入 profile。

  1. 在仓库根目录安装依赖并构建、跑测试:
npm install
npm run build
npm test
  1. 将本地检出目录加入目标 profile(Web 环境将 <profile> 换为 web):
dsh plugin --profile <profile> add <absolute-path-to-this-repository>
dsh --profile <profile> --dump-config
  1. 如需改 enabled / maxConsecutive,在对应 profile 的 cordis.patch.yml 中配置 id 为 dsh-max-token-auto-continue 的条目。

构建产物:TypeScript 编译到 lib/,插件入口为 lib/src/index.js。@deepseek-ai/dsh-llm 在运行时由 DSH 进程解析,插件使用宿主自带的副本。

与 DSH 版本的兼容性

README 记录 最新完成 live E2E 验证的 DSH 版本为 0.2.1-rc.2(2026-10-17:构建、13 项测试、web profile 零插件拒绝、正常路径 max-token 自动续跑与 Goal resume 等)。package.json 的 engines.dsh 还声明了从 0.1.6-alpha.2 到 0.2.1-rc.2 等多档兼容目标;其中 0.2.1-alpha.2 仅有声明与源码级 API 审查,未 在该版本上完成 live 验证。0.2.1-alpha.1 的自动续跑与 Goal resume 也尚未在该版本上重新验证。升级 DSH 前建议对照仓库 README 的 Compatibility 表。

典型用法与运维注意

README 未给出独立「业务场景脚本」;实际效果即:在长输出任务中,当根智能体多次因 max-tokens 结束时,插件会在 idle 后自动插入 notice 形 follow-up(或 Goal resume),直到达到 maxConsecutive 或出现更新的人类输入/新回合。

运维上 README 强调:插件会在 输出被截断后不等人类再发消息 就继续工作,适合长任务,但若模型已在错误方向上触达 max-tokens,也可能 延长非预期任务。主要约束仍是:仅根智能体、maxConsecutive、新输入/新回合覆盖,以及 fail-closed。

插件以 当前 DSH 进程权限 运行;安装前请自行审阅 源码与 LICENSE,确认符合你的安全与合规要求。

隐私与贡献

插件不持久化会话数据,不向外部服务发送数据;对会话的变更仅限于上述有界的续跑消息或 Goal resume 调用。

问题反馈或 PR 可到 GitHub 仓库;若报告兼容性,README 建议附上 DSH 版本、profile、普通会话还是 /goal、观察到的 turn/end reason,以及是否预期发生续跑。

链接

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜