pub struct ToolSequenceRecorder { /* private fields */ }Expand description
Thread-safe recorder for tool call sequences.
Wrap in Arc and share across async tasks / agent hooks.
§Example
ⓘ
let recorder = ToolSequenceRecorder::new();
recorder.record("read_file", &json!({"path": "main.rs"}));
recorder.record("write_file", &json!({"path": "out.rs"}));
let diff = recorder.diff_against(&["read_file", "write_file"]);
assert!(diff.is_exact_match());Implementations§
Source§impl ToolSequenceRecorder
impl ToolSequenceRecorder
Sourcepub fn record(&self, name: impl Into<String>, args: &Value)
pub fn record(&self, name: impl Into<String>, args: &Value)
Record a tool call. Safe to call from multiple threads / async tasks.
Sourcepub fn calls(&self) -> Vec<ToolCallRecord>
pub fn calls(&self) -> Vec<ToolCallRecord>
Return a snapshot of all recorded calls in insertion order.
Sourcepub fn call_names(&self) -> Vec<String>
pub fn call_names(&self) -> Vec<String>
Return only the tool names in insertion order.
Sourcepub fn diff_against(&self, expected: &[&str]) -> SequenceDiff
pub fn diff_against(&self, expected: &[&str]) -> SequenceDiff
Diff the recorded sequence against an expected list of tool names.
Trait Implementations§
Source§impl Clone for ToolSequenceRecorder
impl Clone for ToolSequenceRecorder
Source§fn clone(&self) -> ToolSequenceRecorder
fn clone(&self) -> ToolSequenceRecorder
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 moreSource§impl Debug for ToolSequenceRecorder
impl Debug for ToolSequenceRecorder
Source§impl Default for ToolSequenceRecorder
impl Default for ToolSequenceRecorder
Source§fn default() -> ToolSequenceRecorder
fn default() -> ToolSequenceRecorder
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for ToolSequenceRecorder
impl RefUnwindSafe for ToolSequenceRecorder
impl Send for ToolSequenceRecorder
impl Sync for ToolSequenceRecorder
impl Unpin for ToolSequenceRecorder
impl UnsafeUnpin for ToolSequenceRecorder
impl UnwindSafe for ToolSequenceRecorder
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