pub struct AgentBuilder { /* private fields */ }Expand description
Builder for Agent.
Implementations§
Source§impl AgentBuilder
impl AgentBuilder
pub fn id(self, id: impl Into<String>) -> Self
pub fn name(self, name: impl Into<String>) -> Self
pub fn description(self, description: impl Into<String>) -> Self
pub fn instructions(self, instructions: impl Into<String>) -> Self
pub fn model(self, model: impl Into<String>) -> Self
pub fn temperature(self, temperature: f32) -> Self
pub fn max_tokens(self, max_tokens: u32) -> Self
Sourcepub fn response_format(self, format: ResponseFormat) -> Self
pub fn response_format(self, format: ResponseFormat) -> Self
Request a structured-output response format (e.g. a JSON schema).
Sourcepub fn tool(self, tool: ToolDefinition) -> Self
pub fn tool(self, tool: ToolDefinition) -> Self
Add a tool available to the agent.
Sourcepub fn tools(self, tools: impl IntoIterator<Item = ToolDefinition>) -> Self
pub fn tools(self, tools: impl IntoIterator<Item = ToolDefinition>) -> Self
Add multiple tools.
Sourcepub fn tool_source(self, source: Arc<dyn ToolSource>) -> Self
pub fn tool_source(self, source: Arc<dyn ToolSource>) -> Self
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>) -> Self
pub fn context_provider(self, provider: Arc<dyn ContextProvider>) -> Self
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>>) -> Self
pub fn context_providers(self, providers: Vec<Arc<dyn ContextProvider>>) -> Self
Set the context provider list, replacing any previously registered.
Sourcepub fn with_compaction(
self,
strategy: impl CompactionStrategy + 'static,
) -> Self
pub fn with_compaction( self, strategy: impl CompactionStrategy + 'static, ) -> Self
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<AgentMiddleware>) -> Self
pub fn middleware(self, mw: Arc<AgentMiddleware>) -> Self
Add an agent middleware.
Sourcepub fn chat_middleware(self, mw: Arc<ChatMiddleware>) -> Self
pub fn chat_middleware(self, mw: Arc<ChatMiddleware>) -> Self
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<FunctionMiddleware>) -> Self
pub fn function_middleware(self, mw: Arc<FunctionMiddleware>) -> Self
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) -> Self
pub fn chat_options(self, options: ChatOptions) -> Self
Override the whole chat options object (advanced).