agentscope-ai / agentscope-ai/agentscope-java

[Bug]:glob_files tool description advertises **/*.java pattern but BaseSandboxFilesystem implementation doesn't support it

Abierto
#1,674 2 comentarios 0 reacciones 0 asignados Ver en GitHub
area/core/tool bug
Lenguaje dominante
Java
Estrellas
5.6k
Forks
1.3k
Merge medio
4 d 12 h
PR fusionados (30 d)
77

Descripción

The glob_files tool in FilesystemTool.java declares its pattern parameter with the example **/*.java:

@ToolParam(name = "pattern", description = "Glob pattern (e.g., **/*.java)")

However, BaseSandboxFilesystem.glob() translates this directly into find -name:

String cmd = "find " + escapedPath + " -type f -name " + escapedPattern + " 2>/dev/null | sort";

find -name does not support ** — it only matches the filename portion, so **/*.md always returns empty results.

Impact

- LLM follows the tool description, uses **/*.md as instructed
- Tool silently returns empty, model retries with list_files、raw find shell commands
- Causes 3-4 rounds of wasted tool calls and unnecessary context bloat

Steps to Reproduce

1. Create a sandbox-backed agent with files in subdirectories (e.g., knowledge/foo.md)
2. Call glob_files with pattern **/*.md
3. Observe empty results

Suggested Fix

Option A: Strip **/ prefix before passing to find -name:
String findPattern = pattern.startsWith("**/") ? pattern.substring(3) : pattern;

Option B: Update tool description to only advertise find -name compatible patterns (e.g., *.java).

Location

- FilesystemTool.java line 125

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.