GCS skill loaders ignore a skill.md manifest that the local and zip loaders accept

Aberta Para iniciantes
#7,842 3 comentários 0 reações 1 responsável Ver no GitHub

Mantenedores costumam responder em até 4 dias

@surajksharma07 já está trabalhando nisso.

Desde 30/10/2026.

  • #7843 de @adityasingh2400 — aberto

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
84/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
google-cloud, python
Domínio
backend

Direção de pesquisa

Comece em skills/_utils.py com _list_skills_in_gcs_dir e _load_skill_from_gcs_dir e, em seguida, compare como _parse_skill_md, _list_skills_in_dir e o carregador de ZIP aceitam as duas variantes do nome do arquivo de manifesto. Encontre os testes GCS existentes de skills que usam um cliente de armazenamento simulado e adicione cobertura para um manifesto skill.md na listagem e no carregamento. O trabalho estará concluído quando os carregadores GCS e seus wrappers assíncronos tratarem skill.md da mesma forma que os carregadores locais e de ZIP.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

tools

🔴 Required Information

Describe the Bug:
A skill whose manifest is named skill.md loads from a local directory or a zip archive but is invisible when stored in GCS. _parse_skill_md, _list_skills_in_dir and the zip loader in skills/_utils.py all accept SKILL.md or skill.md. _list_skills_in_gcs_dir and _load_skill_from_gcs_dir only look for SKILL.md. Moving a skill that works locally into a bucket therefore makes it disappear from the listing, and loading it raises FileNotFoundError. The async wrappers call the same functions and behave the same way.

Steps to Reproduce:

  1. Upload a skill directory with gs://my-bucket/skills/my-skill/skill.md (valid frontmatter, name: my-skill).
  2. _list_skills_in_gcs_dir("my-bucket", "skills/").
  3. _load_skill_from_gcs_dir("my-bucket", "my-skill", skills_base_path="skills/").

Expected Behavior:
The skill is listed and loads, as it does from a local directory.

Observed Behavior:
The listing is {}, and loading raises FileNotFoundError: SKILL.md not found at gs://my-bucket/skills/my-skill/SKILL.md.

Environment Details:

  • ADK Library Version (pip show google-adk): 2.13.0 (also on main at 75fb788)
  • Desktop OS: macOS
  • Python Version (python -V): 3.11.16

Model Information:

  • Are you using LiteLLM: No
  • Which model is being used: N/A (skill loading)

🟡 Optional Information

Additional Context:
I verified this with the mocked google.cloud.storage client the existing GCS skill tests use; I don't have a bucket for a live run.

How often has this issue occurred?:

  • Always (100%), for GCS skills whose manifest is skill.md
Linguagem predominante
Python
Estrelas
22.1k
Forks
4.3k
Merge médio
1d 10h
PRs com merge (30d)
5

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de google/adk-python

Todas as issues de google/adk-python

Issues semelhantes

Mais issues de Python

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.