pub struct RlmRouter;Expand description
RLM Router for large content processing
Implementations§
Source§impl RlmRouter
impl RlmRouter
Sourcepub fn should_route(
output: &str,
ctx: &RoutingContext,
config: &RlmConfig,
) -> RoutingResult
pub fn should_route( output: &str, ctx: &RoutingContext, config: &RlmConfig, ) -> RoutingResult
Check if a tool output should be routed through RLM
Sourcepub fn smart_truncate(
output: &str,
tool_id: &str,
tool_args: &Value,
max_tokens: usize,
) -> (String, bool, usize)
pub fn smart_truncate( output: &str, tool_id: &str, tool_args: &Value, max_tokens: usize, ) -> (String, bool, usize)
Smart truncate large output with RLM hint
Sourcepub async fn auto_process(
output: &str,
ctx: AutoProcessContext<'_>,
config: &RlmConfig,
) -> Result<RlmResult>
pub async fn auto_process( output: &str, ctx: AutoProcessContext<'_>, config: &RlmConfig, ) -> Result<RlmResult>
Automatically process large output through RLM
Based on “Recursive Language Models” (Zhang et al. 2025):
- Context is loaded as a variable in a REPL-like environment
- LLM writes code/queries to analyze, decompose, and recursively sub-call itself
When FunctionGemma is enabled, the router sends RLM tool definitions alongside the analysis prompt and dispatches structured tool calls returned by the model (or reformatted by FunctionGemma).
Auto Trait Implementations§
impl Freeze for RlmRouter
impl RefUnwindSafe for RlmRouter
impl Send for RlmRouter
impl Sync for RlmRouter
impl Unpin for RlmRouter
impl UnwindSafe for RlmRouter
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
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> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§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::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ServiceExt for T
impl<T> ServiceExt for T
Source§fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
fn map_response_body<F>(self, f: F) -> MapResponseBody<Self, F>where
Self: Sized,
Apply a transformation to the response body. Read more
Source§fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
fn trace_for_http(self) -> Trace<Self, SharedClassifier<ServerErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using HTTP status codes. Read more
Source§fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
fn trace_for_grpc(self) -> Trace<Self, SharedClassifier<GrpcErrorsAsFailures>>where
Self: Sized,
High level tracing that classifies responses using gRPC headers. Read more