以编程方式使用文档

LangSmith 沙箱是由 LangChain 托管的沙箱环境,无需单独设置提供商账户、计费或基础设施。它们是运行代理代码的零配置默认选项,而 AgentCore、Daytona、E2B、Modal、Runloop 和 Vercel 等第三方提供商在您需要自带资源时仍然可用。由于它们是 LangChain 平台的一部分,您可以将它们与其他 LangSmith 资源一起管理。有关设置、快照、服务 URL 和身份验证代理,请参阅 LangSmith 沙箱文档.

安装

pip install "langsmith[sandbox]" deepagents
uv add "langsmith[sandbox]" deepagents

设置您的 API 密钥

SandboxClient() 从此环境变量读取此密钥,因此无需进一步配置。

创建沙箱后端

使用 SandboxClient创建 LangSmith 沙箱,然后将其包装在 LangSmithSandbox 中以将其作为 Deep Agents 后端运行.

from deepagents.backends.langsmith import LangSmithSandbox
from langsmith.sandbox import SandboxClient

client = SandboxClient()
ls_sandbox = client.create_sandbox()
backend = LangSmithSandbox(sandbox=ls_sandbox)

result = backend.execute("echo hello")
print(result.output)

# Delete the sandbox when you are done (see Clean up)
client.delete_sandbox(ls_sandbox.name)

配合 Deep Agents 使用

将后端传递给 @[create_深度_agent] 以及 ChatAnthropic 等聊天模型,然后调用该智能体。 try/finally 代码块会在 try 代码块执行完毕或发生错误时删除沙箱。

from deepagents import create_deep_agent
from deepagents.backends.langsmith import LangSmithSandbox
from langchain_anthropic import ChatAnthropic
from langsmith.sandbox import SandboxClient

client = SandboxClient()
ls_sandbox = client.create_sandbox()
backend = LangSmithSandbox(sandbox=ls_sandbox)

agent = create_deep_agent(
    model=ChatAnthropic(model="claude-sonnet-4-6"),
    system_prompt="You are a coding assistant with sandbox access.",
    backend=backend,
)

try:
    result = agent.invoke(
        {
            "messages": [
                {"role": "user", "content": "Create a hello world Python script and run it"}
            ]
        }
    )
    print(result["messages"][-1].content_blocks)
finally:
    client.delete_sandbox(ls_sandbox.name)

清理

使用完毕后请删除沙箱,因为它们在被删除前会持续消耗资源。

client.delete_sandbox(ls_sandbox.name)

您也可以从 LangSmith UI 中的 **沙箱**.

更多详情,请参阅: