A search tool is something an agent or your app explicitly calls, not automatic web search bolted onto every chat completion. Sending a plain
/v1/chat/completions request does not make the model go search the web; the agent’s tool loop (or your code) has to invoke the search toolProviders
Pick from the built-in list (Tools -> Search Tools -> Add New Search Tool -> Search Provider). The “Search Provider” box is a dropdown of these, not a free-text field:Which are free
- DuckDuckGo needs no signup and no API key at all. Best for a quick test. It can rate-limit from server IPs, so results are occasionally empty, but it works
- Tavily (
tavily.com) is the most reliable free option: a generous free tier, no credit card, quick signup for an API key - SearXNG is keyless but you have to run or point at your own instance
Add a search tool
1
Get a provider key (skip for DuckDuckGo)
Sign up with the provider and copy its API key. DuckDuckGo needs none
2
Create the tool
Tools -> Search Tools -> Add New Search Tool: give it a name (e.g. For a keyed provider add
tavily-news), pick the provider from the dropdown, paste the key, click Test Connection, then Add Search Tool. By API:"api_key": "..." inside litellm_params3
Reload the gateway
The data plane loads search tools from the database at startup. A tool created through the UI or control-plane API is not in the gateway’s router until it reloads, so a fresh tool 500s with
not found in router.search_tools until you restart the gateway (docker compose restart forceai-gateway)Use it
Once loaded, call the tool by name:{"object": "search", "results": [...]}. An agent uses a search tool the same way: its tool-calling loop (or your application code) hits /v1/search/{name} when it decides to search, then feeds the results back into the model. Search tools are a standalone endpoint; the model does not auto-invoke one during a plain chat completion
Grant access
Access is a two-level allowlist, the same shape as MCP servers:- Team allowlist - open a team’s Search Tool Settings and add the approved tools. That team’s keys may only use tools on this list
- Key-level - a virtual key can be scoped to specific search tools, and if the team has an allowlist the key’s set must stay within it