pub struct AgentSpec {Show 29 fields
pub name: String,
pub version: String,
pub description: Option<String>,
pub system_prompt: String,
pub llm: LLMConfigOrSelector,
pub llms: HashMap<String, LLMConfig>,
pub skills: Vec<SkillRef>,
pub memory: MemoryConfig,
pub storage: StorageConfig,
pub tools: Option<Vec<ToolConfig>>,
pub max_iterations: u32,
pub max_context_tokens: u32,
pub error_recovery: ErrorRecoveryConfig,
pub tool_security: ToolSecurityConfig,
pub process: ProcessConfig,
pub context: HashMap<String, ContextSource>,
pub states: Option<StateConfig>,
pub parallel_tools: ParallelToolsConfig,
pub streaming: StreamingConfig,
pub hitl: Option<HITLConfig>,
pub reasoning: ReasoningConfig,
pub reflection: ReflectionConfig,
pub disambiguation: DisambiguationConfig,
pub observability: ObservabilityConfig,
pub runtime: RuntimeConfig,
pub tool_aliases: ToolAliasesConfig,
pub metadata: Option<Value>,
pub spawner: Option<SpawnerConfig>,
pub persona: Option<PersonaConfig>,
}Expand description
Stable agent schema loaded through strict framework-owned YAML boundaries.
Fields remain in this contract only when the runtime implements their effect; removed inert sections such as providers and provider_security are rejected instead of silently accepted.
Fields§
§name: String§version: String§description: Option<String>§system_prompt: String§llm: LLMConfigOrSelector§llms: HashMap<String, LLMConfig>§skills: Vec<SkillRef>§memory: MemoryConfig§storage: StorageConfig§tools: Option<Vec<ToolConfig>>§max_iterations: u32§max_context_tokens: u32§error_recovery: ErrorRecoveryConfig§tool_security: ToolSecurityConfig§process: ProcessConfig§context: HashMap<String, ContextSource>§states: Option<StateConfig>§parallel_tools: ParallelToolsConfig§streaming: StreamingConfig§hitl: Option<HITLConfig>§reasoning: ReasoningConfig§reflection: ReflectionConfig§disambiguation: DisambiguationConfig§observability: ObservabilityConfig§runtime: RuntimeConfig§tool_aliases: ToolAliasesConfig§metadata: Option<Value>§spawner: Option<SpawnerConfig>Dynamic agent spawning configuration (optional).
persona: Option<PersonaConfig>Agent persona configuration (optional).
Implementations§
Source§impl AgentSpec
impl AgentSpec
pub fn from_yaml_strict(yaml: &str) -> Result<Self>
pub fn validate(&self) -> Result<()>
pub fn has_multi_llm(&self) -> bool
pub fn has_skills(&self) -> bool
pub fn has_process(&self) -> bool
pub fn has_tool_security(&self) -> bool
pub fn has_states(&self) -> bool
pub fn has_context(&self) -> bool
pub fn has_parallel_tools(&self) -> bool
pub fn has_streaming(&self) -> bool
pub fn has_hitl(&self) -> bool
pub fn has_storage(&self) -> bool
pub fn has_tool_aliases(&self) -> bool
pub fn has_reasoning(&self) -> bool
pub fn has_reflection(&self) -> bool
pub fn has_disambiguation(&self) -> bool
pub fn has_observability(&self) -> bool
pub fn has_runtime_optimization(&self) -> bool
pub fn has_persona(&self) -> bool
pub fn has_actor_memory(&self) -> bool
pub fn has_facts(&self) -> bool
pub fn has_relationships(&self) -> bool
Trait Implementations§
Source§impl<'de> Deserialize<'de> for AgentSpec
impl<'de> Deserialize<'de> for AgentSpec
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for AgentSpec
impl RefUnwindSafe for AgentSpec
impl Send for AgentSpec
impl Sync for AgentSpec
impl Unpin for AgentSpec
impl UnsafeUnpin for AgentSpec
impl UnwindSafe for AgentSpec
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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> ⓘ
Converts
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> ⓘ
Converts
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