从代码解释器到智能体计算机:为什么智能体需要状态化沙盒

从代码解释器到智能体计算机:为什么智能体需要状态化沙盒

当任务需要持久化文件、已安装的依赖项、浏览器或预览访问、长时间运行的命令,以及超出单次代码执行范围的可重复输出审查时,智能体需要状态化沙盒。对于有界的计算、图表和一次性脚本,代码解释器仍然有用。一旦智能体需要编辑代码仓库、重试失败的测试、保留生成的人工制品、检查Web UI或将工作交还给人类,它就需要一个更接近工作区或智能体计算机的环境。

从代码解释器到智能体计算机,发生了什么变化?

早期的“代码解释器”功能解决了一个狭窄但重要的问题:让模型编写并运行代码(通常是Python),针对对话中附带文件进行操作。对于许多数据处理任务来说,这已经足够了。用户可以上传CSV,请求转换,获得图表,然后下载输出。

智能体工作的覆盖面更广。一个编码智能体可能需要克隆项目、安装依赖项、编辑文件、运行测试、检查日志、启动开发服务器、打开预览、修复结果,并长时间保留状态以供审查者验证更改。一个浏览器智能体可能需要Cookie、下载的文件、屏幕截图、DOM状态,以及重放失败步骤的方法。一个研究或评估智能体可能需要数百个隔离的工作单元,这些工作单元保留人工制品和日志以供后续检查。

这就是术语正在转变的原因:

  • 代码解释器 意味着一种用于短脚本和生成输出的托管执行工具。
  • 沙盒 意味着一个隔离环境,不受信任或由智能体生成的工作可以在其中运行,与主机系统隔离。
  • 工作区 意味着一个基于文件的环境,任务状态可以在多个步骤中累积。
  • 智能体计算机 意味着一个更完整的运行时,包含文件、命令、包、浏览器或UI访问、日志、预览、人工制品、生命周期控制以及重置或快照选项。

这些术语有重叠之处。有用的区别不在于品牌,而在于智能体需要多少状态和审查面。

核心术语的含义是什么?

概念 主要工作 典型状态模型 最佳适用场景
代码解释器 运行生成的代码并返回输出 短时会话状态 计算、文件转换、图表、小脚本
沙盒 将执行与主机及其他会话隔离 临时或持久化 运行不受信任的代码、命令执行、浏览器自动化
工作区 将文件和环境上下文保持在一起 持久化文件系统或可恢复镜像 编码智能体、数据项目、任务交接、可重复审查
智能体计算机 为智能体提供带有工具和生命周期控制的任务环境 状态化运行时,包含日志、人工制品、预览以及重置/快照路径 多步骤软件任务、浏览器智能体、评估、长时间运行的工作流

同一个产品可以覆盖多个盒子。一个状态化沙盒可以表现得像一个工作区。一个带有终端、浏览器、人工制品和生命周期管理的工作区开始感觉像一台智能体计算机。评估的问题是智能体可以做什么,哪些状态会保留,以及人类可以多可靠地检查或重置结果。

何时短时代码执行就足够了?

当任务很小、有界且易于从最终输出验证时,短时执行仍然是正确的默认选择。

在以下情况下使用短时代码解释器风格的环境:

  • 输入文件已提前提供。
  • 任务可以在一到几次脚本运行中完成。
  • 输出是图表、表格、转换后的文件或计算结果。
  • 不需要在托管环境之外安装包。
  • 用户不需要检查正在运行的应用程序、浏览器状态或长命令日志。
  • 一旦答案交付,会话就可以被丢弃。

例如,一个支持分析师要求助手按类别分组工单,不需要持久化工作区。一个数据分析师要求一次性可视化,可能不需要浏览器访问或快照。添加比任务需要的更多基础设施可能会使生命周期、成本和安全审查变得更困难。

智能体何时需要状态化沙盒?

当智能体不仅仅是计算一个答案,而是通过工作流进行操作时,状态化沙盒变得重要。

文件必须在多个步骤中存活

智能体通常会创建中间文件:下载的源数据、生成的代码、测试夹具、构建产物、屏幕截图、报告和日志。如果每次执行都从干净状态开始,智能体必须反复重建上下文,或者将太多状态塞入模型提示中。

状态化文件系统为智能体提供了上下文窗口之外的工作记忆。它也为人类提供了具体可检查的内容。

依赖项需要安装或重用

许多实际任务依赖于默认运行时中不存在的包。一个编码智能体可能需要 npm cipip install、Playwright 浏览器、编译器或项目特定的二进制文件。一个数据智能体可能需要与生产环境匹配的库版本。

如果这些依赖项在每次命令后都消失,智能体会浪费时间并产生更多故障点。模板和快照帮助团队从已知环境开始,而不是在每次运行时重建。

命令可以运行超过一个模型轮次

构建、测试、爬虫、迁移、训练作业和评估框架可能运行时间超过单个响应周期。智能体需要启动命令、观察输出、从部分故障中恢复并捕获日志。

这需要进程状态。还需要超时控制、取消功能以及在模型进入下一步后检索结果的方法。

浏览器和预览访问成为任务的一部分

许多智能体工作流是面向视觉或Web的:

  • 编码智能体启动本地Web应用程序并检查渲染页面。
  • 浏览器智能体浏览网站、下载文件、填写表单或捕获屏幕截图。
  • 审查智能体验证图表、报告或演示页面是否实际渲染。

对于这些工作,环境需要的不仅仅是标准输出。它需要端口、预览URL、浏览器自动化、屏幕截图或其他让智能体和审查者看到结果的产物路径。

人工审查需要可重复的证据

智能体可以说“测试通过”或“应用程序看起来正确”,但生产团队需要可重复的证据。一个好的运行时保留日志、生成的文件、屏幕截图和预览链接的时间足够长,以供另一个人或进程审查。

这就是状态化沙盒改变协作模型的地方。沙盒不仅是模型的工具,也是审查的产物。

状态化智能体沙盒应保留什么?

状态只有在有意为之的情况下才有用。一个状态化沙盒应明确说明什么保留、什么重置、以及什么可以转化为可重复使用的起点。

文件系统状态

文件系统是智能体工作的基本单位。它应保存源文件、生成的输出、测试产物、日志、屏幕截图和下载的输入。它还应该易于通过SDK、CLI或UI列出、读取、写入、上传和下载文件。

运行时和包状态

运行时应支持任务所需的语言和包管理器。对于编码智能体,这通常意味着shell命令、项目级依赖项,以及重用准备好的环境的能力。对于浏览器智能体,它可能包括浏览器二进制文件和自动化框架。

网络和Web访问

网络访问需要仔细的策略,而不是模糊的开放性。某些智能体需要出站包下载、API调用或Web浏览。其他智能体应在更严格的出口规则下运行。团队应评估运行时是否允许他们决定沙盒可以访问什么,以及这些选择如何被记录。

预览和产物捕获

智能体输出通常包含的不仅仅是文本。寻找对文件、屏幕截图、浏览器会话、暴露端口、Web预览和命令日志的支持。这些产物是审查者从相信智能体的声明到检查实际结果的桥梁。

生命周期控制

状态化并不意味着永久。运行时应支持创建、超时、暂停或恢复(如果可用)、终止和清理。它还应该支持模板或快照,以便准备的环境可以重用而不必永远保留每个会话。

重置和快照路径

智能体会犯错误。一个实用的智能体计算机需要一个干净的重置路径,以及在风险工作之前捕获良好状态的方法。快照在设置之后、依赖项安装之后或长时间评估运行之前很有用。

团队应如何评估智能体运行时?

评估标准应与供应商声称分开。正确的运行时取决于工作流、风险概况和审查过程。

标准 需要问的问题 为什么重要
生命周期 环境如何创建、暂停、恢复、超时和删除? 防止遗弃会话和不受控制的成本
文件系统 智能体和审查者能否检查文件和产物? 使多步骤工作可审查
包安装 依赖项能否安装、缓存、模板化或快照? 减少设置重复和漂移
命令执行 日志、退出码、超时和后台作业是否可访问? 使失败可调试
浏览器或预览访问 智能体能否检查渲染输出或自动化浏览器? 支持Web应用、UI任务和视觉审查
网络策略 允许什么出站访问,以及如何控制? 降低包获取、Web浏览和外部调用的风险
隔离 什么边界将沙盒与彼此及主机分开? 确定运行时适合哪种代码和数据
模板和快照 团队能否重用已知良好的环境? 提高可重复性
人工交接 审查者能否看到相同的文件、日志、屏幕截图或预览? 将运行时转化为可审查的产物
成本模型 计费是否与会话时间、CPU、内存、存储或并发相关? 避免智能体并行运行时出现意外成本

安全敏感的问题需要精确的文档和产品审查。避免将任何沙盒视为神奇的保护。隔离、网络访问、秘密处理和日志都需要明确的设计选择。

Novita 智能体沙盒适合哪里?

Novita 智能体沙盒 专为需要隔离、状态化执行环境的智能体工作流而设计。智能体沙盒概述 将沙盒描述为智能体可以运行命令、读写文件、安装依赖项和使用基于浏览器的工作流的环境。它还定义了用于准备起始环境的模板和用于保存已配置沙盒状态的快照。

这使得 Novita 适合在您的智能体工作负载需要以下功能时进行评估:

  • 在隔离环境内执行代码;
  • 跨多个步骤的文件访问;
  • 依赖项安装和可重用的准备环境;
  • 面向浏览器的工作流;
  • 人类可以检查的生成产物;
  • 通过SDK或CLI的生命周期控制;
  • 一个结合了模型API和智能体沙盒基础设施的平台方向。

这并不意味着每个智能体都需要状态化沙盒。如果您的应用程序只需要对用户上传的文件进行一次性Python执行,那么代码解释器模式可能更简单。如果您的团队已经拥有一个具有严格出口、秘密处理、审计和审查流程的内部运行时,那么问题在于外部沙盒是否能在不削弱这些控制的情况下提高开发人员速度。

将 Novita 智能体沙盒作为架构决策的一部分使用,而不是作为每个执行路径的全面替代。

一个实用的决策规则

在选择运行时之前问一个问题:

在第一个模型轮次结束后,另一个人或智能体能否从环境中恢复、检查或重现此工作?

如果答案是否定的,并且输出仍然有用,那么短时执行可能就足够了。如果答案需要是肯定的,那么任务正在向状态化沙盒或智能体计算机发展。

对于生产智能体系统,这通常成为默认模式:

  1. 从干净的模板或快照开始。
  2. 让智能体在隔离的运行时内工作。
  3. 捕获文件、日志、屏幕截图、预览和命令结果。
  4. 将环境保留足够长的时间以供审查。
  5. 根据结果重置、删除或快照。

该工作流为模型提供了行动空间,同时使结果可检查。

推荐文章

常见问题

代码解释器和智能体沙盒是一样的吗?

不。代码解释器通常侧重于在托管会话中运行生成的代码并返回输出。智能体沙盒是一个更广泛的隔离环境,用于命令、文件、依赖项、浏览器工作流、生命周期控制和可审查的产物。

所有 AI 智能体都需要状态化沙盒吗?

不。简单的数据转换、计算和一次性脚本在短时执行中效果很好。当工作流依赖于持久化文件、已安装的包、长时间运行的进程、浏览器或预览访问,或人工审查产物时,智能体需要状态化沙盒。

什么是智能体计算机?

智能体计算机是一个任务环境,它为 AI 智能体提供类似计算机的工具:文件系统、shell、包、浏览器或UI访问、日志、产物、生命周期控制以及重置或快照选项。对于长时间运行和可审查的智能体工作,这是一个有用的概念。

为什么快照对智能体工作流很重要?

快照让团队可以保存已配置的环境并在以后重用。它们减少了重复的设置工作,提高了可重复性,并在智能体执行风险或实验性操作之前提供了一个干净的返回点。

团队应如何思考沙盒安全?

将沙盒安全视为架构决策。在运行敏感工作负载或不受信任的代码之前,审查隔离模型、网络访问、秘密处理、日志、生命周期清理和人工审查流程。