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 中的 **沙箱**.
更多详情,请参阅:
- - 深度智能体中的沙箱:生命周期、作用域以及沙箱提供商的比较。
- - LangSmith 沙箱:快照、服务 URL、认证代理以及 SDK 参考文档。