Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

feat(agent_registry): the Console code snippet uses AgentRegistry(project=...).published_skills.get(name=...), which does not exist in ADK

オープン
#7,137 コメント 2 件 リアクション 0 件 担当者 1 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@sanketpatil06 がすでに取り組んでいます。

2026年9月17日 から。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
48/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
gcp, python
領域
ai, api

調査の方向性

google.adk.integrations.agent_registry.AgentRegistry と google.adk.integrations.skill_registry.GCPSkillRegistry を読み、その後、issue で言及されている関連テストとサンプルを調べてください。それらの読み込み動作と async 動作を比較し、意図された API を maintainer と確認してください。完了の条件は、メタデータとメディアの読み込みを含め、完全な skill リソース名で Console のスニペットが動作し、サポート対象の動作をテストでカバーできていることです。

索引モデルが issue の本文から書いたものです。

説明

agent config needs review

🔴 Required Information

Is your feature request related to a specific problem?

The Google Cloud Console (Agent Registry > Skill Registry > skill detail page) shows a Python code snippet for using a published skill with ADK. The same snippet is also shipped inside every published skill archive as COPYTOREPOTOUSE.txt. It looks like this (project/skill from our catalog):

from google.adk.agents.llm_agent import LlmAgent
from google.adk.integrations.agent_registry import AgentRegistry
from google.adk.tools import skill_toolset

PROJECT_ID = "my-project"
LOCATION = "global"
SKILL_NAME = "projects/my-project/locations/global/skills/cloud.google.com-google-cloud-networking-observability"

agent_registry = AgentRegistry(project=PROJECT_ID, location=LOCATION)
skill = agent_registry.published_skills.get(name=SKILL_NAME)
skill_tools = skill_toolset.SkillToolset(skills=[skill])

root_agent = LlmAgent(
    model="gemini-3.6-flash",
    name="sample_agent",
    instruction="Use the tools you have access to help answer user questions",
    tools=[skill_tools],
)

This snippet cannot run on any released google-adk (checked 2.9.1 and main @ 3a06a862):

  • AgentRegistry.__init__ takes project_id, location, header_provider; project= raises TypeError.
  • AgentRegistry has no published_skills attribute. Nothing named published_skills exists in the package, the tests, the samples, or the git history of any branch. AgentRegistry only covers MCP servers, A2A agents and model endpoints; the adk.dev Agent Registry page documents the same surface and does not mention skills.
  • Skills are handled by a separate class, google.adk.integrations.skill_registry.GCPSkillRegistry, whose get_skill() is async, takes a bare skill id rather than a full resource name, and currently rejects every Google-published skill id (#7136) and fails on the media-download redirect (#6908 / #6824).

So a developer who copies the snippet from the Console gets a TypeError on the first line, and the nearest working alternative does not work for Google-published skills either. We hit this the day Skill Registry launched and it is still the case today.

Describe the Solution You'd Like

Make the Console snippet true, i.e. add a synchronous, resource-name based skill accessor on AgentRegistry that returns a google.adk.skills.models.Skill ready to be passed to SkillToolset(skills=[...]):

registry = AgentRegistry(project_id="my-project", location="global")
skill = registry.published_skills.get(
    name="projects/my-project/locations/global/skills/cloud.google.com-google-cloud-networking-observability"
)
SkillToolset(skills=[skill])

Suggested semantics:

  • published_skills.get(name=<full resource name>) fetches the skill metadata, follows the ?alt=media redirect for the default revision, and returns a Skill (same loader as GCPSkillRegistry). A list(...) / search(query=...) pair on the same namespace would mirror the existing list_mcp_servers / search_mcp_servers / list_agents / search_agents methods.
  • Accepting the full resource name sidesteps the id-validation problem in #7136: the id is not interpolated into a URL by the client, so only "is this a well-formed projects/*/locations/*/skills/* name" needs checking.
  • Synchronous, like the rest of AgentRegistry, so it can be used at module import time in agent.py (the snippet's use case). GCPSkillRegistry stays the async registry for SkillToolset(registry=...).
  • Either accept project= as an alias of project_id, or fix the snippet; whichever is easier, but today the two disagree.
Impact on your work

We build agents on Agent Engine that consume Google-published skills from Agent Registry. The Console tells users to write code that does not exist, and the alternative path is blocked by two other bugs, so there is currently no way to use a Google-published skill from ADK at all. Not blocking a launch, but it has been confusing since the Skill Registry launch and it is the first thing a new user of the feature runs into.

Willingness to contribute

Yes, I can send a PR for the AgentRegistry side once the maintainers confirm the intended shape (the Console/template side is presumably owned by another team; happy to have this routed there as well).


🟡 Recommended Information

Describe Alternatives You've Considered
  • GCPSkillRegistry.get_skill(name=<bare id>) + SkillToolset(skills=[skill]): async, so it needs asyncio.run at import (which fails under adk run / adk web because the module is imported inside a running loop), and it is blocked by #7136 and #6824 for Google-published skills.
  • SkillToolset(registry=GCPSkillRegistry(...)) with search_skills at runtime: Google-published skills are filtered out of the results (#7136), and it costs an extra model turn per conversation (#7130 / #7135).
Additional Context
  • google-cloud-agentregistry 0.1.0 on PyPI (2026-07-08) is an empty placeholder package (no services), so there is no other public SDK that provides published_skills either.
  • Related: #7136 (dotted ids rejected), #6908 / #6824 (redirect), #7130 / #7135 (pinning registry skills).
主要言語
Python
スター
21.6k
フォーク
4k
平均マージ
12時間 6分
マージ済み PR(30日)
4

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

google/adk-python のほかの issue

google/adk-python の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。