Skip to content

write - 文件写入工具

写入内容到文件,支持创建、覆盖和追加模式。

概述

write 工具让智能体能够:

  • 创建新文件
  • 覆盖现有文件
  • 追加内容到文件末尾

配置

json
{
  "type": "builtin",
  "name": "write",
  "description": "写入内容到文件",
  "config": {
    "workDir": "${global.root_dir}/workspace",
    "maxFileSize": 10485760
  }
}

配置参数

参数类型默认值说明
workDirstring.工作目录,限制文件访问范围
maxFileSizeint10485760 (10MB)单次写入最大字节数,0 表示不限制

操作类型

file - 写入文件

写入内容到文件,通过 mode 参数指定写入模式。

参数

json
{
  "operation": "file",
  "path": "path/to/file.txt",
  "content": "文件内容",
  "mode": "create"
}

写入模式

mode说明
create创建新文件,如果文件已存在则报错(默认)
overwrite覆盖现有文件
append追加内容到文件末尾

示例 - 创建新文件

json
{
  "operation": "file",
  "path": "hello.txt",
  "content": "Hello, World!",
  "mode": "create"
}

示例 - 覆盖文件

json
{
  "operation": "file",
  "path": "hello.txt",
  "content": "New content",
  "mode": "overwrite"
}

示例 - 追加内容

json
{
  "operation": "file",
  "path": "log.txt",
  "content": "\n2024-01-15: 新的日志条目",
  "mode": "append"
}

使用示例

创建新文件

用户: 创建一个 README.md 文件

智能体调用:
{
  "operation": "file",
  "path": "README.md",
  "content": "# 项目名称\n\n项目描述...",
  "mode": "create"
}

追加日志

用户: 记录一条日志

智能体调用:
{
  "operation": "file",
  "path": "workspace/log.md",
  "content": "\n## 2024-01-15\n完成了文档编写任务",
  "mode": "append"
}

覆盖文件

用户: 更新配置文件

智能体调用:
{
  "operation": "file",
  "path": "config.yaml",
  "content": "server:\n  port: 8080",
  "mode": "overwrite"
}

安全限制

工作目录限制

只能写入 workDir 配置的目录及其子目录。

文件大小限制

单次写入内容不能超过 maxFileSize 配置的大小(默认 10MB)。

错误处理

错误原因解决方案
path outside workdir路径在工作目录外使用工作目录内的路径
file already existscreate 模式时文件已存在使用 overwrite 模式覆盖
content too large内容超过大小限制减小写入内容或调整 maxFileSize
permission denied无写入权限检查文件权限

最佳实践

1. 重要文件先备份

在覆盖重要文件前,先读取确认内容:

json
// 1. 先读取确认
{"operation": "file", "path": "important.md"}

// 2. 确认后再写入
{"operation": "file", "path": "important.md", "content": "新内容", "mode": "overwrite"}

2. 使用追加模式记录日志

json
{
  "operation": "file",
  "path": "MEMORY.md",
  "content": "\n## 2024-01-15\n今天学习了新技能...",
  "mode": "append"
}

3. 使用原子写入

write 工具使用原子写入(先写入临时文件再重命名),确保写入过程中断不会损坏原有文件。

相关工具

  • read - 文件读取
  • edit - 文件编辑
  • bash - Shell 命令执行

基于 Apache-2.0 许可发布