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
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") raises ValueError: Invalid skill name ... because the name check added in 11101ac only accepts kebab/snake case (no dots).
GCPSkillRegistry.search_skills() feeds each id into Frontmatter(name=...), whose validator also rejects dots, so since 3c977bc (GCPSkillRegistry.search_skills crashes on the first catalog entry that fails Frontmatter validation #6838) every Google-published hit is dropped with a "Skipping search result" warning. tests/unittests/integrations/skill_registry/test_gcp_skill_registry.py even uses cloud.google.com-agent-platform-eval-flywheel as 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-adk main (ac0133a) or 2.9.1, project with Agent Registry enabled (Google-published skills are visible in the Console).
Expected Behavior:
Google-published skills are searchable and loadable. The security intent of 11101ac (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.
Follow-up to #6838 / #6839: that fix stopped
search_skillsfrom 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>(alsodiscoveryengine.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 11101ac only accepts kebab/snake case (no dots).GCPSkillRegistry.search_skills()feeds each id intoFrontmatter(name=...), whose validator also rejects dots, so since 3c977bc (GCPSkillRegistry.search_skills crashes on the first catalog entry that fails Frontmatter validation #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 (ac0133a) 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 11101ac (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_skillsshould not validate registry ids with the frontmatter rule either; that rule belongs to the SKILL.md inside the archive, which does pass.Observed Behavior:
ValueErrorfromget_skill, and silent exclusion fromsearch_skills.Environment Details:
Model Information:
Additional Context
cloud.google.com-agent-platform-eval-flywheel) but asked only for the crash to be fixed; fix(skills): skip invalid catalog hits in GCP skill search #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.