pub struct ToolCallDetector { /* private fields */ }Expand description
Detects tool calls in natural language text when the LLM doesn’t emit
structured tool_calls. This is a fallback for models that describe
tool usage in prose rather than structured function calling.
§Supported Patterns
Use the <tool> tool with args <args>— explicit tool invocationI'll use the <tool> tool to run: <command>— shell command patternLet me read the file <path>— read file patternI'll search for <query>— web search patternI'll fetch <url>— web fetch pattern
§Example
ⓘ
let detector = ToolCallDetector::new();
let response = "I'll use the shell_exec tool to run: ls -la";
let calls = detector.detect(response);
assert_eq!(calls.len(), 1);
assert_eq!(calls[0].name, "shell_exec");Implementations§
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ToolCallDetector
impl RefUnwindSafe for ToolCallDetector
impl Send for ToolCallDetector
impl Sync for ToolCallDetector
impl Unpin for ToolCallDetector
impl UnsafeUnpin for ToolCallDetector
impl UnwindSafe for ToolCallDetector
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request