pub struct AgentBuilder { /* private fields */ }Expand description
Builder for Agent.
Implementations§
Source§impl AgentBuilder
impl AgentBuilder
pub fn id(self, id: impl Into<String>) -> AgentBuilder
pub fn name(self, name: impl Into<String>) -> AgentBuilder
pub fn description(self, description: impl Into<String>) -> AgentBuilder
pub fn instructions(self, instructions: impl Into<String>) -> AgentBuilder
pub fn model(self, model: impl Into<String>) -> AgentBuilder
pub fn temperature(self, temperature: f32) -> AgentBuilder
pub fn max_tokens(self, max_tokens: u32) -> AgentBuilder
Sourcepub fn response_format(self, format: ResponseFormat) -> AgentBuilder
pub fn response_format(self, format: ResponseFormat) -> AgentBuilder
Request a structured-output response format (e.g. a JSON schema).
Sourcepub fn tool(self, tool: ToolDefinition) -> AgentBuilder
pub fn tool(self, tool: ToolDefinition) -> AgentBuilder
Add a tool available to the agent.
Sourcepub fn tools(
self,
tools: impl IntoIterator<Item = ToolDefinition>,
) -> AgentBuilder
pub fn tools( self, tools: impl IntoIterator<Item = ToolDefinition>, ) -> AgentBuilder
Add multiple tools.
Sourcepub fn tool_source(self, source: Arc<dyn ToolSource>) -> AgentBuilder
pub fn tool_source(self, source: Arc<dyn ToolSource>) -> AgentBuilder
Register a dynamic tool source (e.g. an MCP server wrapper), resolved
fresh on every run and appended after the agent’s static/context/
per-run tools (dedup by name against those and any earlier-registered
source; first registrant wins). Call repeatedly to register more than
one source. See ToolSource, resolved internally by every
Agent run.
Sourcepub fn context_provider(
self,
provider: Arc<dyn ContextProvider>,
) -> AgentBuilder
pub fn context_provider( self, provider: Arc<dyn ContextProvider>, ) -> AgentBuilder
Add a single context provider (repeatable; providers run in registration order, agent providers after any thread-level ones).
Sourcepub fn context_providers(
self,
providers: Vec<Arc<dyn ContextProvider>>,
) -> AgentBuilder
pub fn context_providers( self, providers: Vec<Arc<dyn ContextProvider>>, ) -> AgentBuilder
Set the context provider list, replacing any previously registered.
Sourcepub fn with_compaction(
self,
strategy: impl CompactionStrategy + 'static,
) -> AgentBuilder
pub fn with_compaction( self, strategy: impl CompactionStrategy + 'static, ) -> AgentBuilder
Attach conversation-history compaction, via a
CompactionProvider wrapping
strategy (with the default ApproxTokenizer; use
AgentBuilder::context_provider with
CompactionProvider::with_tokenizer
for a custom tokenizer).
Registered as one of the agent’s own context providers, which
Agent::combined_providers always runs after the session’s —
including the auto-attached (or explicitly attached)
HistoryProvider, which lives on
the session — so compaction sees, and can shrink, the full
history-prepended message list for the run. Not calling this leaves
the default behavior unchanged: the full history is sent every run.
Sourcepub fn middleware(self, mw: Arc<dyn Middleware<AgentContext>>) -> AgentBuilder
pub fn middleware(self, mw: Arc<dyn Middleware<AgentContext>>) -> AgentBuilder
Add an agent middleware.
Sourcepub fn chat_middleware(
self,
mw: Arc<dyn Middleware<ChatContext>>,
) -> AgentBuilder
pub fn chat_middleware( self, mw: Arc<dyn Middleware<ChatContext>>, ) -> AgentBuilder
Add a chat middleware, run around the underlying chat-client call on
every request (repeatable, like AgentBuilder::middleware).
See the chat-client call pipeline for exactly what it can observe
and mutate.
Sourcepub fn function_middleware(
self,
mw: Arc<dyn Middleware<FunctionInvocationContext>>,
) -> AgentBuilder
pub fn function_middleware( self, mw: Arc<dyn Middleware<FunctionInvocationContext>>, ) -> AgentBuilder
Add a function-invocation middleware, run around every local tool call
(repeatable). Plumbed down into the FunctionInvokingChatClient
this builder wraps the underlying client with.
Sourcepub fn chat_options(self, options: ChatOptions) -> AgentBuilder
pub fn chat_options(self, options: ChatOptions) -> AgentBuilder
Override the whole chat options object (advanced).