Skip to main content

Agent

Struct Agent 

Source
pub struct Agent {
Show 16 fields pub id: AgentId, pub system_prompt: SystemPrompt, pub model_preference: ModelPreference, pub declared_tools: Vec<String>, pub routing_examples: Vec<String>, pub capabilities: AgentCapabilities, pub tool_access: AgentToolAccess, pub tool_class_policy: AgentToolClassPolicy, pub permissions: PermissionSet, pub guardrails: Vec<Guardrail>, pub context_budget: ContextBudget, pub tool_policy: ToolPolicy, pub communication_rules: CommunicationRules, pub write_governance: WriteGovernance, pub cognitive_architecture: Option<CognitiveArchitecture>, pub metadata: HashMap<String, Value>,
}
Expand description

The canonical agent type — bounded execution context.

Identity is the floor, not the ceiling. All boundary fields have sensible defaults (fully open). An agent with only id + system_prompt works like a thin identity agent. Boundaries are opt-in, not opt-out.

Fields§

§id: AgentId§system_prompt: SystemPrompt§model_preference: ModelPreference§declared_tools: Vec<String>§routing_examples: Vec<String>§capabilities: AgentCapabilities§tool_access: AgentToolAccess§tool_class_policy: AgentToolClassPolicy§permissions: PermissionSet§guardrails: Vec<Guardrail>§context_budget: ContextBudget§tool_policy: ToolPolicy§communication_rules: CommunicationRules§write_governance: WriteGovernance§cognitive_architecture: Option<CognitiveArchitecture>

When present, the agent’s reasoning is decomposed into parallel cognitive streams (emotional, logical, antithink, etc.) that run as an inner subgraph before the main LLM call. When None, normal single-call execution. Zero overhead.

§metadata: HashMap<String, Value>

Implementations§

Source§

impl Agent

Source

pub fn new(id: impl Into<String>, system_prompt: impl Into<String>) -> Self

Create a minimal agent — just identity, all boundaries open.

Source

pub fn with_cognitive_architecture(self, arch: CognitiveArchitecture) -> Self

Enable cognitive architecture on this agent.

When set, the agent’s inner world runs before each LLM call, enriching context through parallel lobe processing and synthesis. When None (default), zero overhead — standard agent behavior.

Source

pub fn with_tool_access(self, tool_access: AgentToolAccess) -> Self

Source

pub fn with_tool_class_policy( self, tool_class_policy: AgentToolClassPolicy, ) -> Self

Trait Implementations§

Source§

impl Clone for Agent

Source§

fn clone(&self) -> Agent

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 Agent

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Agent

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for Agent

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl Freeze for Agent

§

impl RefUnwindSafe for Agent

§

impl Send for Agent

§

impl Sync for Agent

§

impl Unpin for Agent

§

impl UnsafeUnpin for Agent

§

impl UnwindSafe for Agent

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 = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,