ADK์ฉ Python ๋น ๋ฅธ ์์¶
์ด ๊ฐ์ด๋๋ ADK(Agent Development Kit) for Python์ ์ฌ์ฉํ์ฌ ์์ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค. ์์ํ๊ธฐ ์ ์ ๋ค์์ด ์ค์น๋์ด ์๋์ง ํ์ธํ์ธ์.
- Python 3.10 ์ด์
- ํจํค์ง ์ค์น๋ฅผ ์ํ
pip
์ค์น¶
๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํ์ฌ ADK๋ฅผ ์ค์นํฉ๋๋ค.
๊ถ์ฅ: Python ๊ฐ์ ํ๊ฒฝ ์์ฑ ๋ฐ ํ์ฑํ
Python ๊ฐ์ ํ๊ฒฝ์ ์์ฑํฉ๋๋ค.
Python ๊ฐ์ ํ๊ฒฝ์ ํ์ฑํํฉ๋๋ค.
์์ด์ ํธ ํ๋ก์ ํธ ์์ฑ¶
adk create ๋ช
๋ น์ ์คํํ์ฌ ์ ์์ด์ ํธ ํ๋ก์ ํธ๋ฅผ ์์ํฉ๋๋ค.
์์ด์ ํธ ํ๋ก์ ํธ ํ์¶
์์ฑ๋ ์์ด์ ํธ ํ๋ก์ ํธ๋ ๋ค์๊ณผ ๊ฐ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฉฐ, agent.py ํ์ผ์๋ ์์ด์ ํธ์ ์ฃผ์ ์ ์ด ์ฝ๋๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
์์ด์ ํธ ํ๋ก์ ํธ ์ ๋ฐ์ดํธ¶
agent.py ํ์ผ์๋ root_agent ์ ์๊ฐ ํฌํจ๋์ด ์์ผ๋ฉฐ, ์ด๋ ADK ์์ด์ ํธ์ ์ ์ผํ ํ์ ์์์
๋๋ค. ์์ด์ ํธ๊ฐ ์ฌ์ฉํ ๋๊ตฌ๋ฅผ ์ ์ํ ์๋ ์์ต๋๋ค. ์์ฑ๋ agent.py ์ฝ๋๋ฅผ ๋ค์ ์ฝ๋์ ํ์๋ ๋๋ก ์์ด์ ํธ๊ฐ ์ฌ์ฉํ get_current_time ๋๊ตฌ๋ฅผ ํฌํจํ๋๋ก ์
๋ฐ์ดํธํฉ๋๋ค.
from google.adk.agents.llm_agent import Agent
# ๋ชจ์ ๋๊ตฌ ๊ตฌํ
def get_current_time(city: str) -> dict:
"""์ง์ ๋ ๋์์ ํ์ฌ ์๊ฐ์ ๋ฐํํฉ๋๋ค."""
return {"status": "success", "city": city, "time": "์ค์ 10:30"}
root_agent = Agent(
model='gemini-flash-latest',
name='root_agent',
description="์ง์ ๋ ๋์์ ํ์ฌ ์๊ฐ์ ์๋ ค์ค๋๋ค.",
instruction="๋น์ ์ ๋์์ ํ์ฌ ์๊ฐ์ ์๋ ค์ฃผ๋ ์ ์ฉํ ๋์ฐ๋ฏธ์
๋๋ค. ์ด๋ฅผ ์ํด 'get_current_time' ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ญ์์ค.",
tools=[get_current_time],
)
API ํค ์ค์ ¶
์ด ํ๋ก์ ํธ๋ API ํค๊ฐ ํ์ํ Gemini API๋ฅผ ์ฌ์ฉํฉ๋๋ค. Gemini API ํค๊ฐ ์์ง ์๋ ๊ฒฝ์ฐ Google AI Studio์ API ํค ํ์ด์ง์์ ํค๋ฅผ ์์ฑํฉ๋๋ค.
ํฐ๋ฏธ๋ ์ฐฝ์์ .env ํ์ผ์ API ํค๋ฅผ ํ๊ฒฝ ๋ณ์๋ก ์์ฑํฉ๋๋ค.
ADK์์ ๋ค๋ฅธ AI ๋ชจ๋ธ ์ฌ์ฉ
ADK๋ ๋ค์ํ ์์ฑํ AI ๋ชจ๋ธ ์ฌ์ฉ์ ์ง์ํฉ๋๋ค. ADK ์์ด์ ํธ์์ ๋ค๋ฅธ ๋ชจ๋ธ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๋ชจ๋ธ ๋ฐ ์ธ์ฆ์ ์ฐธ๊ณ ํ์ธ์.
์์ด์ ํธ ์คํ¶
adk run ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ๋ํํ ๋ช
๋ น์ค ์ธํฐํ์ด์ค๋ก ADK ์์ด์ ํธ๋ฅผ ์คํํ๊ฑฐ๋ adk web ๋ช
๋ น์ ์ฌ์ฉํ์ฌ ADK์์ ์ ๊ณตํ๋ ADK ์น ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ์คํํ ์ ์์ต๋๋ค. ์ด ๋ ๊ฐ์ง ์ต์
์ ํตํด ์์ด์ ํธ๋ฅผ ํ
์คํธํ๊ณ ์ํธ ์์ฉํ ์ ์์ต๋๋ค.
๋ช ๋ น์ค ์ธํฐํ์ด์ค๋ก ์คํ¶
adk run ๋ช
๋ น์ค ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ด์ ํธ๋ฅผ ์คํํฉ๋๋ค.

์น ์ธํฐํ์ด์ค๋ก ์คํ¶
ADK ํ๋ ์์ํฌ๋ ์์ด์ ํธ๋ฅผ ํ ์คํธํ๊ณ ์ํธ ์์ฉํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์น ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ค์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์น ์ธํฐํ์ด์ค๋ฅผ ์์ํ ์ ์์ต๋๋ค.
Note
my_agent/ ํด๋๊ฐ ํฌํจ๋ ์์ ๋๋ ํ ๋ฆฌ์์ ์ด ๋ช
๋ น์ ์คํํ์ธ์. ์๋ฅผ ๋ค์ด ์์ด์ ํธ๊ฐ agents/my_agent/ ์์ ์๋ ๊ฒฝ์ฐ agents/ ๋๋ ํ ๋ฆฌ์์ adk web์ ์คํํ์ธ์.
์ด ๋ช ๋ น์ ์์ด์ ํธ์ฉ ์ฑํ ์ธํฐํ์ด์ค๊ฐ ์๋ ์น ์๋ฒ๋ฅผ ์์ํฉ๋๋ค. ์น ์ธํฐํ์ด์ค๋ (http://localhost:8000)์์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ผ์ชฝ ์๋จ ๋ชจ์๋ฆฌ์์ ์์ด์ ํธ๋ฅผ ์ ํํ๊ณ ์์ฒญ์ ์ ๋ ฅํฉ๋๋ค.

์ฃผ์: ADK Web์ ๊ฐ๋ฐ์ฉ์ผ๋ก๋ง ์ฌ์ฉํ์ธ์
ADK Web์ ํ๋ก๋์ ๋ฐฐํฌ์์ ์ฌ์ฉํ๋๋ก ์ค๊ณ๋์ง ์์์ต๋๋ค. ADK Web์ ๊ฐ๋ฐ ๋ฐ ๋๋ฒ๊น ์ฉ๋๋ก๋ง ์ฌ์ฉํ์ธ์.
๋ค์: ์์ด์ ํธ ๋น๋¶
์ด์ ADK๊ฐ ์ค์น๋์๊ณ ์ฒซ ๋ฒ์งธ ์์ด์ ํธ๊ฐ ์คํ ์ค์ด๋ฏ๋ก ์ด์ ๋น๋ ๊ฐ์ด๋๋ฅผ ์ฌ์ฉํ์ฌ ์์ ๋ง์ ์์ด์ ํธ๋ฅผ ๋น๋ํด ๋ณด์ธ์.