내장 도구(Built-in Tools)

내장 도구(Built-in Tools)

smolagents 라이브러리가 제공하는 바로 쓸 수 있는 도구 구현들이에요.

이 내장 도구들은 Tool 베이스 클래스의 구체적인 구현으로, 각각 웹 검색, 파이썬 코드 실행, 웹페이지 가져오기, 사용자 상호작용 같은 특정 작업을 위해 설계됐어요. 밑바닥부터 기능을 구현하지 않아도 에이전트에서 바로 쓸 수 있죠. 각 도구는 특정 기능을 담당하고 일관된 인터페이스를 따르기 때문에, 강력한 에이전트 워크플로우로 조합하기가 쉬워요.

내장 도구는 주요 기능에 따라 분류할 수 있어요.

  • 정보 검색(Information Retrieval): 웹과 특정 지식 소스에서 검색하고 정보를 가져와요.
  • 웹 상호작용(Web Interaction): 특정 웹페이지의 콘텐츠를 가져오고 처리해요.
  • 코드 실행(Code Execution): 계산 작업을 위한 파이썬 코드의 동적 실행이에요.
  • 사용자 상호작용(User Interaction): 에이전트와 사용자 사이의 Human-in-the-Loop 협업을 가능하게 해요.
  • 음성 처리(Speech Processing): 오디오를 텍스트 데이터로 변환해요.
  • 워크플로우 제어(Workflow Control): 에이전트 작업의 흐름을 관리하고 지시해요.
    • FinalAnswerTool: 최종 응답으로 에이전트 워크플로우를 마무리해요.

ApiWebSearchTool[[smolagents.ApiWebSearchTool]]

  • endpoint (str) — API 엔드포인트 URL이에요. 기본값은 Brave Search API예요.
  • api_key (str) — 인증용 API 키예요.
  • api_key_name (str) — API 키가 담긴 환경 변수 이름이에요. 기본값은 "BRAVE_API_KEY"예요.
  • headers (dict, 선택) — API 요청용 헤더예요.
  • params (dict, 선택) — API 요청용 파라미터예요.
  • rate_limit (float, 기본 1.0) — 초당 최대 쿼리 수예요. None으로 설정하면 속도 제한을 끄면 돼요.

API 기반 검색을 수행하는 웹 검색 도구예요. 기본적으로 Brave Search API를 사용해요. 이 도구는 API 사용 정책을 준수하기 위해 속도 제한 메커니즘을 구현하고 있어요. 기본적으로 초당 1개 쿼리로 제한해요.

예시:

>>> from smolagents import ApiWebSearchTool
>>> web_search_tool = ApiWebSearchTool(rate_limit=50.0)
>>> results = web_search_tool("Hugging Face")
>>> print(results)

DuckDuckGoSearchTool[[smolagents.DuckDuckGoSearchTool]]

  • max_results (int, 기본 10) — 반환할 최대 검색 결과 수예요.
  • rate_limit (float, 기본 1.0) — 초당 최대 쿼리 수예요. None으로 설정하면 속도 제한을 꺼요.
  • **kwargsDDGS 클라이언트용 추가 키워드 인자예요.

DuckDuckGo 검색 엔진으로 검색을 수행하는 웹 검색 도구예요.

예시:

>>> from smolagents import DuckDuckGoSearchTool
>>> web_search_tool = DuckDuckGoSearchTool(max_results=5, rate_limit=2.0)
>>> results = web_search_tool("Hugging Face")
>>> print(results)

FinalAnswerTool[[smolagents.FinalAnswerTool]]

에이전트 워크플로우를 최종 응답으로 마무리하는 도구예요.

GoogleSearchTool[[smolagents.GoogleSearchTool]]

Google 검색을 수행하는 도구예요.

PythonInterpreterTool[[smolagents.PythonInterpreterTool]]

계산 작업을 위해 파이썬 코드를 동적으로 실행하는 도구예요.

SpeechToTextTool[[smolagents.SpeechToTextTool]]

오디오를 텍스트 데이터로 변환하는 도구예요.

UserInputTool[[smolagents.UserInputTool]]

사용자로부터 입력을 수집하는 Human-in-the-Loop 도구예요.

VisitWebpageTool[[smolagents.VisitWebpageTool]]

특정 웹페이지의 콘텐츠를 가져오고 처리하는 도구예요.

WebSearchTool[[smolagents.WebSearchTool]]

Exa API를 사용해 검색하는 도구예요. EXA_API_KEY 환경 변수가 필요해요.

WikipediaSearchTool[[smolagents.WikipediaSearchTool]]

Wikipedia를 검색하고 요청한 문서의 요약 또는 전체 텍스트를 페이지 URL과 함께 반환해요.

예시:

>>> from smolagents import CodeAgent, InferenceClientModel, WikipediaSearchTool
>>> agent = CodeAgent(
>>>     tools=[
>>>            WikipediaSearchTool(
>>>                user_agent="MyResearchBot ([email protected])",
>>>                language="en",
>>>                content_type="summary",  # or "text"
>>>                extract_format="WIKI",
>>>            )
>>>        ],
>>>     model=InferenceClientModel(),
>>> )
>>> agent.run("Python_(programming_language)")

출처: 공식문서