์ข‹์€ ์—์ด์ „ํŠธ๋Š” ๋ง์„ ์ž˜ํ•˜๋Š” ๋ชจ๋ธ๋ณด๋‹ค, ํ•„์š”ํ•œ ์ˆœ๊ฐ„์— ์ •ํ™•ํ•œ ๋„๊ตฌ๋ฅผ ๋ถ€๋ฅด๋Š” ๊ตฌ์กฐ์—์„œ ๋‚˜์˜ต๋‹ˆ๋‹ค. 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์œผ๋กœ ๋„๊ตฌ ์„ค๋ช…์„ ์ •ํ™•ํžˆ ๋‚จ๊ธด๋‹ค

๊ณต์‹ ๋ฌธ์„œ:

flowchart LR
  A[์‚ฌ์šฉ์ž ์งˆ๋ฌธ] --> B[๋ชจ๋ธ ํŒ๋‹จ]
  B --> C{๋„๊ตฌ ํ•„์š”?}
  C -->|์˜ˆ| D[Tool ํ˜ธ์ถœ]
  D --> E[๊ฒ€์ฆ๋œ ๊ฒฐ๊ณผ ๋ฐ˜ํ™˜]
  E --> F[์ตœ์ข… ๋‹ต๋ณ€]
  C -->|์•„๋‹ˆ์˜ค| F

๋ฏธ๋‹ˆ ์‚ฌ๋ก€ A: ๊ฒ€์ƒ‰ ๋„๊ตฌ ํ•˜๋‚˜์— ๋ชจ๋“  ์—ญํ• ์„ ๋ชฐ์•„๋„ฃ์€ ๊ฒฝ์šฐ

๊ฒ€์ƒ‰, ์š”์•ฝ, ํ•„ํ„ฐ๋ง์„ ํ•œ ๋„๊ตฌ์— ๋„ฃ์—ˆ๋”๋‹ˆ ํ˜ธ์ถœ ์ธ์ž๊ฐ€ ๋น„๋Œ€ํ•ด์ง€๊ณ  ์‹คํŒจ ์›์ธ ํŒŒ์•…์ด ์–ด๋ ค์›Œ์กŒ์Šต๋‹ˆ๋‹ค. search_raw์™€ summarize_hits๋กœ ๋ถ„๋ฆฌํ•˜์ž ๋””๋ฒ„๊น…์ด ๋นจ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

๋ฏธ๋‹ˆ ์‚ฌ๋ก€ B: docstring์ด ๋ชจํ˜ธํ•ด ํ˜ธ์ถœ ํ’ˆ์งˆ์ด ๋–จ์–ด์ง„ ๊ฒฝ์šฐ

โ€œ๋ฐ์ดํ„ฐ ์กฐํšŒโ€ ๊ฐ™์€ ์ถ”์ƒ ์„ค๋ช…์€ ๋ชจ๋ธ์ด ์ž˜๋ชป๋œ ์ธ์ž๋ฅผ ๋„ฃ๊ธฐ ์‰ฌ์› ์Šต๋‹ˆ๋‹ค. docstring์— ํŒŒ๋ผ๋ฏธํ„ฐ ์˜๋ฏธ๋ฅผ ๊ตฌ์ฒดํ™”ํ•˜๋‹ˆ ์žฌ์‹œ๋„ ํšŸ์ˆ˜๊ฐ€ ์ค„์—ˆ์Šต๋‹ˆ๋‹ค.

์‹ค๋ฌด ์ ์šฉ ์ˆœ์„œ

  1. ํ˜„์žฌ ์—…๋ฌด์—์„œ ์ž๋™ํ™” ๊ฐ€์น˜๊ฐ€ ํฐ ๋™์ž‘ 2๊ฐœ ์„ ์ •
  2. ๊ฐ ๋™์ž‘์„ ๋…๋ฆฝ Tool ํ•จ์ˆ˜๋กœ ๋ถ„๋ฆฌ
  3. ๊ฐ ๋„๊ตฌ์˜ ์‹คํŒจ ์กฐ๊ฑด/์˜ˆ์™ธ ๋ฉ”์‹œ์ง€ ์ •์˜
  4. ์ƒ˜ํ”Œ ์งˆ๋ฌธ 5๊ฐœ๋กœ ํ˜ธ์ถœ ๋กœ๊ทธ ํ™•์ธ

์„ฑ๊ณต ํŒ์ •:

  • ๋„๊ตฌ๋ณ„ ์‹คํŒจ ์›์ธ์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค
  • ๋ถˆํ•„์š”ํ•œ ๋‹ค๊ธฐ๋Šฅ ๋„๊ตฌ๊ฐ€ ์‚ฌ๋ผ์กŒ๋‹ค
  • ํ˜ธ์ถœ ๋กœ๊ทธ๋งŒ ๋ด๋„ ๋ฌธ์ œ ์œ„์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค

๋‹ค์Œ ๊ธ€