Studio에서의 관측성
Studio에서의 관측성
LangSmith Studio는 실행 그 이상으로 앱을 검사·디버깅·개선하는 도구를 제공해요. 트레이스, 데이터셋, 프롬프트를 다루면서 애플리케이션이 세부적으로 어떻게 동작하는지 확인하고, 성능을 측정하며, 출력을 다듬을 수 있어요:
- 프롬프트 반복하기: 그래프 노드 안에서 직접 또는 Playground로 프롬프트를 수정해요.
- 데이터셋에 대한 실험 실행: LangSmith 데이터셋에 대해 어시스턴트를 실행해서 결과를 채점하고 비교해요.
- LangSmith 트레이스 디버깅: 추적된 런을 Studio로 가져와 선택적으로 로컬 에이전트에 복제해요.
- 데이터셋에 노드 추가: 스레드 기록의 일부를 평가 또는 추가 분석용 데이터셋 예시로 전환해요.
출처: 문서
본문
프롬프트 반복하기
Studio는 그래프에서 프롬프트를 수정하는 다음 방법을 지원해요:
직접 노드 편집
Studio를 사용하면 그래프 인터페이스에서 직접 개별 노드 안에 사용되는 프롬프트를 편집할 수 있어요.
그래프 구성
langgraph_nodes와 langgraph_type 키를 사용해 프롬프트 필드와 연관된 노드를 지정하는 구성을 정의하세요.
langgraph_nodes
- 설명: 구성 필드가 그래프의 어떤 노드와 연관되는지 지정해요.
- 값 유형: 문자열 배열로, 각 문자열은 그래프의 노드 이름이에요.
- 사용 컨텍스트: Pydantic 모델의
json_schema_extra딕셔너리 또는 dataclass의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딕셔너리 또는 dataclass의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", }, )
전체 구성 예시
## Using 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-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="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"]},
)
## Using Dataclasses
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-sonnet-4-6",
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에서 프롬프트 편집하기
- 연관된 구성 필드가 있는 노드의 기어 아이콘을 찾으세요.
- 클릭해서 구성 모달을 여세요.
- 값을 편집하세요.
- 저장해서 현재 어시스턴트 버전을 업데이트하거나 새 버전을 만드세요.
Playground
Playground 인터페이스를 사용하면 전체 그래프를 실행하지 않고도 개별 LLM 호출을 테스트할 수 있어요:
- 스레드를 선택하세요.
- 노드에서 View LLM Runs를 클릭하세요. 노드 안에서 이루어진 모든 LLM 호출(있는 경우)이 나열돼요.
- LLM 런을 선택해서 Playground에서 열어보세요.
- 프롬프트를 수정하고 다양한 모델·도구 설정을 테스트하세요.
- 업데이트된 프롬프트를 그래프로 복사하세요.
데이터셋에 대한 실험 실행
Studio를 사용하면 사전 정의된 LangSmith 데이터셋에 대해 어시스턴트를 실행해 평가를 수행할 수 있어요. 이를 통해 다양한 입력에 걸친 성능을 테스트하고, 출력을 참조 답변과 비교하며, 구성된 평가자로 결과를 채점할 수 있어요.
이 가이드는 Studio에서 직접 end-to-end 실험을 실행하는 방법을 보여드려요.
사전 준비 사항
실험을 실행하기 전에 다음을 준비하세요:
- LangSmith 데이터셋: 테스트할 입력과 선택적으로 비교용 참조 출력이 포함되어야 해요. 입력의 스키마는 어시스턴트의 요구 입력 스키마와 일치해야 해요. 스키마에 대한 자세한 내용은 그래프 API 스키마 문서를 참조하세요. 데이터셋 만들기에 대한 자세한 내용은 데이터셋 관리 방법을 참조하세요.
- (선택) 평가자: 참조: LangSmith에서 데이터셋에 평가자(예: LLM-as-a-Judge, 휴리스틱, 커스텀 함수)를 연결할 수 있어요. 그래프가 모든 입력을 처리한 후 자동으로 실행돼요.
- 실행 중인 애플리케이션: 실험은 다음에 대해 실행할 수 있어요:
- LangSmith에 배포된 애플리케이션.
- langgraph-cli로 시작된 로컬 실행 애플리케이션.
참고: Studio 실험은 다른 실험과 동일한 데이터 보존 규칙을 따르며, 기본적으로 트레이스는 기본 등급 보존(14일)이 적용돼요. 하지만 피드백이 추가되면 트레이스가 자동으로 확장 등급 보존(2026년 9월 14일 기준 180일)으로 업그레이드돼요. 피드백은 다음 두 가지 방법 중 하나로 추가할 수 있어요:
- 데이터셋에 평가자가 구성된 경우
- 피드백이 트레이스에 수동으로 추가된 경우
이 자동 업그레이드는 보존 기간과 트레이스 비용을 모두 증가시켜요. 자세한 내용은 데이터 보존 자동 업그레이드를 참조하세요.
실험 설정
- 실험을 시작하세요. Studio 페이지 오른쪽 상단의 Run experiment 버튼을 클릭하세요.
- 데이터셋을 선택하세요. 나타나는 모달에서 실험에 사용할 데이터셋(또는 특정 데이터셋 분할)을 선택하고 Start를 클릭하세요.
- 진행 상황을 모니터링하세요. 데이터셋의 모든 입력이 활성 어시스턴트를 대상으로 실행돼요. 오른쪽 상단의 배지를 통해 실험 진행 상황을 모니터링하세요.
- 실험이 백그라운드에서 실행되는 동안 Studio에서 계속 작업할 수 있어요. 언제든 화살표 아이콘 버튼을 클릭해 LangSmith로 이동해 자세한 실험 결과를 볼 수 있어요.
LangSmith 트레이스 디버깅
이 가이드는 대화형 조사와 디버깅을 위해 LangSmith 트레이스를 Studio에서 여는 방법을 설명해요.
배포된 스레드 열기
- 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을 선택해 선택한 모든 노드를 각각의 데이터셋에 추가하세요.
자세한 내용은 애플리케이션 중간 단계 평가 방법을 참조하세요.