์ข์ ์์ด์ ํธ๋ ๋ง์ ์ํ๋ ๋ชจ๋ธ๋ณด๋ค, ํ์ํ ์๊ฐ์ ์ ํํ ๋๊ตฌ๋ฅผ ๋ถ๋ฅด๋ ๊ตฌ์กฐ์์ ๋์ต๋๋ค. PydanticAI๋ @agent.tool๋ก ํจ์ ๋๊ตฌ๋ฅผ ๋ฑ๋กํ๊ณ , ๋ด์ฅ/๊ณตํต ๋๊ตฌ๋ฅผ ์กฐํฉํด ํ์ฅํ ์ ์์ต๋๋ค.
AI ํ์ฉ ์๋ด: ์ด ๋ฌธ์๋ ์์ฑํ AI๋ฅผ ํ์ฉํด ์์ฑํ์ผ๋ฉฐ, Pydantic AI ๊ณต์ ๋ฌธ์๋ฅผ 1์ฐจ ์ถ์ฒ๋ก ๊ฒํ ํด ์ ๋ฆฌํ์ต๋๋ค.
๊ณต์๋ฌธ์ ํ๋ฆ ์ ๊ฒ (๊ฐ์ ๋ณด์)
- ํ๋ฆ: Function Tool ๋ฑ๋ก(
@agent.tool/agent ์ธ์) โ Tool Schema/Output ์ดํด โ Built-in Tool ์ ํ ๊ธฐ์ค(์ง์ provider/์ค์ ) โ Common Tool ํ์ฅ. - ์ด๋ฒ ํธ์์ ๋น ์ง๋ฉด ์ ๋๋ ํฌ์ธํธ:
- ๋๊ตฌ ๋ฑ๋ก ๋ฐฉ์ 2๊ฐ์ง(Decorator vs Agent argument)๋ฅผ ๋น๊ตํ๋ค.
- Tool schema/docstring์ด ํธ์ถ ์ ํ๋์ ๋ฏธ์น๋ ์ํฅ์ ๋ช ์ํ๋ค.
- Built-in ๋๊ตฌ๋ provider ์ง์ ๋ฒ์๋ฅผ ๋จผ์ ํ์ธํ๋๋ก ์๋ดํ๋ค.
- ๊ณต์ ๋ฌธ์ ์ฒดํฌ ๋งํฌ:
๋๊ตฌ ์ค๊ณ์ ๊ธฐ๋ณธ ์์น
- Tool ํ๋๋ ์ญํ ํ๋๋ง ๋งก๊ธด๋ค
- ์ธ์๋ ์ข๊ณ ๋ช ํํ๊ฒ ์ ์ธํ๋ค
- docstring์ผ๋ก ๋๊ตฌ ์ค๋ช ์ ์ ํํ ๋จ๊ธด๋ค
๊ณต์ ๋ฌธ์:
- Function Tools: https://ai.pydantic.dev/tools/
- Built-in Tools: https://ai.pydantic.dev/builtin-tools/
flowchart LR A[์ฌ์ฉ์ ์ง๋ฌธ] --> B[๋ชจ๋ธ ํ๋จ] B --> C{๋๊ตฌ ํ์?} C -->|์| D[Tool ํธ์ถ] D --> E[๊ฒ์ฆ๋ ๊ฒฐ๊ณผ ๋ฐํ] E --> F[์ต์ข ๋ต๋ณ] C -->|์๋์ค| F
๋ฏธ๋ ์ฌ๋ก A: ๊ฒ์ ๋๊ตฌ ํ๋์ ๋ชจ๋ ์ญํ ์ ๋ชฐ์๋ฃ์ ๊ฒฝ์ฐ
๊ฒ์, ์์ฝ, ํํฐ๋ง์ ํ ๋๊ตฌ์ ๋ฃ์๋๋ ํธ์ถ ์ธ์๊ฐ ๋น๋ํด์ง๊ณ ์คํจ ์์ธ ํ์
์ด ์ด๋ ค์์ก์ต๋๋ค. search_raw์ summarize_hits๋ก ๋ถ๋ฆฌํ์ ๋๋ฒ๊น
์ด ๋นจ๋ผ์ก์ต๋๋ค.
๋ฏธ๋ ์ฌ๋ก B: docstring์ด ๋ชจํธํด ํธ์ถ ํ์ง์ด ๋จ์ด์ง ๊ฒฝ์ฐ
โ๋ฐ์ดํฐ ์กฐํโ ๊ฐ์ ์ถ์ ์ค๋ช ์ ๋ชจ๋ธ์ด ์๋ชป๋ ์ธ์๋ฅผ ๋ฃ๊ธฐ ์ฌ์ ์ต๋๋ค. docstring์ ํ๋ผ๋ฏธํฐ ์๋ฏธ๋ฅผ ๊ตฌ์ฒดํํ๋ ์ฌ์๋ ํ์๊ฐ ์ค์์ต๋๋ค.
์ค๋ฌด ์ ์ฉ ์์
- ํ์ฌ ์ ๋ฌด์์ ์๋ํ ๊ฐ์น๊ฐ ํฐ ๋์ 2๊ฐ ์ ์
- ๊ฐ ๋์์ ๋ ๋ฆฝ Tool ํจ์๋ก ๋ถ๋ฆฌ
- ๊ฐ ๋๊ตฌ์ ์คํจ ์กฐ๊ฑด/์์ธ ๋ฉ์์ง ์ ์
- ์ํ ์ง๋ฌธ 5๊ฐ๋ก ํธ์ถ ๋ก๊ทธ ํ์ธ
์ฑ๊ณต ํ์ :
- ๋๊ตฌ๋ณ ์คํจ ์์ธ์ ๊ตฌ๋ถํ ์ ์๋ค
- ๋ถํ์ํ ๋ค๊ธฐ๋ฅ ๋๊ตฌ๊ฐ ์ฌ๋ผ์ก๋ค
- ํธ์ถ ๋ก๊ทธ๋ง ๋ด๋ ๋ฌธ์ ์์น๋ฅผ ์ฐพ์ ์ ์๋ค