LangSmith Deployment 支持任何框架。对于不是基于 Deep Agents、LangChain 或 LangGraph 构建的智能体,可以使用 deployments-wrap-sdk 包(Google ADK),或使用 LangGraph Functional API(Claude Agent SDK、Strands、CrewAI、AutoGen 及其他库)进行部署。
对于新项目,可以考虑使用 Deep Agents。它是一个开源智能体框架,支持智能体进行规划、使用工具、委派任务给子智能体,以及处理长期任务。Deep Agents 可以直接部署到 LangSmith Deployment;如果需要完全托管的运行时环境,可以使用 Managed Deep Agents。

支持的框架

以下框架在本指南中提供了端到端示例。每个示例都会从 agent.py 导出一个兼容 LangGraph 的图,供 Agent Server 提供服务:
没有看到你使用的框架?Functional API 接受任何可调用对象,因此你可以将以下示例中的相同模式应用于任何智能体库。使用 @task 和 @entrypoint 包装智能体的入口点,然后进行部署。

Functional API 的工作原理

当一个运行请求到达由 Functional API 包装的智能体所在的 Agent Server 时:
  1. 平台会调用使用 @entrypoint 装饰的 agent 函数,并传入本次运行的输入,以及同一线程之前轮次保存的状态(通过 previous 参数传入)。
  2. 入口点会调用使用 @task 装饰的函数,该函数负责将任务委派给框架智能体(Claude Agent SDK、Strands、CrewAI、AutoGen 或其他库)。
  3. 入口点返回 entrypoint.final(value=..., save=...)。其中,value 是本轮的响应;save 是检查点状态,将在下一轮作为 previous 使用。
  4. Agent Server 会持久化检查点,在支持时流式传输部分输出,并在配置了追踪后记录追踪信息。
这种模式可以保留框架自身的执行语义,同时提供标准的 Agent Server 功能:持久化运行、跨线程持久化、流式端点,以及 LangSmith 可观测性。

前提条件

无论使用哪种框架,都需要:
  • Functional API 框架需要 Python 3.10+(Strands Agents 支持 Python 3.9+)
  • 一个 LangSmith API 密钥

通用部署模式

每个框架都遵循相同的步骤。在每个步骤的选项卡中选择你的技术栈,将代码片段合并到同一个模块中(例如 agent.py),并将使用 @entrypoint 装饰的函数导出为模块级变量 agent。端到端示例部分展示了可以直接复制的完整文件。
1

Install dependencies

安装框架所需的 Python 包,以及 LangGraph 和 LangSmith。
对于 Claude Agent SDK:
在环境中设置 ANTHROPIC_API_KEY。有关 Anthropic API 密钥的信息,请参阅 Claude 控制台。
2

Define your agent

使用你选择的框架构建智能体,就像在 LangSmith 之外构建时一样。
3

Wrap with the Functional API

通过一个名为 agent、使用 @entrypoint 装饰的函数公开你的智能体。在函数内部,使用 @task 定义调用框架的工作单元。使用 entrypoint.final() 返回响应,并在同一线程的多轮交互中持久化对话历史。
4

Configure tracing

将框架原生的追踪信息转发到 LangSmith。在应用启动时、创建或调用智能体之前调用一次追踪配置。
有关完整的设置详情,请参阅 追踪 Claude Agent SDK 应用。

端到端示例

以下示例将智能体定义、Functional API 包装、追踪配置以及 agent 符号导出整合到单个 agent.py 文件中。选择与你使用的框架对应的选项卡。
agent.py
每个示例都有两点非常重要:
  1. 在模块级别将使用 @entrypoint 装饰的函数导出为 agent。Agent Server 在提供图服务时会导入此符号。
  2. 返回带有 save 参数的 entrypoint.final(),这样对话状态才能在同一线程的多轮交互中持久化。

项目结构

一个可部署的项目需要包含以下文件:
langgraph.json 将 Agent Server 指向导出的符号:
langgraph.json
pyproject.toml
.env

安装依赖

在项目目录中:

启用追踪

使用项目结构中的框架专用 .env 模板。当 langgraph.json 中设置 "env": ".env" 时,Agent Server 会加载此文件。 在该文件中设置 LANGSMITH_PROJECT 和框架提供商凭证。对于 Claude Agent SDK 和 Strands Agents,还需要设置 LANGSMITH_TRACING=true。对于 CrewAI 和 AutoGen,追踪通过 agent.py 中的 OtelSpanProcessor() 和框架 instrumentor 启用,因此只需设置 LANGSMITH_API_KEY 和 LANGSMITH_PROJECT。 追踪信息会在 LangSmith UI 中展示智能体调用、工具调用和 LLM 交互。有关框架专用的追踪选项,请参阅配置追踪中的链接。

本地运行

使用 LangGraph CLI 启动本地 Agent Server:
如果 langgraph dev 报告缺少 langgraph-api,请在同一环境中安装 langgraph-cli[inmem]。
该命令会在 http://127.0.0.1:2024 提供智能体服务,并打开 LangSmith Studio。使用 curl 发送请求:
langgraph dev 可能会使用其他端口。请检查终端输出中的 URL,并在需要时更新下面的 curl 命令。
将 ASSISTANT_ID 替换为 langgraph.json 中 graphs 对象的图键。例如,如果配置为 "graphs": {"claude_agent": "./agent.py:agent"},则使用 claude_agent;如果配置为 "graphs": {"strands_agent": "./agent.py:agent"},则使用 strands_agent。
部署前,请验证 LangGraph API 是否能在本地运行。如果 langgraph dev 失败,部署到 LangSmith 也会失败。

部署到 LangSmith

智能体在本地运行后,使用 langgraph deploy 进行部署:
有关环境配置、部署类型和修订版本管理,请参阅部署到云端。有关自行托管的设置,请参阅自行托管部署。如果不使用控制平面、仅通过 Docker 托管,请参阅独立部署。