file_reader · v1.2.0 · 2026-04-23 · sha256 e876c30cdfa22532

file_reader v1.2.0A

Immutable. This exact content is served forever at /api/v1/blob/e876c30cdfa22532.

---
name: file_reader
version: "1.2.0"
description: "读取与摘要文本类文件(txt、md、json、yaml、csv、log、代码文件等)。PDF 与 Office 文件由专用技能处理。"
dependencies:
  tools:
    - read_file
    - execute_shell_command
---

# 文件读取

当用户要求读取或摘要本地文本文件时使用本技能。

**不在范围内**:PDF、Word (.docx)、Excel (.xlsx)、PPT (.pptx)、图片、音视频 — 这些由专用技能处理。

## 工作流程

### 第一步:类型探测(可选)

不确定文件类型时,先探测:

**macOS / Linux:**
```
execute_shell_command(command="file -b --mime-type \"/path/to/file\"")
```

**Windows:**
```
execute_shell_command(command="cmd /c \"echo %~x1\" & exit", timeoutSeconds=10)
```
或直接根据扩展名判断。

### 第二步:读取文件

```
read_file(filePath="/absolute/or/relative/path/to/file.txt")
```

读取特定行范围(大文件时):
```
read_file(filePath="/path/to/large.log", startLine=1, endLine=200)
```

### 第三步:处理内容

根据文件类型采用对应策略:

| 类型 | 处理方式 |
|------|---------|
| `.txt` / `.md` | 直接摘要或按用户需求处理 |
| `.json` / `.yaml` | 先列出顶层键,再展开用户关注的字段 |
| `.csv` / `.tsv` | 展示表头 + 前 5 行,再描述各列含义和数据规模 |
| `.log` | 读取最后 200 行,聚焦错误/警告模式 |
| 源代码 | 说明文件作用,摘要核心逻辑,不逐行复述 |

## 大文件策略

文件超过 500 行时分段读取:

```
# 先读前 100 行了解结构
read_file(filePath="/path/to/big.log", startLine=1, endLine=100)

# 再读末尾 200 行看最新内容
read_file(filePath="/path/to/big.log", startLine=-200)
```

日志文件也可用系统命令读取末尾:

**macOS / Linux:**
```
execute_shell_command(command="tail -n 200 \"/path/to/file.log\"")
```

**Windows:**
```
execute_shell_command(command="powershell Get-Content -Tail 200 \"/path/to/file.log\"")
```

## 跨平台路径注意事项

- **Windows**:路径使用反斜杠 `\` 或正斜杠 `/` 均可,但含空格时须加引号
- **macOS / Linux**:使用正斜杠 `/`,含空格时须加引号或转义

## 安全规范

- 只读取文件,不执行其内容
- 优先读取所需的最小部分,避免加载超大文件到上下文
- 如文件包含敏感信息(密码、密钥),提醒用户注意但不拒绝读取