smolagents 소개
smolagents 소개
smolagents는 Hugging Face가 만든 오픈소스 파이썬 라이브러리로, 몇 줄의 코드만으로 에이전트를 만들고 실행할 수 있게 해주는 도구예요. 이름처럼 '작은(small) 에이전트'에 초점을 맞춰, 에이전트를 구동하는 로직이 대략 수천 줄 안에 들어가도록 추상화를 최소한으로 유지했어요.
smolagents의 핵심 특징
- 간단함(Simplicity) — 에이전트 로직이 수천 줄 안에 담겨요. 원시 코드 위에 얇은 추상화만 얹어두어 구조를 파악하기 쉬워요.
- 코드 에이전트(CodeAgent) 일급 지원 —
CodeAgent는 도구를 호출하거나 계산을 수행할 때 JSON 대신 파이썬 코드로 액션을 직접 작성해요. 함수 중첩, 반복문, 조건문 같은 자연스러운 합성이 가능하죠. 보안을 위해 Modal, Blaxel, E2B, Docker 등의 샌드박스 환경에서 실행할 수도 있어요. - ToolCallingAgent 지원 — JSON/텍스트 기반의 일반적인 툴 콜 패러다임을 선호하는 시나리오에서
ToolCallingAgent를 쓸 수 있어요. - 허브 통합 — 에이전트와 도구를 Gradio Space로 허브에 공유하고 불러올 수 있어요.
- 모델에 구애받지 않음(Model-agnostic) — Inference Providers, OpenAI, Anthropic 같은 API, LiteLLM 통합, 로컬 Transformers나 Ollama까지 원하는 LLM을 손쉽게 연결할 수 있어요.
- 모달리티에 구애받지 않음 — 텍스트를 넘어 비전, 비디오, 오디오 입력도 처리할 수 있어요.
- 도구에 구애받지 않음 — MCP 서버, LangChain, 허브 Space까지 다양한 소스에서 도구를 가져올 수 있어요.
- CLI 도구 —
smolagent,webagent같은 커맨드라인 유틸리티를 제공해 보일러플레이트 코드 없이 에이전트를 바로 실행할 수 있어요.
퀵스타트
에이전트를 만들어 직접 돌려보면서 흐름을 익혀볼게요.
설치
기본 도구(웹 검색 등)를 포함하려면 toolkit 엑스트라로 설치해요.
pip install 'smolagents[toolkit]' # 웹 검색 같은 기본 도구 포함
첫 에이전트 만들기
아래가 에이전트를 만들고 실행하는 최소한의 예시예요.
from smolagents import CodeAgent, InferenceClientModel
# 모델 초기화 (Hugging Face Inference API 사용, 기본 모델 사용)
model = InferenceClientModel()
# 도구 없이 에이전트 생성
agent = CodeAgent(tools=[], model=model)
# 작업을 주고 실행
result = agent.run("Calculate the sum of numbers from 1 to 10")
print(result)
이걸로 끝이에요. 에이전트는 파이썬 코드를 이용해 작업을 풀고 결과를 돌려줘요.
도구 추가하기
도구를 하나 더하면 에이전트가 할 수 있는 일이 늘어나요.
from smolagents import CodeAgent, InferenceClientModel, DuckDuckGoSearchTool
model = InferenceClientModel()
agent = CodeAgent(
tools=[DuckDuckGoSearchTool()],
model=model,
)
# 이제 웹 검색도 가능해요
result = agent.run("What is the current weather in Paris?")
print(result)
다른 모델 사용하기
에이전트에 다양한 모델을 연결할 수 있어요.
# Hugging Face 특정 모델 사용
model = InferenceClientModel(model_id="meta-llama/Llama-2-70b-chat-hf")
# OpenAI/Anthropic 사용 ('smolagents[litellm]' 필요)
from smolagents import LiteLLMModel
model = LiteLLMModel(model_id="gpt-4")
# 로컬 모델 사용 ('smolagents[transformers]' 필요)
from smolagents import TransformersModel
model = TransformersModel(model_id="meta-llama/Llama-2-7b-chat-hf")
다음 단계
- 설치(Installation) 문서에서 다양한 모델·도구 구성법을 확인해요.
- 가이드 투어(Guided Tour)에서 더 고급 기능을 살펴봐요.
- 커스텀 도구 만들기를 배워요.
- 보안 코드 실행을 살펴봐요.
- 멀티에이전트 시스템 만들기를 확인해요.
출처 인용
- 원문: smolagents - Introduction (Hugging Face Docs)
- 원본 파일: huggingface/smolagents - docs/source/en/index.md