Builtin Tools
Builtin tools are native tools provided by LLM providers that can be used to enhance your agent's capabilities. Unlike common tools, which are custom implementations that PydanticAI executes, builtin tools are executed directly by the model provider.
Overview
PydanticAI supports the following builtin tools:
WebSearchTool
: Allows agents to search the webCodeExecutionTool
: Enables agents to execute code in a secure environmentUrlContextTool
: Enables agents to pull URL contents into their context
These tools are passed to the agent via the builtin_tools
parameter and are executed by the model provider's infrastructure.
Provider Support
Not all model providers support builtin tools. If you use a builtin tool with an unsupported provider, PydanticAI will raise a UserError
when you try to run the agent.
Web Search Tool
The WebSearchTool
allows your agent to search the web,
making it ideal for queries that require up-to-date data.
Provider Support
Provider | Supported | Notes |
---|---|---|
OpenAI | ✅ | Full feature support |
Anthropic | ✅ | Full feature support |
Groq | ✅ | Limited parameter support |
✅ | No parameter support | |
Bedrock | ❌ | Not supported |
Mistral | ❌ | Not supported |
Cohere | ❌ | Not supported |
HuggingFace | ❌ | Not supported |
Groq Support
To use web search capabilities with Groq, you need to use the compound models.
Usage
from pydantic_ai import Agent, WebSearchTool
agent = Agent('anthropic:claude-sonnet-4-0', builtin_tools=[WebSearchTool()])
result = agent.run_sync('Give me a sentence with the biggest news in AI this week.')
# > Scientists have developed a universal AI detector that can identify deepfake videos.
Configuration Options
The WebSearchTool
supports several configuration parameters:
from pydantic_ai import Agent, WebSearchTool, WebSearchUserLocation
agent = Agent(
'anthropic:claude-sonnet-4-0',
builtin_tools=[
WebSearchTool(
search_context_size='high',
user_location=WebSearchUserLocation(
city='San Francisco',
country='US',
region='CA',
timezone='America/Los_Angeles',
),
blocked_domains=['example.com', 'spam-site.net'],
allowed_domains=None, # Cannot use both blocked_domains and allowed_domains with Anthropic
max_uses=5, # Anthropic only: limit tool usage
)
],
)
result = agent.run_sync('Use the web to get the current time.')
# > In San Francisco, it's 8:21:41 pm PDT on Wednesday, August 6, 2025.
Parameter Support by Provider
Parameter | OpenAI | Anthropic | Groq |
---|---|---|---|
search_context_size |
✅ | ❌ | ❌ |
user_location |
✅ | ✅ | ❌ |
blocked_domains |
❌ | ✅ | ✅ |
allowed_domains |
❌ | ✅ | ✅ |
max_uses |
❌ | ✅ | ❌ |
Anthropic Domain Filtering
With Anthropic, you can only use either blocked_domains
or allowed_domains
, not both.
Code Execution Tool
The CodeExecutionTool
enables your agent to execute code
in a secure environment, making it perfect for computational tasks, data analysis, and mathematical operations.
Provider Support
Provider | Supported |
---|---|
OpenAI | ✅ |
Anthropic | ✅ |
✅ | |
Groq | ❌ |
Bedrock | ❌ |
Mistral | ❌ |
Cohere | ❌ |
HuggingFace | ❌ |
Usage
from pydantic_ai import Agent, CodeExecutionTool
agent = Agent('anthropic:claude-sonnet-4-0', builtin_tools=[CodeExecutionTool()])
result = agent.run_sync('Calculate the factorial of 15 and show your work')
# > The factorial of 15 is **1,307,674,368,000**.
URL Context Tool
The UrlContextTool
enables your agent to pull URL contents into its context,
allowing it to pull up-to-date information from the web.
Provider Support
Provider | Supported |
---|---|
✅ | |
OpenAI | ❌ |
Anthropic | ❌ |
Groq | ❌ |
Bedrock | ❌ |
Mistral | ❌ |
Cohere | ❌ |
HuggingFace | ❌ |
Usage
from pydantic_ai import Agent, UrlContextTool
agent = Agent('google-gla:gemini-2.5-flash', builtin_tools=[UrlContextTool()])
result = agent.run_sync('What is this? https://ai.pydantic.dev')
# > A Python agent framework for building Generative AI applications.
API Reference
For complete API documentation, see the API Reference.