Skip to main content

UrlContextTool

Struct UrlContextTool 

Source
pub struct UrlContextTool;
Expand description

UrlContext is a built-in tool that is automatically invoked by Gemini models to fetch and analyze content from URLs. The tool operates internally within the model and does not require or perform local code execution.

Implementations§

Source§

impl UrlContextTool

Source

pub fn new() -> Self

Create a new UrlContextTool.

Trait Implementations§

Source§

impl BypassMultiToolsLimit for UrlContextTool

Bypass support: convert the built-in URL-context tool into a function-calling tool so it can be used alongside custom function tools under the Gemini Interactions API.

The converted tool declares a url: string function schema and performs the fetch-and-analyze behaviour by delegating to an internal single-turn agent (an LlmAgent configured with UrlContextTool and a Gemini model).

§Example

use adk_tool::{BypassMultiToolsLimit, UrlContextTool};
use std::sync::Arc;

// `url_agent` is an LlmAgent with UrlContextTool + a Gemini model.
let tool = UrlContextTool::new().with_bypass_multi_tools_limit(Arc::new(url_agent));
assert!(!tool.is_builtin());
Source§

fn bypass_name(&self) -> String

The function-tool name surfaced to the model after bypass conversion. Read more
Source§

fn bypass_description(&self) -> String

The function-tool description surfaced to the model.
Source§

fn bypass_parameters_schema(&self) -> Value

The JSON Schema for the bypass function’s parameters.
Source§

fn bypass_query_field(&self) -> String

The argument field that carries the natural-language query forwarded to the internal agent (e.g. "query" for search, "url" for URL context).
Source§

fn with_bypass_multi_tools_limit(self, agent: Arc<dyn Agent>) -> Arc<dyn Tool>

Convert this built-in tool into a function-calling BypassBuiltinTool so it can coexist with custom function tools under the Interactions API. Read more
Source§

impl Default for UrlContextTool

Source§

fn default() -> UrlContextTool

Returns the “default value” for a type. Read more
Source§

impl Tool for UrlContextTool

Source§

fn name(&self) -> &str

Returns the unique name of this tool.
Source§

fn description(&self) -> &str

Returns a human-readable description of what this tool does.
Source§

fn is_builtin(&self) -> bool

Indicates whether this tool is a built-in server-side tool (e.g., google_search, url_context). Read more
Source§

fn declaration(&self) -> Value

Returns the tool declaration that should be exposed to model providers. Read more
Source§

fn execute<'life0, 'async_trait>( &'life0 self, _ctx: Arc<dyn ToolContext>, _args: Value, ) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Executes the tool with the given context and arguments.
Source§

fn enhanced_description(&self) -> String

Returns an enhanced description that may include additional notes. For long-running tools, this includes a warning not to call the tool again if it has already returned a pending status. Default implementation returns the base description.
Source§

fn is_long_running(&self) -> bool

Indicates whether the tool is a long-running operation. Long-running tools typically return a task ID immediately and complete the operation asynchronously.
Source§

fn parameters_schema(&self) -> Option<Value>

Returns the JSON Schema for this tool’s parameters, if any.
Source§

fn response_schema(&self) -> Option<Value>

Returns the JSON Schema for this tool’s response, if any.
Source§

fn required_scopes(&self) -> &[&str]

Returns the scopes required to execute this tool. Read more
Source§

fn is_read_only(&self) -> bool

Indicates whether this tool performs no side effects. Read more
Source§

fn is_concurrency_safe(&self) -> bool

Indicates whether this tool is safe for concurrent execution. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more