에이전트 튜토리얼

에이전트 튜토리얼 (Tutorial: Agents)

이 튜토리얼에서는 몇 가지 도구로 dspy.ReAct 에이전트를 설정하고, 다중 홉(multi-hop) 검색을 위한 고급 브라우징을 수행하도록 최적화하는 빠른 예시를 살펴봅니다.

출처: 문서

본문

최신 DSPy를 pip install -U dspy 로 설치하고 따라와 주세요. pip install datasets 도 실행해야 합니다.

권장: 내부에서 무슨 일이 일어나는지 이해하도록 MLflow Tracing을 설정하세요.

MLflow DSPy 통합

MLflow는 DSPy와 네이티브로 통합되는 LLMOps 도구입니다. 이 튜토리얼에서는 MLflow로 프롬프트와 최적화 진행을 트레이스로 시각화할 수 있습니다. 설정:

  1. MLflow 설치 — %pip install mlflow>=2.20
  2. 별도 터미널에서 MLflow UI 시작 — mlflow ui --port 5000
  3. 노트북 연결 — import mlflow / mlflow.set_tracking_uri("http://localhost:5000") / mlflow.set_experiment("DSPy")
  4. 트레이싱 활성화 — mlflow.dspy.autolog()

작은 LM 사용

이 튜토리얼에서는 30억 파라미터의 아주 작은 LM, Meta의 Llama-3.2-3B-Instruct 를 사용합니다. 이런 모델은 길거나 복잡한 에이전트 루프에서 처음부터 아주 신뢰할 만하지는 않지만, 호스팅이 극도로 빠르고 값싸며, DSPy 최적화기가 그 격차를 메울 수 있다는 것을 보여 줍니다.

ReAct 에이전트 설정

검색을 수행할 도구(아래는 예시 스타일)를 정의하고 dspy.ReAct 로 에이전트를 구성합니다. ReAct는 모델이 생각 → 도구 호출 → 관찰을 반복하며 작업을 수행하게 한 뒤, 답이 준비되면 최종 출력을 합성합니다.

import dspy

# 예: 검색 도구 정의
def search(query: str) -> list[str]:
    """Search for relevant passages."""
    ...

agent = dspy.ReAct(
    "question -> answer",
    tools=[search],
    max_iters=10,
)

result = agent(question="...")

최적화

작은 모델로도 정교한 에이전트 동작을 얻기 위해, 검증 세트와 메트릭을 준비하고 dspy.GEPA 같은 최적화기로 에이전트의 프롬프트를 컴파일합니다. 최적화는 지시문을 개선해 모델이 도구를 더 정확히 활용하게 합니다.

에이전트 루프의 내부 동작과 ReAct의 상세는 ReAct와 ReActV2를, 도구 정의는 도구와 MCP를 참고하세요.

더 알아보기 (Learn more)