Smolagent AI 에이전트 프레임워크

 허깅페이스의 새로운 에이전트 프레임워크, 최소한의 노력으로 강력한 AI 에이전트 생성

SmolAgents - 허깅 페이스 프레임워크의 강력한 AI 에이전트, 최소한의 코드 | 제품 헌트

Deep Research build By Smolagents FREE

Powered By Smolagents

Ai 코드 스몰라젠트 | FAST&FREE

투게더 AI와 라마코더 제공

smolagents and tools gallery

best smolagents in huggingface

 에이전트란 무엇인가요?

AI 에이전트는 다음과 같습니다. LLM 출력이 워크플로우를 제어하는 프로그램.

이 표는 시스템마다 에이전시가 어떻게 다른지 보여줍니다:

대행사 수준설명이를 호출하는 방법패턴 예시
☆☆☆LLM 출력은 프로그램 흐름에 영향을 미치지 않습니다.간단한 프로세서프로세스_llm_출력(llm_응답)
★☆☆LLM 출력에 따라 기본 제어 흐름이 결정됩니다.라우터if llm_decision(): path_a() else: path_b()
★★☆LLM 출력으로 함수 실행 결정도구 호출실행_함수(llm_chosen_tool, llm_chosen_args)
★★★LLM 출력 제어 반복 및 프로그램 연속 제어다단계 에이전트while llm_should_continue(): execute_next_step()
★★★하나의 상담원 워크플로우가 다른 상담원 워크플로우를 시작할 수 있습니다.멀티 에이전트if llm_trigger(): execute_agent()

스몰에이전트의 특징

🤗 스몰래그먼트 는 개발자가 단 몇 줄의 코드만으로 강력한 에이전트를 배포할 수 있도록 Hugging Face 팀에서 개발한 미니멀리즘 AI 에이전트 프레임워크입니다. 단순성과 효율성을 갖춘 smolagent는 대규모 언어 모델(LLM)이 실제 세계와 원활하게 상호 작용할 수 있도록 지원합니다.

✨ 단순성

컴팩트한 코드베이스: 약 1,000줄의 핵심 코드가 포함되어 있습니다. agents.pysmolagent는 간단한 개발을 위해 추상화를 최소화합니다.

사용자 친화적

개발자는 에이전트를 신속하게 정의하고 필요한 도구를 제공하며 복잡한 구성 없이 즉시 실행할 수 있습니다.

코드 에이전트

 smolagent는 다음 사항에 중점을 둡니다. 코드 에이전트를 사용하면 에이전트가 JSON이나 텍스트 블롭으로 작업을 생성하는 대신 Python 코드 스니펫을 작성하고 실행하여 작업을 수행할 수 있습니다.

높은 효율성

코드 에이전트는 표준 툴 호출 방식에 비해 효율성과 정확성이 향상되어 단계와 LLM 호출이 약 30% 감소하고 복잡한 벤치마크에서 우수한 성능을 달성합니다.

보안 실행

 안전한 코드 실행을 보장하기 위해 smolagent는 다음과 같은 샌드박스 환경에서 코드 실행을 지원합니다. E2B를 사용하여 보호되고 격리된 실행 공간을 제공합니다.

다양한 LLM

 smolagent는 트랜스포머를 통해 허깅 페이스 허브에서 호스팅되는 모델뿐만 아니라 LiteLLM 통합을 통해 OpenAI, Anthropic 등의 모델을 포함한 모든 대규모 언어 모델과 손쉽게 통합됩니다.

스몰에이전트: 허깅 페이스 허브와 통합

도구 공유 및 로드: 허깅 페이스 허브와의 긴밀한 통합으로 개발자는 도구를 쉽게 공유하고 가져올 수 있어 커뮤니티 내에서 협업과 공유를 촉진할 수 있습니다.

에코시스템 성장: 허브의 기능을 활용하여 smolagent는 더 많은 기능과 도구로 지속적으로 확장되어 무한한 발전 가능성을 제공합니다.

기존 도구 호출 에이전트 지원

다양한 선택: smolagent는 코드 에이전트 외에도 기존의 도구 호출 에이전트를 사용하여 특정 시나리오 및 요구 사항에 적합한 작업을 JSON 또는 텍스트 블록으로 작성할 수 있습니다.

코드 스몰에이전트를 선택해야 하는 이유

뛰어난 구성성: 코드가 함수 중첩 및 재사용을 자연스럽게 지원하므로 복잡한 로직을 표현할 수 있습니다.

효율적인 개체 처리: JSON에 비해 코드는 객체의 관리 및 전송을 간소화합니다.

최고의 유연성: 코드는 컴퓨터가 수행할 수 있는 모든 연산을 표현할 수 있어 매우 다양한 용도로 사용할 수 있습니다.

광범위한 교육 데이터: LLM은 방대한 양의 고품질 코드에 대한 교육을 통해 코드를 생성하고 이해하는 능력을 향상시켰습니다.

성능 이점 smolagent의

다양한 벤치마크에서 오픈 소스 모델을 활용하는 smolagent는 독점 모델을 사용하는 에이전트의 성능과 대등한 결과를 보였습니다. 코드 에이전트의 효율성과 오픈 소스 모델의 지속적인 발전 덕분에 개발자는 비공개 소스 서비스에 의존하지 않고도 강력한 에이전트 시스템을 구축할 수 있습니다.

스몰에이전트 적용 사례

스몰에이전트에서 에이전트는 특정 작업을 수행할 수 있는 클래스로 캡슐화됩니다. 예를 들어 관리 에이전트 를 만들어 다양한 에이전트 유형을 활용하여 다양한 작업을 관리할 수 있습니다. 다음은 웹 검색용 에이전트와 이미지 생성용 에이전트 두 가지를 구현하는 간단한 예시이며,다음은 Google 지도에서 이동 시간을 가져오는 사용자 지정 도구를 만드는 방법과 이를 여행 플래너 에이전트에 사용하는 방법입니다:

from typing import Optional
from smolagents import CodeAgent, HfApiModel, tool

@tool
def get_travel_duration(start_location: str, destination_location: str, transportation_mode: Optional[str] = None) -> str:
    """Gets the travel time between two places.

    Args:
        start_location: the place from which you start your ride
        destination_location: the place of arrival
        transportation_mode: The transportation mode, in 'driving', 'walking', 'bicycling', or 'transit'. Defaults to 'driving'.
    """
    import os   # All imports are placed within the function, to allow for sharing to Hub.
    import googlemaps
    from datetime import datetime

    gmaps = googlemaps.Client(os.getenv("GMAPS_API_KEY"))

    if transportation_mode is None:
        transportation_mode = "driving"
    try:
        directions_result = gmaps.directions(
            start_location,
            destination_location,
            mode=transportation_mode,
            departure_time=datetime(2025, 6, 6, 11, 0), # At 11, date far in the future
        )
        if len(directions_result) == 0:
            return "No way found between these places with the required transportation mode."
        return directions_result[0]["legs"][0]["duration"]["text"]
    except Exception as e:
        print(e)
        return e

agent = CodeAgent(tools=[get_travel_duration], model=HfApiModel(), additional_authorized_imports=["datetime"])

agent.run("Can you give me a nice one-day trip around Paris with a few locations and the times? Could be in the city or outside, but should fit in one day. I'm travelling only with a rented bicycle.")

여행 시간을 수집하고 계산을 실행하는 몇 단계를 거친 후, 상담원은 파리 자전거 여행 1일 일정이라는 최종 제안을 내립니다:


1. 오전 9시에 에펠탑에서 출발합니다.
2. 오전 10시 30분까지 에펠탑 관광.
3. 오전 10시 46분에 노트르담 대성당으로 이동합니다.
4. 오후 12시 16분까지 노트르담 대성당 관광.
5. 오후 12시 41분에 몽마르트르로 이동합니다.
6. 오후 2시 11분까지 몽마르뜨에서 관광하기.
7. 오후 2시 33분에 자르뎅 뒤 룩셈부르크로 이동합니다.
8. 오후 4시 3분까지 자르뎅 뒤 룩셈부르크에서 관광.
9. 오후 4시 12분에 루브르 박물관으로 이동합니다.
10. 오후 5시 42분까지 루브르 박물관 관광.
11. 오후 6시 12분까지 점심시간.
12. 종료 예정 시간: 오후 6시 12분.

도구를 구축한 후 허브에 공유하는 것은 매우 간단합니다:

get_travel_duration.push_to_hub("{your_username}/get-travel-duration-tool")

스몰에이전트 리소스

smolagent에 대해 자주 묻는 질문

smolagent는 Hugging Face 팀이 개발한 미니멀리즘 AI 에이전트 라이브러리입니다. 이를 통해 개발자는 최소한의 코드로 강력한 AI 에이전트를 생성하고 실행할 수 있습니다. 단순성과 효율성에 초점을 맞춘 smolagents는 대규모 언어 모델(LLM)이 실제 작업과 원활하게 상호 작용할 수 있도록 지원합니다.

복잡한 추상화와 구성을 가진 많은 AI 에이전트 프레임워크와 달리 smolagent는 약 1,000줄의 컴팩트한 코드베이스를 유지합니다. 사용 편의성을 강조하며, 에이전트가 Python 코드 스니펫을 직접 실행하는 코드 에이전트를 지원하여 효율성을 높이고 필요한 단계와 LLM 호출 수를 줄입니다.

 코드 에이전트는 smolagent의 핵심 기능입니다. 코드 에이전트는 작업을 JSON 또는 텍스트 블롭으로 생성하는 대신 Python 코드 스니펫을 작성하고 실행하여 작업을 수행합니다. 이 접근 방식은 코드를 생성하고 이해하는 LLM의 기능을 활용하여 복잡한 로직을 표현할 때 더 나은 구성성과 유연성을 제공합니다.

다음 명령으로 pip를 사용하여 smolagent를 설치할 수 있습니다:

复制pip 설치 smolagent

시작하려면 필요한 클래스를 가져와서 에이전트를 정의하고, 필요한 도구와 LLM 모델을 제공하고, 작업을 실행하세요. 예를 들어

파이썬 수정smolagent에서 코드에이전트, 덕덕고서치툴, HfApi모델을 가져옵니다.

agent = CodeAgent(tools=[DuckDuckGoSearchTool()], model=HfApiModel())
agent.run("여기 작업")

 smolagent는 LLM과의 폭넓은 호환성을 위해 설계되었습니다. 트랜스포머를 통해 허깅 페이스 허브에서 호스팅되는 모델과 원활하게 통합될 뿐만 아니라 LiteLLM 통합을 통해 OpenAI, Anthropic 등의 모델과도 원활하게 통합됩니다. 이러한 유연성 덕분에 프로젝트 요구 사항에 가장 적합한 LLM을 선택할 수 있습니다.

 예, smolagent는 코드 에이전트 외에도 기존 도구 호출 에이전트를 지원합니다. 이 모드에서는 작업이 JSON 또는 텍스트 블롭으로 작성되므로 코드 조각을 실행하는 것이 적합하지 않을 수 있는 특정 시나리오에 적합할 수 있습니다.

 smolagent는 샌드박스 환경을 지원하여 안전한 코드 실행을 우선시합니다. 예를 들어 코드 스니펫 실행을 위한 안전하고 격리된 환경을 제공하는 E2B(Execution to Binary)를 활용할 수 있습니다. 이를 통해 코드 실행이 호스트 시스템의 보안을 손상시키지 않도록 보장합니다.

 코드 에이전트는 여러 가지 이점을 제공합니다:

  • 더 나은 구성성: 코드는 자연스럽게 함수 중첩과 재사용을 허용하므로 복잡한 논리를 더 쉽게 표현할 수 있습니다.
  • 효율적인 개체 관리: JSON에 비해 코드에서 객체를 관리하고 전달하는 것이 더 간단합니다.
  • 높은 유연성: 코드는 모든 계산 연산을 표현할 수 있어 활용도가 매우 높습니다.
  • 풍부한 훈련 데이터 활용: LLM은 대량의 코드에 대한 교육을 받았기 때문에 코드 스니펫을 생성하고 이해하는 데 능숙합니다.

 smolagent는 허깅 페이스 허브와 긴밀하게 통합되어 있어 개발자가 도구를 쉽게 공유하고 로드할 수 있습니다. 이는 커뮤니티에서 도구와 리소스를 기여하고 액세스할 수 있는 협업 생태계를 조성하여 smolagent의 기능과 도달 범위를 향상시킵니다.

smolagent에 대해 자세히 알아보려면 다음 리소스를 살펴보세요:

  • 공식 문서: smolagent 설명서를 참조하세요. 허깅 페이스 웹사이트.
  • 시작하기 가이드: 허깅 페이스 팀이 제공하는 입문 가이드와 튜토리얼을 확인하세요.
  • 프로젝트 예시: GitHub에서 샘플 프로젝트와 코드 예제를 살펴보고 smolagent가 실제로 작동하는 모습을 확인하세요.
  • 커뮤니티 포럼: 포럼과 토론을 통해 개발자 커뮤니티에 참여하여 인사이트와 지원을 얻으세요.

Choose from Your languange