跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

文件发现与分段读取

使用 Glob、Grep、ReadFile,处理结果截断、PDF 与旧多文件接口。

先用路径模式或内容检索缩小范围,再读取相关文件。读取返回的截断信息也是结果的一部分,不能把前几千行的预览当作已看完整文件。

发现路径和匹配内容

工具参数与结果
globpattern 必填,path 默认当前目录;返回绝对路径,最近修改优先,最多一百个文件
grep_searchpattern 必填,path 可为文件或目录,glob 过滤文件,limit 为可选正整数
list_directorypath 为绝对目录,ignore 可排除 glob,respect_git_ignore 默认 true;目录排在文件前

glob 和 grep_search 默认尊重 .gitignore、.qwenignore 与配置的自定义忽略文件。Grep 当前实现加入 --ignore-case,因此默认不区分大小写;其 limit 限制结果行/条目,未设也仍有输出截断机制。

list_directory 默认关闭,因为多数列目录需求可由 glob 覆盖。设置 tools.listDirectory.enabled:true,或在 --core-tools / tools.core 中显式包含 list_directory,才启用它。

glob(pattern="src/**/*.ts")
grep_search(pattern="refreshToken", path="src", glob="*.ts", limit=40)

文本读取

read_file 的 file_path 为绝对路径。offset 从零开始,使用它时同时提供 limit;返回的行号说明通常按读者习惯从一开始,应区分参数和展示。

read_file(file_path="/workspace/app/src/auth.ts", offset=100, limit=80)

未设 limit 时工具使用默认读取上限或可容纳的全部内容,不能依赖“未限制”得到无限正文。长行和总行数都可能触发截断。文件路径还需满足工作区和权限配置;扫描忽略规则不能替代访问控制。

PDF 和媒体

模型支持对应模态时,图片、PDF、音频、视频可作为 inlineData 发送;不支持的媒体通常返回说明,普通二进制跳过。

PDF 的 pages 从一开始,接受单页或闭区间,例如 3、20-25,一次最多二十页。文本主模型先尝试提取文本;提取失败,或明确/实际单页仍超过 12K-token 文本预算时,可由已配置视觉桥接最多转写四页,从请求首面开始并在已知总页数处裁剪。

普通多页文本溢出会要求缩小 pages,不自动改成视觉读取。转写有损且被标为不可信机器内容,结果应披露实际页段、剩余页和已知视觉模型/端点。桥接失败时保留原提取错误,不能凭“尝试过视觉”称为读取成功。

多文件读取的当前入口

read_many_files 已不再向模型注册为独立工具。当前按 glob / grep_search 定位,再用 read_file 获取具体文件;其官方旧示例仅保留作内部实现参考。

旧多文件章节把目录路径描述为空结果,但当前 @目录已通过实现核验为目录结构,不递归注入所有正文。见交互引用,不要把旧内部接口行为套到今天的 @语法。