Skip to content

Provider configuration

This page collects provider configuration details that apply across provider CLIs.

Configuration

The LLM provider reads llm_provider from ~/.config/sase/sase.yml. The generated provider configuration reference lists its fields, types, and defaults. llm_provider.model_tier_map is accepted by the schema but has no runtime effect; configure size aliases, default_model, or lander settings instead.

Continuation Budget Preflight

A monitor successor (the follow-up agent a monitor launches) can carry a large replayed history: ancestor prompts and replies, checkpoints, and command evidence. Before such a prompt reaches the provider, invoke_agent() measures the fully expanded prompt against a provider-aware byte budget, after the execution provider and model are resolved. The preflight runs for monitor successors (SASE_MONITOR_CONTINUATION=1) and for any invocation with SASE_CONTINUATION_BUDGET_ENFORCE=1; other launches skip it.

The shared sase-core planner returns one of three outcomes:

  • fits — the prompt is sent unchanged.
  • compact — SASE drops reducible spans that the prompt renderers explicitly marked (older raw output excerpts, selected diagnostics, and assistant transcript already covered by a checkpoint) and replaces each with a short note that points at the retained evidence. The compacted prompt is re-measured, and it is refused if it still does not fit.
  • refuse — the provider is not called. The invocation fails with Continuation context budget exceeded, and the recovery guidance asks for an adequate checkpoint or a route with a larger context budget rather than a rerun of the monitored command.

Each decision is written to continuation_budget_decision.json in the agent's artifacts directory, alongside the projected prompt when compaction changed it.

The budget is configured under llm_provider.continuation_budget. Settings layer from the shared values, to providers.<provider>, to providers.<provider>.models.<model>, and the SASE_CONTINUATION_* environment variables (see LLM provider environment variables) override all of them:

llm_provider:
  continuation_budget:
    context_limit_bytes: 800000 # total budget before reserves
    estimate_uncertain: true # byte counts are estimates, not provider accounting
    instruction_reserve_bytes: 0
    tool_reserve_bytes: 0
    output_reserve_bytes: 0
    reasoning_reserve_bytes: 0
    # checkpoint_threshold_bytes: 400000  # optional
    providers:
      agy:
        transport_limit_bytes: 122880 # agy sends the prompt as one argv element
        instruction_reserve_bytes: 512

transport_limit_bytes caps what the provider transport itself can carry, independent of the model's context. The shipped agy values mirror the Antigravity prompt-size guard.

Command-line options

The generated sase tui reference and sase axe reference list their command-line options. The TUI maps its model-tier options to the model_tier_override parameter of AceApp and passes --vcs-provider through SASE_VCS_PROVIDER for downstream resolution.

_[project]: A sase project is a named unit of work registered with SASE. _[workspace]: A sase workspace is a numbered clone of a project's primary repo, managed by the workspace store and tracked in that project's registry.json. _[agent]: A sase agent is an agent session or a single agent that does not belong to a session. _[prompt]: A prompt is the text SASE hands to a provider to start an agent turn. _[macro]: A macro is a reusable prompt triggered with #name in agent prompts. _[Patch]: A Patch is SASE's local unit of change. _[bead]: A bead is one tracked work item in SASE's git-native issue tracker. _[plan]: A plan is a persisted, approved artifact recording the intent behind agent work. _[TUI]: The TUI is SASE's terminal interface for running agents and reviewing results. _[epic]: An epic is an executable multi-phase plan run with sase bead work. _[gate]: A sase gate is a durable, command-backed request for one user decision, created when work must pause for the user. _[monitor]: A sase monitor is a monitor turn that runs one long command under a detached supervisor, so the command outlives the agent that started it. *[stitch]: A stitch is the lightweight ordered change record inside a Patch's STITCHES: section.