Skip to content
FunCoding

Search

Search docs, Skills and MCP

文件发现与分段读取

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

This page has not been translated into English yet. The original Chinese version is shown below.

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

发现路径和匹配内容

工具参数与结果
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 获取具体文件;其官方旧示例仅保留作内部实现参考。

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