Generation controls
Tune temperature, output length, and reasoning depth, and understand how Cordy fits history into a model's context window.
Cordy keeps generation controls provider-neutral. Temperature and Max output tokens live under Settings → Generation. Reasoning depth appears in the model picker when the selected model advertises thinking support. Values apply to the next send and persist across restarts.
These controls describe current source at 0870b1e; the published v0.5.0 release used an earlier numeric thinking-budget control.
Quick reference
| Control | Choices | Default | Availability |
|---|---|---|---|
| Temperature | Decimal value | Provider default when blank | All models |
| Max output tokens | Whole number | Provider default when blank | All models |
| Reasoning level | Off, Balanced, Deep | Off | Thinking-capable models only |
Reset to defaults clears temperature and max output overrides and returns Reasoning level to Off. A blank numeric field is omitted from the request, so the provider chooses its default.
Temperature
Temperature controls sampling. Lower values tend to be more focused; higher values tend to vary more. The provider enforces its own valid range. Leave the field blank to omit the parameter.
Max output tokens
This caps one reply's output. It does not change the model's total context window, which includes both input and output. Leave it blank to use the provider default.
Reasoning level
Open the model picker after selecting a thinking-capable model. Its reasoning card offers:
- Off — omit extended reasoning. This is the default.
- Balanced — ordinary multi-step reasoning.
- Deep — more reasoning depth and usually more latency and token use.
Cordy carries these as intent rather than exposing one provider's wire format. For OpenAI-compatible requests, Balanced maps to medium, Deep maps to high, and Off omits reasoning_effort. For Anthropic, Balanced maps to a 4,096-token thinking budget and Deep to 16,384; Cordy also raises max_tokens when needed so the thinking budget leaves room for a visible answer.
The card is hidden for models without the Thinking capability, and the send path forces Off for those models even if a level remains saved from another selection.
How controls are applied
- Cordy reads current settings at every send.
- Temperature, output cap, and reasoning level are global preferences, not per-conversation snapshots.
- A conversation retains its provider and model, while current generation preferences apply to its next request.
- Values left at their defaults are omitted where the provider protocol supports omission.
Context handling
Cordy fits history into the selected model's context window before each request:
- It reserves output room and a safety margin.
- It drops the oldest history first, preserving complete user-led turns rather than splitting a turn.
- It keeps non-empty interrupted assistant replies, but omits empty or reasoning-only interrupted replies from replay.
- It budgets images conservatively and estimates tokens on device.
- It validates the latest input against the system prompt and reserved output before dispatch.
If the latest input cannot fit, Cordy shows “This conversation is too long. Start a new chat or shorten the history.” Start a new conversation or shorten the input; retrying the same request cannot fix it.