๐ค 37. HF Agents Course ์ค์ตํธ 1 - ๋ฏธ๋ ํ๋ก์ ํธ๋ก ReAct ์์ด์ ํธ ๋ง๋ค๊ธฐ
์ด๋ฒ ์ค์ต์ smolagents๋ก โ์ง๋ฌธ โ ์น ๊ฒ์ โ ๊ณ์ฐ โ ๋ต๋ณโ ํ๋ฆ์ ๊ฐ๋ ๋ฏธ๋ ์์ด์ ํธ๋ฅผ ์ง์ ์คํํด๋ณด๋ 1ํธ์
๋๋ค.
- ์ฐ์ ์ฐธ๊ณ : agents-course GitHub
- ํ์ต ํ์ด์ง: HF Agents Course
- ๊ตฌํ ๋ฌธ์: smolagents Docs
์ค์ต ๋ชฉํ
- ReAct ์คํ์ผ ๋๊ตฌ ํธ์ถ ํ๋ฆ ์ดํด
- ์ต์ 2๊ฐ ๋๊ตฌ๋ฅผ ๊ฐ์ง ์์ด์ ํธ ์คํ
- ์คํจ ๋ก๊ทธ๋ฅผ ์ฝ๊ณ ๋ณต๊ตฌํ๋ ์ต๊ด ๋ง๋ค๊ธฐ
์ํคํ ์ฒ(์์ฝ)
flowchart TD U[์ฌ์ฉ์ ์ง๋ฌธ] --> A[CodeAgent] A --> T1[DuckDuckGoSearchTool] A --> T2[Python ์คํ ๋๊ตฌ] T1 --> A T2 --> A A --> R[์ต์ข ๋ต๋ณ]
์ค๋น๋ฌผ
- Python 3.10+
- ๊ฐ์ํ๊ฒฝ(venv)
- ์ธํฐ๋ท ์ฐ๊ฒฐ
- (์ ํ) Hugging Face ํ ํฐ
Step 1) ์์ ํด๋ ๋ฐ ํ๊ฒฝ ์ค๋น
์ ๋ ฅ
mkdir -p ~/tmp/hf-agents-lab01 && cd ~/tmp/hf-agents-lab01
python3 -m venv .venv
source .venv/bin/activate
pip install -U pip
pip install smolagents duckduckgo-search์ฑ๊ณต ํ์
pip show smolagents๊ฐ ์ ์ ์ถ๋ ฅ๋๋ค.
Step 2) ์์ด์ ํธ ์ฝ๋ ์์ฑ
lab01_agent.py ํ์ผ ์์ฑ:
from smolagents import CodeAgent, DuckDuckGoSearchTool
agent = CodeAgent(
tools=[DuckDuckGoSearchTool()],
model="Qwen/Qwen2.5-Coder-32B-Instruct",
)
question = "์์ธ๊ณผ ๋์ฟ์ ํ์ฌ ์์ฐจ๋ฅผ ํ์ธํ๊ณ , ๋์ฟ๊ฐ ์์ธ๋ณด๋ค ๋ช ์๊ฐ ๋น ๋ฅธ์ง ํ ์ค๋ก ์ค๋ช
ํด์ค."
result = agent.run(question)
print(result)๋ชจ๋ธ ๋ฌธ์์ด์ ํ๊ฒฝ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค. ๋ก์ปฌ/์๊ฒฉ ์ค์ ์ ๋ง์ถฐ ๋์ฒดํ์ธ์.
Step 3) ์คํ
์คํ ๋ช ๋ น
python lab01_agent.py์ฑ๊ณต ํ์
- ์ฝ์์ โ๋์ฟ๊ฐ ์์ธ๋ณด๋ค X์๊ฐ ๋น ๋ฆ/๊ฐ์โ ํํ์ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋๋ค.
- ์คํ ์ค ๊ฒ์ ๋๊ตฌ ํธ์ถ ๋ก๊ทธ(Thought/Action ๊ณ์ด)๊ฐ ๋ณด์ธ๋ค.
Step 4) ๊ฒ์ฆ ์ง๋ฌธ 2๊ฐ ๋ ์คํ
์ง๋ฌธ์ ์๋๋ก ๋ฐ๊ฟ 2ํ ์ถ๊ฐ ์คํ:
- โ๋ํ๋ฏผ๊ตญ ๊ธฐ์ค ์ฌํด๊ฐ ์ค๋ ์ธ์ง ๊ณ์ฐ ๊ทผ๊ฑฐ์ ํจ๊ป ์๋ ค์ค.โ
- โ100๋ฌ๋ฌ๋ฅผ ์ํ๋ก ๋๋ต ํ์ฐํ ๋ ์ฃผ์ํ ์ 2๊ฐ์ง๋ฅผ ๋งํด์ค.โ
์ฑ๊ณต ํ์
- ๋๊ตฌ ํธ์ถ ํ, ๊ทผ๊ฑฐ๊ฐ ํฌํจ๋ ๋ต์ด ๋์จ๋ค.
- ๊ณ์ฐ/๊ฒ์์ด ํ์ํ ์ง๋ฌธ์์ ๋จ๋ต๋ง ๋ด์ง ์๋๋ค.
ํธ๋ฌ๋ธ์ํ (์์ฃผ ๋งํ๋ 4๊ฐ์ง)
ModuleNotFoundError: smolagents
- ์์ธ: venv ๋ฏธํ์ฑํ ๋๋ ์ค์น ์คํจ
- ํด๊ฒฐ:
source .venv/bin/activatepip install smolagents
- ๋ชจ๋ธ ํธ์ถ ์คํจ(๊ถํ/์๋ํฌ์ธํธ ์ค๋ฅ)
- ์์ธ: ํ์ฌ ํ๊ฒฝ์์ ํด๋น ๋ชจ๋ธ ์ ๊ทผ ๋ถ๊ฐ
- ํด๊ฒฐ:
- smolagents ๋ฌธ์ ๊ธฐ์ค์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ธ๋ก ๊ต์ฒด
- ํ์ํ ๊ฒฝ์ฐ HF ํ ํฐ ์ค์ ํ ์ฌ์คํ
- ๊ฒ์ ๋๊ตฌ ํ์์์/๋น ๊ฒฐ๊ณผ
- ์์ธ: ๋คํธ์ํฌ ์ด์, ์ง์๊ฐ ๋๋ฌด ๋ชจํธํจ
- ํด๊ฒฐ:
- ์ง๋ฌธ์ ๊ตฌ์ฒดํ(์๊ฐ๋/๊ตญ๊ฐ/๋จ์ ๋ช ์)
- ์ฌ์๋ ์ ๋คํธ์ํฌ ํ์ธ
- ํ๊ตญ์ด ์ง๋ฌธ์์ ์ฅํฉํ๊ฑฐ๋ ํ๋ฆฐ ๋จ์
- ์์ธ: ํ๋กฌํํธ์ ์ถ๋ ฅ ํ์ ์ ์ฝ ์์
- ํด๊ฒฐ:
- ์ง๋ฌธ ๋์ ํ์ ์ ์ฝ ์ถ๊ฐ
- ์: โ์ต๋ 3๋ฌธ์ฅ, ๋ถํ์คํ๋ฉด ๋ถํ์คํ๋ค๊ณ ๋ช ์โ
์ฒดํฌ๋ฆฌ์คํธ
- ๊ฐ์ํ๊ฒฝ ์์ฑ/ํ์ฑํ ์๋ฃ
-
smolagents์ค์น ์๋ฃ - ์์ด์ ํธ 1ํ ์ด์ ์คํ ์ฑ๊ณต
- ๊ฒ์ฆ ์ง๋ฌธ 2๊ฐ ์ถ๊ฐ ์คํ
- ํธ๋ฌ๋ธ์ํ 1๊ฐ ์ด์ ์ง์ ๋ณต๊ตฌ
๋ค์ ํธ ์๊ณ
2ํธ์์๋ ์ปค์คํ ํด(์: ํ์จ API ๋ํผ) ์ ๋ถ์ฌ, ๊ฒ์+๊ณ์ฐ+์ธ๋ถ ๋ฐ์ดํฐ ๊ฒฐํฉํ ์์ด์ ํธ๋ก ํ์ฅํฉ๋๋ค.
AI ํ์ฉ ๊ณ ์ง: ๋ณธ ๋ฌธ์๋ ์์ฑํ AI๋ก ์ด์ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค๊ณ , ์ค์ต ๋ช ๋ นยท๊ฒ์ฆ ๊ธฐ์คยทํธ๋ฌ๋ธ์ํ ์ ์ฌ๋์ด ๊ฒํ /์์ ํด ๊ฒ์ํ์ต๋๋ค.