The Responses API includes several built-in tools that require no custom function definitions — just specify the tool type.
Built-in tool types include: web_search, file_search, code_interpreter, computer, image_generation, local_shell, and MCP (Model Context Protocol) servers.
Hosted tools collapse weeks of work
tools=[{"type":"web_search"}] is one line. The same capability built yourself — picking a search provider, contracting for API access, parsing results, ranking, citation extraction — is a multi-week project that ships your bug surface forever. Hosted tools are OpenAI's bug surface.
The tradeoff is control: hosted web_search uses OpenAI's choice of provider; you can't swap it for your own. For most product use cases that's fine. When it isn't, define a custom function tool and run the search yourself.