Keep the agent loop unchanged: the new @deepseek-ai/dsh-llm-image-offload plugin plans the image/offload watermark on agent/pre-step from the routed model's budget and advances it on agent/request-error when an adapter fails with IMAGE_OFFLOAD_REQUIRED, returning the retry action the loop already honours. Drop PreparedLlmCall.imageRequest and its validation, the planner wrapper, the replay adapter's imageRequestMaxBytes option, and the duplicate ACP snapshot scenario; share the exact-byte overflow count between the DeepSeek and pi-ai adapters through requiredImageOffload(). The SDK image snapshot replays an authored IMAGE_OFFLOAD_REQUIRED attempt instead of a replay-only budget.
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.