CodeInterpreterTool
描述
CodeInterpreterTool 允许 CrewAI 代理执行他们自主生成的 Python 3 代码。此功能特别有价值,因为它允许代理创建代码、执行代码、获取结果并利用这些信息来指导后续决策和操作。 有几种方法可以使用此工具:Docker 容器(推荐)
这是主要选项。代码在安全、隔离的 Docker 容器中运行,无论其内容如何,都能确保安全。请确保 Docker 已安装并在您的系统上运行。如果您没有,可以从此处安装。沙盒环境
如果 Docker 不可用——无论是未安装还是因任何原因无法访问——代码将在受限的 Python 环境(称为沙盒)中执行。此环境非常有限,对许多模块和内置函数都有严格限制。不安全执行
不建议用于生产环境 此模式允许执行任何 Python 代码,包括对sys, os.. 等模块的危险调用。查看如何启用此模式
日志记录
CodeInterpreterTool 将所选的执行策略记录到标准输出 (STDOUT)
安装
要使用此工具,您需要安装 CrewAI 工具包示例
以下示例演示了如何将CodeInterpreterTool 与 CrewAI 代理一起使用
代码
代码
启用 unsafe_mode
代码
参数
CodeInterpreterTool 在初始化期间接受以下参数
- user_dockerfile_path: 可选。用于代码解释器容器的自定义 Dockerfile 路径。
- user_docker_base_url: 可选。用于运行容器的 Docker 守护进程 URL。
- unsafe_mode: 可选。是否直接在主机上而不是在 Docker 容器或沙盒中运行代码。默认为
False。请谨慎使用! - default_image_tag: 可选。默认 Docker 镜像标签。默认为
code-interpreter:latest
- code: 必填。要执行的 Python 3 代码。
- libraries_used: 可选。代码中使用的需要安装的库列表。默认为
[]
代理集成示例
以下是关于如何将CodeInterpreterTool 与 CrewAI 代理集成的更详细示例
代码
实现细节
CodeInterpreterTool 使用 Docker 为代码执行创建安全环境
代码
- 验证 Docker 镜像是否存在,如果需要则构建它
- 创建挂载当前工作目录的 Docker 容器
- 安装代理指定的任何必需库
- 在容器中执行 Python 代码
- 返回代码执行的输出
- 通过停止和删除容器进行清理
安全注意事项
默认情况下,CodeInterpreterTool 在隔离的 Docker 容器中运行代码,这提供了一层安全性。但是,仍有一些安全注意事项需要牢记
- Docker 容器可以访问当前工作目录,因此敏感文件可能会被访问。
- 如果 Docker 容器不可用且代码需要安全运行,它将在沙盒环境中执行。出于安全原因,不允许安装任意库
unsafe_mode参数允许代码直接在主机上执行,这应仅在受信任的环境中使用。- 允许代理安装任意库时要谨慎,因为它们可能包含恶意代码。
结论
CodeInterpreterTool 为 CrewAI 代理提供了一种在相对安全的环境中执行 Python 代码的强大方式。通过使代理能够编写和运行代码,它显著扩展了他们的解决问题的能力,特别是对于涉及数据分析、计算或其他计算工作的任务。此工具对于需要执行用代码比自然语言表达更高效的复杂操作的代理特别有用。