Skip to main content

Quick Start

The most common pattern: create a toolset and give your agent search and execute tools. The agent discovers and runs tools on demand.
Pass tools to any OpenAI-compatible model and the agent will search for relevant tools, then execute them automatically. See the OpenAI integration guide for a full agent loop.

Fetch Tools

When you need specific tools instead of search and execute:
See Tool Filtering for the full reference.

Tool Execution

Direct execution is useful for testing and debugging. In production, your agent framework handles tool calls automatically.
Actions that download a file (for example googledrive_unified_download_file, documents_download_file, or any *_unified_download_file) return raw bytes plus metadata, not parsed JSON. The SDK decides from the response Content-Type: JSON is parsed as usual, and anything else is treated as a file download. call() and execute() both return this dict directly (it isn’t wrapped in a result object), so read its values with dict keys like result["content"].
The returned dict, from both call() and execute():
content is raw bytes and is not JSON-serializable. If you forward tool results to an LLM (or anything that re-serializes to JSON), handle or strip the content key. For example, base64-encode it on the LLM-facing path.

Environment Configuration

Account IDs are passed per-request when fetching tools or via toolset.openai(mode="search_and_execute", account_ids=[...]).

Next Steps