DeepSeek Harness timed user questions
DeepSeek Harness Timed Questions: Timeout & Late Replies
- Author
- DeepSeekAgent.io Editorial Team
- Published
- Updated
DeepSeek Harness v0.2.0-rc.2 experimentally adds timed user questions. It addresses a common long-task stall: after asking a question, the Agent previously had to stop even when useful work did not depend on the answer.
Timed mode gives a question two settlement paths. An answer during the foreground wait follows the existing request. After timeout, the tool returns pending and the Agent can continue; a later answer enters the Session as a durable follow-up.
Legacy and timed modes
| Mode | Default behavior | After timeout | Late reply |
|---|---|---|---|
legacy | Blocking wait | Not applicable | No second answer path |
timed | 120-second default, configurable | Returns pending; Agent may continue | Delivered through Inbox and steering |
Timed mode is explicit and does not silently replace the legacy schema. timeout: -1 remains blocking; a positive integer activates the timer.
Why two settlements are necessary
The existing Remote Event waterfall settles once. Keeping it alive after the model has already received pending would let a late answer race with the completed tool call. DSH therefore closes the foreground request at timeout and accepts late answers through a separate business RPC.
A durable projection rebuilds question state from Session tool calls and results. Pending or outcome-unknown results mark a question as continued but answerable. It settles only when the reply is admitted as a user/message.
Client ownership and countdown
The Host runs its deadline only when no answering UI has taken ownership. A Client opens an attachWait stream and receives the remaining time. Editing or choosing to answer slowly can freeze the local countdown; hiding the panel does not fabricate a cancellation or answer.
A local submit is not proof of Host delivery. If submission races with timeout, the card retains the draft and exposes a resubmit path through the late-answer RPC.
How late replies reach the Agent
An accepted answer carries a user-question-reply source, original tool-call ID, question, and answer. It enters Inbox as an ordinary user message. The Agent reads it in a later step after the original wait has ended. A cold Session can be restored before delivery.
The reply does not rewrite history. Independent work completed while waiting remains completed; if the answer invalidates an assumption, a later step must adjust explicitly.
Pending is not authorization
Timed mode fits preferences and decisions that do not block all remaining work. Deletion, overwrite, publishing, payment, permission expansion, irreversible implementation branches, and plan review should remain blocking. Silence means unknown, not consent.
Usage guidance
- Enable timed mode first on non-destructive tasks.
- Separate blocking decisions from delayed preferences.
- Continue only steps independent of the answer.
- Retain the tool-call ID for late-reply correlation.
- Do not treat “answer slowly” on one Client as a global pause.
- Verify admission to the Session instead of trusting only local UI feedback.