DeepSeek Harness
Written for DeepSeek Harness 0.2.2 (the desktop app and the dsh profiles), from its provider schema and profile loader. The Harness reaches zdr.sh over Chat Completions through its llm-pi-ai profile entry.
Configure#
Add the provider to your profile patch, ~/.dsh/profiles/desktop/cordis.patch.yml for the desktop app. The key is read from RACKDUCKSH_API_KEY.
yaml
Then restart the Harness, or let it reload the profile patch, and pick a model in the composer. The thinking selector appears beside a model that declares reasoningEfforts.
The parts that matter#
reasoningEffortsis the selector. A model without it is reported as non-reasoning, even when the model always thinks. The keys are the Harness levels; each value is thereasoning_effortsent on the wire.off: nulloffers the off level without sending a value.- The levels are the model's own. Only the values a model publishes in
supported_reasoning_effortson Models are accepted.glm-5.3anddeepseek-v4.1-flashpublishlow,highandmax;glm-5.3-flashpublishes none, so a mapping for it would be ignored or refused. compat.supportsReasoningEffortis required on a custom base URL. Without it the selector would appear and the request would drop the field.- One entry per model. Each id is one model with its own limits and its own
reasoningEfforts. - No discovery. The Harness uses the models in the profile patch; it does not read
GET /v1/models.
Check#
A request with "reasoning_effort":"high" to a model that publishes high is accepted, and the answer carries reasoning_content. The dsh CLI can print the composed profile without launching it:
bash