에이전트(Agent) 만들기
에이전트(Agent) 만들기
Pydantic AI에서 에이전트는 LLM과 대화하는 가장 기본적인 인터페이스예요. 어떤 경우엔 에이전트 하나가 애플리케이션 전체를 맡기도 하지만, 여러 에이전트가 얽혀 더 복잡한 워크플로를 만들 수도 있죠.
개념적으로 에이전트는 몇 가지 구성 요소를 담는 그릇이라고 볼 수 있어요. 개발자가 LLM에 건네는 지시(Instructions), LLM이 답변을 만드는 동안 부를 수 있는 함수 도구(Function tools), 마지막에 반드시 돌려줘야 하는 구조화된 출력 타입, 그리고 동적 지시·도구·출력에 쓰는 의존성 타입 제약까지요. 여기에 기본으로 쓸 LLM 모델과 모델 설정, 그리고 여러 동작을 묶어 재사용할 수 있는 Capabilities가 더해져요.
에이전트는 의존성 타입과 출력 타입으로 제네릭하게 표현돼요. Foobar 타입을 의존성으로 받고 list[str]을 출력하는 에이전트는 Agent[Foobar, list[str]]처럼 읽히죠. 보통은 신경 쓸 필요 없지만, IDE가 타입을 잡아주고 정적 타입 검사와도 잘 맞는다는 뜻이에요.
룰렛을 흉내 내는 예제를 볼게요.
from pydantic_ai import Agent, RunContext
roulette_agent = Agent(
'openai:gpt-5.2',
deps_type=int,
output_type=bool,
system_prompt=(
'Use the `roulette_wheel` function to see if the '
'customer has won based on the number they provide.'
)
)
deps_type=int는 고객이 건 숫자를 의존성으로 받는다는 뜻이고, output_type=bool은 에이전트가 당첨 여부를 참/거짓으로 답해야 한다는 뜻이에요. system_prompt는 매 실행마다 LLM 앞부분에 깔리는 지시로, 도구 사용 규칙을 알려주는 역할을 해요.
에이전트는 단순한 채팅부터 도구 호출, 구조화 출력까지 한 프레임워크 안에서 다루기 때문에 어디까지나 타입 안전하게 로직을 짤 수 있는 게 핵심이에요.