Skip to content

文件系统和 Shell 工具

Triggerfish 为智能体提供通用的文件系统和 shell 工具,用于读取、写入、搜索和执行命令。这些是其他功能(执行环境、explore、技能)构建的基础工具。

工具

read_file

读取绝对路径处文件的内容。

参数类型必需描述
pathstring要读取的文件绝对路径

返回文件的完整文本内容。

write_file

将内容写入工作区相对路径的文件。

参数类型必需描述
pathstring工作区中的相对路径
contentstring要写入的文件内容

写入范围限定在智能体的工作区目录。智能体不能向文件系统的任意位置写入。

edit_file

替换文件中的唯一字符串。old_text 必须在文件中恰好出现一次。

参数类型必需描述
pathstring要编辑的文件绝对路径
old_textstring要查找的精确文本(必须在文件中唯一)
new_textstring替换文本

这是一个精确编辑工具——它找到一个精确匹配并替换它。如果文本出现多次或根本不出现,操作将失败并返回错误。

list_directory

列出给定绝对路径处的文件和目录。

参数类型必需描述
pathstring要列出的目录绝对路径

目录条目带 / 后缀。

search_files

搜索匹配 glob 模式的文件,或使用 grep 搜索文件内容。

参数类型必需描述
pathstring要搜索的目录
patternstring文件名的 glob 模式,或在文件中搜索的文本/正则表达式
content_searchboolean如果为 true,搜索文件内容而非文件名

run_command

在智能体工作区目录中运行 shell 命令。

参数类型必需描述
commandstring要执行的 shell 命令

返回 stdout、stderr 和退出代码。命令在智能体的工作区目录中执行。PRE_TOOL_CALL hook 在执行前检查命令是否在拒绝列表中。

与其他工具的关系

这些文件系统工具与执行环境工具(exec.writeexec.readexec.runexec.ls)有重叠。区别:

  • 文件系统工具操作绝对路径和智能体的默认工作区。它们始终可用。
  • 执行工具在具有显式隔离、测试运行器和包安装的结构化工作区中操作。它们是执行环境集成的一部分。

智能体使用文件系统工具进行一般文件操作,使用执行工具在开发工作流(写入/运行/修复循环)中工作。

安全

  • write_file 范围限定在智能体的工作区目录
  • run_command 通过 PRE_TOOL_CALL hook,命令作为上下文
  • 命令拒绝列表阻止危险操作(rm -rf /sudo 等)
  • 所有工具响应通过 POST_TOOL_RESPONSE 进行分类和 taint 跟踪
  • 在计划模式下,write_file 在计划获批前被阻止