为你的AI代理配备专属计算机(7分钟阅读)

TLDR AI 产品

摘要

LangChain推出LangSmith Sandboxes,为每个AI代理提供独立的隔离计算环境以安全执行代码,解决了在容器或本地运行不可信代码的安全风险。

LangSmith推出Sandboxes,即硬件虚拟化的microVM,为AI代理提供独立的安全计算环境,直接应对运行不可信代码的风险。这些沙箱允许代理执行动态任务、管理持久状态并运行复杂工作流,而不会危及生产基础设施。
查看原文
查看缓存全文

缓存时间: 2026/06/08 15:13

# 为你的智能体配备专属电脑 来源:https://www.langchain.com/blog/give-your-ai-agent-its-own-computer 大语言模型(LLM)能够推理,但仅凭推理远远不够。 在AI智能体中运行代码执行,远比看上去要复杂。你的智能体需要一台真正的计算机(文件系统、Shell、包管理器、持久化状态),但如果让它直接接入你的基础设施,风险极高。 换个角度想:你使用一台笔记本电脑,你只是一个人。但智能体将运行数百万个任务,每个任务都需要自己的计算机作为工作平台。这正是当下正在发生的基础设施变革。萨提亚·纳德拉(Satya Nadella)说得直白:"每个智能体都需要一台电脑。"问题在于这台电脑长什么样,以及如何安全地交到它们手中。 LangSmith Sandboxes 就是我们对此给出的答案。以下是它为何重要,以及为什么自己动手做比听上去难得多。 ## 当智能体拥有计算机时,什么会成为可能 想想 Cursor、Claude Code 或 ChatGPT 的代码解释器能做到什么,而普通的聊天界面做不到。它们不只是回答问题:它们运行代码、看到错误、修复错误、再次运行,然后交给你一个可用的成果。正是这个反馈循环让它们变得有用。 同样的循环,也是区分演示级智能体与生产级智能体的关键。一旦你的智能体能够执行,一大类工作便会打开: - **编码助手**——不只是建议修复方案:而是应用修复、运行你的测试、确认没有破坏任何东西 - **数据分析师**——拉取 CSV、用 Python 进行处理、然后交给你一份格式化的报告 - **CI 智能体**——克隆你的仓库、安装依赖、运行完整的测试套件、然后创建 PR(例如 OpenSWE) - **研究智能体**——浏览、爬取、综合并撰写——不仅限于搜索 - **内容流水线**——生成、渲染并导出完成的成品 - **强化学习或评估框架**——需要并行启动环境、以爆发规模运行回合、然后立即关闭——从零到数千个沙盒,再归零 共同点:这些智能体需要的不仅仅是令牌流。它们需要一个*工作*的地方。 ## 为什么不能直接把你的笔记本电脑交给智能体 接下来自然而然的问题是:为什么不让智能体在本地运行代码?或者在一个 Docker 容器里?团队在早期原型中确实这样做过。但在生产环境中,它会因为两个原因而失效。 **首先:智能体本质上运行的是不可信代码。** 你的智能体所执行的代码可能来自模型、用户提示、克隆的仓库或安装的包。不是你编写的,你也无法完全审查。2025年9月,一个名为 Shai-Hulud 的自复制 npm 蠕虫后门感染了 500 多个包——这些代码在安装前未经任何验证就已执行。同年11月的第二波攻击在数小时内又感染了 796 个包和 25,000 多个 GitHub 仓库。一个在其工作流程中需要安装 npm 包的智能体,正好暴露在这种风险之下。 **其次:容器还不够。** 常见的直觉是"直接跑在 Docker 里"。容器非常适合隔离已知的、经过审查的应用代码(例如 Web 服务器、后台任务)。但它们并非为安装任意依赖、运行模型生成的脚本、并在长时间会话中持久化状态的智能体而设计。关键是:容器与宿主机共享一个内核。内核漏洞可以穿透容器。Copy Fail(CVE-2026-31431)是一个仅 732 字节的 Python 脚本,通过内核加密 API 就能攻破自 2017 年以来所有主流 Linux 发行版。*AI 工具大约在一小时内就发现了它。* 容器的边界并非安全隔离边界。对于不可信的、模型生成的代码,你需要硬件级别的隔离。 ## LangSmith Sandboxes:为每个智能体配备一台电脑 这里有助于理解的思维模型是:一个沙盒需要同时具备两样东西。它需要像无服务器函数那样瞬间启动,因为你不能让智能体等两分钟让虚拟机启动。同时,它还需要像完整机器那样具备状态性,因为智能体不是无状态的请求处理程序;它们是工作中的中间会话,会安装依赖、编辑文件、从断点处继续执行。 LangSmith Sandboxes 正是为此模型而构建。每个沙盒都是一个硬件虚拟化的微虚拟机。不是容器,而是一台拥有自己内核的完整机器。智能体得到的是: ``` 智能体 └── 它自己的计算机 ├── 文件系统 ├── Shell ├── 包管理器 ├── 网络访问 ├── 代码执行 └── 持久化状态 ``` 它可以安装包、运行脚本、编辑文件、启动本地服务器,并在一个长时间会话中持续工作——所有这些都不会触及你的生产基础设施或其他智能体的沙盒。工作完成后,沙盒就消失了。 你可以通过你已经在使用的 LangSmith SDK 和 API 密钥来访问它: ```python from langsmith import Client client = Client() sandbox = client.create_sandbox() # 给智能体一个 Shell result = sandbox.run("pip install pandas && python analysis.py") print(result.stdout) ``` 只需一次调用,你的智能体就拥有一台计算机。 对于运行 GPU 工作负载的团队,还有一个不太明显的好处:当你的沙盒瞬间启动时,GPU 不会因为等待 CPU 计算资源预配置而闲置。快速的沙盒是 GPU 效率的倍增器——这个细节在规模化时会迅速放大。 ## 你在基本执行之外还能得到什么 沙盒不仅仅是运行代码的地方。本次 GA 版本发布了一套原语,使得智能体工作流程达到生产就绪状态: **快照和分支:** 在会话过程中捕获沙盒状态,并从该状态启动新的沙盒。分支使用写时复制技术,因此同时启动十个并行分支与启动一个的成本大致相同。当你的智能体走入错误路径时,可以恢复并重试,无需从头重建。 **预热环境的蓝图:** 定义一个基础镜像(包含已克隆的仓库、已安装的依赖、已配置的设置),然后在几秒钟内从该镜像启动沙盒,而不是几分钟。 **服务 URL:** 如果智能体启动了一个本地 Web 服务器——例如预览生成的报告——你会得到一个经过身份验证的 URL,可以在浏览器中打开或与队友分享。无需端口转发。 **身份验证代理:** 来自沙盒的出站请求通过一个代理,在网络层注入凭据。秘密信息永远不会触及智能体运行时。 **默认创建者私有:** 只有启动沙盒的用户(以及工作区管理员)可以访问它。准备好后再分享。 ## 何时使用 Sandboxes 当你的智能体需要*做*某事,而不仅仅是*说*某事时,Sandboxes 是合适的层。具体来说: - 你的智能体生成代码,并且你希望它在响应之前验证代码能否运行 - 你在构建编码助手、CI 智能体或操作真实文件的数据流水线 - 你在运行需要跨工具调用持久化状态的多步骤工作流程 - 你需要爆发式容量(例如,用于 RL 训练或评估的数千个并行环境),必须在几秒内从零扩展 - 你接受任何可能最终被执行的用户输入 如果你的智能体只调用固定模式的 API,并且从不执行动态代码,那么沙盒就是多余的。一个搜索文档并返回引用的检索型智能体不需要它。一个编写并运行 Python 脚本的智能体则需要。 ## 团队今天如何使用它 在 monday.com,Sandboxes 为他们的 Sidekick AI 助手提供支持,赋予其一个安全的环境来编写和运行代码,用于高级用户工作流,包括数据分析和多媒体生成。 > “LangSmith Sandboxes 正在帮助我们使 Sidekick 为 monday.com 用户变得更强大。借助安全的环境,Sidekick 可以编写和运行代码,并使用结果创建更丰富的工作流程,例如运行数据分析和生成多媒体。” > > —— Omri Bruchim,AI 平台组经理,monday.com ## 值得关注的转变 在过去几年里,让智能体更强大意味着给它更好的工具:搜索 API、计算器、数据库连接器。这仍然正确。但预定义工具能够达到的天花板很低。 真正能够替代工作流(而不仅仅是辅助工作!)的智能体,是那些能够拿起所需工具、运行它、观察结果并调整的智能体。这就是拥有一台电脑所带来的可能性。这不是一个基础设施细节。这就是一个能*思考*的智能体和一个能*行动*的智能体之间的区别。 你使用一台笔记本电脑。你的每个智能体都需要自己的那一台。LangSmith Sandboxes 就是你给它们配备电脑的方式。 **开始使用:** 尝试 LangSmith Sandboxes 或阅读文档。

相似文章