pub struct KnowledgeSearchTool { /* private fields */ }Expand description
A Tool that searches the agent’s knowledge base.
Holds an Arc<dyn KnowledgeBase> — the exact handle returned by
StorageAdapter::knowledge —
so a tool call hits the same store the engine auto-injects from.
Optionally holds an Arc<dyn Reranker>: when set, the tool overfetches
candidates from the knowledge query and reorders them with the reranker
before returning the top-K (feature gap G8). When unset (the default), behavior
is unchanged — the knowledge query’s own top-limit is returned as-is.
Implementations§
Source§impl KnowledgeSearchTool
impl KnowledgeSearchTool
Sourcepub fn new(knowledge: Arc<dyn KnowledgeBase>) -> Self
pub fn new(knowledge: Arc<dyn KnowledgeBase>) -> Self
Build the tool over a knowledge base handle.
The handle may itself be an ACL-filtering reader (e.g. from
AclKnowledgeStore::reader),
in which case the tool’s searches are document-level access-controlled.
Use with_access_control to build that
reader from a store + requester in one step.
No reranker is configured by default; add one with
with_reranker.
Sourcepub fn with_access_control(
store: &AclKnowledgeStore,
context: AccessContext,
) -> Self
pub fn with_access_control( store: &AclKnowledgeStore, context: AccessContext, ) -> Self
Build the tool bound to a requester’s AccessContext over an
AclKnowledgeStore (feature gap G3): every search reads through an
ACL-filtering reader, so results the requester is not entitled to are
dropped before they reach the model.
Sourcepub fn with_curation(
store: &CuratedKnowledgeStore,
context: AccessContext,
filter: RetrievalFilter,
) -> Self
pub fn with_curation( store: &CuratedKnowledgeStore, context: AccessContext, filter: RetrievalFilter, ) -> Self
Build the tool bound to a query-time RetrievalFilter +
AccessContext over a CuratedKnowledgeStore (Phase 11): every search
reads through a curation reader that scopes results to the requested
document sets / metadata, re-ranks by per-document boost, and still drops
documents the requester is not entitled to (ACL ∧ curation).
Sourcepub fn with_result_sink(self, sink: KnowledgeResultSink) -> Self
pub fn with_result_sink(self, sink: KnowledgeResultSink) -> Self
Record the structured results of every search into sink (feature gap:
structured citations). The runtime drains the sink after a turn to build
the eventual_response’s citations from the documents the agent’s
knowledge_search calls actually surfaced. Leaving it unset keeps the
tool’s behavior unchanged.
Sourcepub fn with_reranker(self, reranker: Arc<dyn Reranker>) -> Self
pub fn with_reranker(self, reranker: Arc<dyn Reranker>) -> Self
Attach an optional reranker stage (feature gap G8).
When set, the tool overfetches candidates and reorders the top-K with the
Reranker before returning. Pass a LexicalReranker
for a deterministic offline reorder, or an adapter-side GatewayReranker
for a paid cross-encoder. Leaving it unset keeps default behavior.
Trait Implementations§
Source§impl Tool for KnowledgeSearchTool
impl Tool for KnowledgeSearchTool
fn schema(&self) -> ToolSchema
fn execute<'life0, 'async_trait>(
&'life0 self,
arguments: Value,
) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Source§fn is_read_only(&self) -> bool
fn is_read_only(&self) -> bool
false.Source§fn is_concurrent_safe(&self) -> bool
fn is_concurrent_safe(&self) -> bool
true.Auto Trait Implementations§
impl !RefUnwindSafe for KnowledgeSearchTool
impl !UnwindSafe for KnowledgeSearchTool
impl Freeze for KnowledgeSearchTool
impl Send for KnowledgeSearchTool
impl Sync for KnowledgeSearchTool
impl Unpin for KnowledgeSearchTool
impl UnsafeUnpin for KnowledgeSearchTool
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
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>
T in a tonic::Request