Agents Course documentation

smolagents를 써야 하는 이유

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

smolagents banner

smolagents를 써야 하는 이유

이 모듈에서는 smolagents를 사용할 때의 장단점을 살펴보고, 여러분의 필요에 맞는 프레임워크인지 판단할 수 있도록 도와드립니다.

smolagents 란?

smolagents는 간단하면서도 강력한 AI 에이전트 프레임워크입니다. LLM이 검색, 이미지 생성 등 실제 세계와 상호작용할 수 있는 에이전시(agency) 를 제공합니다.

unit 1에서 배운 것처럼, AI 에이전트는 LLM이 ‘관찰(observations)’을 바탕으로 ‘생각(thoughts)’을 생성해 ‘행동(actions)’을 수행하는 프로그램입니다. smolagents에서 이것이 어떻게 구현되는지 살펴봅시다.

smolagents 의 주요 장점

  • 단순함: 최소한의 코드 복잡성과 추상화로 프레임워크를 쉽게 이해하고, 도입 및 확장할 수 있습니다.
  • 유연한 LLM 지원: Hugging Face 도구 및 외부 API와의 통합을 통해 어떤 LLM과도 연동할 수 있습니다.
  • 코드 우선 접근: 액션을 직접 코드로 작성하는 Code Agent를 1급 시민으로 지원하여, 파싱 없이 도구 호출을 단순화합니다.
  • HF Hub 통합: Hugging Face Hub와의 원활한 통합으로 Gradio Spaces를 도구로 활용할 수 있습니다.

smolagents를 언제 사용해야 할까?

이러한 장점을 고려할 때, 다른 프레임워크 대신 smolagents를 사용해야 하는 경우는 언제일까요?

smolagents는 다음과 같은 상황에 이상적입니다:

  • 가볍고 최소한의 솔루션이 필요할 때
  • 복잡한 설정 없이 빠르게 실험하고 싶을 때
  • 애플리케이션 로직이 단순할 때

코드 vs. JSON 액션

다른 프레임워크에서는 에이전트가 액션을 JSON으로 작성하는 반면, smolagents코드 기반 도구 호출에 집중하여 실행 과정을 단순화합니다. 도구 호출을 위한 코드를 직접 생성하므로, JSON을 파싱해 코드를 만드는 과정이 필요 없습니다. 즉, 출력된 코드를 바로 실행할 수 있습니다.

아래 다이어그램은 이 차이를 보여줍니다:

Code vs. JSON actions

Code vs JSON 액션의 차이를 다시 보고 싶다면 Unit 1의 액션 섹션을 참고하세요.

smolagents의 에이전트 유형

smolagents의 에이전트는 다단계 에이전트(multi-step agent)로 동작합니다.

MultiStepAgent는 다음을 수행합니다:

  • 한 번의 생각(thought)
  • 한 번의 도구 호출 및 실행

주요 에이전트 타입으로 CodeAgent를 사용하며, 도구 호출을 JSON으로 작성하는 ToolCallingAgent도 지원합니다.

각 에이전트 타입은 이후 섹션에서 자세히 다룹니다.

smolagents에서는 도구를 @tool 데코레이터로 감싼 Python 함수 또는 Tool 클래스로 정의합니다.

smolagents의 모델 통합

smolagents는 유연한 LLM 통합을 지원하여, 특정 기준을 충족하는 어떤 호출 가능한 모델도 사용할 수 있습니다. 프레임워크는 모델 연결을 단순화하는 여러 사전 정의 클래스를 제공합니다:

이러한 유연성 덕분에 개발자는 각자의 용도에 가장 적합한 모델과 서비스를 선택할 수 있으며, 실험도 쉽게 할 수 있습니다.

이제 smolagents를 왜, 언제 써야 하는지 이해했으니, 이 강력한 라이브러리를 더 깊이 탐구해봅시다!

참고 자료

Update on GitHub