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 代码的强大方式。通过使智能体能够编写和运行代码,它极大地扩展了它们的解决问题能力,特别是对于涉及数据分析、计算或其他计算工作的任务。对于需要执行那些用代码比用自然语言更高效表达的复杂操作的智能体来说,此工具尤其有用。