Built-in tools

Use Runtype’s built-in tools in an Agent or Flow to generate images, search the web, and fetch page content. Use them to browse websites, manage Records, run code, search knowledge bases, store memory, and work with time.

The core built-in tools are:

ToolWhat it doesCompatible models
GPT Image 2Generate images from textAny model
OpenAI Web SearchSearch the web for current informationOpenAI models
Anthropic Web SearchSearch the web for current informationClaude models
Anthropic Web FetchFetch and read content from a URLClaude Sonnet models
ExaSearch the web with neural and keyword searchAny model
FirecrawlScrape and extract web page contentAny model
Massive Web RenderFetch pages that resist ordinary requestsAny model
Semantic SearchSearch knowledge bases by meaningAny model

The built-in tool registry also includes these categories:

  • Browser: interact with live web pages.
  • File Operations: store files, publish pages, and generate PDFs.
  • Record Management: create, read, update, and delete Runtype Records.
  • Agent Memory: save and recall information across conversations.
  • Sandbox: run code in a Linux environment.
  • Send Email: send transactional email through Resend.
  • Temporal: get the current time, convert time zones, and schedule reminders.

Choose a tool marked Any model when you want to use it with different model providers. Provider-native tools require a compatible model from the named provider.

Agent Sandbox tools

Enable Sandbox on a model-mode Agent to provide a Linux computer with these automatically injected tools:

  • bash: run a shell command in /workspace.
  • bash_output: read new output from a running command.
  • kill_process: stop a running process and its child processes.
  • list_processes: list live and retained process handles.
  • read_file: read a file from the sandbox.
  • write_file: write a file to the sandbox.
  • edit_file: edit a file in the sandbox.
  • expose_port: expose a sandbox port through a public preview URL.

The bash tool runs in /workspace. Its timeout_ms value sets when the tool returns control, not when it stops the command. If the command continues, the result includes a process_id, partial output, and a running status.

When a command returns a deliveryId, pass that value as ack_delivery_id to the next bash_output call. Use wait_for_exit_ms to wait for the process to finish instead of polling in a loop. The tool caps the wait at 240,000 milliseconds.

Use list_processes to inspect retained handles without replaying their output. Use kill_process to stop a process, then call bash_output to read any remaining output.

Files you write to /workspace remain available to later calls in the same execution. Session-managed sandbox tools also reuse files when you pass the same sandboxId. The sandbox stores files, not running processes, in its snapshots. A process does not resume after you destroy the container. The sandbox stores the process status and exit code separately from its capped output.

Temporal tools

Use Temporal tools when your Agent needs a current time, a time-zone conversion, an elapsed-time calculation, a stored conversation time zone, or a reminder. These tools work with any model and do not need an API key.

The following table describes the Temporal tools:

ToolWhat it does
Get Current TimeReturn the current date and time in an IANA time zone
Convert Time Between ZonesConvert a wall-clock time between IANA time zones
Time DifferenceCalculate the elapsed time between two instants
Set Conversation TimezoneStore a time zone for the conversation
Set ReminderSchedule a one-time Agent run with a follow-up message

When you omit a time zone, Runtype uses the explicit tool parameter, the Agent’s default time zone, the conversation’s stored time zone, or UTC. Set the Agent’s default time zone in the temporal configuration.

Set a reminder

Use Set Reminder to schedule a one-time run of the same Agent. The scheduled Agent receives the message value when the reminder fires and can act on it, including sending a message or email.

Configure the reminder with these parameters:

ParameterRequiredDescription
messageYesInstruction that the scheduled Agent receives
atOne of at or inSecondsAbsolute fire time in RFC 3339 or ISO 8601 format, such as 2026-06-04T09:00:00Z
inSecondsOne of at or inSecondsRelative delay in seconds, such as 3600 for one hour
timezoneNoIANA time zone for a zone-less at value

Set Reminder is available only to Agents. Reminders count toward your plan’s active schedule limit, along with schedules created in the dashboard or API. For more information, see What are Schedules?.

Get started

Add the required provider keys before you configure a tool:

  • GPT Image 2: Use a Runtype platform key or add an OpenAI API key in Settings > Models.
  • OpenAI Web Search: Add an OpenAI API key in Settings > Models.
  • Anthropic Web Search and Anthropic Web Fetch: Add an Anthropic API key in Settings > Models.
  • Exa: Use a Runtype platform key or add an Exa API key in Settings > Integrations.
  • Firecrawl: Use a Runtype platform key or add a Firecrawl API key in Settings > Integrations.
  • Massive Web Render: If the tool is enabled for your account, use a Runtype platform key or add a Massive API key in Settings > Integrations.
  • Semantic Search: Add an OpenAI API key in Settings > Models for embeddings. If you need background on vector data, see What are Records?.

Add tools to an Agent

To add built-in tools to an Agent, follow these steps:

  1. Open the Agent and select the Capabilities tab.
  2. In the Tools section, select Configure Tools.
  3. Select tools in the Built-in Tools category. The list includes only tools compatible with the Agent’s model.
  4. Select Apply Changes.

For the full Agent setup, see Creating and configuring Agents.

Add tools to a Flow

To add built-in tools to a Flow, follow these steps:

  1. Open the Flow and add or edit a prompt step.
  2. Open the tool configuration and select Built-in Tools.
  3. Select the tools you need and configure their optional settings.

For a complete Flow walkthrough, see Creating and editing flows.

If a tool does not appear, confirm that the prompt step or Agent uses a compatible model. Review model compatibility in Settings > Models.

Invoke a built-in tool directly with a Tool Call step

A prompt step lets the model decide when to call a tool. When the call must happen at a fixed point every run, use a Tool Call step instead and set its toolId to the catalog ID:

1{
2 "type": "tool-call",
3 "name": "Store the report",
4 "config": {
5 "toolId": "builtin:store_asset",
6 "parameters": { "url": "{{reportUrl}}", "filename": "report.pdf" },
7 "outputVariable": "storedAsset"
8 }
9}

toolId accepts any built-in or platform catalog ID (builtin:store_asset, builtin:browser:open, builtin:slack:send_message, platform:orthogonal:<vendor>:<op>) as well as a saved Tool. Supply per-tool settings — the same values a prompt step’s tool configuration collects — with the optional config.toolConfig object.

A Tool Call step is deterministic and has no approval gate: it runs whenever the Flow reaches it, with the parameters you wrote. A step on builtin:send_email or a builtin:browser:* tool sends and browses unattended. Approval gating applies to model-chosen tool calls in an Agent or a prompt step.

GPT Image 2

Use GPT Image 2 to generate images from text in an Agent conversation or Flow. The tool returns a generated image that you can view or download.

The following settings control image generation:

SettingValuesDefault and behavior
Sizeauto or custom WxHDefaults to 1024x1024. Custom edges must be multiples of 16, each edge can be up to 3840 pixels, the aspect ratio can be up to 3:1, and the total pixel count must be from 655,360 to 8,294,400.
Qualityauto, low, medium, or highDefaults to low. Low quality takes about 10 seconds. Medium and high quality can take 1 to 3 minutes or longer.
Output formatpng, jpeg, or webpDefaults to png.
Backgroundauto or opaqueDefaults to auto. Transparent backgrounds are not supported.

For example, ask an Agent to “Create a logo for a coffee shop.” The Agent calls GPT Image 2 and returns the generated image.

Use OpenAI Web Search with a compatible OpenAI model to retrieve current information from the web during a conversation.

Configure these settings:

  • Search context size: Set the context size to low, medium, or high.
  • Location context: Optionally set a city and region for location-specific search results.

Each search adds a per-search fee to the model token costs. Review these charges under Spend by tool in Usage data.

Use Anthropic Web Search with a compatible Claude model to retrieve current information from the web.

Configure Max uses as a number from 1 to 10. The default is 5.

Each search adds a per-search fee to the model token costs. Review these charges under Spend by tool in the Usage data view.

Anthropic Web Fetch

Use Anthropic Web Fetch with a compatible Claude Sonnet model to fetch and read content from a specific URL. Use it when your prompt includes a known URL for retrieval.

Configure Max uses as a number from 1 to 10. The default is 1.

Exa

Use Exa with any model to search the web with neural or keyword search. Configure optional full text, summaries, highlights, domain filters, and publication-date filters.

Configure these settings:

  • Search type: Select auto, neural, or keyword.
  • Number of results: Return from 1 to 10 results. The default is 5.
  • Content options: Include full text, AI-generated summaries, or highlights.
  • Domain filtering: Include or exclude specific domains.
  • Date filtering: Limit results to a publication date range.

Use domain filtering to focus research on selected websites, such as documentation sites.

Firecrawl

Use Firecrawl with any model to extract content from a web page. Firecrawl renders JavaScript pages and returns Markdown, HTML, raw HTML, screenshots, or links.

Configure these settings:

  • Output formats: Select Markdown, HTML, raw HTML, screenshots, or links.
  • Main content only: Keep this setting enabled to remove sidebars, navigation, and footers from the result.
  • Wait time: Add from 0 to 30 seconds for dynamic content to load before scraping.

Use Firecrawl to extract a product page as Markdown for summarization or analysis.

Massive Web Render

Use Massive Web Render with any model to fetch pages that resist ordinary HTTP requests. It renders JavaScript, solves CAPTCHAs, retries requests through a residential network, and supports country-based fetching. The tool returns Markdown by default, rendered HTML, or raw HTML.

Massive Web Render appears only when it is enabled for your account. For setup details, see Massive (web rendering).

Configure these settings:

  • Output format: Select markdown, rendered, or raw. The default is markdown.
  • Country: Enter a two-letter ISO country code, such as us.
  • Delay: Add from 0.1 to 10 supplemental seconds before the tool captures content.

Use Massive Web Render when a page returns a 403 response to ordinary requests and you need the rendered content.

Use Semantic Search with any model to find content in a knowledge base by meaning rather than exact keywords. Add multiple Semantic Search instances to the same Agent or Flow when you need to search different knowledge bases.

Set up a knowledge base instance

To add a Semantic Search instance, follow these steps:

  1. In the tool configuration, select Add Knowledge Base.
  2. Enter a Display Name, such as Search Documentation. The model uses this name when it selects the instance.
  3. Select a vector provider.
  4. Set the Similarity Threshold from 0 to 1. Lower values return more results. Higher values return closer matches.

Semantic Search supports the platform pgvector provider, Weaviate, and Cloudflare Vectorize. Each instance points to one knowledge base.

The Limit setting controls the maximum number of results per query. Set it from 1 to 20. The default is 5.

Start with a similarity threshold near 0.3 and adjust it based on result quality. A high threshold can omit relevant content. A low threshold can return noisy results.

Agent Memory tools

Enable Agent Memory to store facts, preferences, decisions, and events across conversations. Unlike Semantic Search, which queries a knowledge base, Agent Memory stores information associated with an Agent Memory profile. Runtype also records each user and assistant exchange in the background. Agent Memory works with any model and does not need an API key.

To enable Agent Memory, set memory: { enabled: true } in the Agent configuration. For profile scoping and the complete configuration, see Memory.

Runtype adds these tools when memory is enabled:

ToolWhat it does
Save to MemoryStore a fact, preference, or observation as a sentence. You can scope it to a session.
Recall from MemorySearch memory by meaning and return a synthesized answer with scored candidate memories and IDs.
Get Memory SummaryReturn a Markdown summary of key facts, recent events, active tasks, and standing instructions.

Configure recall_memory with these optional parameters:

  • thinkingLevel: Set the search breadth to low, medium, or high.
  • responseLength: Set the synthesized answer length to short, medium, or long.

When memory is not enabled for an Agent, the memory tools return memory_not_enabled instead of failing silently.

Browser tools

Use Browser tools in an Agent or Flow to interact with live web pages. They appear in the Browser category and support quick actions, persistent sessions, and autonomous browsing.

Quick actions

Quick-action tools run against one URL without keeping a session open. Use them to retrieve content from a page and finish the browser operation in one call.

  • browser:screenshot: Capture a screenshot of a rendered page.
  • browser:content: Return the fully rendered HTML after JavaScript runs.
  • browser:markdown: Convert a rendered page to Markdown.
  • browser:scrape: Extract data from CSS selectors on a rendered page.
  • browser:json: Extract structured JSON from a rendered page.
  • browser:links: Retrieve links from a rendered page.
  • browser:snapshot: Return rendered HTML and a screenshot together.

Session tools

Session tools share a persistent browser session across turns in the same conversation. Use browser:open to start a session, then pass its sessionId to the other session tools.

  • browser:open: Start a session and load a URL.
  • browser:navigate: Navigate to a URL in the session.
  • browser:click: Click an element.
  • browser:type: Type into an input.
  • browser:scroll: Scroll the page.
  • browser:session-screenshot: Capture the current session view.
  • browser:evaluate: Run a script against the page.
  • browser:session-info: Read the current session state.
  • browser:close: End the session.

Sessions close after 2 minutes of inactivity and have a 10-minute maximum lifetime. Finish multi-step work within that window.

Hand a session to a person

Hand a browser session to a person when the page needs a login, multi-factor authentication, CAPTCHA completion, payment, or another human decision. Do not share credentials with a browser tool.

  • browser:get_live_view: Return a Live View URL that opens the page in a browser tab. Treat the URL as a capability and share it only with the intended person.
  • browser:request_handoff: Return a Live View URL and instructions for a person. The tool returns immediately. The person selects Done or Failed in Live View when the task ends.
  • browser:get_handoff_state: Return whether the handoff is active or complete, including the person’s success result.

Set a handoff timeout from 30 seconds to 30 minutes. The default is 10 minutes. While a handoff is active, the session’s inactivity timer and maximum lifetime are paused. Each session supports up to 10 handoffs and 60 minutes of total handoff time.

After you call browser:request_handoff, share the Live View URL and poll browser:get_handoff_state until its status is completed. If the handoff reports failure, use browser:session-screenshot to confirm the page state before continuing.

Autonomous browsing with browser:agent

Use browser:agent when you want a browser tool to complete a web task from a natural-language goal. Provide a startUrl for a new session or a sessionId from browser:open for an existing session.

Configure the result with these options:

  • Start a session: Set startUrl.
  • Use an existing session: Set sessionId.
  • Choose the output: Set outputSchema for structured JSON. Without it, the tool returns a text summary.

Session tools use flat per-action billing. browser:agent uses dynamic billing based on usage, with the default account margin of 20%.

File operations

Use File Operations tools in an Agent or Flow to store files, publish pages, and generate PDFs. They appear in the File Operations category.

Store an asset

Use store_asset to store a file from an HTTP or HTTPS URL or from base64-encoded content. The tool returns a public URL or a time-limited signed URL. Stored files are served as downloads instead of rendered inline.

Configure store_asset with these parameters:

ParameterRequiredDescription
urlOne of url or contentHTTP or HTTPS URL of the file to store, or a runtype-asset:// handle from another tool’s result in the same execution
contentOne of url or contentBase64-encoded file content. A runtype-asset:// handle placed here also resolves to the stored bytes, but url is the shorter path.
contentTypeWith contentMIME type for inline content, such as image/png
filenameNoFilename for the stored file
visibilityNoSet public for a public URL or private for a time-limited signed URL. The default is public.

Pass exactly one of url or content. Files have a 25 MB size limit. To publish HTML that renders in a browser, use publish_page instead.

Chain a screenshot into store_asset

When a tool returns binary media, such as a browser:session-screenshot PNG, a generated image, or a text-to-speech clip, Runtype stores the bytes and adds a runtype-asset:// handle to the tool result. The model sees the image and the handle in the same turn. On later turns, the transcript keeps only the handle, so the model never re-types the base64 content.

To pass the media to another tool, the Agent puts the handle in a parameter instead of the bytes:

  • store_asset and publish_page: accept the handle in the url parameter. The bytes are read from storage server-side, not downloaded.
  • Base64 parameters: any parameter whose schema declares contentEncoding: "base64" resolves a handle to the stored bytes before the tool runs. Built-in examples are store_asset.content, publish_page.content, and send_email.attachments[].content. Custom external and MCP tools can declare the same keyword; see Receive binary results from other tools.

Handles are scoped to your organization and expire after 7 days. The same behavior applies on every execution path: Agent turns, Flows, execute_tool on the REST API and MCP server, and Code Mode. When the chain needs logic between hops, such as a loop or a branch, use Code Mode.

Automatic image hosting

When asset storage is available, Runtype stores a permanent copy when GPT Image 2 generates an image. The response includes the hosted URL when storage succeeds. If storage fails, the tool returns the original image URL or media content and the execution continues.

Control media visibility

Set the mediaVisibility setting in a tool configuration to control whether the end user and the model receive media produced by that tool.

The following values control media visibility:

ValueEnd user receives mediaModel receives media
userYesNo
modelNoYes
bothYesYes

The default is both. Use model for an intermediate image that the model uses for reasoning. Use user for media that you want to display without adding it to the model’s context.

Use platform keys or your own API keys

Runtype provides platform keys for several platform-executed tools. Platform keys are shared and rate-limited. Use them for development and lower-volume workloads.

Connect your own API keys in Settings when you need dedicated rate limits or direct provider billing. For a comparison, see Platform keys vs. bring your own key (BYOK).

Best practices

Use these practices when you configure tools:

  • Describe tool use: Tell your Agent when and how to use each tool.
  • Limit result counts: Set a result limit that matches the task.
  • Combine tools: Pair Exa with Firecrawl for research, or pair Semantic Search with a prompt step for retrieval workflows.
  • Use multiple knowledge bases: Configure separate Semantic Search instances for different data sources, such as documentation and customer Records.

Next steps

Follow these links to continue: