pub struct ToolUseLoop { /* private fields */ }Expand description
管理 LLM 与工具调用闭环。
内部全为 Arc/Clone,clone 为 O(1),支持并发 execute。
Implementations§
Source§impl ToolUseLoop
impl ToolUseLoop
pub fn new( model: ResolvedModel, executor: ToolExecutor, config: ToolUseConfig, deps: ToolUseDeps, ) -> Self
Sourcepub fn simple(model: ResolvedModel, executor: ToolExecutor) -> Self
pub fn simple(model: ResolvedModel, executor: ToolExecutor) -> Self
便捷构造 — 使用默认配置和依赖。
Sourcepub fn model(&self) -> &ResolvedModel
pub fn model(&self) -> &ResolvedModel
获取模型引用。
Sourcepub fn executor(&self) -> &ToolExecutor
pub fn executor(&self) -> &ToolExecutor
获取执行器引用。
Sourcepub fn config(&self) -> &ToolUseConfig
pub fn config(&self) -> &ToolUseConfig
获取配置引用。
Sourcepub fn deps(&self) -> &ToolUseDeps
pub fn deps(&self) -> &ToolUseDeps
获取依赖引用。
Sourcepub async fn execute(
&self,
messages: Vec<Message>,
) -> Result<ToolUseResult, LlmError>
pub async fn execute( &self, messages: Vec<Message>, ) -> Result<ToolUseResult, LlmError>
非流式执行
v0.4+: AgentState 驱动 — 使用 Graph<AgentState>.run_inline() 执行 ReAct 循环。
零序列化,编译期类型安全。
Sourcepub fn execute_stream(&self, messages: Vec<Message>) -> AgentStream
pub fn execute_stream(&self, messages: Vec<Message>) -> AgentStream
流式执行,返回事件接收器。
v0.4+: AgentState 驱动 — 使用 Graph<AgentState>.run_inline() + AgentEventSink。
与 execute() 共享 ReAct Graph 逻辑,消除手写 while 循环。
§数据流
execute_stream()
→ 创建 channel + AgentEventSink
→ 构建 ReAct Graph
→ ExecutionContext(state, sink)
→ graph.run_inline()
→ AgentEventSink: StreamChunk → AgentEvent → channel
→ 完成后发送 LoopEnd / LoopErrorTrait Implementations§
Source§impl Clone for ToolUseLoop
impl Clone for ToolUseLoop
Source§fn clone(&self) -> ToolUseLoop
fn clone(&self) -> ToolUseLoop
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for ToolUseLoop
impl !UnwindSafe for ToolUseLoop
impl Freeze for ToolUseLoop
impl Send for ToolUseLoop
impl Sync for ToolUseLoop
impl Unpin for ToolUseLoop
impl UnsafeUnpin for ToolUseLoop
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