Skip to main content
LangSmith Studio 提供了超越执行之外的工具,用于检查、调试和改进你的应用。通过处理跟踪、数据集和提示词,你可以详细查看应用程序的行为,衡量其性能,并优化其输出:

迭代提示词

Studio 支持以下修改图中提示词的方法:

直接节点编辑

Studio 允许你直接从图界面编辑单个节点内使用的提示词。

图配置

定义你的配置,使用 langgraph_nodeslanggraph_type 键来指定提示词字段及其关联的节点。

langgraph_nodes

  • 描述:指定配置字段与图的哪些节点关联。
  • 值类型:字符串数组,其中每个字符串是你图中节点的名称。
  • 使用上下文:包含在 Pydantic 模型的 json_schema_extra 字典或数据类的 metadata["json_schema_extra"] 字典中。
  • 示例
    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"] 字典中。
  • 示例
    system_prompt: str = Field(
        default="You are a helpful AI assistant.",
        json_schema_extra={
            "langgraph_nodes": ["call_model"],
            "langgraph_type": "prompt",
        },
    )
    
## 使用 Pydantic
from pydantic import BaseModel, Field
from typing import Annotated, Literal

class Configuration(BaseModel):
    """代理的配置。"""

    system_prompt: str = Field(
        default="You are a helpful AI assistant.",
        description="用于代理交互的系统提示词。"
        "此提示词为代理设置上下文和行为。",
        json_schema_extra={
            "langgraph_nodes": ["call_model"],
            "langgraph_type": "prompt",
        },
    )

    model: Annotated[
        Literal[
            "anthropic/claude-sonnet-4-6",
            "anthropic/claude-haiku-4-5-20251001",
            "openai/o1",
            "openai/gpt-5.4-mini",
            "openai/o1-mini",
            "openai/o3-mini",
        ],
        {"__template_metadata__": {"kind": "llm"}},
    ] = Field(
        default="openai/gpt-5.4-mini",
        description="用于代理主要交互的语言模型名称。"
        "格式应为:提供商/模型名称。",
        json_schema_extra={"langgraph_nodes": ["call_model"]},
    )

## 使用数据类
from dataclasses import dataclass, field

@dataclass(kw_only=True)
class Configuration:
    """代理的配置。"""

    system_prompt: str = field(
        default="You are a helpful AI assistant.",
        metadata={
            "description": "用于代理交互的系统提示词。"
            "此提示词为代理设置上下文和行为。",
            "json_schema_extra": {"langgraph_nodes": ["call_model"]},
        },
    )

    model: Annotated[str, {"__template_metadata__": {"kind": "llm"}}] = field(
        default="anthropic/claude-3-5-sonnet-20240620",
        metadata={
            "description": "用于代理主要交互的语言模型名称。"
            "格式应为:提供商/模型名称。",
            "json_schema_extra": {"langgraph_nodes": ["call_model"]},
        },
    )

在 UI 中编辑提示词

  1. 找到具有关联配置字段的节点上的齿轮图标。
  2. 单击打开配置模态框。
  3. 编辑值。
  4. 保存以更新当前助手版本或创建新版本。

Playground

Playground 界面允许在不运行完整图的情况下测试单个 LLM 调用:
  1. 选择一个线程。
  2. 在节点上单击 查看 LLM 运行。这将列出该节点内进行的所有 LLM 调用(如果有)。
  3. 选择一个 LLM 运行以在 Playground 中打开。
  4. 修改提示词并测试不同的模型和工具设置。
  5. 将更新后的提示词复制回你的图中。

在数据集上运行实验

Studio 允许你通过在预定义的 LangSmith 数据集上执行助手来运行评估。这使你能够测试各种输入的性能,将输出与参考答案进行比较,并使用配置的评估器对结果进行评分。 本指南向你展示如何直接从 Studio 运行完整的端到端实验。

先决条件

在运行实验之前,请确保你具备以下条件:
  • 一个 LangSmith 数据集:你的数据集应包含你要测试的输入,以及可选的用于比较的参考输出。输入的模式必须与助手所需的输入模式匹配。有关模式的更多信息,请参阅 graph API 模式文档。有关创建数据集的更多信息,请参阅如何管理数据集
  • (可选)评估器:你可以在 LangSmith 中将评估器(例如,LLM-as-a-Judge、启发式方法或自定义函数)附加到你的数据集。这些将在图处理完所有输入后自动运行。
  • 一个正在运行的应用程序:实验可以针对以下内容运行:
Studio 实验遵循与其他实验相同的数据保留规则。默认情况下,跟踪具有基础层级保留期(14 天)。但是,如果向跟踪添加了反馈,跟踪将自动升级到扩展层级保留期(400 天)。反馈可以通过以下两种方式之一添加:此自动升级会增加跟踪的保留期和成本。有关更多详细信息,请参阅数据保留自动升级

实验设置

  1. 启动实验。单击 Studio 页面右上角的 运行实验 按钮。
  2. 选择你的数据集。在出现的模态框中,选择用于实验的数据集(或特定的数据集分割),然后单击 开始
  3. 监控进度。数据集中的所有输入现在将针对活动助手运行。通过右上角的徽章监控实验进度。
  4. 实验在后台运行时,你可以继续在 Studio 中工作。随时单击箭头图标按钮导航到 LangSmith 并查看详细的实验结果。

调试 LangSmith 跟踪

本指南介绍如何在 Studio 中打开 LangSmith 跟踪以进行交互式调查和调试。

打开已部署的线程

  1. 打开 LangSmith 跟踪,选择根运行。
  2. 单击 在 Studio 中运行
这将打开 Studio,连接到关联的部署,并选中跟踪的父线程。

使用远程跟踪测试本地代理

本节介绍如何使用来自 LangSmith 的远程跟踪测试本地代理。这使你能够将生产跟踪用作本地测试的输入,从而允许你在开发环境中调试和验证代理修改。

先决条件

本地代理要求
  • langgraph>=0.3.18
  • langgraph-api>=0.0.32
  • 包含远程跟踪中存在的相同节点集

克隆线程

  1. 打开 LangSmith 跟踪,选择根运行。
  2. 单击 在 Studio 中运行 旁边的下拉菜单。
  3. 输入你的本地代理的 URL。
  4. 选择 在线程本地克隆
  5. 如果存在多个图,请选择目标图。
将在你的本地代理中创建一个新线程,其线程历史记录从远程线程推断并复制,你将被导航到 Studio 以运行你的本地应用程序。

将节点添加到数据集

从线程日志中的节点向 LangSmith 数据集添加示例。这对于评估代理的各个步骤很有用。
  1. 选择一个线程。
  2. 单击 添加到数据集
  3. 选择要将其输入/输出添加到数据集的节点。
  4. 对于每个选定的节点,选择要创建示例的目标数据集。默认情况下,将选择特定助手和节点的数据集。如果此数据集尚不存在,它将被创建。
  5. 根据需要在将示例添加到数据集之前编辑其输入/输出。
  6. 选择页面底部的 添加到数据集,将所有选定的节点添加到各自的数据集。
有关更多详细信息,请参阅如何评估应用程序的中间步骤