๐Ÿค— 47. HF Agents Course ๋ณธํŽธ 1 - Unit 1 ์ž…๋ฌธ๊ณผ Alfred ์ฒซ ์—์ด์ „ํŠธ ์ „์ฒด ํ๋ฆ„

๋ชฉํ‘œ: Hugging Face Agents Course์˜ Unit 1์ด ๋ฌด์—‡์„ ๊ฐ€๋ฅด์น˜๋Š”์ง€ ๋จผ์ € ์žก๊ณ , smolagents๋กœ Alfred ์Šคํƒ€์ผ์˜ ์ฒซ ์—์ด์ „ํŠธ๋ฅผ ์ง์ ‘ ์‹คํ–‰ํ•ด ์—์ด์ „ํŠธ์˜ ๊ธฐ๋ณธ ์ž‘๋™ ๋ฐฉ์‹์„ ์†์œผ๋กœ ํ™•์ธํ•œ๋‹ค.

๊ณต์‹ ์ฝ”์Šค ๊ธฐ์ค€์œผ๋กœ HF Agents Course๋Š” ๊ธฐ์ดˆ ๊ฐœ๋… โ†’ ํ”„๋ ˆ์ž„์›Œํฌ โ†’ ์‹ค์ „ ์œ ์Šค์ผ€์ด์Šค โ†’ ์ตœ์ข… ๊ณผ์ œ์˜ 4๊ฐœ ํฐ ์ถ•์œผ๋กœ ์ง„ํ–‰๋œ๋‹ค. ๊ทธ์ค‘ Unit 1์€ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค. ์—ฌ๊ธฐ์„œ ์—์ด์ „ํŠธ๊ฐ€ ๋ฌด์—‡์ธ์ง€, LLM์ด ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€, ๋„๊ตฌ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ถ™์ด๋Š”์ง€, Think โ†’ Act โ†’ Observe ๋ฃจํ”„๊ฐ€ ์™œ ํ•„์š”ํ•œ์ง€๋ฅผ ์ดํ•ดํ•ด์•ผ ๋’ค์˜ smolagentsยทLangGraphยทLlamaIndex ํŒŒํŠธ๊ฐ€ ์‰ฌ์›Œ์ง„๋‹ค.

๊ณต์‹ Unit 1 ์†Œ๊ฐœ๋Š” ๋งˆ์ง€๋ง‰์— Alfred๋ผ๋Š” ์ฒซ ์—์ด์ „ํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋ณด๊ฒŒ ํ•œ๋‹ค. ์ฆ‰, ์ด ๋‹จ์›์€ ์ด๋ก ๋งŒ ์ฝ๋Š” ํŒŒํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ๊ฐœ๋…์„ ๋ฐ”๋กœ ์‹คํ–‰์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ์ž…๋ฌธ ์‹ค์Šต ๋‹จ์›์ด๋‹ค.

๋จผ์ € ํฐ ๊ทธ๋ฆผ๋ถ€ํ„ฐ

  • GitHub ์ €์žฅ์†Œ: ์ฝ”์Šค ์ „์ฒด๊ฐ€ 4๊ฐœ ์œ ๋‹›๊ณผ ๋ณด๋„ˆ์Šค ์œ ๋‹›์œผ๋กœ ๊ตฌ์„ฑ๋จ์„ ๋ณด์—ฌ์ค€๋‹ค.
  • ์ฝ”์Šค ์†Œ๊ฐœ ํŽ˜์ด์ง€: ๊ธฐ์ดˆ ์ด๋ก , ํ•ธ์ฆˆ์˜จ, ๊ณผ์ œ, ์ฑŒ๋ฆฐ์ง€ ๊ตฌ์กฐ๋ฅผ ์„ค๋ช…ํ•œ๋‹ค.
  • Unit 1 ์†Œ๊ฐœ: ์—์ด์ „ํŠธ, LLM, ๋„๊ตฌ, Think-Act-Observe, Alfred ์ฒซ ์—์ด์ „ํŠธ๋ฅผ ํ•ต์‹ฌ ํ•™์Šต ๋ชฉํ‘œ๋กœ ๋‘”๋‹ค.
  • smolagents ๋ฌธ์„œ: ์ ์€ ์ฝ”๋“œ๋กœ CodeAgent๋ฅผ ๋งŒ๋“ค๊ณ  ๋„๊ตฌ๋ฅผ ๋ถ™์ผ ์ˆ˜ ์žˆ์Œ์„ ๋ณด์—ฌ์ค€๋‹ค.

Unit 1์—์„œ ์‹ค์ œ๋กœ ๋ฐฐ์šฐ๋Š” ๊ฒƒ

1) ์—์ด์ „ํŠธ๋ž€ ๋ฌด์—‡์ธ๊ฐ€

์—์ด์ „ํŠธ๋Š” ๋‹จ์ˆœํžˆ ํ…์ŠคํŠธ๋ฅผ ์ด์–ด์„œ ์“ฐ๋Š” ์ฑ—๋ด‡์ด ์•„๋‹ˆ๋‹ค. ๋ชฉํ‘œ๋ฅผ ๋ฐ›๊ณ , ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ƒ๊ฐํ•˜๊ณ , ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๊ด€์ฐฐํ•œ ๋’ค ๋‹ค์Œ ํ–‰๋™์„ ๊ฒฐ์ •ํ•˜๋Š” ์‹คํ–‰ ์ฃผ์ฒด์— ๊ฐ€๊น๋‹ค.

2) LLM์€ ์—์ด์ „ํŠธ์˜ ๋‡Œ ์—ญํ• ์„ ํ•œ๋‹ค

๊ณต์‹ ์ฝ”์Šค๋Š” LLM์„ ์—์ด์ „ํŠธ์˜ โ€œbrainโ€์œผ๋กœ ์„ค๋ช…ํ•œ๋‹ค. ๋‹ค๋งŒ LLM ํ˜ผ์ž๋งŒ์œผ๋กœ๋Š” ์™ธ๋ถ€ ์„ธ๊ณ„์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ๊ทธ๋ž˜์„œ ๊ณ„์‚ฐ, ๊ฒ€์ƒ‰, ํŒŒ์ผ ์ฝ๊ธฐ ๊ฐ™์€ ์ž‘์—…์€ ๋„๊ตฌ(tool) ๊ฐ€ ๋งก๊ณ , LLM์€ ์–ด๋–ค ๋„๊ตฌ๋ฅผ ์–ธ์ œ ์“ธ์ง€ ๊ฒฐ์ •ํ•œ๋‹ค.

3) Think โ†’ Act โ†’ Observe ๋ฃจํ”„๊ฐ€ ํ•ต์‹ฌ์ด๋‹ค

์—์ด์ „ํŠธ๋Š” ๋ณดํ†ต ์•„๋ž˜ ํ๋ฆ„์œผ๋กœ ์›€์ง์ธ๋‹ค.

flowchart LR
    U[์‚ฌ์šฉ์ž ๋ชฉํ‘œ] --> T[Think
๋ฌธ์ œ ํ•ด์„ยท๊ณ„ํš]
    T --> A[Act
๋„๊ตฌ ํ˜ธ์ถœยท์ฝ”๋“œ ์‹คํ–‰]
    A --> O[Observe
๊ฒฐ๊ณผ ํ™•์ธ]
    O --> D{๋ชฉํ‘œ ๋‹ฌ์„ฑ?}
    D -- ์•„๋‹ˆ์˜ค --> T
    D -- ์˜ˆ --> R[์ตœ์ข… ๋‹ต๋ณ€]

์ด ๋ฃจํ”„๋ฅผ ์ดํ•ดํ•˜๋ฉด ์ดํ›„ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋ฐ”๊ฟ”๋„ ๋ณธ์งˆ์€ ๊ฑฐ์˜ ๊ฐ™๋‹ค.

4) ์ฒซ ์—์ด์ „ํŠธ ์‹ค์Šต์˜ ์˜๋ฏธ

Unit 1์€ ๊ฒฐ๊ตญ โ€œ๊ฐœ๋…์„ ์•„๋Š” ๊ฒƒโ€๋ณด๋‹ค ์ž‘์€ ์„ฑ๊ณต ๊ฒฝํ—˜์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์— ๊ฐ€๊น๋‹ค. Alfred ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ์—์ด์ „ํŠธ๋ฅผ ํ•œ ๋ฒˆ ๋Œ๋ ค๋ณด๋ฉด,

  • LLM์ด ์–ด๋””๊นŒ์ง€ ์Šค์Šค๋กœ ํ•ด๊ฒฐํ•˜๋Š”์ง€
  • ์–ด๋–ค ์ˆœ๊ฐ„์— ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•œ์ง€
  • ์ถœ๋ ฅ์ด ์™œ ๊ฐ€๋” ๋ถˆ์•ˆ์ •ํ•œ์ง€
  • ํ”„๋กฌํ”„ํŠธ์™€ ๋„๊ตฌ ์„ค๊ณ„๊ฐ€ ์™œ ์ค‘์š”ํ•œ์ง€

๋ฅผ ๊ฐ์œผ๋กœ ์ดํ•ดํ•˜๊ฒŒ ๋œ๋‹ค.

์ด๋ฒˆ ๊ธ€์—์„œ ๋งŒ๋“ค ๊ฒƒ

์•„๋ž˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์ž…๋ฌธ์šฉ Alfred ์—์ด์ „ํŠธ๋ฅผ ๋งŒ๋“ ๋‹ค.

  • ์ž…๋ ฅ: ๊ฐ„๋‹จํ•œ ์งˆ๋ฌธ 2๊ฐœ
  • ๋„๊ตฌ: ๊ณ„์‚ฐ๊ธฐ 1๊ฐœ
  • ์—์ด์ „ํŠธ: smolagents.CodeAgent
  • ์„ฑ๊ณต ๊ธฐ์ค€: ๊ณ„์‚ฐ์ด ํ•„์š”ํ•œ ์งˆ๋ฌธ์—์„œ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•ด ์•ˆ์ •์ ์œผ๋กœ ์ •๋‹ต์„ ๋‚ธ๋‹ค.

์ค€๋น„๋ฌผ

  • Python 3.10+
  • ํ„ฐ๋ฏธ๋„
  • ์ธํ„ฐ๋„ท ์—ฐ๊ฒฐ
  • ์„ ํƒ: Hugging Face ํ† ํฐ(HF_TOKEN)

์‹ค์Šต: Alfred ์Šคํƒ€์ผ ์ฒซ ์—์ด์ „ํŠธ ๋งŒ๋“ค๊ธฐ

Step 1) ์ž‘์—… ํด๋” ๋งŒ๋“ค๊ธฐ

์ž…๋ ฅ

mkdir -p ~/hf-agents-course-unit1-alfred
cd ~/hf-agents-course-unit1-alfred

์„ฑ๊ณต ํŒ์ •

pwd
  • ๊ฒฝ๋กœ ๋์ด hf-agents-course-unit1-alfred๋ฉด ํ†ต๊ณผ.

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

์ž…๋ ฅ

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

์„ฑ๊ณต ํŒ์ •

python -c "import smolagents; print('smolagents-ok')"
  • smolagents-ok๊ฐ€ ์ถœ๋ ฅ๋˜๋ฉด ํ†ต๊ณผ.

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

alfred_first_agent.py ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋„ฃ๋Š”๋‹ค.

from smolagents import CodeAgent, InferenceClientModel, tool
 
@tool
def calculator(expression: str) -> str:
    """Safely evaluate a simple arithmetic expression.
 
    Args:
        expression: Arithmetic expression using numbers and + - * / ( )
    """
    allowed = set("0123456789+-*/(). ")
    if any(ch not in allowed for ch in expression):
        return "Only simple arithmetic is allowed."
 
    try:
        result = eval(expression, {"__builtins__": {}}, {})
        return str(result)
    except Exception as e:
        return f"calculation-error: {e}"
 
model = InferenceClientModel()
 
agent = CodeAgent(
    tools=[calculator],
    model=model,
    max_steps=5,
)
 
questions = [
    "7 * (13 + 5)๋Š” ์–ผ๋งˆ์•ผ? ๊ณ„์‚ฐ ๊ณผ์ •์„ ์งง๊ฒŒ ์„ค๋ช…ํ•ด์ค˜.",
    "23.5์™€ 19.8์˜ ํ•ฉ์„ ๊ตฌํ•˜๊ณ , 2๋กœ ๋‚˜๋ˆˆ ๊ฐ’์„ ์•Œ๋ ค์ค˜."
]
 
for i, question in enumerate(questions, start=1):
    print(f"\n=== Question {i} ===")
    print(f"INPUT: {question}")
    answer = agent.run(question)
    print("OUTPUT:")
    print(answer)

์ฝ”๋“œ์—์„œ ๊ผญ ๋ณผ ํฌ์ธํŠธ

  • @tool: ํŒŒ์ด์ฌ ํ•จ์ˆ˜๋ฅผ ์—์ด์ „ํŠธ๊ฐ€ ์“ธ ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ๋กœ ๋ฐ”๊พผ๋‹ค.
  • CodeAgent: ํ•„์š”ํ•˜๋ฉด ์ฝ”๋“œ ํ˜•ํƒœ๋กœ ํ–‰๋™์„ ๊ตฌ์„ฑํ•ด ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.
  • InferenceClientModel(): Hugging Face ์ถ”๋ก  ๋ชจ๋ธ์„ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค.
  • max_steps=5: ๋ฌดํ•œ ๋ฃจํ”„๋ฅผ ๋ง‰๋Š” ์ตœ์†Œ ์•ˆ์ „์žฅ์น˜๋‹ค.

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

์‹คํ–‰ ๋ช…๋ น

python alfred_first_agent.py

์„ฑ๊ณต ํŒ์ •

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

  • ์‹คํ–‰์ด ์˜ˆ์™ธ ์—†์ด ๋๋‚œ๋‹ค.
  • === Question 1 ===๊ณผ === Question 2 ===๊ฐ€ ์ถœ๋ ฅ๋œ๋‹ค.
  • ๋‘ ์งˆ๋ฌธ ๋ชจ๋‘ ์ˆซ์ž ๊ฒฐ๊ณผ๊ฐ€ ํฌํ•จ๋œ๋‹ค.
  • ์ ์–ด๋„ ๊ณ„์‚ฐ์ด ํ•„์š”ํ•œ ์งˆ๋ฌธ์—์„œ ๋„๊ตฌ ์‚ฌ์šฉ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜์˜ํ•œ ๋‹ต์ด ๋‚˜์˜จ๋‹ค.

Step 5) ๋„๊ตฌ ์—†๋Š” ๋ฒ„์ „๊ณผ ๋น„๊ตํ•˜๊ธฐ

์ด๋ฒˆ์—๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ฑฐํ•ด ์ฐจ์ด๋ฅผ ๋ณธ๋‹ค.

์ž…๋ ฅ

tools=[calculator]๋ฅผ tools=[]๋กœ ๋ฐ”๊พผ๋‹ค.

์‹คํ–‰ ๋ช…๋ น

python alfred_first_agent.py

์„ฑ๊ณต ํŒ์ •

  • ๊ฐ™์€ ์งˆ๋ฌธ์— ๋Œ€ํ•ด ๋‹ต๋ณ€ ํ’ˆ์งˆ ์ฐจ์ด๋ฅผ ๊ด€์ฐฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ณ„์‚ฐ ์„ค๋ช…์ด ๋” ๋ชจํ˜ธํ•ด์ง€๊ฑฐ๋‚˜, ์ˆซ์ž ์‹ ๋ขฐ๋„๊ฐ€ ๋‚ฎ์•„์งˆ ์ˆ˜ ์žˆ๋‹ค.
  • ์ด ์ฐจ์ด๋ฅผ ํ™•์ธํ•˜๋ฉด โ€œ์™œ ์—์ด์ „ํŠธ์— ๋„๊ตฌ๋ฅผ ๋ถ™์ด๋Š”๊ฐ€โ€๊ฐ€ ์ดํ•ด๋œ๋‹ค.

Step 6) ์‹ค๋ฌดํ˜• ์งˆ๋ฌธ์œผ๋กœ ๋ฐ”๊ฟ”๋ณด๊ธฐ

์งˆ๋ฌธ์„ ์•„๋ž˜์ฒ˜๋Ÿผ ๋ฐ”๊ฟ” ๋‹ค์‹œ ์‹คํ–‰ํ•ด๋ณธ๋‹ค.

์ž…๋ ฅ

questions = [
    "๊ด‘๊ณ  ํด๋ฆญ๋ฅ ์ด 2.4%์ด๊ณ  ๋…ธ์ถœ์ด 12500ํšŒ๋ฉด ํด๋ฆญ ์ˆ˜๋Š” ๋ช‡ ํšŒ์•ผ?",
    "์›” ๊ตฌ๋…๋ฃŒ 19๋‹ฌ๋Ÿฌ ์ƒํ’ˆ์„ 37๋ช…์ด ์“ฐ๋ฉด ์›” ๋งค์ถœ์€ ์–ผ๋งˆ์•ผ?"
]

์‹คํ–‰ ๋ช…๋ น

python alfred_first_agent.py

์„ฑ๊ณต ํŒ์ •

  • ํด๋ฆญ ์ˆ˜, ๋งค์ถœ ๊ฐ™์€ ์‹ค๋ฌด ์ˆซ์ž๊ฐ€ ๊ณ„์‚ฐ๋œ๋‹ค.
  • ๋„๊ตฌ๊ฐ€ ๋‹จ์ˆœ ๋ฐ๋ชจ๊ฐ€ ์•„๋‹ˆ๋ผ ์—…๋ฌด ๋ณด์กฐ์— ๋ฐ”๋กœ ์—ฐ๊ฒฐ๋จ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์ดˆ๋ณด์ž ๊ธฐ์ค€์œผ๋กœ ์ดํ•ดํ•˜๋ฉด ์ข‹์€ ํ•ต์‹ฌ

์—์ด์ „ํŠธ๋Š” โ€œ์ƒ๊ฐ๋งŒ ํ•˜๋Š” ๋ชจ๋ธโ€์ด ์•„๋‹ˆ๋‹ค

์ค‘์š”ํ•œ ๊ฑด ๋ง ์ž˜ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์œ„ํ•ด ์™ธ๋ถ€ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋А๋ƒ๋‹ค.

๋„๊ตฌ๋Š” ์ •๋‹ต๋ฅ ์„ ๋Œ์–ด์˜ฌ๋ฆฌ๋Š” ์•ˆ์ „์žฅ์น˜๋‹ค

ํŠนํžˆ ๊ณ„์‚ฐ, ๊ฒ€์ƒ‰, ํŒŒ์ผ ์ฒ˜๋ฆฌ์ฒ˜๋Ÿผ ํ‹€๋ฆฌ๋ฉด ๋ฐ”๋กœ ํ‹ฐ ๋‚˜๋Š” ์ž‘์—…์€ ๋„๊ตฌ ๋ถ„๋ฆฌ๊ฐ€ ์œ ๋ฆฌํ•˜๋‹ค.

์ž‘์€ ๋„๊ตฌ 1๊ฐœ๋กœ๋„ ํ•™์Šต ํšจ๊ณผ๊ฐ€ ํฌ๋‹ค

์ฒ˜์Œ๋ถ€ํ„ฐ ์›น๊ฒ€์ƒ‰, ํŒŒ์ผ์‹œ์Šคํ…œ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค ๋ถ™์ผ ํ•„์š” ์—†๋‹ค. ๊ณ„์‚ฐ๊ธฐ 1๊ฐœ๋งŒ ๋ถ™์—ฌ๋„ ์—์ด์ „ํŠธ ์‚ฌ๊ณ ๋ฐฉ์‹์„ ์ดํ•ดํ•˜๊ธฐ ์ถฉ๋ถ„ํ•˜๋‹ค.

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

1) ์šด์˜ ์ง€ํ‘œ ์š”์•ฝ ๋ด‡

  • CTR, CVR, ROAS, ๋งค์ถœ ํ•ฉ๊ณ„์ฒ˜๋Ÿผ ๊ณ„์‚ฐ์ด ํ•„์š”ํ•œ ๋งˆ์ผ€ํŒ… ๋ฆฌํฌํŠธ์— ๋ฐ”๋กœ ์‘์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

2) ๊ณ ๊ฐ ์‘๋Œ€ ์ „์ฒ˜๋ฆฌ

  • ์ƒ๋‹ด ์ „์— ์ฃผ๋ฌธ ๊ธˆ์•ก, ํ• ์ธ์œจ, ๋‚จ์€ ๊ธฐ๊ฐ„์„ ๋จผ์ € ๊ณ„์‚ฐํ•ด ๋ถ™์ด๋Š” ๋ณด์กฐ ์—์ด์ „ํŠธ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

3) ๋‚ด๋ถ€ ์—…๋ฌด ์ž๋™ํ™”์˜ ์ฒซ ๋ฐœํŒ

  • ์ฒ˜์Œ์—” ๊ณ„์‚ฐ๊ธฐ ๋„๊ตฌ 1๊ฐœ
  • ๋‹ค์Œ์—” CSV ์ฝ๊ธฐ ๋„๊ตฌ
  • ๊ทธ๋‹ค์Œ์—” API ํ˜ธ์ถœ ๋„๊ตฌ

์ด ์ˆœ์„œ๋กœ ํ‚ค์šฐ๋ฉด ์‹คํŒจ ํ™•๋ฅ ์ด ๋‚ฎ๋‹ค.

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

1) ModuleNotFoundError: No module named 'smolagents'

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

2) ์ธ์ฆ ๋˜๋Š” ์ถ”๋ก  ํ˜ธ์ถœ ์˜ค๋ฅ˜

๊ณต์‹ ๋ฌธ์„œ์ƒ InferenceClientModel()์€ Hugging Face ์ถ”๋ก  ํ™˜๊ฒฝ์„ ์“ฐ๋ฏ€๋กœ, ์‹คํ–‰ ํ™˜๊ฒฝ์— ๋”ฐ๋ผ ์ธ์ฆ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋‹ค.

export HF_TOKEN=hf_your_token_here
python alfred_first_agent.py

3) ๋„๊ตฌ๊ฐ€ ํ˜ธ์ถœ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ผ ๋•Œ

  • ์งˆ๋ฌธ์„ ๋” ๊ณ„์‚ฐ ์ค‘์‹ฌ์œผ๋กœ ๋ฐ”๊พผ๋‹ค.
  • ์ˆซ์ž์™€ ์—ฐ์‚ฐ์ด ๋ถ„๋ช…ํ•œ ๋ฌธ์ œ๋ฅผ ๋„ฃ๋Š”๋‹ค.
  • max_steps๋ฅผ ๋„ˆ๋ฌด ๋‚ฎ๊ฒŒ ์žก์ง€ ์•Š๋Š”๋‹ค.

4) ๊ณ„์‚ฐ๊ธฐ ๋„๊ตฌ๊ฐ€ ๋„ˆ๋ฌด ์œ„ํ—˜ํ•ด ๋ณด์ผ ๋•Œ

์ด๋ฒˆ ์ฝ”๋“œ๋Š” ์ž…๋ฌธ์šฉ ์˜ˆ์‹œ๋‹ค. ์‹ค์ œ ์šด์˜์—์„œ๋Š” eval ๋Œ€์‹  ํŒŒ์„œ ๊ธฐ๋ฐ˜ ๊ณ„์‚ฐ๊ธฐ๋กœ ๋ฐ”๊พธ๋Š” ํŽธ์ด ๋” ์•ˆ์ „ํ•˜๋‹ค. ๋‹ค๋งŒ ๊ณต์‹ smolagents ๋ฌธ์„œ๊ฐ€ ๊ฐ•์กฐํ•˜๋“ฏ, ํ•ต์‹ฌ์€ ์ ์€ ์ฝ”๋“œ๋กœ ์—์ด์ „ํŠธ ๊ตฌ์กฐ๋ฅผ ๋จผ์ € ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ณต์‹ ์ž๋ฃŒ์™€ ์—ฐ๊ฒฐํ•ด์„œ ๋ณด๋ฉด ์ข‹์€ ์ˆœ์„œ

  1. ์ฝ”์Šค ์†Œ๊ฐœ ํŽ˜์ด์ง€์—์„œ ์ „์ฒด ๊ตฌ์กฐ ํ™•์ธ
  2. Unit 1 ์†Œ๊ฐœ์—์„œ ํ•™์Šต ๋ชฉํ‘œ ํ™•์ธ
  3. smolagents Quickstart๋กœ ์ตœ์†Œ ์ฝ”๋“œ ํŒจํ„ด ์ตํžˆ๊ธฐ
  4. ์œ„ Alfred ์˜ˆ์ œ๋ฅผ ์ง์ ‘ ์‹คํ–‰
  5. ์ดํ›„ Unit 2 ํ”„๋ ˆ์ž„์›Œํฌ ๋น„๊ต๋กœ ๋„˜์–ด๊ฐ€๊ธฐ

ํ•œ ์ค„ ์ •๋ฆฌ

HF Agents Course ๋ณธํŽธ 1์˜ ํ•ต์‹ฌ์€ โ€œ์—์ด์ „ํŠธ๋ž€ ๋ฌด์—‡์ธ๊ฐ€โ€๋ฅผ ์ถ”์ƒ์ ์œผ๋กœ ์ดํ•ดํ•˜๋Š” ๋ฐ์„œ ๋๋‚˜์ง€ ์•Š๋Š”๋‹ค. LLM + ๋„๊ตฌ + Think-Act-Observe ๋ฃจํ”„๋ฅผ ์ž‘์€ ์ฝ”๋“œ๋กœ ์ง์ ‘ ๋Œ๋ ค๋ณด๋ฉฐ, ์ดํ›„ ๋ชจ๋“  ํ”„๋ ˆ์ž„์›Œํฌ ํ•™์Šต์˜ ๊ณตํ†ต ๋ผˆ๋Œ€๋ฅผ ๋ชธ์— ์ตํžˆ๋Š” ๊ฒƒ์ด ์ง„์งœ ๋ชฉํ‘œ๋‹ค.


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

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