agentscope-ai / agentscope-ai/agentscope-java
[Bug]:glob_files tool description advertises **/*.java pattern but BaseSandboxFilesystem implementation doesn't support it
- 主要言語
- Java
- スター
- 5.6k
- フォーク
- 1.3k
- 平均マージ
- 4日 12時間
- マージ済み PR(30日)
- 77
説明
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
コントリビューションガイド
評価
この issue はまだ評価されていません。