๐Ÿค— 55. HF Agents Course ์‹ค์ŠตํŽธ 1 - ์ฝ”์Šค ์ปค๋ฆฌํ˜๋Ÿผ ๋ธŒ๋ฆฌํ•‘ ์—์ด์ „ํŠธ ๋งŒ๋“ค๊ธฐ

๋ชฉํ‘œ: HF Agents Course์˜ ์ฝ”์Šค ์ „์ฒด ๊ตฌ์กฐ, Unit 1์˜ ๊ธฐ์ดˆ ๊ฐœ๋…, smolagents์˜ ๋น ๋ฅธ ์‹œ์ž‘ ๋ฐฉ์‹์„ ํ•œ ๋ฒˆ์— ์ฝ์–ด, ํ•™์Šต์ž์—๊ฒŒ ์˜ค๋Š˜ ์‹œ์ž‘ํ•  ์ˆœ์„œ์™€ ๋‹ค์Œ ์‹ค์Šต์„ ์ œ์•ˆํ•˜๋Š” ์ปค๋ฆฌํ˜๋Ÿผ ๋ธŒ๋ฆฌํ•‘ ์—์ด์ „ํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค.

Hugging Face Agents Course ์ €์žฅ์†Œ์™€ ๊ณต์‹ ํ•™์Šต ํŽ˜์ด์ง€๋Š” ์ฝ”์Šค๋ฅผ ๊ธฐ์ดˆ(Unit 1) โ†’ ํ”„๋ ˆ์ž„์›Œํฌ(Unit 2) โ†’ ์œ ์Šค์ผ€์ด์Šค(Unit 3) โ†’ ์ตœ์ข… ๊ณผ์ œ(Unit 4) ํ๋ฆ„์œผ๋กœ ์•ˆ๋‚ดํ•œ๋‹ค. smolagents ๋ฌธ์„œ๋Š” ์ด๋Ÿฐ ํ•™์Šต ์‹คํ—˜์„ ์ ์€ ์ฝ”๋“œ๋กœ ๋น ๋ฅด๊ฒŒ ์žฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ CodeAgent, ToolCallingAgent, ๊ธฐ๋ณธ ๋„๊ตฌ ํŒจํ„ด์„ ์ œ๊ณตํ•œ๋‹ค. ์ด๋ฒˆ ๊ธ€์€ ๊ทธ ๋‘˜์„ ์—ฐ๊ฒฐํ•ด, ๊ณต์‹ ์ž๋ฃŒ๋ฅผ ์ฝ๊ณ  ์˜ค๋Š˜์˜ ํ•™์Šต ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •๋ฆฌํ•˜๋Š” ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง์ ‘ ๋งŒ๋“ ๋‹ค.

์ด๋ฒˆ์— ๋งŒ๋“ค ๊ฒฐ๊ณผ๋ฌผ

์ž…๋ ฅ ์˜ˆ์‹œ:

HF Agents Course๋ฅผ ์ด์ œ ์‹œ์ž‘ํ•œ๋‹ค.
์˜ค๋Š˜ 45๋ถ„ ์•ˆ์— ์–ด๋””๋ถ€ํ„ฐ ๋ด์•ผ ํ•˜๋Š”์ง€ ํ•œ๊ตญ์–ด๋กœ ์ •๋ฆฌํ•ด์ค˜.
ํ•„์ˆ˜ ์œ ๋‹›, ๋ฐ”๋กœ ํ•ด๋ณผ ์‹ค์Šต, ๋‚˜์ค‘์— ๋ณผ ์‹ฌํ™” ์ฃผ์ œ๋ฅผ ๋‚˜๋ˆ ์ค˜.

์ถœ๋ ฅ ๋ชฉํ‘œ:

  • ํ•„์ˆ˜ ์œ ๋‹› 3๊ฐœ
  • ์˜ค๋Š˜ ๋ฐ”๋กœ ํ•  ์‹ค์Šต 2๊ฐœ
  • ๋‚˜์ค‘์— ๋ณผ ์‹ฌํ™” ์ฃผ์ œ 2๊ฐœ
  • ์‹คํ–‰ ๋ช…๋ น
  • ์„ฑ๊ณต ํŒ์ • ๊ธฐ์ค€

์™œ ์ด ์‹ค์Šต์ด ์ฝ”์Šค ์ทจ์ง€์™€ ๋งž๋Š”๊ฐ€

  • ๊ณต์‹ ์ €์žฅ์†Œ๋Š” ์ฝ”์Šค๋ฅผ ๋‹จ๊ณ„ํ˜• ํ•™์Šต ์—ฌ์ •์œผ๋กœ ์†Œ๊ฐœํ•œ๋‹ค.
  • ๊ณต์‹ ํ•™์Šต ํŽ˜์ด์ง€๋Š” ์ด๋ก , ํ•ธ์ฆˆ์˜จ, ๊ณผ์ œ, ์ฑŒ๋ฆฐ์ง€ ๊ตฌ์กฐ๋ฅผ ๊ฐ•์กฐํ•œ๋‹ค.
  • smolagents ๊ณต์‹ ๋ฌธ์„œ๋Š” ๊ฐ„๋‹จํ•œ ๋„๊ตฌ ์กฐํ•ฉ์œผ๋กœ ์—์ด์ „ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ์‹์„ ์ œ์‹œํ•œ๋‹ค.

์ฆ‰ ์ด๋ฒˆ ์‹ค์Šต์€ ๋‹จ์ˆœ ์š”์•ฝ์ด ์•„๋‹ˆ๋ผ, ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ์ฝ๋Š” ๋„๊ตฌ + ๊ฒฐ๊ณผ๋ฅผ ํ–‰๋™ ์ง€์นจ์œผ๋กœ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ์—์ด์ „ํŠธ ๋ฃจํ”„๋ฅผ ์ตํžˆ๋Š” ๋ฐ ์ดˆ์ ์ด ์žˆ๋‹ค.

์ „์ฒด ๊ตฌ์กฐ

flowchart TD
    U[์‚ฌ์šฉ์ž ์งˆ๋ฌธ] --> A[CodeAgent]
    A --> T1[get_course_repo]
    A --> T2[get_course_overview]
    A --> T3[get_smolagents_intro]
    T1 --> S[๊ณต์‹ ๊ทผ๊ฑฐ ์ˆ˜์ง‘]
    T2 --> S
    T3 --> S
    S --> R[ํ•„์ˆ˜ ์œ ๋‹›/์˜ค๋Š˜์˜ ์‹ค์Šต/์‹ฌํ™” ์ฃผ์ œ ๋ธŒ๋ฆฌํ•‘]

์ค€๋น„๋ฌผ

  • Python 3.10+
  • ํ„ฐ๋ฏธ๋„
  • ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ
  • Hugging Face ๊ณ„์ • ๊ถŒ์žฅ
  • ํ•„์š” ์‹œ HF_TOKEN ํ™˜๊ฒฝ๋ณ€์ˆ˜

Step 1) ์ž‘์—… ํด๋” ์ค€๋น„

๋„๊ตฌ

  • ํ„ฐ๋ฏธ๋„

์ž…๋ ฅ

mkdir -p ~/hf-agents-course-briefing
cd ~/hf-agents-course-briefing

์‹คํ–‰ ๋ช…๋ น

pwd
ls -la

์„ฑ๊ณต ํŒ์ •

  • ํ˜„์žฌ ๊ฒฝ๋กœ ๋์ด hf-agents-course-briefing์ด๋ฉด ํ†ต๊ณผ.
  • ๋นˆ ์ž‘์—… ํด๋”๊ฐ€ ๋ณด์ด๋ฉด ํ†ต๊ณผ.

Step 2) ๊ฐ€์ƒํ™˜๊ฒฝ๊ณผ ํŒจํ‚ค์ง€ ์„ค์น˜

๋„๊ตฌ

  • ํ„ฐ๋ฏธ๋„

์ž…๋ ฅ

python3 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
pip install "smolagents[toolkit]" requests beautifulsoup4

์‹คํ–‰ ๋ช…๋ น

python -c "import smolagents, requests, bs4; print('install-ok')"

์„ฑ๊ณต ํŒ์ •

  • install-ok๊ฐ€ ์ถœ๋ ฅ๋˜๋ฉด ํ†ต๊ณผ.

Step 3) ์—์ด์ „ํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

ํŒŒ์ผ๋ช…: course_briefing_agent.py

import requests
from bs4 import BeautifulSoup
from smolagents import CodeAgent, InferenceClientModel, tool
 
PAGES = {
    "repo": "https://github.com/huggingface/agents-course",
    "course": "https://huggingface.co/learn/agents-course",
    "docs": "https://huggingface.co/docs/smolagents/index",
}
 
 
def fetch_compact_text(url: str) -> str:
    response = requests.get(url, timeout=30)
    response.raise_for_status()
    soup = BeautifulSoup(response.text, "html.parser")
 
    blocks = []
    title = soup.title.get_text(" ", strip=True) if soup.title else url
    blocks.append(f"TITLE: {title}")
 
    for tag in soup.select("h1, h2, h3, p, li"):
        text = tag.get_text(" ", strip=True)
        if len(text) >= 30:
            blocks.append(text)
        if len(blocks) >= 50:
            break
 
    return "\n".join(blocks)
 
 
@tool
def get_course_repo() -> str:
    """Return a compact summary of the Hugging Face Agents Course repository page."""
    return fetch_compact_text(PAGES["repo"])
 
 
@tool
def get_course_overview() -> str:
    """Return a compact summary of the Hugging Face Agents Course overview page."""
    return fetch_compact_text(PAGES["course"])
 
 
@tool
def get_smolagents_intro() -> str:
    """Return a compact summary of the smolagents documentation homepage."""
    return fetch_compact_text(PAGES["docs"])
 
 
model = InferenceClientModel()
agent = CodeAgent(
    tools=[get_course_repo, get_course_overview, get_smolagents_intro],
    model=model,
    max_steps=6,
)
 
prompt = """
๊ณต์‹ ๋„๊ตฌ ๊ฒฐ๊ณผ๋งŒ ๊ทผ๊ฑฐ๋กœ ํ•œ๊ตญ์–ด๋กœ ๋‹ตํ•ด์ค˜.
์•„๋ž˜ ํ˜•์‹์„ ๋ฐ˜๋“œ์‹œ ์ง€์ผœ์ค˜.
1) ํ•„์ˆ˜ ์œ ๋‹› 3๊ฐœ
2) ์˜ค๋Š˜ ๋ฐ”๋กœ ํ•  ์‹ค์Šต 2๊ฐœ
3) ๋‚˜์ค‘์— ๋ณผ ์‹ฌํ™” ์ฃผ์ œ 2๊ฐœ
4) ์™œ ์ด ์ˆœ์„œ๊ฐ€ ์ข‹์€์ง€ 3๋ฌธ์žฅ
5) ์‹คํ–‰ ๋ช…๋ น 1์„ธํŠธ
6) ์„ฑ๊ณต ํŒ์ • ๊ธฐ์ค€ 3๊ฐœ
๊ณต์‹ ์ž๋ฃŒ์—์„œ ์ง์ ‘ ํ™•์ธ๋˜์ง€ ์•Š๋Š” ๋‚ด์šฉ์€ '์ถ”์ •'์ด๋ผ๊ณ  ํ‘œ์‹œํ•ด.
์‚ฌ์šฉ์ž ์ƒํ™ฉ: HF Agents Course๋ฅผ ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๋ฉฐ ์˜ค๋Š˜ 45๋ถ„ ํˆฌ์ž ๊ฐ€๋Šฅ.
"""
 
result = agent.run(prompt)
print(result)

Step 4) ์ฒซ ์‹คํ–‰

๋„๊ตฌ

  • ํ„ฐ๋ฏธ๋„

์‹คํ–‰ ๋ช…๋ น

source .venv/bin/activate
python course_briefing_agent.py

์„ฑ๊ณต ํŒ์ •

์•„๋ž˜ 6๊ฐœ๋ฅผ ๋งŒ์กฑํ•˜๋ฉด ์„ฑ๊ณต์ด๋‹ค.

  • ์˜ˆ์™ธ ์—†์ด ์‹คํ–‰ ์™„๋ฃŒ
  • ํ•„์ˆ˜ ์œ ๋‹› 3๊ฐœ ์„น์…˜ ์กด์žฌ
  • ์˜ค๋Š˜ ๋ฐ”๋กœ ํ•  ์‹ค์Šต 2๊ฐœ ์„น์…˜ ์กด์žฌ
  • ๋‚˜์ค‘์— ๋ณผ ์‹ฌํ™” ์ฃผ์ œ 2๊ฐœ ์„น์…˜ ์กด์žฌ
  • ์‹คํ–‰ ๋ช…๋ น 1์„ธํŠธ๊ฐ€ ํฌํ•จ๋จ
  • ๋ถˆํ™•์‹คํ•œ ๋‚ด์šฉ์€ ์ถ”์ •์œผ๋กœ ํ‘œ์‹œ๋จ

Step 5) ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž ์ƒํ™ฉ์œผ๋กœ ์žฌ์‹คํ–‰

์ž…๋ ฅ ๋ณ€๊ฒฝ

prompt์˜ ๋งˆ์ง€๋ง‰ ์‚ฌ์šฉ์ž ์ƒํ™ฉ์„ ์•„๋ž˜์ฒ˜๋Ÿผ ๋ฐ”๊พผ๋‹ค.

์‚ฌ์šฉ์ž ์ƒํ™ฉ: Unit 1์€ ์ด๋ฏธ ์ฝ์—ˆ๊ณ , ์ด๋ฒˆ ์ฃผ๋ง์— Unit 2 ํ”„๋ ˆ์ž„์›Œํฌ ๋น„๊ต๋งŒ ๋น ๋ฅด๊ฒŒ ํ›‘๊ณ  ์‹ถ๋‹ค. ์˜ค๋Š˜ 30๋ถ„ ํˆฌ์ž ๊ฐ€๋Šฅ.

์‹คํ–‰ ๋ช…๋ น

python course_briefing_agent.py

์„ฑ๊ณต ํŒ์ •

  • Unit 2 ๋˜๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ํ•™์Šต์ด ์šฐ์„ ์ˆœ์œ„๋กœ ์˜ฌ๋ผ์˜ค๋ฉด ์„ฑ๊ณต.
  • ์˜ค๋Š˜ ํ•  ์ผ๊ณผ ๋‚˜์ค‘์— ๋ณผ ์‹ฌํ™” ์ฃผ์ œ๊ฐ€ ๋ถ„๋ฆฌ๋˜์–ด ๋‚˜์˜ค๋ฉด ์„ฑ๊ณต.

Step 6) ๊ฒฐ๊ณผ๋ฅผ Markdown ํŒŒ์ผ๋กœ ์ €์žฅ

์‹คํ–‰ ๋ช…๋ น

python course_briefing_agent.py > latest-course-briefing.md
sed -n '1,120p' latest-course-briefing.md

์„ฑ๊ณต ํŒ์ •

  • latest-course-briefing.md ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค.
  • ์•ž๋ถ€๋ถ„์— ํ•„์ˆ˜ ์œ ๋‹›, ์˜ค๋Š˜ ์‹ค์Šต, ์‹ฌํ™” ์ฃผ์ œ๊ฐ€ ๋ณด์ธ๋‹ค.

์ฝ”๋“œ ์ดํ•ด ํฌ์ธํŠธ

1) ๊ณต์‹ ํŽ˜์ด์ง€๋ฅผ ๋จผ์ € ๋„๊ตฌํ™”ํ•œ๋‹ค

๋ฌดํ„ฑ๋Œ€๊ณ  ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•˜๊ธฐ๋ณด๋‹ค, ์ €์žฅ์†Œ/์ฝ”์Šค ์†Œ๊ฐœ/docs๋ฅผ ๋จผ์ € ์ฝ๊ฒŒ ํ•˜๋ฉด ๊ทผ๊ฑฐ๊ฐ€ ๋” ๋ถ„๋ช…ํ•ด์ง„๋‹ค.

2) CodeAgent๊ฐ€ ์ •๋ฆฌ ์—ญํ• ์„ ๋งก๋Š”๋‹ค

๋„๊ตฌ๊ฐ€ ์›๋ฌธ์„ ์ˆ˜์ง‘ํ•˜๊ณ , ์—์ด์ „ํŠธ๋Š” ๊ทธ ๊ทผ๊ฑฐ๋ฅผ ์‚ฌ์šฉ์ž ์ƒํ™ฉ์— ๋งž๊ฒŒ ์••์ถ•ํ•œ๋‹ค.

3) ์ถœ๋ ฅ ํ˜•์‹์„ ๊ฐ•ํ•˜๊ฒŒ ๊ณ ์ •ํ•œ๋‹ค

์ž…๋ฌธ์šฉ ํ•ธ์ฆˆ์˜จ์—์„œ๋Š” ์ž์œ ๋„๋ณด๋‹ค ์žฌํ˜„์„ฑ์ด ๋” ์ค‘์š”ํ•˜๋‹ค. ์„น์…˜ ์ˆ˜๋ฅผ ๊ณ ์ •ํ•˜๋ฉด ๊ฒฐ๊ณผ ๊ฒ€์ฆ์ด ์‰ฌ์›Œ์ง„๋‹ค.

์‹ค์ „ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ์ž‘์—… ํด๋” ์ƒ์„ฑ ์™„๋ฃŒ
  • ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ ๋ฐ ํ™œ์„ฑํ™” ์™„๋ฃŒ
  • ํŒจํ‚ค์ง€ ์„ค์น˜ ์™„๋ฃŒ
  • course_briefing_agent.py ์ €์žฅ ์™„๋ฃŒ
  • ์ฒซ ์‹คํ–‰ ์„ฑ๊ณต
  • ๋‹ค๋ฅธ ์ƒํ™ฉ์œผ๋กœ ์žฌ์‹คํ–‰ ์„ฑ๊ณต
  • Markdown ์ €์žฅ ์„ฑ๊ณต

ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…

1) ModuleNotFoundError: No module named 'smolagents'

์›์ธ:

  • ๊ฐ€์ƒํ™˜๊ฒฝ์ด ๋น„ํ™œ์„ฑ ์ƒํƒœ
  • ๋‹ค๋ฅธ Python ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋กœ ์‹คํ–‰

ํ•ด๊ฒฐ:

source .venv/bin/activate
which python
python -m pip install "smolagents[toolkit]"

2) 401 Unauthorized ๋˜๋Š” ์ธ์ฆ ๊ด€๋ จ ์˜ค๋ฅ˜

์›์ธ:

  • Inference ํ˜ธ์ถœ์— ์ธ์ฆ์ด ํ•„์š”ํ•œ ํ™˜๊ฒฝ

ํ•ด๊ฒฐ:

export HF_TOKEN=hf_your_token
python course_briefing_agent.py

3) requests.exceptions.ReadTimeout

์›์ธ:

  • ๋„คํŠธ์›Œํฌ ์ง€์—ฐ
  • ํŽ˜์ด์ง€ ์‘๋‹ต ์†๋„ ์ €ํ•˜

ํ•ด๊ฒฐ:

response = requests.get(url, timeout=60)
  • ํƒ€์ž„์•„์›ƒ์„ ๋Š˜๋ฆฌ๊ณ  ์žฌ์‹คํ–‰ํ•œ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ•ด๋‹น URL์ด ์—ด๋ฆฌ๋Š”์ง€ ๋จผ์ € ํ™•์ธํ•œ๋‹ค.

4) ์ถœ๋ ฅ์ด ๋„ˆ๋ฌด ๋‘๋ฃจ๋ญ‰์ˆ ํ•  ๋•Œ

์›์ธ:

  • ํ”„๋กฌํ”„ํŠธ ์ œ์•ฝ์ด ์•ฝํ•จ
  • ์‚ฌ์šฉ์ž ์ƒํ™ฉ ์ž…๋ ฅ์ด ๋„ˆ๋ฌด ์งง์Œ

ํ•ด๊ฒฐ:

  • ํ•„์ˆ˜ ์œ ๋‹›, ์˜ค๋Š˜ ์‹ค์Šต, ์‹ฌํ™” ์ฃผ์ œ, ์„ฑ๊ณต ํŒ์ •์„ ๋ช…์‹œํ•œ๋‹ค.
  • ํˆฌ์ž ์‹œ๊ฐ„๊ณผ ํ˜„์žฌ ์ˆ˜์ค€์„ ๊ผญ ํฌํ•จํ•œ๋‹ค.

5) HTML ๋ณธ๋ฌธ ์ถ”์ถœ์ด ๋ถˆ์•ˆ์ •ํ•  ๋•Œ

์›์ธ:

  • ํŽ˜์ด์ง€๋งˆ๋‹ค DOM ๊ตฌ์กฐ๊ฐ€ ๋‹ค๋ฆ„

ํ•ด๊ฒฐ:

for tag in soup.select("main h1, main h2, main h3, main p, main li, article p, article li"):
  • ์„ ํƒ์ž๋ฅผ ๋” ๊ตฌ์ฒดํ™”ํ•œ๋‹ค.
  • ์ค‘๊ฐ„ ์ถ”์ถœ ๊ฒฐ๊ณผ๋ฅผ ํŒŒ์ผ๋กœ ์ €์žฅํ•ด ์ ๊ฒ€ํ•œ๋‹ค.

ํ™•์žฅ ์•„์ด๋””์–ด

  • Unit 2 ์ „์šฉ ๋ธŒ๋ฆฌํ•‘ ๋ชจ๋“œ ์ถ”๊ฐ€
  • ๊ฒฐ๊ณผ๋ฅผ JSON์œผ๋กœ ์ €์žฅํ•ด ๋Œ€์‹œ๋ณด๋“œ์— ์—ฐ๊ฒฐ
  • ToolCallingAgent ๋ฒ„์ „์œผ๋กœ ๋ฐ”๊ฟ” ์ถœ๋ ฅ ์ฐจ์ด ๋น„๊ต
  • ์‚ฌ์šฉ์ž์˜ ํ•™์Šต ์‹œ๊ฐ„์— ๋”ฐ๋ผ 10๋ถ„/30๋ถ„/60๋ถ„ ํ”Œ๋žœ ์ž๋™ ๋ถ„๊ธฐ

๋งˆ๋ฌด๋ฆฌ

์ด๋ฒˆ ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ์˜ ํ•ต์‹ฌ์€ ํ™”๋ คํ•œ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ ๊ณต์‹ ์ž๋ฃŒ๋ฅผ ์ฝ๋Š” ๋„๊ตฌ๋ฅผ ๋งŒ๋“ค๊ณ , ๊ทธ ๋„๊ตฌ ์œ„์— ํ•™์Šต ์šฐ์„ ์ˆœ์œ„ ๋ธŒ๋ฆฌํ•‘์„ ์–น๋Š” ๊ตฌ์กฐ๋ฅผ ์ตํžˆ๋Š” ๋ฐ ์žˆ๋‹ค. ์ด ํŒจํ„ด์„ ์žก์•„๋‘๋ฉด ๋‹ค์Œ์—๋Š” Unit 2 ํ”„๋ ˆ์ž„์›Œํฌ ๋น„๊ต, Unit 3 ์œ ์Šค์ผ€์ด์Šค ์ •๋ฆฌ, ์ตœ์ข… ๊ณผ์ œ ์ค€๋น„ ๊ฐ€์ด๋“œ๊นŒ์ง€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.


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

์ด ๋ฌธ์„œ๋Š” ์ƒ์„ฑํ˜• AI๋ฅผ ํ™œ์šฉํ•ด ์ดˆ์•ˆ ๊ตฌ์กฐ์™€ ์˜ˆ์‹œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๊ทผ๊ฑฐ ์„ค๋ช…์€ Hugging Face Agents Course ์ €์žฅ์†Œ, HF Agents Course ๊ณต์‹ ํ•™์Šต ํŽ˜์ด์ง€, smolagents ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ฒ€ํ† ํ–ˆ๊ณ , ์žฌํ˜„ ๋‹จ๊ณ„ยท์ž…๋ ฅยท์‹คํ–‰ ๋ช…๋ นยท์„ฑ๊ณต ํŒ์ •ยทํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…ยท๋งํฌ ๋ฐ˜์˜์€ ์‚ฌ๋žŒ์ด ํ™•์ธ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.