docs/tools/gemini-search.md
OpenClaw supports Gemini models with built-in Google Search grounding, which returns AI-synthesized answers backed by live Google Search results with citations.
```bash
openclaw configure --section web
```
{
plugins: {
entries: {
google: {
config: {
webSearch: {
apiKey: "AIza...", // optional if GEMINI_API_KEY or models.providers.google.apiKey is set
baseUrl: "https://generativelanguage.googleapis.com/v1beta", // optional; falls back to models.providers.google.baseUrl
model: "gemini-2.5-flash", // default
},
},
},
},
},
tools: {
web: {
search: {
provider: "gemini",
},
},
},
}
Credential precedence: Gemini web search uses
plugins.entries.google.config.webSearch.apiKey first, then GEMINI_API_KEY,
then models.providers.google.apiKey. For base URLs, the dedicated
plugins.entries.google.config.webSearch.baseUrl wins before
models.providers.google.baseUrl.
For a gateway install, put env keys in ~/.openclaw/.env.
Unlike traditional search providers that return a list of links and snippets, Gemini uses Google Search grounding to produce AI-synthesized answers with inline citations. The results include both the synthesized answer and the source URLs.
Gemini search supports query, freshness, date_after, and date_before.
count is accepted for shared web_search compatibility, but Gemini grounding
still returns one synthesized answer with citations rather than an N-result
list.
freshness accepts day, week, month, year, and the shared shortcuts
pd, pw, pm, and py. OpenClaw converts these values, or an explicit
date_after/date_before range, into Gemini Google Search grounding's
timeRangeFilter. country, language, and domain_filter are not supported.
The default model is gemini-2.5-flash (fast and cost-effective). Any Gemini
model that supports grounding can be used via
plugins.entries.google.config.webSearch.model.
Set plugins.entries.google.config.webSearch.baseUrl when Gemini web search
must route through an operator proxy or custom Gemini-compatible endpoint. If
that is unset, Gemini web search reuses models.providers.google.baseUrl. A plain
https://generativelanguage.googleapis.com value is normalized to
https://generativelanguage.googleapis.com/v1beta; custom proxy paths are kept
as provided after trimming trailing slashes.