Agent๋ฅผ ์ค๋ ์ด์ํ๋ ค๋ฉด โ๋์ถฉ ํ
์คํธ ๋ฐ๊ธฐโ์์ ๋ฒ์ด๋์ผ ํฉ๋๋ค. PydanticAI์์ ๊ทธ ์ถ๋ฐ์ ์ด deps_type๊ณผ output_type์
๋๋ค. ์ด ๋์ ๋จผ์ ์ก์ผ๋ฉด, ๋์ค์ ๊ธฐ๋ฅ์ ๋๋ ค๋ ์ฝ๋๊ฐ ๋ ํ๋ค๋ฆฝ๋๋ค.
AI ํ์ฉ ์๋ด: ์ด ๋ฌธ์๋ ์์ฑํ AI๋ฅผ ํ์ฉํด ์์ฑํ์ผ๋ฉฐ, Pydantic AI ๊ณต์ ๋ฌธ์๋ฅผ 1์ฐจ ์ถ์ฒ๋ก ๊ฒํ ํด ์ ๋ฆฌํ์ต๋๋ค.
๊ณต์๋ฌธ์ ํ๋ฆ ์ ๊ฒ (๊ฐ์ ๋ณด์)
- ํ๋ฆ:
dependencies์ ์ธ/์ฃผ์ โ ๋๊ธฐยท๋น๋๊ธฐ ์์กด์ฑ ๋ถ๋ฆฌ โoutput๋ชจ๋ ์ ํ(๊ตฌ์กฐํ/ํจ์ํ) โ ์ถ๋ ฅ ๊ฒ์ฆ๊ธฐ(output validator)๋ก ํ์ง ๊ณ ์ . - ์ด๋ฒ ํธ์์ ๋น ์ง๋ฉด ์ ๋๋ ํฌ์ธํธ:
deps๋ ๋จ์ ์ค์ ๊ฐ์ด ์๋๋ผ ์คํ ๋ฌธ๋งฅ ์ฃผ์ ๋ ์ด์ด๋ก ์ค๋ช ํ๋ค.output_type+ ๊ฒ์ฆ ์คํจ ์ ์ฌ์๋/๋ณด์ ํ๋ฆ์ ํจ๊ป ๋ค๋ฃฌ๋ค.- dependency override(ํ ์คํธ/ํ๊ฒฝ ์ ํ)๋ฅผ ๊ฐ์์ ๋ช ์ํ๋ค.
- ๊ณต์ ๋ฌธ์ ์ฒดํฌ ๋งํฌ:
์ deps/output๋ถํฐ ์ก์์ผ ํ๋
deps_type์ ๋ฐํ์์ Agent๊ฐ ์ฌ์ฉํ ์์กด์ฑ(์: user_id, DB connection)์ ํ์
์ผ๋ก ๊ณ ์ ํฉ๋๋ค. output_type์ ๋ชจ๋ธ์ด ๋ง์ง๋ง์ ๋ฐํํด์ผ ํ๋ ๊ตฌ์กฐ๋ฅผ ๊ณ ์ ํฉ๋๋ค.
๊ณต์ ๋ฌธ์:
- Dependencies: https://ai.pydantic.dev/dependencies/
- Output: https://ai.pydantic.dev/output/
flowchart TD A[RunContext๋ก deps ์ ๋ฌ] --> B[Tool/Instructions์์ ์ฌ์ฉ] B --> C[๋ชจ๋ธ ์๋ต ์์ฑ] C --> D[output_type ๊ฒ์ฆ] D --> E[ํต๊ณผ ์ ์ต์ข ๋ฐํ] D --> F[์คํจ ์ ์ฌ์๋/์์ ์ ๋]
์ต์ ์ค์ ์์
from dataclasses import dataclass
from pydantic import BaseModel, Field
from pydantic_ai import Agent, RunContext
@dataclass
class Deps:
customer_id: int
class Out(BaseModel):
answer: str = Field(description='๊ณ ๊ฐ ์๋ด ๋ฌธ๊ตฌ')
risk: int = Field(ge=0, le=10)
agent = Agent('openai:gpt-5.2', deps_type=Deps, output_type=Out)ํต์ฌ์ โ๋ฆฌ๋ทฐ๊ฐ ์ฌ์ด ๊ฒฐ๊ณผโ๋ฅผ ๊ฐ์ ํ๋ ๊ฒ์ ๋๋ค.
๋ฏธ๋ ์ฌ๋ก A: ์ด์์๊ฐ ๋ฆฌ์คํฌ ๋ ๋ฒจ์ ๋ชป ๋ฏฟ์๋ ๋ฌธ์
์์ ์๋ ๋ชจ๋ธ์ด ์ํฉ์ ๋ฐ๋ผ โ์ํ/๋ฎ์โ์ฒ๋ผ ์ ๊ฐ๊ฐ ํํํด์ ์๋ํ ํ์ดํ๋ผ์ธ์์ ๋ถ๊ธฐ ์ฒ๋ฆฌ๊ฐ ์ด๋ ค์ ์ต๋๋ค. risk: int(0~10)๋ก ๊ณ ์ ํ๋ ๋ฃฐ ์์ง ์ฐ๊ฒฐ์ด ์ฌ์์ก์ต๋๋ค.
๋ฏธ๋ ์ฌ๋ก B: ๊ณ ๊ฐ ์ ๋ณด ์ฃผ์ ์ด ๋ถ์์ ํ๋ ๋ฌธ์
ํ๋กฌํํธ์ ๊ณ ๊ฐ ์ ๋ณด๋ฅผ ๋ฌธ์์ด๋ก ๋ถ์ด๋ ๋ฐฉ์์ ๋๋ฝ์ด ์ฆ์์ต๋๋ค. deps_type์ผ๋ก ๊ฐ์ ํด RunContext์์ ๊บผ๋ด ์ฐ๊ฒ ๋ฐ๊พธ๋ ๋๋ฝ ์ผ์ด์ค๊ฐ ์ค์์ต๋๋ค.
์ง๊ธ ๋ฐ๋ก ์ ์ฉ ์์
- ๊ธฐ์กด Agent ์ถ๋ ฅ์์ ๋ฐ๋์ ํ์ํ ํ๋ 2~3๊ฐ๋ฅผ ๋จผ์ ํ์
output_type๋ชจ๋ธ ์ ์- ์ธ๋ถ ์ํ๊ฐ(user/team/db)์
deps_type์ผ๋ก ์ด๋ - ๊ฐ์ ์ ๋ ฅ 3ํ ํ ์คํธ ํ ํ๋ ์ผ๊ด์ฑ ํ์ธ
์ฑ๊ณต ํ์ :
- ๊ฒฐ๊ณผ JSON/๊ฐ์ฒด ํ๋๊ฐ ๊ณ ์ ๋๋ค
- ์ฌ๋์ด ์๋ ์ฝ๋๊ฐ ๊ฒฐ๊ณผ๋ฅผ ์์ ์ ์ผ๋ก ์ฝ์ ์ ์๋ค
- deps ๋๋ฝ ์ ์ฆ์ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ ์ ์๋ค