GCPSkillRegistry rejects every Google-published skill: dotted ids (cloud.google.com-*) fail name validation in get_skill and search_skills
@llalitkumarrr ya está trabajando en esto.
Desde el 16/9/2026.
Evaluación
Este issue todavía no se ha evaluado.
Descripción
Follow-up to #6838 / #6839: that fix stopped search_skills from crashing on these ids, but the ids themselves are still rejected everywhere, so Google-published skills remain unusable from ADK.
🔴 Required Information
Describe the Bug:
Skills published by Google into Agent Registry have resource ids of the form cloud.google.com-<display-name> (also discoveryengine.googleapis.com-<name>). ADK cannot use any of them:
GCPSkillRegistry.get_skill(name="cloud.google.com-google-cloud-networking-observability")raisesValueError: Invalid skill name ...because the name check added in 11101acc only accepts kebab/snake case (no dots).GCPSkillRegistry.search_skills()feeds each id intoFrontmatter(name=...), whose validator also rejects dots, so since 3c977bc2 (#6838) every Google-published hit is dropped with a "Skipping search result" warning.tests/unittests/integrations/skill_registry/test_gcp_skill_registry.pyeven usescloud.google.com-agent-platform-eval-flywheelas the example of a "bad" name.
In a real project catalog (location global) this rejects 113 of 117 skills; the only 4 that pass are ones we created ourselves with plain kebab ids. With the validation bypassed locally, downloading the Google skill works (SKILL.md with 7184 chars, 8 resources; the frontmatter name inside the archive equals the displayName and is valid kebab-case), so the archives themselves are fine. It is only the registry id that fails the SKILL.md naming rule.
Steps to Reproduce:
google-adkmain (ac0133a4) or 2.9.1, project with Agent Registry enabled (Google-published skills are visible in the Console).registry = GCPSkillRegistry(project_id=..., location="global")await registry.search_skills(query="networking")-> only self-created skills are returned; one warning per Google skill.await registry.get_skill(name="cloud.google.com-google-cloud-networking-observability")->ValueError.
Expected Behavior:
Google-published skills are searchable and loadable. The security intent of 11101acc (single path segment, no traversal) can be kept by validating the id as a safe path segment (e.g. ^[A-Za-z0-9._-]+$, and not ./..) instead of applying the SKILL.md frontmatter naming rule to a registry resource id. search_skills should not validate registry ids with the frontmatter rule either; that rule belongs to the SKILL.md inside the archive, which does pass.
Observed Behavior:
ValueError from get_skill, and silent exclusion from search_skills.
Environment Details:
- ADK Library Version: main @ ac0133a4, also 2.9.1
- Reproduced locally (macOS, Python 3.14) against a real Agent Registry catalog
Model Information:
- Are you using LiteLLM: No
- Which model is being used: N/A (registry client only)
Additional Context
- #6838 reported this exact catalog entry (
cloud.google.com-agent-platform-eval-flywheel) but asked only for the crash to be fixed; #6839 implemented "skip and log", and its description states this matchesget_skill()already rejecting those names. So the current behaviour is deliberate at the symptom level, but it means every Google-published skill (113/117 in our catalog) is unreachable from ADK, which I don't think was the intent. This issue is about accepting those ids, not about the crash. - Related: #6908 / #6824 (redirect on media download; needed for the download to succeed at all), #7130 / #7135 (pinning registry skills). Note that registry id and frontmatter name differ for 117/117 skills in the catalog, which is why #7135 needs to key the pinned skill by both names.
- Happy to send a PR.
- Lenguaje dominante
- Python
- Estrellas
- 21.6k
- Forks
- 4k
- Merge medio
- 13 h 49 min
- PR fusionados (30 d)
- 10
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de google/adk-python
-
mcp
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
google/adk-python#7217 · 2 comentarios · 1 asignado ·
-
tools
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
google/adk-python#7206 · 1 comentario · 1 asignado ·
-
tools
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
google/adk-python#7205 · 1 comentario · 1 asignado ·
-
mcp
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
google/adk-python#7196 · 1 comentario · 1 asignado ·
-
eval request clarification
Dificultad 1/5 1-3 horas Aptitud para principiantes 86/100
google/adk-python#7146 · 2 comentarios · 1 asignado ·
Todos los issues de google/adk-python
Issues similares
-
货币战争手改优先级配置缺少列表元素类型校验(P3) Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
syfoud/Simulated_Scepter#172 ·
-
A cancelled tests run makes the coverage comment workflow fail and reports it as a red check on main Abiertoarea: ci bug perceived difficulty: 3
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Nitjsefnie-Harness-Commons/daedalus#921 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
EleutherAI/lm-evaluation-harness#4207 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
ClickHouse/clickhouse-connect#1057 ·