# 소규모 퀴즈(비채점) [[quiz2]]

*Code Agents*, *Tool Calling Agents*, *Tools* 섹션에 대한 이해도를 테스트해봅시다. 이 퀴즈는 선택 사항이며 점수화되지 않습니다.

---

### Q1: smolagents에서 `@tool` 데코레이터로 도구를 만드는 것과 `Tool` 서브클래스를 만드는 것의 핵심 차이는?
두 방식의 도구 정의 차이를 가장 잘 설명하는 문장을 고르세요.

@tool 데코레이터는 리트리벌 기반 도구에만 필수이고, Tool 서브클래스는 텍스트 생성 작업에만 사용된다",
    explain: "두 방식 모두 어떤 유형의 도구에도 사용할 수 있습니다.",
  },
  {
    text: "@tool 데코레이터는 간단한 함수형 도구에 권장되고, Tool 서브클래스는 복잡한 기능이나 커스텀 메타데이터가 필요할 때 더 유연하다",
    explain: "정답입니다. 데코레이터 방식이 더 간단하고, 서브클래싱은 맞춤 동작에 적합합니다.",
    correct: true
  },
  {
    text: "@tool은 멀티 에이전트 시스템에서만 쓸 수 있고, Tool 서브클래스는 단일 에이전트에만 쓸 수 있다",
    explain: "모든 에이전트(단일/멀티)에서 두 방식 모두 사용할 수 있습니다.",
  },
  {
    text: "@tool로 함수에 데코레이터를 달면 docstring이 필요 없고, 서브클래스는 docstring을 포함하면 안 된다",
    explain: "두 방식 모두 명확한 docstring이 필요합니다.",
  }
]}
/>

---

### Q2: CodeAgent는 ReAct(Reason + Act) 접근법으로 다단계 작업을 어떻게 처리하나요?
CodeAgent가 일련의 단계를 실행해 문제를 푸는 방식을 올바르게 설명한 문장을 고르세요.

---

### Q3: 도구를 Hugging Face Hub에 공유할 때의 주요 장점은?
개발자가 커스텀 도구를 업로드·공유하는 가장 큰 이유를 고르세요.

---

### Q4: ToolCallingAgent와 CodeAgent의 액션 실행 방식 차이에 대해 올바른 설명은?
ToolCallingAgent의 동작 방식을 가장 잘 설명한 문장을 고르세요.

---

### Q5: smolagents 기본 도구 상자에는 무엇이 포함되어 있고, 왜 사용할까요?
기본 도구 상자의 목적과 내용을 가장 잘 설명한 문장을 고르세요.

---

퀴즈를 모두 마쳤습니다! 🎉 어려웠던 문제는 *Code Agents*, *Tool Calling Agents*, *Tools* 섹션을 복습해보세요. 모두 맞췄다면, robust한 smolagents 애플리케이션을 만들 준비가 된 것입니다!

