Replies: 2 comments
|
这个需求可以先区分“进程 attach”和“Session resume”:前者复用已启动的 host/MCP 进程,后者只要求持久化的 session/event log 能在新进程中继续。即使暂时没有
SandBase Harness 已把这个模型做成 HTTP/SDK/MCP 可调用的 runtime:同一个 这不等于已经提供 DSH 的 |
|
Follow-up to my own report above, after a deeper read of the sources. Two corrections — one about what an interruption actually loses, one that makes the ask considerably smaller than I implied — plus a note on how the 30-75 s figure was measured. 1. An interrupted headless session is not discarded. I wrote that the session is "effectively discarded" and that an interruption "loses the in-flight session". That overstated it: the headless runner flushes the session to disk before exiting, so the interrupted session's file survives on disk. What is missing is any way to continue it headlessly: the headless command line parses only the task positional and 2. The resume machinery already exists — headless just does not wire it. Reading the shipped packages: the agent registry defines a create/resume factory contract (resume: "Load a persisted session and resume an agent on it"), and interactive profiles already accept a resume flag ( 3. How the 30-75 s MCP bring-up number was measured. Since I did not say: it is a wall-clock measurement taken in our configuration (a mix of resident local HTTP MCP servers and spawned stdio servers), by timing individual cold headless starts — a handful of runs, one Windows deployment, no instrumentation. It is an environment measurement offered as motivation, not a benchmark; I would not generalize it beyond "cold starts with several MCP servers cost tens of seconds in this setup". Environment: Thanks to the maintainers and everyone engaging in this community — this follow-up is the product of a deeper source read before pushing the thread further. I hope the feasibility point is the most useful part: the expensive-sounding feature is mostly wiring. |
Uh oh!
There was an error while loading. Please reload this page.
Summary
Headless runs are strictly one-shot: every invocation is a cold process, and if a run is interrupted (timeout, crash, cancellation), its session is effectively discarded — the orchestrator must re-run the whole task from scratch in a fresh process. In our orchestration workload the fixed cost per cold start is significant: loading the configured MCP servers alone measured 30-75 seconds per run. A
--resume <session-id>flag (or attach semantics against a persistent session) would let orchestrators retry or interrupt long tasks without paying the cold start and re-priming cost every time.Background & Evidence
Failure Mode or Reproduction
Proposed Fix
Any of the following would help, in increasing power:
dsh --resume <session-id>(headless): load the existing session's history and continue it with the new prompt, appending to the same session log.--session-id <id>to choose it), so orchestrators can resume deterministically after a failure.Even the minimal resume flag would convert "interrupted = total loss" into "interrupted = retry from last state".
Additional Context
@deepseek-ai/dsh0.1.1-rc.2 (developer preview)All reactions