主题
助手(Assistants) 允许你将配置(例如提示词、LLM 选择、工具)与图(graph)的核心逻辑分开管理。这使你能够创建多个具有相同图架构但运行时行为不同的专用版本。通过配置变化(而非图结构更改),每个助手都针对不同的使用场景进行了优化。
例如,想象一个基于通用图架构构建的通用写作智能体。虽然结构保持不变,但不同的写作风格(如博客文章和推文)需要量身定制的配置以优化性能。为了支持这些变化,你可以创建多个助手(例如,一个用于博客,另一个用于推文),它们共享底层图,但在模型选择和系统提示词上有所不同。

Agent Server API 提供了多个端点用于创建和管理助手及其版本。更多详情请参阅 API 参考。
助手是 LangSmith 部署 中的一个概念。它们在开源的 LangGraph 库中不可用。
何时使用助手
当你需要以不同配置部署相同的图架构时,助手是理想选择。常见的使用场景包括:
用户级个性化
- 为每个用户自定义模型选择、系统提示词或工具可用性。
- 存储用户偏好,并自动应用于每次交互。
- 允许用户在不同的 AI 个性或专业水平之间进行选择。
客户或组织特定配置
- 为不同的客户或组织维护独立的配置。
- 为每个客户定制行为,而无需部署单独的基础设施。
- 将配置更改隔离到特定客户。
mermaid
graph TD
A["图:智能体<br/>(已部署)"]
A --> B["客户 A 助手<br/>━━━━━━━━━━━━━<br/>模型:GPT-4<br/>语气:法律<br/>工具:自定义"]
A --> C["客户 B 助手<br/>━━━━━━━━━━━━━<br/>模型:Claude<br/>语气:随意<br/>工具:标准"]
A --> D["客户 C 助手<br/>━━━━━━━━━━━━━<br/>模型:GPT-3.5<br/>语气:正式<br/>工具:有限"]
style A fill:#4A90E2,stroke:#2E5C8A,stroke-width:3px,color:#fff
style B fill:#B3E0F2,stroke:#4A90E2,stroke-width:2px,color:#000
style C fill:#B3E0F2,stroke:#4A90E2,stroke-width:2px,color:#000
style D fill:#B3E0F2,stroke:#4A90E2,stroke-width:2px,color:#000环境特定配置
- 为开发、预发布和生产环境使用不同的模型或设置。
- 在提升到生产环境之前,在预发布环境中测试配置更改。
- 在非生产环境中使用较小的模型以降低成本。
A/B 测试和实验
- 比较不同的提示词、模型或参数设置。
- 逐步向一部分用户推出配置更改。
- 衡量不同配置变体之间的性能差异。
专用任务变体
- 为通用智能体创建特定领域的版本。
- 针对不同语言、地区或行业优化配置。
- 保持一致的图逻辑,同时改变执行细节。
mermaid
graph TD
A["图:写作智能体<br/>(已部署)"]
A --> B["博客助手<br/>━━━━━━━━━━━━━<br/>模型:GPT-4<br/>语气:正式<br/>风格:长篇<br/>工具:SEO 优化"]
A --> C["推文助手<br/>━━━━━━━━━━━━━<br/>模型:GPT-4-mini<br/>语气:随意<br/>风格:280 字符限制<br/>工具:话题标签建议"]
A --> D["邮件助手<br/>━━━━━━━━━━━━━<br/>模型:GPT-4<br/>语气:专业<br/>风格:中等长度<br/>工具:模板"]
style A fill:#4A90E2,stroke:#2E5C8A,stroke-width:3px,color:#fff
style B fill:#B3E0F2,stroke:#4A90E2,stroke-width:2px,color:#000
style C fill:#B3E0F2,stroke:#4A90E2,stroke-width:2px,color:#000
style D fill:#B3E0F2,stroke:#4A90E2,stroke-width:2px,color:#000助手如何与部署协同工作
当你使用 LangSmith 部署部署一个图时,Agent Server 会自动创建一个与该图的默认配置绑定的默认助手。然后,你可以为同一个图创建额外的助手,每个助手都有自己的配置。
如果你的部署在 langgraph.json 中定义了多个图,每个图都会获得自己的默认助手:
json
{
"graphs": {
"graph_id_1": "path_to_graph_id_1", // 为 graph_id_1 创建默认助手
"graph_id_2": "path_to_graph_id_2" // 为 graph_id_2 创建默认助手
}
}也就是说,可以有多个默认助手——部署中定义的每个图对应一个。
助手有几个关键特性:
- 通过 API 和 UI 管理:使用 Agent Server/LangGraph SDK 或 LangSmith UI 创建、列出、更新、版本化和获取助手。
- 一个图,多个助手:单个已部署的图可以支持多个助手,每个助手具有不同的配置(例如,提示词、模型、工具)。
- 版本化 配置:每个助手通过版本控制维护自己的配置历史。编辑助手会创建一个新版本,你可以提升或回滚到任何版本。
- 配置 更新无需更改图:通过助手配置更新提示词、模型选择和其他设置,从而实现快速迭代,而无需修改或重新部署图代码。
调用助手时,你可以在 langgraph.json 中指定:
- 图 ID(例如
"agent"):使用该图的默认助手 - 助手 ID(UUID):使用特定的助手配置
这种灵活性允许你快速使用默认设置进行测试,或精确控制使用哪个配置。
配置
助手建立在 LangGraph 开源的配置概念之上。
虽然配置在开源的 LangGraph 库中可用,但助手仅存在于 LangSmith 部署中,因为它们与你的已部署图紧密耦合。部署后,Agent Server 将使用图的默认配置设置自动为每个图创建一个默认助手。
实际上,助手只是具有特定配置的图的一个实例。因此,多个助手可以引用同一个图,但可以包含不同的配置(例如,提示词、模型、工具)。LangSmith 部署 API 提供了多个端点用于创建和管理助手。有关如何创建助手的更多详细信息,请参阅 API 参考 和 此操作指南。
版本控制
助手支持版本控制以跟踪随时间的变化。创建助手后,后续编辑将自动创建新版本。
- 每次更新都会创建助手的新版本。
- 你可以将任何版本提升为活动版本。
- 回滚到以前的版本就像将其设置为活动版本一样简单。
- 所有版本都保留以供参考和回滚。
更新助手时,必须提供完整的配置负载。更新端点从头开始创建新版本,不会与以前的版本合并。请确保包含要保留的所有配置字段。
有关如何管理助手版本的更多详细信息,请参阅管理助手指南。
执行
运行(run) 是对助手的调用。当你执行一个运行时,需要指定使用哪个助手(通过图 ID 使用默认助手,或通过助手 ID 使用特定配置)。
mermaid
flowchart TB
subgraph deploy[部署]
G[图代码<br/>━━━━━━━━━<br/>已部署的逻辑]
end
subgraph config[配置]
A1[助手 1<br/>GPT-4, 正式]
A2[助手 2<br/>Claude, 随意]
end
subgraph state[状态]
T1[线程 1<br/>用户 A]
T2[线程 2<br/>用户 B]
end
subgraph runs[运行]
A1T1["运行:A1 + T1"]
A1T2["运行:A1 + T2"]
A2T1["运行:A2 + T1"]
end
A1 -.-> T1
A1 -.-> T2
A2 -.-> T1
A1T1 --> G
A1T2 --> G
A2T1 --> G
style G fill:#4A90E2,stroke:#2E5C8A,stroke-width:2px,color:#fff
style A1 fill:#B3E0F2,stroke:#4A90E2,stroke-width:2px,color:#000
style A2 fill:#B3E0F2,stroke:#4A90E2,stroke-width:2px,color:#000
style T1 fill:#FFE0B3,stroke:#F59E0B,stroke-width:2px,color:#000
style T2 fill:#FFE0B3,stroke:#F59E0B,stroke-width:2px,color:#000
style A1T1 fill:#B3F2C9,stroke:#10B981,stroke-width:2px,color:#000
style A1T2 fill:#B3F2C9,stroke:#10B981,stroke-width:2px,color:#000
style A2T1 fill:#B3F2C9,stroke:#10B981,stroke-width:2px,color:#000此图展示了运行如何将助手与线程结合以执行图:
- 图(蓝色):包含你的智能体逻辑的已部署代码
- 助手(浅蓝色):配置选项(模型、提示词、工具)
- 线程(橙色):用于对话历史的状态容器
- 运行(绿色):将助手 + 线程配对执行的实例
组合示例:
- 运行:A1 + T1:将助手 1 的配置应用于用户 A 的对话
- 运行:A1 + T2:同一助手服务用户 B(不同对话)
- 运行:A2 + T1:将不同的助手应用于用户 A 的对话(配置切换)
执行运行时:
- 每个运行可以有自己的输入、配置覆盖和元数据。
- 运行可以是无状态的(无线程)或有状态的(在线程上执行以实现对话持久化)。
- 多个运行可以使用相同的助手配置。
- 助手的配置会影响底层图的执行方式。
Agent Server API 提供了多个端点用于创建和管理运行。更多详细信息,请参阅 API 参考。