指南内置工具
file_write — 写入文件
创建新文件或完整覆盖已有文件的内容,含预读检查和二进制检测
创建新文件或完整覆盖已有文件的内容。对于已有文件的小范围修改,建议使用 file_edit 工具。
适用场景:让 AI 创建新文件、生成代码文件、写入配置文件、覆盖更新已有文件等。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
file_path | string | 是 | 要写入的文件的绝对路径 |
content | string | 是 | 要写入的完整文件内容 |
约束与限制
| 限制项 | 值 |
|---|---|
| 写入内容 | 仅支持纯文本文件(UTF-8 编码) |
| 不支持的类型 | 二进制文件(含 null byte 序列) |
| 父目录 | 自动创建不存在的父目录 |
安全机制
| 防护项 | 说明 |
|---|---|
| 预读检查 | 覆盖已有文件前,必须先通过 file_read 读取过该文件 |
| 目录检测 | 检测到路径是目录时拒绝写入 |
| 二进制检测 | 扫描内容前 8KB,含 null byte 则判定为二进制内容 |
| 自动建目录 | 父目录不存在时自动创建 |
与 file_edit 的区别
file_edit 用于对已有文件进行精确字符串替换(小范围修改)。
file_write 用于创建新文件或完整覆盖已有文件(全量写入)。
AI Agent 会根据场景自动选择:新建文件用file_write,修改现有内容用file_edit。
错误场景
| 错误类型 | 说明 |
|---|---|
缺少 file_path | 未提供必填参数 |
缺少 content | 未提供必填参数 |
| 路径是目录 | 写入路径指向目录 |
| 二进制内容 | 内容包含 null byte |
| 创建目录失败 | 父目录创建权限不足等 |
使用示例
zapmyco run '在 src/ 下创建一个新的模块文件 utils/helpers.rs'
zapmyco run '生成一个 Cargo.toml 配置文件'
zapmyco run '将重构后的代码写入到 src/new_implementation.rs'