๐Ÿค— 01. HF Agents Course ๋ณธํŽธ 1 - smolagents ๋น ๋ฅธ ์‹œ์ž‘

์™œ ์ด๊ฑธ ๋จผ์ € ํ•˜๋‚˜

HF Agents Course์˜ ํ•ต์‹ฌ์€ **โ€œLLM + ๋„๊ตฌ + ์‹คํ–‰ ๋ฃจํ”„โ€**๋ฅผ ์‹ค์ œ๋กœ ๋Œ๋ ค๋ณด๋Š” ๊ฒƒ์ด๋‹ค. 1ํŽธ์—์„œ๋Š” ๊ฐ€์žฅ ๊ฐ€๋ณ๊ฒŒ smolagents๋กœ ์žฌํ˜„ํ•œ๋‹ค.

์˜ค๋Š˜ ์‹ค์Šต ๋ชฉํ‘œ

  • Python ํ™˜๊ฒฝ ์ค€๋น„
  • smolagents ์„ค์น˜
  • ์›น ๊ฒ€์ƒ‰ ๋„๊ตฌ๋ฅผ ๋ถ™์ธ CodeAgent 1ํšŒ ์‹คํ–‰
  • ์„ฑ๊ณต/์‹คํŒจ ํŒ์ • ๊ธฐ์ค€์œผ๋กœ ์žฌํ˜„ ํ™•์ธ

์ „์ฒด ํ๋ฆ„

flowchart TD
  A[ํ™˜๊ฒฝ ์ค€๋น„] --> B[ํŒจํ‚ค์ง€ ์„ค์น˜]
  B --> C[HF ํ† ํฐ ์„ค์ •]
  C --> D[CodeAgent + Tool ๊ตฌ์„ฑ]
  D --> E[์งˆ๋ฌธ ์‹คํ–‰]
  E --> F{์„ฑ๊ณต ํŒ์ •}
  F -->|Yes| G[๊ฒฐ๊ณผ ๊ธฐ๋ก]
  F -->|No| H[์˜ค๋ฅ˜ ๋กœ๊ทธ ์ ๊ฒ€ ํ›„ ์žฌ์‹คํ–‰]

์‚ฌ์ „ ์ค€๋น„

๋„๊ตฌ

  • Python 3.10+
  • ํ„ฐ๋ฏธ๋„
  • Hugging Face ๊ณ„์ • + Access Token

์ž…๋ ฅ๊ฐ’

  • HF_TOKEN: Hugging Face User Access Token
  • ์‹ค์Šต ์งˆ๋ฌธ: "Summarize today's top 3 AI agent news in Korean."

์‹ค์Šต ๋‹จ๊ณ„

1) ์ž‘์—… ํด๋”์™€ ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ

mkdir -p hf-agents-ep01 && cd hf-agents-ep01
python -m venv .venv
source .venv/bin/activate
python -V

2) ํŒจํ‚ค์ง€ ์„ค์น˜

pip install -U smolagents duckduckgo-search litellm

3) ํ† ํฐ ์„ค์ •

export HF_TOKEN="์—ฌ๊ธฐ์—_ํ† ํฐ"

4) ์‹คํ–‰ ํŒŒ์ผ ์ž‘์„ฑ (run_ep01.py)

from smolagents import CodeAgent, DuckDuckGoSearchTool, HfApiModel
 
model = HfApiModel(model_id="Qwen/Qwen2.5-Coder-32B-Instruct")
agent = CodeAgent(
    tools=[DuckDuckGoSearchTool()],
    model=model,
    add_base_tools=True,
)
 
prompt = "Summarize today's top 3 AI agent news in Korean. Include source links."
result = agent.run(prompt)
print(result)

5) ์‹คํ–‰

python run_ep01.py

์„ฑ๊ณต ํŒ์ •

์•„๋ž˜ 4๊ฐœ๋ฅผ ๋งŒ์กฑํ•˜๋ฉด ์„ฑ๊ณต:

  1. ์‹คํ–‰ ์ค‘ tool call(๊ฒ€์ƒ‰) ํ”์ ์ด ์ถœ๋ ฅ๋œ๋‹ค.
  2. ํ•œ๊ตญ์–ด ์š”์•ฝ์ด 3๊ฐœ ํ•ญ๋ชฉ์œผ๋กœ ๋‚˜์˜จ๋‹ค.
  3. ๊ฐ ํ•ญ๋ชฉ์— ์ถœ์ฒ˜ ๋งํฌ๊ฐ€ ํฌํ•จ๋œ๋‹ค.
  4. ์—๋Ÿฌ ์—†์ด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋œ๋‹ค(์ข…๋ฃŒ์ฝ”๋“œ 0).

์ž์ฃผ ๋ง‰ํžˆ๋Š” ์ง€์ 

  • 401/403: HF_TOKEN ๋ˆ„๋ฝ ๋˜๋Š” ๊ถŒํ•œ ๋ฌธ์ œ
  • ModuleNotFoundError: ๊ฐ€์ƒํ™˜๊ฒฝ ๋ฏธํ™œ์„ฑํ™”
  • ์‘๋‹ต ์ง€์—ฐ: ๋ชจ๋ธ ํ˜ผ์žก ์‹œ๊ฐ„๋Œ€์ผ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์žฌ์‹œ๋„

์‹ค๋ฌด ์ ์šฉ ํฌ์ธํŠธ

  • ์ด ๊ตฌ์กฐ๋ฅผ ๊ทธ๋Œ€๋กœ ์จ์„œ ๋งค์ผ ๋‰ด์Šค ์š”์•ฝ ์ž๋™ํ™”์˜ ์ตœ์†Œ ๋‹จ์œ„๋กœ ์“ธ ์ˆ˜ ์žˆ๋‹ค.
  • ๋‹ค์Œ ํŽธ์—์„œ๋Š” ๋„๊ตฌ๋ฅผ 2~3๊ฐœ๋กœ ๋Š˜๋ ค, ๊ฒ€์ƒ‰ + ๊ณ„์‚ฐ + ํฌ๋งทํŒ… ์ฒด์ธ์œผ๋กœ ํ™•์žฅํ•œ๋‹ค.

์ƒ์„ฑํ˜• AI ํ™œ์šฉ ๊ณ ์ง€

์ด ๋ฌธ์„œ๋Š” ์ƒ์„ฑํ˜• AI(LLM)๋ฅผ ํ™œ์šฉํ•ด ์ดˆ์•ˆ์„ ์ž‘์„ฑํ•˜๊ณ , ์‚ฌ๋žŒ์ด ์‹ค์Šต ๊ฐ€๋Šฅ์„ฑ/์ •ํ™•์„ฑ/๊ตฌ์กฐ๋ฅผ ๊ฒ€์ˆ˜ํ•ด ์ •๋ฆฌํ–ˆ๋‹ค.