smolagents documentation

smolagents

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

smolagents

smolagents란 무엇인가요?

smolagents는 단 몇 줄의 코드만으로 에이전트를 구축하고 실행할 수 있도록 설계된 오픈소스 Python 라이브러리입니다.

smolagents의 주요 특징:

단순함: 에이전트 로직이 약 천 줄의 코드로 구현되어 있습니다. 코드 위에 불필요한 복잡한 구조를 추가하지 않고 단순하게 만들었습니다!

🧑‍💻 코드 에이전트의 완전한 지원: CodeAgent는 도구 호출이나 계산 수행을 위해 직접 코드를 작성합니다 (“코드 작성용 에이전트”와는 반대 개념). 이를 통해 함수 중첩, 루프, 조건문 등을 자연스럽게 조합할 수 있습니다. 보안을 위해 E2B나 Docker를 통한 샌드박스 환경 실행을 지원합니다.

📡 기본 도구 호출 에이전트 지원: CodeAgent 외에도 ToolCallingAgent는 일반적인 JSON/텍스트 기반 도구 호출 방식이 필요한 경우를 위해 지원됩니다.

🤗 Hub 통합: Gradio Spaces로 에이전트와 도구를 Hub에서 원활하게 공유하고 로드할 수 있습니다.

🌐 모델 독립적: Hub의 Inference providers나 OpenAI, Anthropic 등의 API를 통해 접근하거나, LiteLLM 통합으로 다양한 LLM을 쉽게 연결할 수 있습니다. Transformers나 Ollama를 사용한 로컬 실행도 가능합니다. 원하는 LLM으로 에이전트를 구동하는 것이 간단하고 유연합니다.

👁️ 모달리티 독립적: 텍스트뿐만 아니라 비전, 비디오, 오디오 입력도 처리할 수 있어 활용 가능한 애플리케이션 범위가 확장됩니다. 비전 관련 튜토리얼을 확인해보세요.

🛠️ 도구 독립적: MCP 서버의 도구나 LangChain의 도구를 사용할 수 있고, Hub Space도 도구로 활용할 수 있습니다.

💻 CLI 도구: 보일러플레이트 코드 작성 없이 에이전트를 빠르게 실행할 수 있는 명령줄 유틸리티(smolagent, webagent)가 포함되어 있습니다.

빠른 시작

smolagents를 단 몇 분 만에 시작해보세요! 이 가이드는 첫 번째 에이전트를 생성하고 실행하는 방법을 보여줍니다.

설치

pip으로 smolagents를 설치하세요:

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)

끝입니다! 에이전트가 Python 코드를 사용하여 작업을 해결하고 결과를 반환합니다.

도구 추가

몇 가지 도구를 추가하여 에이전트를 더 강력하게 만들어보겠습니다:

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")

다음 단계

< > Update on GitHub