GCS skill loaders ignore a skill.md manifest that the local and zip loaders accept
Mantenedores costumam responder em até 4 dias
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 84/100
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
🔴 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:
- Upload a skill directory with
gs://my-bucket/skills/my-skill/skill.md(valid frontmatter,name: my-skill). _list_skills_in_gcs_dir("my-bucket", "skills/")._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
mainat 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
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de google/adk-python
-
Regression of #3977 / #4054: `adk create` accepts hyphens in agent names, agent then fails to loadTalvez já em andamento @surajksharma07 assumiu há 1 dia. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 83/100
google/adk-python#8002 · 2 comentários · 1 responsável ·
Mantenedores costumam responder em até 4 dias
-
ContainerCodeExecutor drops output files that are hard linksTalvez já em andamento @llalitkumarrr assumiu há 5 dias. Abertacore
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
google/adk-python#7906 · 3 comentários · 1 responsável ·
Mantenedores costumam responder em até 4 dias
-
RestApiTool crashes on a request body media type that has no schemaTalvez já em andamento @llalitkumarrr assumiu há 8 dias. Abertacore
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
google/adk-python#7838 · 2 comentários · 1 responsável ·
Mantenedores costumam responder em até 4 dias
-
LiteLlm with SSE streaming records the answer twice in gen_ai.output.messagesTalvez já em andamento @surajksharma07 assumiu há 16 dias. Abertamodels
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
google/adk-python#7630 · 11 comentários · 1 responsável ·
Mantenedores costumam responder em até 4 dias
-
CI Mypy Check flags an existing streaming_utils.py error as new because the PR run reuses the baseline's mypy cacheTalvez já em andamento @DeanChensj assumiu há 32 dias. Abertaneeds review
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
google/adk-python#7409 · 1 comentário · 2 responsáveis ·
Mantenedores costumam responder em até 4 dias
Todas as issues de google/adk-python
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
micropython/micropython#19906 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
FinanceFlash/unvibecode#597 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
TomAnthony/YourOwnWeigh#21 ·
Mantenedores costumam responder em até 1 dia
-
[BUG]: Compliance rules never see Unity Catalog views as viewsTalvez já em andamento @wagnercsantos assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
databrickslabs/ontos#1348 ·
Mantenedores costumam responder em até 3 dias
-
Deprecated datetime.utcnow() is called on every log line (DeprecationWarning on Python 3.12+)Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 2 dias