作者:zoahdev · 2026-08-15 · 对应官方效率反馈 discussion #1864
真实会话观测:一次 PowerShell 递归列目录(Get-ChildItem -Recurse -Depth 2 -Include *.md)遍历进 node_modules 的符号链接,单独耗时 120 秒超时,产出约 78KB 垃圾输出;整轮 9 步累计输入 307K token。
本地微基准:干净目录树上同样的命令只需 4ms——卡死不是命令本身,而是符号链接/junction 环、网络盘或超大目录。所以解决方式不是"更快地列目录",而是默认不要用 shell 递归列目录。
把下面这段写进仓库的 AGENTS.md(或 dsh 全局规则),让 agent 每次检索都走同一套低成本路径:
## Retrieval contract(检索约定)
1. 文件发现优先用 Glob/搜索工具,不用 `find`/`Get-ChildItem -Recurse`/`tree`。
2. 搜索工具必须排除 `node_modules`、`.git`、`dist`、`.next`、`__pycache__`。
3. 读取文件用 offset/limit,不整篇读;grep 输出用 head_limit + 少量上下文行。
4. 相关文件并行批读取,减少轮次。
5. 中间步骤只输出结论,最终答案控制在与问题匹配的长度。
6. 提示词前缀保持稳定,持续命中上下文缓存。