๐ค 07. HF Agents Course ๋ณธํธ 5 - ๊ณํยท๋ฉ๋ชจ๋ฆฌยท๊ด์ฐฐ๊ฐ๋ฅ์ฑ์ผ๋ก ์์ด์ ํธ ์ด์ํ๊ธฐ
์ด๋ฒ ํธ์์๋ **โํ ๋ฒ ๋ตํ๋ ์์ด์ ํธโ**๊ฐ ์๋๋ผ, ์ฌ์๋ยท๊ธฐ๋กยท๊ฒ์ฆ์ด ๊ฐ๋ฅํ ์ด์ํ ์์ด์ ํธ๋ก ํ์ฅํ๋ ์ต์ ํจํด์ ๋ค๋ฃน๋๋ค.
flowchart TD A[์ฌ์ฉ์ ๋ชฉํ ์ ๋ ฅ] --> B[Plan ์์ฑ] B --> C[Tool ์คํ] C --> D[์ค๊ฐ ๊ฒฐ๊ณผ/๋ก๊ทธ ์ ์ฅ] D --> E{์ฑ๊ณต ๊ธฐ์ค ์ถฉ์กฑ?} E -- ์ --> F[์ต์ข ์๋ต + ๊ทผ๊ฑฐ] E -- ์๋์ค --> G[์์ ๋ Plan์ผ๋ก ์ฌ์๋] G --> C
์ ์ค์ํ๊ฐ (์ค๋ฌด ํฌ์ธํธ)
- ์ด๋ฐ PoC๋ ์ ๋๋๋ฐ ์ด์์์ ๊นจ์ง๋ ์ด์ ๋ ๋๋ถ๋ถ ๋ก๊ทธ ๋ถ์ฌ, ์ฑ๊ณต ๊ธฐ์ค ๋ถ๋ช ํ, ์ํ ๋ฏธ๋ณด์กด์ ๋๋ค.
- smolagents์์๋ Plan/Memory/Trace๋ฅผ ๋ช ์์ ์ผ๋ก ๋จ๊ธฐ๋ฉด ์ฅ์ ๋ถ์ ์๋๊ฐ ํฌ๊ฒ ์ฌ๋ผ๊ฐ๋๋ค.
์ค์ต: ์ด์ํ mini runner ๋ง๋ค๊ธฐ
1) ๋๊ตฌ ์ค์น
- Python 3.10+
- ๊ฐ์ํ๊ฒฝ ์์ฑ:
python -m venv .venv
source .venv/bin/activate
pip install -U smolagents duckduckgo-search2) ์ ๋ ฅ ํ์ผ ์ค๋น
task_input.txt
2026๋
AI ์์ด์ ํธ ์ด์ ์ฒดํฌ๋ฆฌ์คํธ ํต์ฌ 5๊ฐ์ง๋ฅผ ์กฐ์ฌํด์, ๊ทผ๊ฑฐ URL๊ณผ ํจ๊ป ์์ฝํด์ค.3) ์คํ ์ฝ๋ ์์ฑ
ops_agent.py
from pathlib import Path
from smolagents import CodeAgent, DuckDuckGoSearchTool, InferenceClientModel
MODEL_ID = "Qwen/Qwen2.5-Coder-32B-Instruct"
model = InferenceClientModel(model_id=MODEL_ID)
agent = CodeAgent(
tools=[DuckDuckGoSearchTool()],
model=model,
max_steps=6,
)
user_goal = Path("task_input.txt").read_text(encoding="utf-8").strip()
system_like_instruction = """
๋ฐ๋์ ๋ค์ ํ์์ผ๋ก ์์
:
1) PLAN: 3๋จ๊ณ ์ดํ ๊ณํ
2) EXECUTION: ์ค์ ๊ฒ์/์ถ๋ก
3) EVIDENCE: URL ์ต์ 3๊ฐ
4) FINAL: ํ๊ตญ์ด ๋ถ๋ฆฟ 5๊ฐ
""".strip()
prompt = f"{system_like_instruction}\n\n์ฌ์ฉ์ ๋ชฉํ: {user_goal}"
result = agent.run(prompt)
Path("run_result.md").write_text(str(result), encoding="utf-8")
print("DONE: run_result.md ์์ฑ")4) ์คํ ๋ช ๋ น
python ops_agent.py5) ์ฑ๊ณต ํ์
์๋๋ฅผ ๋ชจ๋ ๋ง์กฑํ๋ฉด ์ฑ๊ณต:
run_result.mdํ์ผ ์์ฑ- PLAN/EXECUTION/EVIDENCE/FINAL 4๊ฐ ์น์ ํ์ธ
- EVIDENCE์ URL 3๊ฐ ์ด์
- FINAL์ ๋ถ๋ฆฟ 5๊ฐ
์ด๋ณด์๋ฅผ ์ํ ํด์ค
max_steps=6์ ๋ฌดํ ๋ฃจํ ๋ฐฉ์ง ์์ ์ฅ์น์ ๋๋ค.- โํ์ ๊ฐ์ ํ๋กฌํํธโ๋ฅผ ๋ฃ์ด์ผ ๊ฒฐ๊ณผ๋ฌผ ํ์ง์ด ํ๋ค๋ฆฌ์ง ์์ต๋๋ค.
- ๊ฒฐ๊ณผ๋ฅผ ํ์ผ๋ก ๋จ๊ฒจ์ผ ๋ค์ ์๋ํ(์ค์ผ์ค๋ฌ, ์๋ฆผ, ๊ฒ์)์ ์ฐ๊ฒฐ๋ฉ๋๋ค.
์ด์ ์ฒดํฌ๋ฆฌ์คํธ
- ์คํจ ์ ์ฌ์๋ ์ ์ฑ (์: 1ํ ์๋ ์ฌ์๋)
- ๊ทผ๊ฑฐ ๋งํฌ ๋๋ฝ ์ ์คํจ ์ฒ๋ฆฌ
- ์คํ ์๊ฐ/ํ ํฐ ๋น์ฉ ๋ก๊น
- ์ถ๋ ฅ ์คํค๋ง(JSON/Markdown) ๊ณ ์
๋ค์ ํธ ์๊ณ
๋ณธํธ 6์์๋ ์์ด์ ํธ ์ถ๋ ฅ ๊ฒ์ฆ๊ธฐ(guardrail) + ๋ฐฐ์น ์คํ์ผ๋ก ํ์ฅํฉ๋๋ค.
์์ฑํ AI ํ์ฉ ๊ณ ์ง
์ด ๋ฌธ์๋ ์์ฑํ AI๋ฅผ ํ์ฉํด ์ด์์ ์์ฑํ ๋ค, ์ฌ๋์ด ๊ตฌ์กฐยท์ ํ์ฑยท์ฌํ ์ ์ฐจ๋ฅผ ๊ฒํ /๋ณด์ ํ์ต๋๋ค.