You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
google-adk: bring docs to parity with adk-redis 0.0.5
adk-redis 0.0.5 shipped to PyPI today with several changes that
the redis.io ADK docs were behind on. This brings the docs to parity.
Drift fixed:
- `_index.md`: AMS Docker command bumped from `gemini-2.0-flash` to
`gemini-2.5-flash`. Added a Linux note for `host.docker.internal`
(it does not resolve by default on Linux). Added the
`pip install adk-redis[sql]` and `pip install redisvl[mcp]>=0.18.2`
install lines. Capabilities table now mentions the SQL tool and the
`rvl mcp` server, and the example count goes from seven to nine.
- `search-tools.md`: page now describes FIVE search tools (the new
`RedisSQLSearchTool` was missing). Added a SQL search section with
a runnable snippet and the parameterized-query pattern. Added a
"RedisVL MCP server" section showing ADK's native `McpToolset`
wired to `rvl mcp` over stdio, following the maintainer guidance
on `google/adk-docs#1777`. Bottom links now point at the two new
examples (`redis_sql_search`, `redisvl_mcp_search`).
- `redis-agent-memory.md`: working-memory `model_name` bumped from
`gemini-2.0-flash` to `gemini-2.5-flash`.
- `examples.md`: count bumped to nine; added `redis_sql_search` and
`redisvl_mcp_search` entries.
- `semantic-caching.md`: vectorizer model bumped from
`redis/langcache-embed-v1` to `redis/langcache-embed-v2` (matches
the runnable examples and the rest of adk-redis docs). Agent model
bumped from `gemini-2.0-flash` to `gemini-2.5-flash`.
What is intentionally NOT in this PR:
- No mention of `create_redisvl_mcp_toolset(...)`. That helper was in
the adk-redis main branch briefly but was removed before 0.0.5
shipped, per the catalog-page review feedback that pushed us toward
using ADK's native `McpToolset` directly. The repo no longer ships
it; the docs should not reference it.
- No mention of the `[mcp-search]` extra. Same reason.
Verified all five files pass a grep for stale references
(`create_redisvl_mcp_toolset`, `mcp-search`, `gemini-2.0-flash`,
`langcache-embed-v1`, "four search tools", "seven examples").
|**Search tools**| Vector, hybrid, text, and range search via RedisVL |[Search tools]({{< relref "/integrate/google-adk/search-tools" >}}) |
132
+
|**Search tools**| Vector, hybrid, text, range, and SQL search via RedisVL, plus the `rvl mcp` server over `McpToolset`|[Search tools]({{< relref "/integrate/google-adk/search-tools" >}}) |
122
133
|**Semantic caching**| LLM response and tool result caching |[Semantic caching]({{< relref "/integrate/google-adk/semantic-caching" >}}) |
The [adk-redis repository](https://github.com/redis-developer/adk-redis/tree/main/examples) includes seven complete examples. Each focuses on a specific capability.
20
+
The [adk-redis repository](https://github.com/redis-developer/adk-redis/tree/main/examples) includes nine complete examples. Each focuses on a specific capability.
21
21
22
22
## Prerequisites
23
23
@@ -64,10 +64,26 @@ Demonstrates MCP-based memory integration. The agent connects to the Agent Memor
64
64
65
65
**Capability:** Vector, hybrid, text, and range search
66
66
67
-
All four RedisVL [search tools]({{< relref "/integrate/google-adk/search-tools" >}}) plugged into a single agent with a product catalog dataset.
67
+
Four in-process RedisVL [search tools]({{< relref "/integrate/google-adk/search-tools" >}}) plugged into a single agent with a product catalog dataset.
68
68
69
69
[View on GitHub](https://github.com/redis-developer/adk-redis/tree/main/examples/redis_search_tools)
70
70
71
+
## `redis_sql_search`
72
+
73
+
**Capability:** SQL `SELECT` search
74
+
75
+
A 10-product catalog with the `RedisSQLSearchTool`. The agent emits parameterized SQL (`WHERE category = 'electronics' AND price < :max_price`) to answer structured catalog questions. Requires `pip install 'adk-redis[sql]'`.
76
+
77
+
[View on GitHub](https://github.com/redis-developer/adk-redis/tree/main/examples/redis_sql_search)
78
+
79
+
## `redisvl_mcp_search`
80
+
81
+
**Capability:** RedisVL MCP server via ADK's `McpToolset`
82
+
83
+
The MCP counterpart of `redis_search_tools`. A `rvl mcp` server hosts a knowledge-base index in hybrid (vector + BM25) mode and the agent connects via ADK's native `McpToolset`. No adk-redis wrapper involved; the standard `McpToolset` + `StdioConnectionParams` pattern is used.
84
+
85
+
[View on GitHub](https://github.com/redis-developer/adk-redis/tree/main/examples/redisvl_mcp_search)
Copy file name to clipboardExpand all lines: content/integrate/google-adk/search-tools.md
+80-3Lines changed: 80 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ categories:
8
8
- oss
9
9
- rs
10
10
- rc
11
-
description: Vector, hybrid, text, and range search tools for Google ADK agents.
11
+
description: Vector, hybrid, text, range, and SQL search tools for Google ADK agents, plus the RedisVL MCP server.
12
12
group: ai
13
13
stack: true
14
14
summary: Add retrieval-augmented generation (RAG) to ADK agents using RedisVL-powered
@@ -17,7 +17,7 @@ type: integration
17
17
weight: 3
18
18
---
19
19
20
-
adk-redis provides four search tools that wrap [RedisVL]({{< relref "/develop/ai/redisvl" >}}) query types into ADK-compatible tools. The LLM sees each tool as a callable function with a `query` parameter and gets back structured results.
20
+
adk-redis provides five in-process search tools that wrap [RedisVL]({{< relref "/develop/ai/redisvl" >}}) query types into ADK-compatible tools. The LLM sees each tool as a callable function and gets back structured results. For multi-agent or polyglot deployments, the same RedisVL index can also be served over MCP via the `rvl mcp` server and consumed with ADK's native `McpToolset` (see the [RedisVL MCP server](#redisvl-mcp-server) section below).
21
21
22
22
## Overview
23
23
@@ -27,6 +27,7 @@ adk-redis provides four search tools that wrap [RedisVL]({{< relref "/develop/ai
27
27
|`RedisHybridSearchTool`| Vector + BM25 | Queries with specific terms + concepts |
`RedisSQLSearchTool` wraps `redisvl.query.SQLQuery`. The LLM emits a SQL `SELECT` statement (with optional `:name` parameter placeholders) and the tool translates it into the right `FT.SEARCH` or `FT.AGGREGATE` call. Best for structured filters: tag equality, numeric ranges, multi-predicate `WHERE` clauses. Requires `pip install 'adk-redis[sql]'`.
113
+
114
+
```python
115
+
from adk_redis import RedisSQLSearchTool
116
+
117
+
sql_tool = RedisSQLSearchTool(
118
+
index=index,
119
+
name="catalog_sql_search",
120
+
description=(
121
+
"Run a SQL SELECT against the product catalog. "
122
+
"Use :name placeholders for values."
123
+
),
124
+
)
125
+
```
126
+
127
+
The LLM might emit a call like:
128
+
129
+
```sql
130
+
SELECT title, brand, price
131
+
FROM products
132
+
WHERE category ='electronics'AND price < :max_price
133
+
```
134
+
135
+
with `params={"max_price": 100}`. See the [redis_sql_search example](https://github.com/redis-developer/adk-redis/tree/main/examples/redis_sql_search) for a runnable demo.
136
+
137
+
## RedisVL MCP server
138
+
139
+
The five tools above run in-process against a Python `SearchIndex`. To serve one Redis index to multiple agents (Python, JS, Claude Desktop), or to put server-side guardrails like `--read-only` and bearer auth between the agent and the index, run RedisVL's MCP server (`rvl mcp`) and connect ADK's native `McpToolset` to it.
140
+
141
+
```python
142
+
from google.adk import Agent
143
+
from google.adk.tools.mcp_tool import McpToolset
144
+
from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams
145
+
from mcp import StdioServerParameters
146
+
147
+
agent = Agent(
148
+
model="gemini-2.5-flash",
149
+
name="redis_mcp_agent",
150
+
instruction="Use the search-records tool to answer questions.",
151
+
tools=[
152
+
McpToolset(
153
+
connection_params=StdioConnectionParams(
154
+
server_params=StdioServerParameters(
155
+
command="rvl",
156
+
args=[
157
+
"mcp",
158
+
"--config",
159
+
"/path/to/mcp_config.yaml",
160
+
"--read-only",
161
+
],
162
+
),
163
+
timeout=30,
164
+
),
165
+
tool_filter=["search-records"],
166
+
),
167
+
],
168
+
)
169
+
```
170
+
171
+
The server is configured per index via a YAML file and exposes two tools: `search-records` (vector / fulltext / hybrid, chosen at server start, with schema-aware filter and return-field hints) and `upsert-records` (suppress with `--read-only`). Supports `stdio`, `sse`, and `streamable-http` transports; bearer auth on HTTP.
172
+
173
+
Install the CLI with `pip install 'redisvl[mcp]>=0.18.2'`. For a runnable demo, see the [redisvl_mcp_search example](https://github.com/redis-developer/adk-redis/tree/main/examples/redisvl_mcp_search).
174
+
175
+
### When to choose in-process vs MCP
176
+
177
+
| Path | Use when |
178
+
|------|----------|
179
+
| In-process tools (above) | Single Python agent, fast onboarding, complex Python-side `FilterExpression` composition. |
180
+
| MCP server | Multi-agent or polyglot deployments, server-side ops gates, schema-aware tool descriptions. |
181
+
182
+
Range and SQL search have no MCP equivalent today; use the in-process tools for either.
183
+
109
184
## Multi-tool agent
110
185
111
186
Wire multiple search tools into a single agent and let the LLM choose the right one:
@@ -129,5 +204,7 @@ The `name` and `description` on each tool matter: the LLM reads them to decide w
129
204
130
205
## More info
131
206
132
-
-[redis_search_tools example](https://github.com/redis-developer/adk-redis/tree/main/examples/redis_search_tools): All four search tools with a product catalog
207
+
-[redis_search_tools example](https://github.com/redis-developer/adk-redis/tree/main/examples/redis_search_tools): vector, text, and range tools with a product catalog
208
+
-[redis_sql_search example](https://github.com/redis-developer/adk-redis/tree/main/examples/redis_sql_search): SQL `SELECT` against a bound index
209
+
-[redisvl_mcp_search example](https://github.com/redis-developer/adk-redis/tree/main/examples/redisvl_mcp_search): same corpus served via `rvl mcp` + ADK `McpToolset`
0 commit comments