retail-product-search
Skill11k starsChanged 45 days agoApache-2.0View on GitHub
Creates product search agents with semantic search and RAG on Google Cloud (Vector Search on Gemini Enterprise Agent Platform, BigQuery, embeddings). Use when the user wants to "build a product search agent", "create an e-commerce search", "make a shopping assistant", "set up semantic catalog discovery", "ingest products into Vector Search", or "deploy a retail RAG agent". Handles the full pipeline: catalog data ingestion to BigQuery, Gemini Enterprise Agent Platform Vector Search collection setup, ADK agent scaffolding, evaluation, and Cloud Run deployment.
- Installs packages
1 other project uses a version of this.
Trending
More talk lately.about the whole repository
Most recently taken up by
- google/adk-recipesword for word, first seen Oct 13, 2026
Who's talking about google/adk-samples
- @stephanjanssen.be“Google just open sourced a Python Agent Development Kit @ github.com/google/adk-p... Native Streaming and …”Bluesky · Apr 9, 2025 · 12 likes
- google/adk-python“stream_query and HTTP Streaming to Vertex AI Agent Return Empty/Exhausted Responses (Works via ADK Web)”GitHub · Jul 8, 2025 · 5 reactions
- google/adk-recipes“Support running agents fully locally without Vertex AI (offline mode)”GitHub · Apr 14, 2025 · 4 reactions
- google/adk-recipes“[BUG]: Deployment of Data Science agent to Agent Engine fails ”GitHub · Oct 1, 2025 · 3 reactions
- A Hacker News story“CaMeL-Powered Secure Agent Demo with ADK”Hacker News · Aug 9, 2025 · 3 points
The biggest 5 of 32 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 32
Talked about on GitHub, Bluesky, Hacker News and Stack Overflow (32 times).
On GitHub · 23
- Jul 8, 2025stream_query and HTTP Streaming to Vertex AI Agent Return Empty/Exhausted Responses (Works via ADK Web) — google/adk-python5 reactions
- Apr 14, 2025Support running agents fully locally without Vertex AI (offline mode) — google/adk-recipes4 reactions · 7 comments
- Oct 1, 2025[BUG]: Deployment of Data Science agent to Agent Engine fails — google/adk-recipes3 reactions · 1 comment
- Oct 28, 2026docs: fix 5 broken internal anchor links and 1 dead external link — google-gemini/gemini-cli1 reaction · 4 comments
- Oct 20, 2026Update adk-samples references and python/agents discovery paths for google/adk-recipes restructure — google/agents-cli1 reaction · 2 comments
18 more on GitHub
- Oct 12, 2026list: scan the template dir we cloned, not the clone root — GoogleCloudPlatform/agent-starter-pack1 reaction
- Feb 12, 2026interrupted sometimes didn't work — google/adk-python1 reaction · 10 comments
- Jan 8, 2026Implement 5 ADK agent projects that can be easily run by newbies — addyosmani/adk-product-engineers1 reaction
- Nov 20, 2025[BUG]: deep-search/gemini-fullstack: Wrong prompt to access session state — google/adk-recipes1 reaction
- Jun 21, 2025unable to import StdioServerParameters — google/adk-recipes1 reaction · 2 comments
- Jun 17, 2025VertexAiRagRetrieval needs llama-index package — google/adk-recipes1 reaction · 3 comments
- Jun 5, 2025Bug: display_name in file uploads causes error with Google.GenAI backend (non-Vertex) — google/adk-python1 reaction · 6 comments
- May 18, 2025Missing Image — google/adk-recipes1 reaction
- Apr 11, 2025Duplicate key name — google/adk-recipes1 reaction · 1 comment
- Oct 18, 2026Fix(audit,#17387): Day4 Track2 tranche 1 -- Lab8/Lab9 reformulations honnetes, cures accents — jsboige/CoursIA0 reactions · 14 comments
- Sep 17, 2026Rename sample references to recipe across repository — google/adk-recipes0 reactions
- Sep 12, 2026docs(deep-search): fix cloud deployment instructions and scaffold path (#2575) — google/adk-recipes0 reactions · 4 comments
- Sep 12, 2026docs: fix 404 link to relocated Deep Search sample — google/adk-docs0 reactions · 1 comment
- Sep 9, 2026Add repo skills instructions and documentation links to AI issue response workflow — google/adk-recipes0 reactions
- Jul 24, 2026Fix broken adk-samples links from deleted sample agents and notebooks — google/adk-docs0 reactions · 1 comment
- Jun 12, 2026ci: run the spam-detection bot via the adk-samples reusable workflow — google/adk-go0 reactions · 1 comment
- May 27, 2026Add Deep Search Agent project to portfolio showcase — asafsilner/silner-showcase-prime0 reactions
- Feb 12, 2026fix: path typo in story teller example — google/adk-recipes0 reactions · 3 comments
On Bluesky · 4
- Apr 9, 2025Google just open sourced a Python Agent Development Kit @ github.com/google/adk-p... Native Streaming and #MCP support out of the box 👀… — @stephanjanssen.be12 likes and reposts
- Jul 12, 2026Exploring the ADK Samples repo from Google—it’s like a guidebook for building intelligent agents. Seeing multi-language support reflects… — @iam.slys.dev1 likes and repost
- Dec 9, 2025📦 google / adk-samples ⭐ 6,900 (+67) 🗒 Python A collection of sample agents built with Agent Development Kit (ADK) — @github-trending.bsky.social1 likes and repost
- May 20, 2025Explore practical use-cases & build! 🧪 Hands-on Patent Search Codelab: codelabs.developers.google.com/patent-searc... 📚 Check out sample… — @kweinmeister.bsky.social0 likes and reposts · 1 reply
On Hacker News · 3
- Aug 9, 2025CaMeL-Powered Secure Agent Demo with ADK3 points · 1 comment
- Jun 13, 2025A collection of sample agents built with Agent Development (ADK)2 points
- Aug 13, 2025CaMeL agent to protect against indirect prompt injection1 point · 1 comment
On Stack Overflow · 2
- Aug 30, 2025Google ADK SequentialAgent sub_agents not waiting for user input1 vote
- Aug 29, 2025Issue with deploying ADK Agent on Google Agent Engine0 votes
Other versions1 project uses a version of this.
Word for word · 1
- google/adk-recipes★ 11k100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository43 other files it gives its agents.
- AGENTS.mdAGENTS.md
- contrib/kotlin/llm-auditor/AGENTS.mdAGENTS.md
- core/python/adk-voice-agent/AGENTS.mdAGENTS.md
- core/python/adk-voice-agent/sandbox/home/AGENTS.mdAGENTS.md
- core/python/adk-voice-agent/tests/eval/fixtures/alex/repos/portland-trip/AGENTS.mdAGENTS.md
- core/python/ambient-expense-agent/AGENTS.mdAGENTS.md
- core/python/ambient-quality-agent/AGENTS.mdAGENTS.md
- core/python/cross-session-memory/AGENTS.mdAGENTS.md
- core/python/deep-search/AGENTS.mdAGENTS.md
- core/python/genmedia-for-commerce/AGENTS.mdAGENTS.md
- core/python/long-horizon-harness/AGENTS.mdAGENTS.md
- core/python/oauth-user-consent-flow/AGENTS.mdAGENTS.md
- core/python/rag-agent-search/AGENTS.mdAGENTS.md
- core/python/rag-vector-search/AGENTS.mdAGENTS.md
- core/python/safety-plugins/AGENTS.mdAGENTS.md
- core/python/adk-voice-agent/sandbox/home/CLAUDE.mdCLAUDE.md
- core/python/genmedia-for-commerce/CLAUDE.mdCLAUDE.md
- align-recipe-pyprojectSkill
- extract-python-environment-variablesSkill
- generate-manifestSkill
- generate-python-runnability-testSkill
- github-pr-reviewSkill
- make-python-recipe-deployableSkill
- prepare-python-recipeSkill
- repo-oracleSkill
- scaffold-python-recipeSkill
- blog-writerSkill
- content-research-writerSkill
- approvalsSkill
- coding-workflowSkill
- connected-apps-mcpSkill
- deliverablesSkill
- filesystemSkill
- recommendationsSkill
- agents-cli-aquaSkill
- custom-investigationSkill
- rcaSkill
- bootstrap-google-toolsSkill
- find-skillsSkill
- google-workspaceSkill
- policySkill
- routinesSkill
- retail-virtual-tryonSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 3 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 44
After interview, run scripts/setup.py (see Workspace Setup below).
- Distinctive: line 56
Run this as ONE shell command — splitting it across tool calls loses state:
- Very specific: line 69
All scripts run from the install dir against the workspace config.
- Very specific: line 86
Verify if these skills are installed in your active skills directory.
- Distinctive: line 100
After Q-A and Q-B, do this automatically (don't ask the user to copy/paste).
- Distinctive: line 136
Don't use for generic document search, simple keyword search, or non-retail.
- Very specific: line 163
After setup.py succeeds, set the collection env var (one line, no newlines):
- Very specific: line 218
Slow search: check region and top_k
- Very specific: line 222
ADK session memory: if the retriever errored in earlier turns, the model "learns" the tool is broken.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Product Search Agent
Creates product search agents with semantic search and RAG on Google Cloud.
STOP — Q-MODE FIRST
If a catalog is already loaded (system context says "DEPLOYED search agent"
or provides a <catalog> block), skip Q-MODE and answer product queries
directly using the catalog.
Otherwise, your first message MUST be exactly this:
[skill: retail-product-search] active.
Q-MODE: Pick a setup mode? [default: 1]
1. Quick start -- 2 questions, smart defaults, ~60s. Best for demos and first-timers.
2. Full setup -- 4 questions, ~2 min. Best for real builds.Then stop and wait. Accept 1, quick, empty/Enter (Quick), or 2, full (Full).
Execution Rules
- Q-MODE first. No preamble, no plan-proposing.
- One question at a time. Show
[default: ...]. Empty input = default. - Save answers to
./design-spec.mdin the workspace as you collect them. - After interview, run
scripts/setup.py(see Workspace Setup below). - User can say "configure more" mid-Quick-Start to switch to Full.
Workspace Setup
The skill has two locations:
- Install dir — where SKILL.md and scripts live (varies by host)
- Workspace — the agent's cwd; design-spec.md, .venv, and per-run state live here
By the end of this section the workspace must have .venv/ (with the skill
installed editable), design-spec.md, and SKILL_DIR exported in the shell.
Run this as ONE shell command — splitting it across tool calls loses state:
SKILL_DIR=$(for d in ~/.claude/skills ~/.agents/skills ~/.gemini/skills ~/.cursor/skills; do
[ -f "$d/retail-product-search/SKILL.md" ] && echo "$d/retail-product-search" && break
done)
bash "$SKILL_DIR/scripts/bootstrap.sh"bootstrap.sh finds a Python 3.11+ interpreter (with absolute-path fallback
for sandboxed shells), creates .venv, installs the skill editable, and
copies design-spec.md into the workspace.
All scripts run from the install dir against the workspace config. Use
.venv/bin/python, not bare python — bare python may resolve to a
Python without the skill's editable install on sys.path.
.venv/bin/python "$SKILL_DIR/scripts/setup.py" --config ./design-spec.md
.venv/bin/python "$SKILL_DIR/scripts/cleanup.py" --config ./design-spec.md --confirmDetails in references/install-paths.md.
Skill Dependencies
This skill works in conjunction with the following core Google Cloud skills:
bigquery-basics(for database configuration guidelines)gemini-api(for Gemini Enterprise Agent Platform / Google Gen AI SDK best practices)
Verify if these skills are installed in your active skills directory. If they are missing, recommend the developer to install them by running:
npx skills add google/skills --skill bigquery-basics gemini-api
Mode 1: Quick Start (2 questions)
| Q | Question | Default |
| Q-A | GCP project ID? | $GOOGLE_CLOUD_PROJECT or gcloud config get-value project |
| Q-B | Where's your product data? | assets/sample-products.csv (bundled) |
Accepted for Q-B: empty / default (bundled), /path/to/file.csv, or gs://....
Silent defaults: Extended fields, us-central1.
After Q-A and Q-B, do this automatically (don't ask the user to copy/paste). Run these steps SEQUENTIALLY — do not parallelize. Steps 2-3 modify the file bootstrap copies in step 1; running them concurrently is a race.
- Run bootstrap first and wait for completion.
bash "$SKILL_DIR/scripts/bootstrap.sh"copies the YAML-frontmatter design-spec template into the workspace at./design-spec.md. Do NOT touch./design-spec.mduntil bootstrap exits. - Mutate the existing
./design-spec.md— do NOT rewrite it from scratch.setup.pyparses YAML frontmatter via_setup_utils.py. A Markdown-only file fails with'NoneType' object has no attribute 'get'. Use Edit / sed to replace specific lines:gcp_project_id: ""→gcp_project_id: "<Q-A answer>"data_source: assets/sample-products.csv→data_source: <Q-B answer>(only if user gave a non-default)
- Say: "Taking defaults for the rest. Running setup — this takes 2-5 min to create a BigQuery dataset and Vector Search collection. Say 'configure more' to switch to Full setup."
- Run
.venv/bin/python "$SKILL_DIR/scripts/setup.py" --config ./design-spec.md - Stream output. On non-zero exit, surface the error and check references/troubleshooting.md
- On success, set
VECTOR_SEARCH_COLLECTIONand proceed to Test
Mode 2: Full Setup
Adds two more questions: product fields level and GCP region.
| Q | Question | Default | Notes |
| Q-fields | Product fields level | Extended | Basic / Standard / Extended / Full. Match this to your CSV's columns. Don't offer "Custom" — validate_schema.py rejects it. |
| Q-region | GCP region | us-central1 | Only confirmed-working region for Vector Search 2.0. Other regions return 501 MethodNotImplemented. |
Otherwise identical to Quick Start.
When to Use
- E-commerce product search, shopping assistants, semantic catalog discovery
Don't use for generic document search, simple keyword search, or non-retail.
Project Tree
retail-product-search/
assets/
design-spec.md # Source of truth -- filled by Q-MODE
sample-products.csv # Bundled 5-product demo catalog
references/ # Deep-dive docs (load on demand)
scripts/
agent.py # Reference ADK agent
retrievers.py # Vector Search retrieval logic
setup.py # Pipeline driver (reads design-spec.md)
bootstrap.sh # Workspace bootstrap (called from Workspace Setup)
validate_schema.py
ingest_bigquery.py
ingest_vertex_search.py
cleanup.pyCustomize: rewrite scripts/agent.py (see
references/agent-example.md) and
scripts/retrievers.py with your product-specific fields.
Test
After setup.py succeeds, set the collection env var (one line, no newlines):
export VECTOR_SEARCH_COLLECTION="projects/$GOOGLE_CLOUD_PROJECT/locations/us-central1/collections/retail-skill-products-collection"Then either:
With ADK (interactive UI):
# Use the WORKSPACE VENV's adk (not bare `adk`) so the skill's editable
# install is on sys.path. Bare `adk` may resolve to a global Python (pyenv,
# brew, etc.) whose ADK can't find the skill and reports an empty app list.
.venv/bin/adk web "$SKILL_DIR/scripts" --port 8765Open http://127.0.0.1:8765, click scripts, query.
⚠️ Two things must be right:
- Point
adk webat$SKILL_DIR/scripts, not at.— agent code lives in the install dir, not the workspace.adk web .fails with "No agents found in current folder". - Use
.venv/bin/adk, not bareadk— bareadkmay launch the wrong Python and silently fail to load the agent (UI loads, but/list-appsreturns[]and queries time out).
Without ADK (direct smoke test):
.venv/bin/python -c "from scripts.retrievers import search; print(search('laptop for video editing', top_k=3))"Semantic-only retrieval — no structured filters on price, stock, or rating. For demo queries and how to add structured filtering, see references/architecture.md.
Evaluate
cd "$SKILL_DIR"
uv run pytestEVAL.yaml declares rubric (LLM-as-judge) + assertions (deterministic
checks). Target: 80%+ passing.
Deploy
Never deploy without explicit human approval.
Cloud Run service account needs roles/bigquery.dataViewer on the dataset and
roles/aiplatform.user on the project. Deploy via gcloud run deploy or your
org's existing tooling.
Gotchas
- No results: collection empty or
VECTOR_SEARCH_COLLECTIONnot set - Slow search: check region and
top_k - No structured filters:
search()is pure semantic similarity. Price / stock / currency filters happen client-side in the LLM, so results may include items outside the constraint. Don't promise hard filters - ADK session memory: if the retriever errored in earlier turns, the
model "learns" the tool is broken. Click "New Session" in
adk webafter fixing the underlying issue
Troubleshooting
Most-common failures inline; full table in references/troubleshooting.md.
| Error | Fix |
setup.py exits with 'NoneType' object has no attribute 'get' | design-spec.md was rewritten as plain Markdown instead of mutating the YAML-frontmatter template bootstrap copied. Wait for bootstrap to finish, then edit (not rewrite) ./design-spec.md — only change the field values inside the existing ---...--- frontmatter |
adk web starts but /list-apps returns [] / browser shows "No agents found" | Bare adk resolved to a global Python that lacks the editable install. Kill it and restart with .venv/bin/adk web "$SKILL_DIR/scripts" --port 8765 |
MethodNotImplemented: 501 from Vector Search | VECTOR_SEARCH_COLLECTION has a newline. Re-export on one line |
ModuleNotFoundError: google.adk | pip install -e "$SKILL_DIR" — google-adk is an unconditional dependency, no [adk] extra needed |
Package requires Python: 3.9.X | venv used system Python 3.9. Recreate with python3.12 -m venv .venv |
BILLING_DISABLED / PERMISSION_DENIED / API has not been used | GCP project setup — see troubleshooting.md |
MCP Migration
This skill uses gcloud CLI + Python SDKs (google-genai,
google-cloud-bigquery, google-cloud-aiplatform). Per
Phase 2 Skills guidelines, 1p skills
should prefer remote MCP tools when available. Migration map:
| Service | Where | Future MCP |
| BigQuery | ingest_bigquery.py, validate_schema.py | BigQuery MCP |
| Vector Search (Gemini Enterprise Agent Platform) | ingest_vertex_search.py, setup.py | Gemini Enterprise Agent Platform MCP |
| Embeddings (Gemini Enterprise Agent Platform) | retrievers.py | Gemini Enterprise Agent Platform MCP |
| Cloud Run | gcloud run deploy | Cloud Run MCP |
Completion Checklist
- Product fields level and data source confirmed
- Data ingestion ran; Vector Search populated
retrieve_docsreturns results in ADK web UI- Evaluation passes success criteria
- Deployed (if beyond prototype)
References
Load on demand:
- references/install-paths.md — host install dirs, Python fallback,
bash -crationale - references/dependencies.md — pip deps and install quirks
- references/architecture.md — what retrieval does (semantic-only), demo queries, structured-filter strategies
- references/troubleshooting.md — full error table
- references/agent-example.md — how agent.py + retrievers.py fit together
- references/ingestion-scripts.md — per-script CLI reference
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

