deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:Harris-Logic/dsh-resume-turn
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
DSH plugin: resume an interrupted reply from its partial output instead of restarting from scratch.
简体中文 · Repository · Issues · MIT
When a model request fails mid-stream on a slow / flaky endpoint (e.g. the AMD
DeepSeek endpoint — slow inference, frequent disconnects, TIMEOUT /
TRANSPORT / SERVER / RATE_LIMIT), the default dsh-llm-retry rebuilds
the same request and re-runs it from zero: everything that had already
streamed (including a long thinking chain) is thrown away, and a multi-minute
attempt can be repeated several times before giving up.
dsh-resume-turn changes that: at the failure point it collects the partial
output that already streamed (visible text + reasoning chunks) from the
session event log, injects a visible "auto-resumed" steering message that
quotes that partial output and instructs the model to continue from where it
stopped, and takes over recovery with { kind: 'retry' } — so the next
request starts from the interruption point, not from zero.
agent/request-error (waterfall)
├─ user cancelled? → delegate (never auto-resume over a user stop)
├─ code not transient? → delegate
├─ no partial output? → delegate (nothing to resume; default retry is right)
├─ mid tool-call? → delegate (restart is safer for tool arguments)
├─ resume budget spent (default 3 / turn)? → delegate
└─ otherwise
├─ collect current-attempt chunks (assistant/chunk events after the
│ last attempt boundary) → partial text + reasoning
├─ cancellable backoff (2s, doubling, cap 30s)
├─ agent.steer(resume message) # visible "auto-resumed" row; carries
│ # the partial output + "continue" instruction
└─ return { kind: 'retry' } # retry rebuilds the request from the
# surface, which now includes the resume message
# from GitHub
npx @deepseek-ai/dsh plugin --profile web add github:Harris-Logic/dsh-resume-turn
# or from a local checkout
npx @deepseek-ai/dsh plugin --profile web add /absolute/path/to/dsh-resume-turn
Restart the profile (or the web host) to activate. The package declares
dsh.bundle.patch, so the installer appends it to dsh.profile.bundles and its
cordis.patch.yml plugin row is applied automatically — no manual file
edits. @deepseek-ai/* modules come from the host (the very schemastery /
dsh-llm instances DSH itself runs on): they are declared as optional peers and
are never installed separately.
The plugin has no required config. Optional keys (in the profile's
cordis.patch.yml row config, or as bundle config):
| key | default | meaning |
|---|---|---|
maxResumesPerTurn |
3 |
max auto-resumes per turn; beyond that, default retry takes over |
resumeCodes |
["TIMEOUT","TRANSPORT","SERVER","RATE_LIMIT"] |
failure codes eligible for resume |
initialDelayMs |
2000 |
backoff before the first resume (doubles per attempt, cap 30s) |
maxPartialChars |
12000 |
max characters of partial output quoted into the resume message |
retryPolicy is mode: always (recommended for flaky
endpoints; see the A1 config notes), llm-retry consults
downstream recovery first — this plugin gets the first refusal. Returning
{ kind: 'retry' } short-circuits the chain; returning undefined lets
llm-retry schedule its own backoff.mode: normal providers this plugin is only consulted if it is ordered
before llm-retry in the waterfall; otherwise the default restart-based
retry applies unchanged.MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。