Skip to main content
Built-in tools are capabilities Anyreach hosts for you. Unlike config tools (which you define and point at your own webhooks), you turn these on by adding the matching key under built_in_tools in an agent version, and the platform supplies the implementation. The model decides when to call them during a conversation. Each built-in tool is independent: include the key to enable it, omit it to disable it. The keys live under agent.built_in_tools:
KeyTool exposed to the modelWhat it does
time_toolget_current_timeReturns the current date and time in a timezone.
web_searchweb_searchSearches the web (Google, via Serper).
retrieve_webpageretrieve_webpageFetches a webpage and returns it as markdown (via Firecrawl).
continue_on_phonecontinue_on_phoneStarts an outbound call to move a web chat onto the phone. WebRTC only.
widgetsshow_*_widgetRenders interactive chat widgets. WebRTC only. See /agents/web-chat-widgets-and-forms.
formsshow_form_*Renders structured input forms. WebRTC only. See /agents/web-chat-widgets-and-forms.
This page covers time_tool, web_search, retrieve_webpage, and continue_on_phone. Widgets and forms are documented on the web chat widgets and forms page.
Built-in tools are exposed to the model alongside your config tools. For how config tools work, see /agents/tools.

Time

Enable time_tool to give the agent the get_current_time tool. The model can ask for the current date and time, optionally in a specific timezone.
FieldTypeDefaultDescription
default_timezonestring (IANA name)UTCTimezone used when the model does not pass one (for example America/New_York).
The tool accepts an optional timezone argument (an IANA name such as Europe/London or Asia/Tokyo); when omitted, the agent’s default_timezone is used. time_tool works on every channel and direction. Enable web_search to give the agent the web_search tool, which queries Google through Serper. The tool takes:
ArgumentTypeRequiredDescription
querystringYesThe search query. Supports Google operators like site: and in:.
typeenumYesOne of search, images, news, shopping. Invalid values fall back to search.
web_search has no configuration fields; add web_search: {} to enable it.
Web search requires a SERPER_API_KEY to be configured on the platform. If it is not set, the tool returns web_search is not configured instead of results.

Retrieve webpage

Enable retrieve_webpage to give the agent the retrieve_webpage tool. It fetches a single URL and returns the page as markdown, scraped through Firecrawl. Use it to read articles, product pages, or documentation when the agent needs a page’s full content.
ArgumentTypeRequiredDescription
urlstringYesThe full URL to retrieve (for example https://example.com/page).
retrieve_webpage has no configuration fields; add retrieve_webpage: {} to enable it.
Webpage retrieval requires a FIRECRAWL_API_KEY to be configured on the platform. If it is not set, the tool returns retrieve_webpage is not configured.

Continue on phone

Enable continue_on_phone to let a web chat agent move the conversation onto a phone call. When the user wants to switch from chat to a call, the model calls continue_on_phone with the user’s phone number and the platform initiates an outbound call.
continue_on_phone is only available on the WebRTC (web chat) channel. Enabling it has no effect on telephone or other channels.
The tool takes one argument from the model:
ArgumentTypeRequiredDescription
phone_numberstring (E.164)YesThe user’s phone number to call, for example +14155551234.
You control which agent and number place the call with the configuration fields below. All are optional.
FieldTypeDefaultDescription
agent_idstringCurrent agentAgent to use for the phone call. Falls back to the current agent if not set.
versionintegerLatest publishedSpecific agent version number. Only used together with agent_id.
agent_numberstring (E.164)Agent’s assigned numberThe number to call from. Falls back to the number assigned to the agent if not set.

WebRTC thinking hints

On the WebRTC channel only, web_search and retrieve_webpage gain an extra required argument so the agent can tell the user what it is doing while a slow call runs:
ArgumentTypeDescription
thinking_hintstringA brief, contextual hint shown to the user while the tool runs (for example Looking up laptop reviews...).
On the same channel, a standalone set_thinking_hint tool is also added so the agent can surface a processing hint at any time. It takes a single required hint string.
The thinking_hint argument and the set_thinking_hint tool appear only on WebRTC. On other channels, web_search and retrieve_webpage keep their base argument set and no set_thinking_hint tool is added.

Per-channel availability

A single function, compute_runtime_tool_specs, decides which tools the runtime exposes for a given agent config, channel, and direction. The same built_in_tools config behaves differently depending on where the conversation runs:
ToolTelephoneWebRTCNotes
get_current_timeYesYesChannel-independent.
web_searchYesYesGains thinking_hint on WebRTC.
retrieve_webpageYesYesGains thinking_hint on WebRTC.
set_thinking_hintNoYesAdded whenever widgets are configured on WebRTC.
continue_on_phoneNoYesWebRTC only.
show_*_widgetNoYesWebRTC only. See /agents/web-chat-widgets-and-forms.
show_form_*NoYesWebRTC only. See /agents/web-chat-widgets-and-forms.
Config-declared tools are always added first, then time_tool, then channel-specific built-ins, so the order the model sees is consistent across runs.
Direction matters for some tools beyond the built-ins (for example voicemail detection is added only for outbound telephone calls), but the built-in tools above depend only on whether they are configured and on the channel.

Web chat widgets and forms

Configure interactive widgets and structured forms for WebRTC chat.

Tools

Define your own config tools that call external webhooks.