Appearance
部署与生产化检查
部署 Deep Agents 不是把本地脚本包成 HTTP 接口。生产环境必须把 thread 状态、长期记忆、artifact、 身份、sandbox、后台任务和观测系统分别建模,并为每个跨租户边界建立服务端强制策略。
生产架构
前端类比
它类似把离线优先 Web 应用部署为多租户服务:component state、IndexedDB、对象存储、Web Worker 和后端任务队列有不同生命周期,不能都塞进一个全局 store。
Deep Agents 原生语义:Agent 是运行在 LangGraph 上的编译图。checkpointer 保存 thread 内图状态, StoreBackend 提供跨 thread memory,backend 管理虚拟文件,sandbox 隔离任意代码执行;它们共享 Agent 调用链,但不是同一种持久化。
先决定数据生命周期
| 数据 | 推荐范围 | 生产要求 |
|---|---|---|
| Messages、todos、短期 scratch | thread | 持久 checkpointer、TTL、恢复测试 |
| 用户偏好和长期 memory | user + assistant namespace | StoreBackend、服务端派生 namespace、写权限 |
| 组织政策 | organization、通常只读 | 应用维护、Agent 禁止写入 |
| 大文件和报告 | artifact/object storage | 引用或签名 URL,不塞进 checkpoint |
| Sandbox 工作区 | thread 或 assistant | remote sandbox、TTL、配额、清理策略 |
| 审计与 trace | run/thread + tenant | 脱敏、保留期、访问控制 |
thread_id、assistant_id、user_id 和 org_id 必须来自认证后的 server context。模型输入只能表达 业务意图,不能决定自己属于哪个 namespace。
Agent Server 与部署方式
LangSmith Deployment 的 Agent Server 提供 assistants、threads、runs、Store、持久化和任务队列。 使用 deepagents deploy 可以打包配置并创建 LangSmith Deployment;也可以直接维护 langgraph.json 和部署流水线。自托管时,需要自行管理 Agent Server 及其 PostgreSQL、Redis、worker 和扩缩容。
这与 deepagents SDK 本身是两个层级:SDK 构建图,Deployment 托管图。直接在自己的 API 服务中 调用图也可行,但 checkpointer、Store、队列、重连、迁移和多租户授权都由应用团队负责。
通用 Deployment 与 Managed Deep Agents
| 选项 | 定位 | 当前约束 |
|---|---|---|
| LangSmith Deployment | 托管或自托管 Agent Server/graph | 可用于通用 LangGraph 与 Deep Agents;按所选 hosting model 配置 |
| Standalone Agent Server | 自管较轻的数据面 | 自行管理容器、数据库、Redis、扩缩容与升级 |
| Managed Deep Agents | 面向 Deep Agents 的托管产品 | Private Beta;当前仅 LangSmith Cloud US,不支持 self-hosted 或 hybrid |
不要把“Deep Agents 可部署到 LangSmith Deployment”写成“所有用户都已获得 Managed Deep Agents”。 后者的资格、区域和功能可能变化,采购或架构决策前要重新核对官方页面。
多租户身份与凭据
- Gateway 验证 end-user;authorization handler 再限制 thread、assistant 和 Store 资源。
- 团队 RBAC 与终端用户资源授权是两套边界,不要混用。
- 业务工具从可信 runtime context 读取身份,并在数据层校验 owner/tenant。
- 用户 OAuth token 只在需要的工具调用中短暂可用;平台级密钥放 secret manager。
- Sandbox 优先使用 auth proxy 注入出站凭据,不把原始 secret 写进文件、prompt 或环境快照。
- 共享 memory 是 prompt-injection 通道;组织级路径通常应由应用写、Agent 只读。
工具、Sandbox 与成本护栏
生产部署至少配置:
- 业务 tools/MCP 的 allowlist、schema、timeout、重试边界、速率限制和审计。
- Remote sandbox 的镜像、网络 egress、CPU/内存/磁盘/进程限制、TTL 和清理。
- 每个 run/thread 的模型调用、工具调用、递归、token、墙钟时间和费用上限。
- 不可逆动作的应用级授权与 HITL;checkpoint 只能恢复状态,不能撤销已经发生的副作用。
- 写操作的幂等键和 outbox/transaction 设计,避免重试导致重复发送或扣款。
部署环境不要使用 FilesystemBackend 或 LocalShellBackend 直接访问宿主。
长任务、Streaming 与 Webhook
长任务应由队列 worker 执行,前端通过 run/thread id 重连 stream。Async subagents 还要求可访问的 Agent Protocol server;创建、查询、更新、取消都要经过租户授权。
Webhook 是完成通知,不是可信内部调用。只允许 HTTPS 和批准域名,验证签名或共享 token,限制重放, 让 handler 幂等,并假设重复或延迟送达。不要把凭据直接放在 webhook URL 或提交到 langgraph.json。
发布检查清单
- [ ] staging 使用与生产等价的 checkpointer、Store namespace 和 sandbox 策略。
- [ ] 进程重启、worker 失败、HITL 跨日恢复和断线重连均已演练。
- [ ] 新旧 graph/schema 的 checkpoint 与 memory 迁移有回滚方案。
- [ ] 所有 tools、MCP、backend 和 webhook 都有独立认证、授权与审计。
- [ ] PII、prompt、tool result、artifact 和 trace 的数据分类与保留期已确认。
- [ ] 循环、调用、并发、费用、sandbox 配额和告警阈值已配置。
- [ ] 依赖、镜像和 sandbox 基础镜像被锁定并经过漏洞扫描。
- [ ] 离线 evaluation、安全对抗样本、冒烟和回滚测试通过。