文件系统和 Shell 工具
Triggerfish 为智能体提供通用的文件系统和 shell 工具,用于读取、写入、搜索和执行命令。这些是其他功能(执行环境、explore、技能)构建的基础工具。
工具
read_file
读取绝对路径处文件的内容。
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
path | string | 是 | 要读取的文件绝对路径 |
返回文件的完整文本内容。
write_file
将内容写入工作区相对路径的文件。
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
path | string | 是 | 工作区中的相对路径 |
content | string | 是 | 要写入的文件内容 |
写入范围限定在智能体的工作区目录。智能体不能向文件系统的任意位置写入。
edit_file
替换文件中的唯一字符串。old_text 必须在文件中恰好出现一次。
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
path | string | 是 | 要编辑的文件绝对路径 |
old_text | string | 是 | 要查找的精确文本(必须在文件中唯一) |
new_text | string | 是 | 替换文本 |
这是一个精确编辑工具——它找到一个精确匹配并替换它。如果文本出现多次或根本不出现,操作将失败并返回错误。
list_directory
列出给定绝对路径处的文件和目录。
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
path | string | 是 | 要列出的目录绝对路径 |
目录条目带 / 后缀。
search_files
搜索匹配 glob 模式的文件,或使用 grep 搜索文件内容。
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
path | string | 是 | 要搜索的目录 |
pattern | string | 是 | 文件名的 glob 模式,或在文件中搜索的文本/正则表达式 |
content_search | boolean | 否 | 如果为 true,搜索文件内容而非文件名 |
run_command
在智能体工作区目录中运行 shell 命令。
| 参数 | 类型 | 必需 | 描述 |
|---|---|---|---|
command | string | 是 | 要执行的 shell 命令 |
返回 stdout、stderr 和退出代码。命令在智能体的工作区目录中执行。PRE_TOOL_CALL hook 在执行前检查命令是否在拒绝列表中。
与其他工具的关系
这些文件系统工具与执行环境工具(exec.write、exec.read、exec.run、exec.ls)有重叠。区别:
- 文件系统工具操作绝对路径和智能体的默认工作区。它们始终可用。
- 执行工具在具有显式隔离、测试运行器和包安装的结构化工作区中操作。它们是执行环境集成的一部分。
智能体使用文件系统工具进行一般文件操作,使用执行工具在开发工作流(写入/运行/修复循环)中工作。
安全
write_file范围限定在智能体的工作区目录run_command通过PRE_TOOL_CALLhook,命令作为上下文- 命令拒绝列表阻止危险操作(
rm -rf /、sudo等) - 所有工具响应通过
POST_TOOL_RESPONSE进行分类和 taint 跟踪 - 在计划模式下,
write_file在计划获批前被阻止
