指南内置工具
file_edit — 编辑文件内容
提供五种编辑模式对本地文件进行精确、安全的内容修改(快速参考)
file_edit 提供五种编辑模式:line_range(推荐)、append、insert_after、批量编辑、以及旧有的 old_string/new_string 模式。
适用场景:让 AI 修复代码中的 bug、重构代码、更新配置文件等。
参数速览
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
file_path | string | 是 | 要修改的文件的绝对路径 |
mode | string | 否 | 编辑模式:line_range(默认)、append |
start_line | integer | 否* | 要替换的起始行号(仅 line_range 模式) |
end_line | integer | 否* | 要替换的结束行号(仅 line_range 模式) |
expected | string | 否* | 预期的当前内容,至少 3 行非空代码行(仅 line_range 模式) |
new_content | string | 否* | 替换后的新内容(仅 line_range 模式) |
content | string | 否* | 要追加的内容(仅 append 模式) |
old_string | string | 否* | (旧模式)要被替换的文本 |
new_string | string | 否* | (旧模式)替换后的文本 |
replace_all | boolean | 否 | (旧模式)是否替换所有匹配项(默认 false) |
* 不同模式需要不同的参数组合,详见独立设计文档。
行为特性
- 内容验证(line_range 模式):自动验证 AI 描述的 expected 内容与实际内容是否一致,防止数错行号
- 自动合并:AI 在一轮中发出的多个同文件 line_range 编辑会自动合并,降序执行解决行号偏移,全部验证通过后才一次性写回
- 向后兼容:旧的
old_string/new_string模式完整保留
约束与限制
| 限制项 | 值 |
|---|---|
| 支持的文件 | 仅纯文本文件(UTF-8 编码) |
| 不支持的类型 | 二进制文件、Jupyter Notebook(.ipynb) |
使用示例
zapmyco run '修复 src/main.rs 中的拼写错误,将 "helo" 改为 "hello"'
zapmyco run '在 src/lib.rs 末尾追加一个 helper 函数'
zapmyco run '将 Cargo.toml 中的版本号改为 0.2.0,并将 edition 改为 2024'📖 详细文档:见 file_edit 独立设计文档,包含完整的实现原理、安全模型、验证算法、边界 case 和设计考量。
相关文档
- 内置工具目录 — 查看所有工具
- file_edit 设计文档 — 深入理解实现原理和安全模型
- file_write — 创建新文件或覆盖已有文件