主题
LangSmith Studio 提供了超越执行的工具,用于检查、调试和改进您的应用程序。通过处理追踪(traces)、数据集(datasets)和提示(prompts),您可以详细了解应用程序的行为、衡量其性能并优化其输出:
- 迭代提示:直接在图形节点内或使用 LangSmith 游乐场修改提示。
- 在数据集上运行实验:在 LangSmith 数据集上执行您的助手,以评分和比较结果。
- 调试 LangSmith 追踪:将追踪的运行导入 Studio,并可选择将其克隆到您的本地代理中。
- 将节点添加到数据集:将线程历史记录的部分内容转换为数据集示例,用于评估或进一步分析。
迭代提示
Studio 支持以下方法来修改图形中的提示:
直接节点编辑
Studio 允许您直接从图形界面编辑单个节点内部使用的提示。
图形配置
定义您的配置,使用 langgraph_nodes 和 langgraph_type 键来指定提示字段及其关联的节点。
langgraph_nodes
- 描述:指定配置字段与图形的哪些节点相关联。
- 值类型:字符串数组,其中每个字符串是图形中一个节点的名称。
- 使用上下文:包含在 Pydantic 模型的
json_schema_extra字典中,或数据类的metadata["json_schema_extra"]字典中。 - 示例:
python
system_prompt: str = Field(
default="You are a helpful AI assistant.",
json_schema_extra={"langgraph_nodes": ["call_model", "other_node"]},
)langgraph_type
- 描述:指定配置字段的类型,这决定了它在 UI 中的处理方式。
- 值类型:字符串
- 支持的值:
"prompt":表示该字段包含提示文本,应在 UI 中特殊处理。
- 使用上下文:包含在 Pydantic 模型的
json_schema_extra字典中,或数据类的metadata["json_schema_extra"]字典中。 - 示例:
python
system_prompt: str = Field(
default="You are a helpful AI assistant.",
json_schema_extra={
"langgraph_nodes": ["call_model"],
"langgraph_type": "prompt",
},
)完整配置示例
python
## 使用 Pydantic
from pydantic import BaseModel, Field
from typing import Annotated, Literal
class Configuration(BaseModel):
"""The configuration for the agent."""
system_prompt: str = Field(
default="You are a helpful AI assistant.",
description="The system prompt to use for the agent's interactions. "
"This prompt sets the context and behavior for the agent.",
json_schema_extra={
"langgraph_nodes": ["call_model"],
"langgraph_type": "prompt",
},
)
model: Annotated[
Literal[
"anthropic/claude-sonnet-4-5-20250929",
"anthropic/claude-haiku-4-5-20251001",
"openai/o1",
"openai/gpt-4o-mini",
"openai/o1-mini",
"openai/o3-mini",
],
{"__template_metadata__": {"kind": "llm"}},
] = Field(
default="openai/gpt-4o-mini",
description="The name of the language model to use for the agent's main interactions. "
"Should be in the form: provider/model-name.",
json_schema_extra={"langgraph_nodes": ["call_model"]},
)
## 使用数据类
from dataclasses import dataclass, field
@dataclass(kw_only=True)
class Configuration:
"""The configuration for the agent."""
system_prompt: str = field(
default="You are a helpful AI assistant.",
metadata={
"description": "The system prompt to use for the agent's interactions. "
"This prompt sets the context and behavior for the agent.",
"json_schema_extra": {"langgraph_nodes": ["call_model"]},
},
)
model: Annotated[str, {"__template_metadata__": {"kind": "llm"}}] = field(
default="anthropic/claude-3-5-sonnet-20240620",
metadata={
"description": "The name of the language model to use for the agent's main interactions. "
"Should be in the form: provider/model-name.",
"json_schema_extra": {"langgraph_nodes": ["call_model"]},
},
)在 UI 中编辑提示
- 找到具有关联配置字段的节点上的齿轮图标。
- 点击以打开配置模态框。
- 编辑值。
- 保存以更新当前助手版本或创建新版本。
游乐场
游乐场界面允许在不运行完整图形的情况下测试单个 LLM 调用:
- 选择一个线程。
- 在节点上点击 View LLM Runs。这将列出该节点内部进行的所有 LLM 调用(如果有)。
- 选择一个 LLM 运行以在游乐场中打开。
- 修改提示并测试不同的模型和工具设置。
- 将更新后的提示复制回您的图形。
在数据集上运行实验
Studio 允许您通过针对预定义的 LangSmith 数据集执行您的助手来运行评估。这使您可以测试在各种输入下的性能,将输出与参考答案进行比较,并使用配置的评估器对结果进行评分。
本指南向您展示如何直接从 Studio 运行完整的端到端实验。
先决条件
在运行实验之前,请确保您具备以下条件:
- 一个 LangSmith 数据集:您的数据集应包含要测试的输入,并可选择包含用于比较的参考输出。输入的架构必须与助手所需的输入架构匹配。有关架构的更多信息,请参见此处。有关创建数据集的更多信息,请参阅如何管理数据集。
- (可选)评估器:您可以在 LangSmith 中将评估器(例如,LLM-as-a-Judge、启发式方法或自定义函数)附加到您的数据集。这些将在图形处理完所有输入后自动运行。
- 一个正在运行的应用程序:实验可以针对以下对象运行:
- 部署在 LangSmith 上的应用程序。
- 通过 langgraph-cli 启动的本地运行应用程序。
实验设置
- 启动实验。点击 Studio 页面右上角的 Run experiment 按钮。
- 选择您的数据集。在出现的模态框中,选择用于实验的数据集(或特定的数据集分割),然后点击 Start。
- 监控进度。数据集中的所有输入现在都将针对活动助手运行。通过右上角的徽章监控实验进度。
- 实验在后台运行时,您可以继续在 Studio 中工作。随时点击箭头图标按钮导航到 LangSmith 并查看详细的实验结果。
调试 LangSmith 追踪
本指南解释了如何在 Studio 中打开 LangSmith 追踪以进行交互式调查和调试。
打开已部署的线程
- 打开 LangSmith 追踪,选择根运行。
- 点击 Run in Studio。
这将打开连接到相关部署的 Studio,并选中追踪的父线程。
使用远程追踪测试本地代理
本节解释如何使用来自 LangSmith 的远程追踪测试本地代理。这使您能够将生产追踪用作本地测试的输入,从而在开发环境中调试和验证代理修改。
先决条件
- 一个 LangSmith 追踪的线程
- 一个本地运行的代理。
本地代理要求
- langgraph>=0.3.18
- langgraph-api>=0.0.32
- 包含远程追踪中存在的相同节点集
克隆线程
- 打开 LangSmith 追踪,选择根运行。
- 点击 Run in Studio 旁边的下拉菜单。
- 输入您的本地代理的 URL。
- 选择 Clone thread locally。
- 如果存在多个图形,请选择目标图形。
将在您的本地代理中创建一个新线程,其线程历史记录是从远程线程推断和复制的,并且您将被导航到本地运行应用程序的 Studio。
将节点添加到数据集
从线程日志中的节点向 LangSmith 数据集添加示例。这对于评估代理的各个步骤非常有用。
- 选择一个线程。
- 点击 Add to Dataset。
- 选择您希望将其输入/输出添加到数据集的节点。
- 对于每个选定的节点,选择要在其中创建示例的目标数据集。默认情况下,将选择特定助手和节点的数据集。如果此数据集尚不存在,则会创建它。
- 在将示例添加到数据集之前,根据需要编辑示例的输入/输出。
- 选择页面底部的 Add to dataset,将所有选定的节点添加到它们各自的数据集中。
更多详情,请参阅如何评估应用程序的中间步骤。