Shell 工具 (run_shell_command)

使用 run_shell_command 与底层系统交互、运行脚本或执行命令行操作。该工具在 Windows 上使用 cmd.exe /c 执行命令,在其他平台上使用 bash -c 执行。

参数

  • command (string, 必需): 要执行的确切 shell 命令。
  • description (string, 可选): 命令用途的简要说明,将显示给用户。
  • directory (string, 可选): 执行命令的目录(相对于项目根目录)。

如何使用

该命令作为子进程执行,可以启动后台进程。工具返回详细的执行信息,包括标准输出、标准错误、退出代码等。

run_shell_command(command="你的命令", description="命令描述", directory="执行目录")

示例

列出当前目录的文件:

run_shell_command(command="ls -la")

在后台启动一个开发服务器:

run_shell_command(command="npm run dev &", description="在后台启动开发服务器")

命令限制

您可以在配置文件中使用 coreToolsexcludeTools 来限制可执行的命令。

  • coreTools: 白名单。例如, ["run_shell_command(git)"] 只允许 git 命令。
  • excludeTools: 黑名单。例如, ["run_shell_command(rm)"] 将阻止 rm 命令。

验证逻辑使用前缀匹配,并且黑名单(excludeTools)的优先级高于白名单(coreTools)。

安全说明

excludeTools 中的命令特定限制是基于简单的字符串匹配,可以轻松绕过。此功能不是安全机制,不应依赖它来安全地执行不受信任的代码。建议使用 coreTools 明确选择可以执行的命令。

同时,避免需要交互式用户输入的命令,因为这可能导致工具挂起。