에이전트 튜토리얼
에이전트 튜토리얼 (Tutorial: Agents)
이 튜토리얼에서는 몇 가지 도구로 dspy.ReAct 에이전트를 설정하고, 다중 홉(multi-hop) 검색을 위한 고급 브라우징을 수행하도록 최적화하는 빠른 예시를 살펴봅니다.
출처: 문서
본문
최신 DSPy를 pip install -U dspy 로 설치하고 따라와 주세요. pip install datasets 도 실행해야 합니다.
권장: 내부에서 무슨 일이 일어나는지 이해하도록 MLflow Tracing을 설정하세요.
MLflow DSPy 통합
MLflow는 DSPy와 네이티브로 통합되는 LLMOps 도구입니다. 이 튜토리얼에서는 MLflow로 프롬프트와 최적화 진행을 트레이스로 시각화할 수 있습니다. 설정:
- MLflow 설치 —
%pip install mlflow>=2.20 - 별도 터미널에서 MLflow UI 시작 —
mlflow ui --port 5000 - 노트북 연결 —
import mlflow/mlflow.set_tracking_uri("http://localhost:5000")/mlflow.set_experiment("DSPy") - 트레이싱 활성화 —
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를 참고하세요.