指南内置工具
file_read — 读取文件内容
读取本地文件系统中的文件内容,支持指定行号范围
读取本地文件系统中的文件内容,支持指定行号范围。适用于查看源代码文件、读取配置文件、分析日志文件等场景。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
file_path | string | 是 | 要读取的文件的绝对路径 |
offset | integer | 否 | 起始行号(从 1 开始),默认 1。仅大文件需要分段读取时使用 |
limit | integer | 否 | 要读取的行数,默认 2000。仅大文件需要分段读取时使用 |
约束与限制
| 限制项 | 值 |
|---|---|
| 最大文件大小 | 256 KB(超过需分段读取) |
| 输出最大字符数 | 100,000 字符(超出返回错误) |
| 默认读取行数上限 | 2000 行 |
| 支持的文件类型 | 纯文本文件(UTF-8 编码) |
输出格式
文件 /path/to/file (共 150 行, 显示 1-100 行)
1 第一行内容
2 第二行内容
...支持分页提示:
文件 /path/to/file (共 500 行, 显示 1-200 行)
1 内容
...
---
[显示 200/500 行,使用 offset=201 查看后续内容]安全机制
| 防护项 | 说明 |
|---|---|
| 文件不存在 | 返回明确的错误信息 |
| 目录读取 | 提示应使用 ls 命令 |
| 设备文件拦截 | 字符设备(如 /dev/null)和块设备不允许读取 |
| 文件过大 | 超过 256KB 返回错误,提示使用 offset/limit 分段读取 |
| 二进制检测 | 扫描文件开头 8KB,含 null byte 则判定为二进制文件 |
| 非 UTF-8 编码 | 非 UTF-8 文本文件返回错误 |
错误场景
| 错误类型 | 说明 |
|---|---|
缺少 file_path | 未提供必填参数 |
| 文件不存在 | 指定的路径无文件 |
| 路径是目录 | 读取目录不被允许 |
| 设备文件 | 字符/块设备文件不允许读取 |
| 文件过大 | 超过 256KB 限制 |
| 二进制文件 | 检测到 null byte |
| 非 UTF-8 文本 | 文件编码不是 UTF-8 |
与 file_search 的配合
file_search 用于在文件中搜索特定内容(需知道搜索目标)。
file_read 用于直接查看文件内容(需知道文件路径和行号范围)。
AI Agent 会自动组合两者:先用file_search定位相关代码行,再用file_read查看具体上下文。
使用示例
zapmyco run '读取 src/main.rs 的内容'
zapmyco run '查看 Cargo.toml 的前 30 行'
zapmyco run '读取 src/config/settings.rs 的第 50-100 行'相关文档
- 内置工具目录 — 查看所有工具
- file_search — 搜索文件内容
- file_find — 按名称查找文件