pub struct ExecuteRequest {
pub model: Option<String>,
pub provider: Option<String>,
pub model_ref: Option<ProviderModelRef>,
pub skill_mode: Option<String>,
pub reasoning_effort: Option<ReasoningEffort>,
pub client_sync: Option<ExecuteClientSync>,
pub no_human_approver: bool,
pub run_budget: Option<RunBudgetConfig>,
}Expand description
Request payload for agent execution.
§Fields
model- Optional model identifier used only as a compatibility fallback
§Note
The model parameter is optional.
Runtime behavior is session-driven:
- prefer
session.model - then provider default model
- finally
request.modelas a compatibility fallback
§Examples
{
"model": "claude-3-opus"
}Fields§
§model: Option<String>Optional model compatibility fallback for execution.
provider: Option<String>Optional provider name (used with provider_model_ref feature).
model_ref: Option<ProviderModelRef>Optional provider+model reference (takes priority when present).
skill_mode: Option<String>Optional per-execution skill mode override (for example: “code”, “ask”).
When provided, skill discovery prefers skills-<mode> directories.
reasoning_effort: Option<ReasoningEffort>Optional reasoning effort override for this execution.
When omitted, the active provider default from config is used.
client_sync: Option<ExecuteClientSync>Optional server-confirmed client cursor used for pre-execution sync checks.
no_human_approver: boolWhether this run has NO interactive human approver (headless -p, a
scheduled job, a deployed broker). #74: this is re-derived per
user-initiated execute and OVERWRITES the session’s persisted
no_human_approver, so a session first run headlessly and later reopened
interactively (UI omits this → false) correctly resets to the
human-present posture. Suspend/resume does NOT go through this handler,
so a within-run resume keeps the persisted posture.
run_budget: Option<RunBudgetConfig>Optional per-run resource guardrail override (issue #221): token /
tool-call / subagent budget for THIS execution. TIGHTEN-ONLY: per
field, the effective limit is the minimum of this override and the
config-level run_budget default — a client can lower the operator’s
ceiling for one run but can never raise or remove it (a looser value
is silently clamped to the config default). An unset field keeps the
config default, which may itself be unlimited.