Skip to content
LangSmith 文档版本 跟随上游 源快照 55082b1f 更新于 2026-10-18

沙箱访问权限

控制 workspace 中谁可以在沙箱创建后与其交互。

每个沙箱都有一个记录的创建者,即使用其 API key 或会话创建该沙箱的 workspace 成员。默认情况下,只有创建者可以在该沙箱上运行命令、读取或写入文件、打开隧道或访问服务 URL。其他 workspace 成员需要 sandboxes:exec 权限才能与他们未创建的沙箱交互。除了创建沙箱所在的 workspace 之外,其他 workspace 永远无法访问该沙箱。

谁可以做什么

调用方默认具有 sandboxes:exec
沙箱创建者✅ 所有运行时操作✅ 所有运行时操作
其他 workspace 成员❌ 拒绝✅ 所有运行时操作
不同 workspace❌ 隐藏(视为未找到)❌ 隐藏(视为未找到)

“运行时操作”涵盖创建后与运行中沙箱交互的四种方式:

  • 执行命令(langsmith sandbox exec、SandboxClient.exec)
  • 文件操作(读取、写入、列出沙箱内的路径)
  • 将 TCP 端口隧道回你的机器(langsmith sandbox tunnel)
  • 通过服务 URL 代理请求

生命周期操作——创建、列出、更新、删除沙箱——继续使用现有的 sandboxes:create / sandboxes:read / sandboxes:update / sandboxes:delete 权限。这些权限保持不变。

被拒绝的请求

当请求被拒绝时,沙箱会返回 HTTP 403,其响应体会指出触发的规则:

json
{
  "detail": {
    "error": "Forbidden",
    "message": "sandbox access denied: not the creator and missing sandboxes:exec"
  }
}

对存在于另一个 workspace 中的沙箱的请求会返回 404 Not Found 而不是 403,因此响应不会泄露该沙箱是否存在于其他地方。

共享沙箱

有两种方式可以让队友使用你拥有的沙箱:

  1. 将 sandboxes:exec 授予自定义角色,并在 workspace 中分配该角色。拥有该角色的任何人都可以与 workspace 中的每个沙箱交互。
  2. 对于在沙箱内运行的 HTTP 服务,使用服务 URL。服务 URL 使用自己的访问 token,且不要求接收者是 workspace 成员。

对于临时协作,服务 URL 方式通常更简单;当队友需要广泛访问以操作他们未创建的沙箱时,再使用 sandboxes:exec。


BytesRouter 是社区翻译站点,所有译文仅供参考,一切以官方英文原文为准。