Skip to main content

AgentDefinition

Struct AgentDefinition 

Source
pub struct AgentDefinition {
    pub name: String,
    pub instructions: String,
    pub model: ModelSpec,
    pub capabilities: Vec<Arc<dyn Capability>>,
    pub max_iterations: usize,
    pub middleware: Vec<Arc<dyn TurnMiddleware>>,
    pub hooks: Vec<Arc<dyn Hook>>,
    pub budget_checker: Option<Arc<dyn BudgetChecker>>,
    pub context_assembler: Arc<dyn ContextAssembler>,
    pub model_profile: Option<ModelProfile>,
    pub context_token_limit: Option<usize>,
}
Expand description

Agent behavior, separate from the resources that run it.

The model may contain credentials, so this value is sensitive configuration even though durable events never include it.

Fields§

§name: String

Human-readable diagnostic name.

§instructions: String

Base system instructions.

§model: ModelSpec

Default model, required for every built definition.

§capabilities: Vec<Arc<dyn Capability>>

Behavior attached by value.

§max_iterations: usize

Maximum reason steps in one turn.

§middleware: Vec<Arc<dyn TurnMiddleware>>

Ordered turn policy.

§hooks: Vec<Arc<dyn Hook>>

Ordered user hooks at session, turn, and tool lifecycle points.

§budget_checker: Option<Arc<dyn BudgetChecker>>

Optional budget policy.

§context_assembler: Arc<dyn ContextAssembler>

Shapes durable history into model context.

§model_profile: Option<ModelProfile>

What this agent’s model supports, when the host said — see AgentBuilder::model_catalog. Read it to size a context budget or to show a user what the model can do; the builder has already used it to validate the composition.

§context_token_limit: Option<usize>

Optional input-token ceiling exposed to context assembly.

Trait Implementations§

Source§

impl Clone for AgentDefinition

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AgentDefinition

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.