#[non_exhaustive]pub struct AgentConfig {
pub system_prompt: Option<String>,
pub prompt: String,
pub model: String,
pub allowed_tools: Vec<String>,
pub max_turns: Option<u32>,
pub max_budget_usd: Option<f64>,
pub working_dir: Option<String>,
pub mcp_config: Option<String>,
pub permission_mode: PermissionMode,
pub json_schema: Option<String>,
pub resume_session_id: Option<String>,
pub verbose: bool,
}Expand description
Serializable configuration passed to an AgentProvider for a single invocation.
Built by Agent::run from the builder state.
Provider implementations translate these fields into whatever format the underlying
backend expects.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.system_prompt: Option<String>Optional system prompt that sets the agent’s persona or constraints.
prompt: StringThe user prompt - the main instruction to the agent.
model: StringWhich model to use for this invocation.
Accepts any string. Use Model constants for well-known Claude models
(e.g. Model::SONNET), or pass a custom identifier for other providers.
allowed_tools: Vec<String>Allowlist of tool names the agent may invoke (empty = provider default).
max_turns: Option<u32>Maximum number of agentic turns before the provider should stop.
max_budget_usd: Option<f64>Maximum spend in USD for this single invocation.
working_dir: Option<String>Working directory for the agent process.
mcp_config: Option<String>Path to an MCP server configuration file.
permission_mode: PermissionModePermission mode controlling how the agent handles tool-use approvals.
json_schema: Option<String>Optional JSON Schema string. When set, the provider should request structured (typed) output from the model.
resume_session_id: Option<String>Optional session ID to resume a previous conversation.
When set, the provider should continue the conversation from the specified session rather than starting a new one.
verbose: boolEnable verbose/debug mode to capture the full conversation trace.
When true, the provider uses streaming output (stream-json) to
record every assistant message and tool call. The resulting
AgentOutput::debug_messages field will contain the conversation
trace for inspection.
Implementations§
Source§impl AgentConfig
impl AgentConfig
Sourcepub fn new(prompt: &str) -> Self
pub fn new(prompt: &str) -> Self
Create an AgentConfig with required fields and defaults for the rest.
Sourcepub fn system_prompt(self, prompt: &str) -> Self
pub fn system_prompt(self, prompt: &str) -> Self
Set the system prompt.
Sourcepub fn max_budget_usd(self, budget: f64) -> Self
pub fn max_budget_usd(self, budget: f64) -> Self
Set the maximum budget in USD.
Sourcepub fn allow_tool(self, tool: &str) -> Self
pub fn allow_tool(self, tool: &str) -> Self
Add an allowed tool.
Sourcepub fn working_dir(self, dir: &str) -> Self
pub fn working_dir(self, dir: &str) -> Self
Set the working directory.
Sourcepub fn permission_mode(self, mode: PermissionMode) -> Self
pub fn permission_mode(self, mode: PermissionMode) -> Self
Set the permission mode.
Sourcepub fn output<T: JsonSchema>(self) -> Self
pub fn output<T: JsonSchema>(self) -> Self
Set structured output from a Rust type implementing JsonSchema.
The schema is serialized once at build time. When set, the provider will request typed output conforming to this schema.
Important: structured output requires max_turns >= 2.
Sourcepub fn output_schema_raw(self, schema: &str) -> Self
pub fn output_schema_raw(self, schema: &str) -> Self
Set structured output from a pre-serialized JSON Schema string.
Sourcepub fn mcp_config(self, config: &str) -> Self
pub fn mcp_config(self, config: &str) -> Self
Set the MCP server configuration file path.
Trait Implementations§
Source§impl Clone for AgentConfig
impl Clone for AgentConfig
Source§fn clone(&self) -> AgentConfig
fn clone(&self) -> AgentConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more