피드로 돌아가기
Introducing smolagents: simple agents that write actions in code.
Hugging Face BlogHugging Face Blog
AI/ML

Hugging Face가 smolagents 라이브러리를 통해 LLM이 코드로 직접 액션을 작성하도록 변경해 JSON 기반 도구 호출보다 정확도 향상 달성

Introducing smolagents: simple agents that write actions in code.

2024년 12월 31일9intermediate

Context

기존 LLM 에이전트 시스템은 JSON 형식으로 액션을 정의하고 파싱하는 방식을 사용했으나, 이는 프로그래밍 언어의 표현력을 활용하지 못해 정확도가 낮았습니다. 복잡한 실제 작업(여행 계획, 조건부 의사결정 등)을 처리할 때 미리 정해진 워크플로우로는 부족한 상황이 빈번했습니다.

Technical Solution

  • CodeAgent 클래스 도입: LLM 출력이 Python 코드로 직접 작성되고 실행되도록 변경
  • 멀티스텝 에이전트 패턴 구현: while 루프 내에서 LLM이 다음 액션 결정 → 액션 실행 → 관찰값 메모리 추가 반복
  • Tool 클래스 기반 표준화: 모든 도구를 Tool을 상속받는 클래스로 구조화해 Hub에 공유 가능하게 설계
  • 에이전시 스펙트럼 정의: 0단계(단순 프로세서)부터 5단계(멀티에이전트 워크플로우)까지 LLM 제어 범위를 명시
  • 오픈소스 모델 벤치마크: 다양한 오픈소스 모델을 CodeAgent로 구현해 폐쇄형 모델과 성능 비교

Impact

벤치마크 결과 오픈소스 모델이 폐쇄형 모델과 동등한 수준의 에이전트 성능을 달성했습니다. 코드 기반 액션이 JSON 기반 도구 호출보다 정확도가 높습니다.

Key Takeaway

LLM이 액션을 프로그래밍 언어로 직접 표현하도록 함으로써 복잡한 논리와 조건부 흐름을 자연스럽게 처리할 수 있으며, 에이전시를 연속 스펙트럼으로 정의하면 각 사용 사례에 맞는 LLM 제어 수준을 설계할 수 있습니다.


LLM 기반 애플리케이션을 개발할 때 고객 문의 처리처럼 사전 정의된 워크플로우로 충분하면 단순 라우터 패턴을, 복잡한 조건부 의사결정이 필요하면 CodeAgent 패턴을 도입하면 신뢰성과 유연성 간 균형을 맞출 수 있습니다.

원문 읽기