pub type AgentStepConfig = AgentConfig;Expand description
Backward-compatible alias for AgentConfig.
§Examples
use ironflow_engine::config::AgentStepConfig;
let config = AgentStepConfig::new("Review this code for security issues")
.model("haiku")
.max_budget_usd(0.10);Aliased Type§
pub struct AgentStepConfig {Show 15 fields
pub system_prompt: Option<String>,
pub prompt: String,
pub model: String,
pub allowed_tools: Vec<String>,
pub disallowed_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 strict_mcp_config: bool,
pub bare: bool,
pub permission_mode: PermissionMode,
pub json_schema: Option<String>,
pub resume_session_id: Option<String>,
pub verbose: bool,
/* private fields */
}Fields§
§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).
disallowed_tools: Vec<String>Denylist of tool names the agent MUST NOT invoke.
Maps to --disallowedTools on the Claude CLI. Unlike
allowed_tools, this does not activate any
tools; it only filters out tools that would otherwise be loaded by
default. As such, it is safe to combine with structured output
(output) without triggering the Claude CLI bug that
affects --json-schema + --allowedTools.
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.
strict_mcp_config: boolWhen true, pass --strict-mcp-config to the Claude CLI so it only
loads MCP servers from mcp_config and ignores
any global/user MCP configuration (e.g. ~/.claude.json).
Useful to prevent global MCP servers from leaking tools into steps
that request structured_output, which triggers the Claude CLI bug
where --json-schema combined with any active tool returns
structured_output: null. See
https://github.com/anthropics/claude-code/issues/18536.
Combine with mcp_config set to a file containing
{"mcpServers":{}} to disable every MCP server for the invocation.
bare: boolWhen true, pass --bare to Claude CLI. Bare mode disables:
- auto-memory (automatic creation of
~/.claude/.../memory/*.mdfiles) CLAUDE.mdauto-discovery (no global/projectCLAUDE.mdloaded)- hooks, LSP, plugin sync, attribution, background prefetches
Recommended for orchestrator agents that should not have any implicit side effects on the user’s filesystem or inherit user-level context.
§Authentication requirement
--bare is only compatible with an Anthropic API key
(ANTHROPIC_API_KEY environment variable). It does not work with
OAuth authentication (claude /login / keychain-stored credentials),
because bare mode disables keychain reads.
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.