Add @deepseek-ai/dsh-agent-controller, composed in the base bundle, as the entry through which a sender delivers a message from outside an Agent into its inbox. deliver() runs the sender's content preparation in the Agent's delivery order, asks the agent-controller/admission waterfall for a decision, rechecks cancellation and registration, and appends the message with followup() or steer(). dsh-agent and agent-loop are unchanged. The Web session/prompt Remote delivers through it: the image model check, upload receipt resolution, and attachment storage run as prepare, the receipt binding runs as beforeInsert, and refusals map to session/prompt-rejected. The Web client keeps its existing echo. This replaces the Host half of deepseek-harness/deepseek-harness#6178, whose admission stage lived in dsh-agent.
DeepSeek Harness Python SDK
English | 中文
Python packages for driving DeepSeek Harness as a subprocess. The client SDK communicates with the bundled runtime over newline-delimited JSON-RPC on stdio.
Packages
| Directory | Dist / module | Role |
|---|---|---|
| sdk | deepseek-harness-sdk / deepseek_harness |
High-level turns API and lower-level JSON-RPC client |
| sdk-runtime | deepseek-harness-runtime-bin / deepseek_harness_runtime |
Bundled dsh CLI executable and native sidecars |
Behavior
The SDK starts the matching bundled dsh --profile sdk runtime unless the caller selects another dsh executable or profile. The runnable minimal example selects the shipped standalone sdk-minimal profile; the same runtime also packages dsh web and its frontend assets for separate CLI use. Every launch requires an explicitly selected Harness home; Python never silently reads ~/.dsh. The SDK reference and runtime carrier reference own runtime selection, profiles, patches, and external plugin management.
Contributor workflows
The Python contributor workflows cover building runtime artifacts, validating the packages, source-mode development, and distribution.