pub struct AgentConfig {Show 19 fields
pub api_base: String,
pub api_key: String,
pub model: String,
pub max_iterations: usize,
pub max_tool_calls_per_task: usize,
pub workspace: String,
pub system_prompt: Option<String>,
pub temperature: Option<f64>,
pub skill_dirs: Vec<String>,
pub enable_task_planning: bool,
pub enable_memory: bool,
pub enable_memory_vector: bool,
pub verbose: bool,
pub soul_path: Option<String>,
pub context_append: Option<String>,
pub max_consecutive_failures: Option<usize>,
pub goal_boundaries: Option<GoalBoundaries>,
pub skip_history_for_planning: bool,
pub read_only_tools: bool,
}Expand description
Agent configuration.
Fields§
§api_base: StringOpenAI-compatible API base URL (e.g. “https://api.openai.com/v1”)
api_key: StringAPI key
model: StringModel name (e.g. “gpt-4o”, “claude-3-5-sonnet-20241022”)
max_iterations: usizeMaximum iterations for the agent loop
max_tool_calls_per_task: usizeMaximum tool calls per task
workspace: StringWorkspace root path
system_prompt: Option<String>System prompt override (optional)
temperature: Option<f64>Temperature (0.0 - 2.0)
skill_dirs: Vec<String>Skills directories to load (reserved for multi-dir support)
enable_task_planning: boolEnable task planning
enable_memory: boolEnable memory tools
enable_memory_vector: boolEnable memory vector search (requires memory_vector feature + embedding API)
verbose: boolVerbose output
soul_path: Option<String>Path to SOUL.md identity document (optional). Resolution: explicit path > .skilllite/SOUL.md > ~/.skilllite/SOUL.md
context_append: Option<String>Optional extra context to append to system prompt (e.g. from RPC params.context.append). Generic extension point for callers to inject domain-specific rules without modifying SkillLite.
max_consecutive_failures: Option<usize>[Run mode] Max consecutive tool failures before stopping (prevents infinite retry loops). None = no limit (chat mode). Some(N) = stop after N consecutive failures (run mode).
goal_boundaries: Option<GoalBoundaries>[Run mode] Extracted goal boundaries (scope, exclusions, completion conditions). Injected into planning when set.
skip_history_for_planning: boolWhen true, exclude conversation history from the planning prompt. Use when each task is self-contained and history from previous turns would corrupt planning (e.g. multi-turn agent orchestration, batch task dispatch). Default: false.
read_only_tools: boolRestrict the tool registry to read-only operations. Used by replay/eval flows that must not mutate the workspace.
Implementations§
Source§impl AgentConfig
impl AgentConfig
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 moreSource§impl Debug for AgentConfig
impl Debug for AgentConfig
Auto Trait Implementations§
impl Freeze for AgentConfig
impl RefUnwindSafe for AgentConfig
impl Send for AgentConfig
impl Sync for AgentConfig
impl Unpin for AgentConfig
impl UnsafeUnpin for AgentConfig
impl UnwindSafe for AgentConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more