Skip to content

迭代提示词

概述

LangGraph Studio 支持两种在您的图中修改提示的方法:直接节点编辑和 LangSmith Playground 界面。

直接节点编辑

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": 表示该字段包含应特殊处理的提示文本。
  • 使用场景: 包含在 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-3-7-sonnet-latest",
            "anthropic/claude-3-5-haiku-latest",
            "openai/o1",
            "openai/gpt-4o-mini",
            "openai/o1-mini",
            "openai/o3-mini",
        ],
        {"__template_metadata__": {"kind": "llm"}},
    ] = Field(
        default="openai/gpt-4o-mini",
        description="用于代理主要交互的语言模型的名称。"
        "应采用形式:provider/model-name。",
        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": "用于代理主要交互的语言模型的名称。"
            "应采用形式:provider/model-name。",
            "json_schema_extra": {"langgraph_nodes": ["call_model"]},
        },
    )

在 UI 中编辑提示

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

LangSmith 演练场

LangSmith 演练场 界面允许在不运行完整图的情况下测试单个 LLM 调用:

  1. 选择一个线程
  2. 在节点上点击“查看 LLM 运行”。这将列出节点内执行的所有 LLM 调用(如果有)。
  3. 选择一个 LLM 运行以在演练场中打开
  4. 修改提示并测试不同的模型和工具设置
  5. 将更新后的提示复制回你的图中

如需高级演练场功能,请点击右上角的展开按钮。