证据快照复核于 2026-09-16GitHub 数据核对日期: 2026-08-21
证据已验证Plugin Bundle自动化与智能体deepseek-harness Profile

dsh-continue

一个用于受限网络恢复和安全无人值守任务续办的可选 DeepSeek Harness 插件包。

快速了解

它能做什么

一个用于受限网络恢复和安全无人值守任务续办的可选 DeepSeek Harness 插件包。

本站提供的是中文说明,不代表该项目或 Plugin 自身提供中文界面;语言支持请以上游文档为准。

使用场景
自动化与智能体自动化工作流自动化智能体
适配技术
deepseek-harnessdsh-cameldsh-llm-retry
兼容性

deepseek-harness Profile
Not declared in supplied evidence

可信度与状态

证据已验证
核对日期 2026/9/14 UTC 14:16

有代码证据的贡献

它为 DSH 增加什么

Continue 任务预设

提供 recommended、resilient 和 unattended-safe 任务策略预设,用于恢复与严格限定的续办。

机制证据

选择前先看

dsh-continue 在下游重试放弃后提供任务级恢复,并可选地处理推荐答案、二元续办确认、Plan Mode 退出和纯文本续办。其文档说明:歧义、风险、不完整或无法验证的情况会回到官方 UI;所有可执行能力默认关闭。

适合谁

希望通过明确的任务级或配置档策略处理常规低风险中断,而无需每轮值守的 DeepSeek Harness 用户。

常见任务

  • 在下游恢复未处理时,重试已配置的 TIMEOUT、TRANSPORT 或 SERVER 瞬态故障。
  • 为符合条件的提示选择唯一且明确标注为推荐的答案。
  • 使用任务预设启用推荐答案、韧性恢复或严格限定的无人值守续办。
  • 在 commands 服务可用时,通过 /continue 查看、暂停、恢复、解释或重置行为。

权限与数据

该插件包会操作 Harness 的任务/会话状态,并可选择性保留学习状态。

权限
  • 可向任务会话写入文档所述的 Continue 配置、控制、活动和可选学习追加事件。
  • commands 服务可用时,可通过可选命令集接收 /continue 控制和配置命令。
数据处理
  • 决策学习默认关闭,且仅限于经过验证的、符合条件的人工选择。
  • 自适应网络学习可单独配置,并按 provider、model 和 error code 隔离学习到的延迟状态。
  • 项目级决策记忆为可选功能,使用可选的 @deepseek-ai/dsh-settings 依赖;文档称项目标识会被哈希。
外部服务
  • 与 DeepSeek Harness 及其对等依赖集成;可选集成包括 commands、settings、Plan Mode、dsh-camel 和 dsh-llm-retry。
凭据
  • 提供的证据未声明凭据要求。

局限

  • 需要 Node.js 20 或更高版本,以及所声明的 DeepSeek 对等依赖。
  • 提供的证据未声明 Harness 版本范围。
  • 未知、歧义、有风险、多选、自由文本或不完整的输入会被刻意交回官方 UI。
  • 默认将 RATE_LIMIT 交给 dsh-camel;同时为该代码配置两个工具会产生所有权重叠警告。
  • settings 存储不可用、只读、无效或失败时,项目存储可能降级为任务级。

DSHub 已核对

  • 已验证不可变源提交、插件包清单和 Cordis patch 结构。
  • 包清单声明了 0.2.2 版本、MIT 许可证、Node.js >=20、对等依赖以及 prepare/prepack 构建脚本。
  • 提供的 README 说明了可选启用的默认值和任务策略控制项。

DSHub 未核对

  • 尚未执行或独立验证安装、运行时行为、命令可用性、重试行为,以及与特定 Harness 版本的兼容性。
  • 虽然已验证 npm 注册表身份,但未审计 npm 包内容。

固定版本安装

安装 dsh-continue

这个Plugin Bundle没有 DSH Plugin 安装操作,请根据源码文档使用真实交付方式。

访问源码项目

维护者原文

项目 README

查看 commit 01cc9e1 对应的 README
维护者编写的上游内容原文于 2026/9/14README.md 获取,正文和仓库相对媒体固定到 commit 01cc9e13ced5,内容哈希为 8d529a5d84a8。以下是未经 DSHub 翻译的上游原文,语言可能与当前页面不同;第三方托管的 badge 可能独立更新。

dsh-continue

Chinese documentation: docs/README.zh-CN.md

dsh-continue is an opt-in DeepSeek Harness plugin for safe unattended task continuation. It combines deterministic recovery after downstream retries, exact (provider, model, error-code) adaptive network learning, task-scoped configuration injection, and narrowly bounded automation for unique recommendations, binary continue prompts, valid Plan Mode exits, and plain-text continuation. It is designed for projects where transient interruptions and routine low-risk questions should not require someone to watch every turn.

The 0.2.x feature set also includes /continue status, /continue explain, pause/resume controls, durable activity and learning events, project-scoped decision memory with task-scope fallback, verified manual-decision provenance, suggest-only continuation candidates, configurable retry budgets, and fail-closed safety boundaries. Task session overrides take precedence over plugin defaults; unknown, ambiguous, risky, or unverified input is delegated to the official UI. Learning is off by default, and Continue never uses an LLM to guess what a question or error means.

Every executable capability is off by default. Installation alone changes no task interaction, retry, learning, or approval behavior.

How Continue differs from related plugins

Choose dsh-continue when the primary problem is task-level recovery and safe unattended handling of routine questions. The projects below overlap in retry or continuation terminology, but they solve different layers of the problem.

Related plugin Primary focus What Continue adds or deliberately does not do
@syncended/dsh-retry Generic and transient model-error retries, provider filters, exponential backoff, and Retry-After Continue is a task-level continuation layer: it first delegates request recovery, then handles configured network failures, recommendation prompts, binary continuation, and Plan Mode transitions. It does not replace generic model-error retry.
dsh-client-auto-continue / dsh-auto-continue Web UI interruption recovery by sending a configured “continue” follow-up, with adaptive backoff, loop detection, and idempotency guards Continue uses deterministic DSH events and structured state, does not blindly send a generic user message, and adds exact route learning, verified decision memory, recommended answers, Plan Mode handling, and fail-closed risk boundaries.
@linxin666/dsh-chat-recovery Manual Web UI recovery by editing the previous message, forking a session, and retrying a failed turn Continue automates only eligible recovery and decisions without rewriting history or forking; ambiguous or risky cases still return to the user.
@deepseek-ai/dsh-llm-retry Official exact-provider agent-loop retry with durable retry events and bounded/always policies Continue gives this lower-level retry path first refusal, then handles the higher-level network/decision workflow after it declines. It adds task policy, learning, and safety controls rather than duplicating provider retry events.

These comparisons describe scope, not endorsements; check each project for its current release behavior. Continue never approves privileged or irreversible actions and never uses an LLM to guess what a question or error means.

dsh-camel is complementary rather than a comparison target here: install both when a project needs Camel's free-model RATE_LIMIT protection and Continue's non-rate network recovery or safe unattended decisions. By default, Camel owns rate limits and Continue owns TIMEOUT, TRANSPORT, and SERVER recovery.

Install

After the package is published to npm, add it to a profile:

dsh plugin --profile <profile-name> add dsh-continue

It can be installed with dsh-camel. No commands, settings, systemPrompt, or Plan Mode service is required for the base plugin to load; an unavailable optional service disables only its corresponding integration.

Quick start and presets

Use a task command for a one-task override:

/continue preset recommended
/continue preset resilient
/continue preset unattended-safe

The presets are ordinary task patches. They never enable learning.

Preset Enables
recommended unique explicit recommended-option selection
resilient transient network recovery and recommended-option selection
unattended-safe resilient, binary continue confirmation, valid Plan Mode exit, and narrow plain-text continuation

For a smaller explicit policy:

/continue set {"network":{"enabled":true},"recommended":{"enabled":true}}
/continue set {"continuation":{"enabled":true,"autoConfirmContinue":true}}

Configuration and task injection

Precedence is always:

task session override > plugin global defaults > built-in values

Set global defaults in the plugin row of cordis.patch.yml:

- id: continue
  config:
    defaults:
      network:
        enabled: true
        mode: bounded
        maxRetries: 5
      recommended:
        enabled: true
      continuation:
        enabled: false

A launcher, preset, or another plugin can inject an isolated policy for one task:

ctx.continue.setTaskConfig(agent, {
  network: { enabled: true },
  recommended: { enabled: true },
})

The patch is copied and written as a version-1 continue/config event. It survives resume and is inherited by a fork. null resets an override. Legacy version-1 config and control events remain replayable.

All input is schema- and runtime-validated. Unknown fields, invalid bounded retry policies, unsafe counts, oversized local timer delays, a multiplier below 1, and overlapping affirmative/negative labels are rejected.

Commands and control

When the optional commands service is available:

/continue status
/continue set <JSON object>
/continue off
/continue reset
/continue preset <recommended|resilient|unattended-safe>
/continue pause [<Nms|Ns|Nm|Nh>]
/continue resume
/continue explain
/continue learn <on|off|status|candidates|approve <candidate-id>|forget <record-id|--all>>

pause stops Continue-owned waiting, plain-text steering, structured automatic answers, and Plan Mode auto-approval for the task; resume re-enables eligible automation. status prints the effective policy, pause state, learning resolution, storage scope, and latest activity. explain reports the last automatic/delegated/blocked decision. off writes explicit false switches; unlike reset, it cannot re-inherit enabled global defaults.

Network recovery and Camel coexistence

Built-in network codes are TIMEOUT, TRANSPORT, and SERVER. RATE_LIMIT is deliberately excluded and is delegated to dsh-camel. Continue handles it only if the task or global policy explicitly adds RATE_LIMIT to network.codes; this configuration logs an ownership-overlap warning, so configure exactly one retry owner for that code.

Classification is deterministic, in this order:

  1. an unclaimed RATE_LIMIT is delegated to Camel;
  2. an explicitly configured network code is transient;
  3. configured permanent code, then permanent HTTP status;
  4. configured retryable HTTP status;
  5. optional message-pattern fallback (permanent patterns before retryable patterns);
  6. unknown failures pass through.

On a matching transient failure, Continue first gives downstream middleware, including dsh-llm-retry and Camel, the chance to recover. If downstream already returns { kind: 'retry' }, Continue returns it unchanged and writes no retry event. Otherwise it writes the standard llm/retry and llm/retry-started events using policyKey: "dsh-continue:network:v1", waits, then retries.

The default backoff is 2 seconds, multiplier 2, local cap 60 seconds, and mode: unlimited once network recovery is enabled. Use mode: bounded with maxRetries for a limit. A valid provider Retry-After wins when enabled and is capped only by the Harness/Node single-timer limit (2147483647ms). Cancellation, unload, pause, or an ineligible policy change stops the wait. A persisted wait keeps its original deadline, preventing duplicate retry schedules.

Adaptive network learning

Network adaptation is separately configurable under learning.network. If network.enabled=true and no explicit learning-frequency or delay control is supplied, it uses safe adaptive defaults: increase ratio 2, decrease ratio 0.75, recovery streak 3, state TTL 7d. An explicit learning.enabled=false or learning.network.enabled=false disables it. Task settings override global settings.

Learned delay state is isolated by the exact (provider, model, error-code) triple. If the provider/model route cannot be verified (including a missing model), Continue safely uses static backoff and neither reads nor writes learned network state.

A recovery is recorded immediately only after the durable assistant/message for the same turn, step, provider, and model arrives. The latest continue/network-learning snapshot is authoritative: if it is malformed or expired, Continue logs once and uses static backoff rather than reviving an older learned delay.

Automatic decisions and safety boundary

recommended.enabled=true selects only a unique option marked as recommended, including supported localized labels. onMissingRecommendation is ask by default; first is only for interchangeable low-risk choices, and stop fails the unattended flow when a recommendation is absent.

continuation.enabled=true plus autoConfirmContinue=true accepts only a single-choice binary continue/stop question with exactly one configured affirmative and one configured negative label. autoApprovePlan=true only exits an active Plan Mode through the official state transition, for a plan that has a non-empty # heading. Plain-text continuation additionally requires plainTextFallback=true, a current-turn whitelist match, and no risk-pattern match; it is capped at one steer per turn by default.

All automatic paths fail closed to the official UI when the agent is not a verifiable live root, the turn/question shape is incomplete, a selection is ambiguous, a question is multi-select or free-form, a limit is reached, or any text matches the risk boundary. The plugin never approves approval/request, sandbox or privilege escalation, credentials, payments, external sends, releases/deployments, production actions, or irreversible operations. It never invents business data.

Controlled learning and project storage

Learning is off by default. /continue learn on enables the task learning master switch and decision-learning switch; if network recovery is also enabled, leave learning.network.enabled explicitly false when adaptive network learning is not wanted.

Decision memory is for exact, eligible, verified manual selections only. Records use confirmation and conflict tracking, expire by TTL, and have a maximum-use limit. The raw Harness tools/post-execute hook exposes no trustworthy human-confirmation provenance, so it fails closed by itself. A host UI may provide a continueManualDecisionSource service implementing the exported ContinueManualDecisionSource interface; only results that its verify(exec, result) method authenticates are trained. The verifier must use trusted UI-side state, not merely inspect answer shape. Missing, rejecting, or throwing verifiers never train, and plugin-generated answers are excluded independently.

Set learning.decisions.scope to project to use the optional @deepseek-ai/dsh-settings peer. The plugin registers its settings namespace once per runtime and reuses it across agents. Project identities are hashed; missing, read-only, invalid, or failing settings storage degrades to task scope with a visible status reason. /continue learn forget reports success for project scope only after the empty snapshot is stored. If that write fails, the command returns an error, status reports projectForget.state: "failed", and the current runtime blocks old project memory fail-closed; it does not claim that an erase survives restart.

Continuation-pattern candidates are always suggest-only. View them with /continue learn candidates; only /continue learn approve <candidate-id> can add an eligible candidate to this task's plain-text patterns. Approval never bypasses the risk boundary.

Events, migration, and examples

Public session events are append-only and versioned:

Event Purpose
continue/config task override or reset
continue/control pause or resume
continue/network-learning adaptive network snapshot
continue/decision-learning task decision-memory snapshot
continue/pattern-candidate suggest-only candidate lifecycle
continue/activity latest automatic, delegated, blocked, cancelled, or learned activity

Version 1 config/control events continue to replay. To migrate from earlier releases, keep existing task events, upgrade the package, and explicitly opt into any new capability. Do not add RATE_LIMIT to both Camel and Continue. For an existing global profile, start with recommended, then resilient, and only enable unattended-safe after reviewing project-specific question and risk patterns.

Example task policy with project decision scope but no network adaptation:

/continue set {"network":{"enabled":true},"learning":{"enabled":true,"network":{"enabled":false},"decisions":{"enabled":true,"scope":"project","minConfirmations":2,"ttlMs":2592000000,"maxUses":50}}}

有意识地管理

安装与管理

前置条件与目标 Profile

目标 deepseek-harness Profile

交付方式 Git Bundle — JuwanXu/dsh-continue#01cc9e13ced5a6c84f748c20dc8bbbbe60e41f2b

验证、更新与移除

显示生命周期命令
验证
dsh plugin --profile deepseek-harness list

兼容性与访问范围

Node.js >=20; DeepSeek Harness peer dependencies are required Not declared in supplied evidence

检查兼容性证据

风险事实

自动化

Can retry eligible network failures and automatically handle narrowly defined task prompts after explicit opt-in.

证据
data-handling

Optional learning retains task decision and network-learning events; project-scoped decision storage uses the optional settings peer.

证据
证据与编辑审查Manifest、Bundle patch、分发与新鲜度

不可变证据

审查状态与源码活动

AI 已审查

启用 unattended-safe 前请审阅策略,尤其是自定义重试代码、续办模式和项目级学习设置。

AI 审查于 2026/9/14 UTC 14:17GitHub 事实核对日期: 2026/9/14 UTC 14:17

自当前证据基线以来,没有记录到重要源码变化。

下一步

按 Plugin 安装流程操作

订阅重要变化: dsh-continue