您可以做什么
- 运行任何 Shell 命令: 执行标准命令,如
ls、grep、curl或git。 - 执行脚本: 运行 shell 脚本(
.sh)或其他命令行脚本。 - 管理系统进程: 检查运行中的进程、管理服务或收集系统信息。
- 选择您的环境: 直接在本地机器上运行命令以获得速度,或在安全沙箱中运行以确保安全。
核心概念
BashTool: 您提供给 Agent 的主要工具。它接受 shell 命令作为输入并执行它。BashOperator(后端): 运行命令的引擎。您可以从两个后端中选择:LocalBashOperator: 直接在主机上执行命令。速度快但应仅在受信任的环境中使用。SandboxBashOperator: 在安全、隔离的 E2B 容器中执行命令。这是处理 LLM 或用户生成的命令的安全选择。
快速开始
选择正确的后端
| 后端 | 用例 | 主要优势 |
|---|---|---|
LocalBashOperator | 受信任的脚本和开发 | 性能和本地访问 |
SandboxBashOperator | 不受信任的命令 (LLM) | 安全性和隔离 |
核心操作和示例
运行简单命令
执行任何标准 shell 命令并获取stdout、stderr 和 exitCode。
管道命令
使用管道链接命令,就像在常规 shell 中一样。流式输出
对于像npm install 或开发服务器这样的长时间运行的命令,您可以实时流式传输 stdout 和 stderr,而不是等待命令完成。这是通过在创建操作符时提供 onStdout 和 onStderr 处理程序来完成的。
最佳实践和故障排除
- 优先使用特定工具: 如果存在专用工具(如
FilesystemToolkit中的ls或grep工具),请优先使用它而不是原始bash命令。专用工具通常提供结构化输出和更好的错误处理。 - 安全性: 永远不要将
LocalBashOperator用于 LLM 或外部用户生成的命令。始终对不受信任的输入使用SandboxBashOperator。 - 错误处理: 始终检查结果中的
exitCode和stderr,以了解命令是否失败以及原因。 - 工作目录: 注意当前工作目录 (
cwd)。命令相对于它执行。您可以在创建BashOperator时设置cwd。