| name | file |
| description | 读写、编辑和删除本地文件。当用户提到「打开文件」「帮我看看这个文档」 「帮我写一份 XX」「修改 XX 文件」「读一下 XX」「删除 XX」或拖拽文件到对话中时使用此技能。 支持 .txt, .md, 代码文件的直接读写,以及 .pdf, .docx, .xlsx 的文本提取。
|
文件操作技能(FileSkill)
概述
此技能让你能够读取、创建、编辑和删除用户本地文件系统中的文件。所有文件操作都限制在用户授权的目录范围内。
所有操作通过 run_skill_script 工具执行 scripts/ 目录下的脚本。脚本源码不会进入对话上下文窗口,你只能看到执行结果。
可用脚本
通过 run_skill_script 调用,skill_name 始终为 file:
read_file.ts
读取指定路径的文件内容。纯文本文件直接返回内容;.pdf / .docx / .xlsx 返回提取的文本。
参数(JSON):{ "path": "文件绝对路径" }
返回:{ "success": true, "content": "文件内容" }
write_file.ts
创建新文件或覆写已有文件。
参数(JSON):{ "path": "文件绝对路径", "content": "要写入的内容" }
返回:{ "success": true, "content": "已创建文件: ..." }
edit_file.ts
通过字符串替换精确修改已有文件。old_text 必须与文件内容完全一致(包括空格和换行)。
参数(JSON):{ "path": "文件绝对路径", "old_text": "被替换文本", "new_text": "新文本" }
返回:{ "success": true, "content": "已编辑文件: ..." }
delete_file.ts
删除指定路径的文件。
参数(JSON):{ "path": "文件绝对路径" }
返回:{ "success": true, "content": "已删除文件: ..." }
使用指南
何时使用 read_file.ts
- 用户说「打开」「看看」「读一下」某个文件
- 用户拖拽文件到对话(消息中包含文件路径)
- 你需要了解某个文件的内容才能回答问题
何时使用 write_file.ts
- 用户明确要求创建新文件(「帮我写一份笔记」「创建一个 TODO 列表」)
- 用户要求将内容保存到文件
- 注意:覆写已有文件前,先用 read_file.ts 确认文件是否存在。如果文件存在且用户未明确说要覆写,应先告知用户
何时使用 edit_file.ts
- 用户要求修改已有文件的部分内容
- 先用 read_file.ts 读取文件,找到要修改的精确文本片段,再用 edit_file.ts 替换
- old_text 必须与文件中的内容完全匹配(包括空格和换行)
何时使用 delete_file.ts
- 用户明确要求删除某个文件
- 内部系统需要删除临时文件(如 BOOTSTRAP.md 自毁)
- 谨慎使用:删除前确认用户意图,不可恢复
文件类型支持
| 类型 | 读取 | 写入 | 编辑 | 删除 |
|---|
| .txt, .md | ✅ 直接读取 | ✅ | ✅ | ✅ |
| 代码文件 (.js, .ts, .py 等) | ✅ 直接读取 | ✅ | ✅ | ✅ |
| .pdf | ✅ 文本提取 | ❌ | ❌ | ✅ |
| .docx | ✅ 文本提取 | ❌ | ❌ | ✅ |
| .xlsx | ✅ 文本提取 | ❌ | ❌ | ✅ |
安全边界
- 所有路径必须在用户授权的目录(allowedRoots)范围内,路径校验失败会返回错误
- 禁止访问系统敏感目录(如 ~/.ssh/、/etc/)
- 不要尝试读取二进制文件(图片、视频、可执行文件等)
- 文件大小有上限限制,过大的文件会返回截断提示
需要查看完整的文件格式支持列表和详细说明,请使用 read_skill_reference 读取 format-details.md。