Hugging Face smolagents 출시
Hugging Face는 smolagents를 소개했는데, 이는 언어 모델의 에이전트 기능을 잠금 해제하도록 설계된 간단한 라이브러리입니다. 라이브러리의 주요 혁신은 "Code Agents"—실행 가능한 코드로 행동을 작성하는 에이전트—의 촉진이며, 이는 기존 JSON 기반 툴 호출보다 구성성, 객체 관리, 범용성이 뛰어납니다.
AI 에이전시의 스펙트럼
AI 시스템에서의 에이전시는 LLM의 출력이 프로그램 워크플로에 미치는 영향의 수준으로 정의됩니다. 이는 이진 상태가 아닌 연속적인 스펙트럼에 존재합니다:
- Simple Processor: LLM 출력은 프로그램 흐름에 영향을 미치지 않습니다.
- Router: LLM 출력은 기본 제어 흐름을 결정합니다(예: if/else).
- Tool Call: LLM 출력은 실행할 함수와 그 인수를 결정합니다.
- Multi-step Agent: LLM 출력은 루프를 통해 반복 및 프로그램 지속을 제어합니다.
- Multi-Agent: 하나의 에이전트 워크플로는 다른 에이전트 워크플로를 트리거할 수 있습니다.
에이전트 워크플로를 사용할 때
에이전트 시스템은 작업의 워크플로를 사전에 결정할 수 없을 때 가장 효과적입니다. 결정론적 워크플로(하드코딩된 로직)는 더 신뢰할 수 있으며 간단하고 예측 가능한 작업에 선호되어야 하지만, 에이전트는 여러 변수 요인에 의존하는 복잡한 실제 세계 요청에 필요한 유연성을 제공합니다.
코드 에이전트 vs. JSON 툴 호출
전통적인 에이전트 프레임워크는 종종 LLM이 JSON 스니펫 형태로 행동을 출력하도록 요구하며, 이는その後 파싱되어 실행됩니다. smolagents는 프로그래밍 언어가 JSON보다 컴퓨터 행동을 더 효율적으로 표현하도록 특별히 설계되었기 때문에 행동을 코드로 작성하는 것을 우선시합니다.
코드로 행동을 작성하면 여러 기술적 장점이 있습니다:
- Composability: 코드는 중첩된 행동을 허용하고 재사용 가능한 함수를 정의할 수 있습니다.
- Object Management: 코드는 이전 행동의 출력을 저장하고 조작하는 네이티브한 방법을 제공합니다.
- Generality: 코드는 컴퓨터가 수행할 수 있는 모든 작업을 표현할 수 있습니다.
- Training Data Alignment: LLM은 이미 고품질 코드에 heavily 훈련되어 있어 이 형식에 자연스럽게 숙련됩니다.
smolagents의 주요 기능
smolagents는 transformers.agents의 후속작이며, 여러 핵심 목표를 바탕으로 구축되었습니다:
- Simplicity: 핵심 로직은 최소한으로 유지되어 수천 줄의 코드 안에 들어갑니다.
- First-class Code Agent Support: 코드를 작성하는 에이전트에 대한 전용 지원을 제공하며, E2B를 통해 샌드박스 환경에서의 보안된 실행도 포함됩니다.
- Hub Integration: 도구는 Hugging Face Hub와 공유하고 로드할 수 있습니다.
- Model Agnostic: 라이브러리는 Hub에 호스팅된 모델(
transformers또는 Inference API를 통해)뿐만 아니라 LiteLLM 통합을 통해 OpenAI 및 Anthropic의 모델도 지원합니다.
에이전트 구축 및 배포
에이전트를 생성하려면 두 가지 주요 구성 요소가 필요합니다: tools 목록과 model(LLM 엔진).
도구는 타입 힌트와 docstrings가 있는 Python 함수를 정의한 후 @tool 데코레이터를 적용하여 생성됩니다. 이러한 도구는 공유를 위해 Hugging Face Hub로 푸시할 수 있습니다. 예를 들어, CodeAgent는 Google Maps 도구를 장착하여 반복적으로 여행 시간을 수집하고 계산을 수행함으로써 복잡한 여행 일정을 계획할 수 있습니다.
오픈 모델의 성능
벤치마크에 따르면 오픈소스 모델은 이제 에이전트 워크플로에서 최고 성능의 폐쇄 모델과 경쟁할 수 있습니다. 구체적으로, 데이터는 "코드 에이전트"가 다양한 도전에서 "툴 호출 에이전트"를 일관되게 능가함을 보여주며, 실행 가능한 코드를 주요 행동 형식으로 사용하는 접근 방식을 검증합니다.