핵심 요약
기존 LLM 에이전트들이 복잡한 JSON 구조에 의존하던 것과 달리, Hugging Face의 `smolagents`는 LLM이 직접 파이썬 코드를 작성하여 도구를 제어하는 방식을 채택했다. 이 라이브러리는 `@tool` 데코레이터를 통해 일반 함수를 에이전트용 도구로 변환하고, `CodeAgent`를 통해 이를 실행하는 간결한 워크플로우를 제공한다. 본문에서는 `Qwen2.5-Coder-32B-Instruct` 모델을 활용해 실시간 날씨 데이터를 조회하고 파일로 저장하는 에이전트 구현 과정을 40줄 내외의 코드로 보여준다. 이를 통해 개발자는 복잡한 프레임워크 없이도 자율적으로 작업을 수행하는 경량 AI 에이전트를 빠르게 프로덕션에 도입할 수 있다.
배경
Python 기초 지식 (변수, 함수, pip 설치), Hugging Face API 토큰, 기본적인 API 연동 개념
대상 독자
파이썬 기반으로 경량 AI 에이전트를 빠르게 구축하려는 개발자
의미 / 영향
이 기술은 복잡한 에이전트 프레임워크의 진입 장벽을 낮추어 소규모 프로젝트에서도 강력한 자율 에이전트를 도입할 수 있게 한다. 특히 코드를 직접 생성하고 실행하는 방식은 LLM의 논리적 추론 능력을 극대화하여 기존의 단순 텍스트 기반 에이전트보다 정교한 작업 수행을 가능하게 한다.
섹션별 상세
@tool
def get_weather(city: str) -> str:
"""
Returns the current weather forecast for a specified city.
Args:
city: The name of the city to get the weather for.
"""
response = requests.get(f"https://wttr.in/{city}?format=%C+%t")
if response.status_code == 200:
return f"The weather in {city} is: {response.text.strip()}"
else:
return "Sorry, I couldn't fetch the weather data."@tool 데코레이터와 Docstring을 사용하여 에이전트가 사용할 수 있는 날씨 조회 도구를 정의하는 예시
model = InferenceClientModel(
model_id="Qwen/Qwen2.5-Coder-32B-Instruct",
token=hf_token
)
agent = CodeAgent(
tools=[get_weather],
model=model,
add_base_tools=False
)
response = agent.run("Can you tell me the weather in Paris and also in Tokyo?")Qwen2.5-Coder 모델을 연결하고 정의한 도구를 포함하여 CodeAgent를 생성 및 실행하는 예시
실무 Takeaway
- `smolagents`의 `@tool` 데코레이터와 Docstring을 활용하면 기존 파이썬 함수를 별도의 복잡한 설정 없이 AI 에이전트의 도구로 즉시 통합할 수 있다.
- JSON 기반의 도구 호출 대신 파이썬 코드를 직접 생성하는 `CodeAgent`를 사용하면 복잡한 데이터 조작이나 반복문이 필요한 작업에서 더 높은 정확도를 얻을 수 있다.
- Hugging Face의 `InferenceClientModel`을 활용해 `Qwen2.5-Coder`와 같은 오픈 소스 모델을 연결함으로써 고성능 에이전트 시스템을 저비용으로 구축 가능하다.
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.