Agno : コンセプト :- ツールキット : 検索 (Arxiv, DuckDuckGo, Exa, Google Search 等)

ツールキットはエージェントに追加できる関数のコレクションです。ツールキットの関数は連携して動作し、内部状態を共有し、そしてより良い開発エクスペリエンスを提供できるように設計されています。
ここでは、検索が可能なツール Arxiv, DuckDuckGo, Exa, Google Search, Hacker News, Searxng 等の使い方を説明します。

Agno : ユーザガイド : コンセプト : ツール – ツールキット : 検索 (Arxiv, DuckDuckGo, Exa, Google Search 等)

作成 : クラスキャット・セールスインフォメーション
作成日時 : 08/01/2025
バージョン : Agno 1.7.5

* 本記事は docs.agno.com の以下のページを独自に翻訳した上で、補足説明を加えてまとめ直しています :

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

 

Agno ユーザガイド : コンセプト : ツール – ツールキット : Toolkit Index

ツールキットはエージェントに追加できる関数のコレクションです。ツールキットの関数は連携して動作し、内部状態を共有し、そしてより良い開発エクスペリエンスを提供できるように設計されています。

 

Agno ユーザガイド : コンセプト : ツール – ツールキット : 検索 : Arxiv

ArxivTools はエージェントが Arxiv 上の出版物を検索することを可能にします。

 

前提条件

後述の例は、arxiv と pypdf ライブラリを必要とします。

pip install -U arxiv pypdf

 

以下のエージェントは seach arXiv for “language models” を実行して応答を出力します。

from agno.agent import Agent
from agno.tools.arxiv import ArxivTools

agent = Agent(tools=[ArxivTools()], show_tool_calls=True)
agent.print_response("Search arxiv for 'language models'", markdown=True)

 

Agno ユーザガイド : コンセプト : ツール – ツールキット : 検索 : DuckDuckGo

DuckDuckGo はエージェントが web を情報検索することを可能にします。

 

前提条件

後述の例は duckduckgo-search ライブラリが必要です。DuckDuckGo をインストールするには、次のコマンドを実行します :

pip install -U duckduckgo-search

 

cookbook/tools/duckduckgo.py

from agno.agent import Agent
from agno.tools.duckduckgo import DuckDuckGoTools

agent = Agent(tools=[DuckDuckGoTools()], show_tool_calls=True)
agent.print_response("Whats happening in France?", markdown=True)

 

Agno ユーザガイド : コンセプト : ツール – ツールキット : 検索 : Exa

ExaTools はエージェントが Exa を使用して web を検索し、URL からコンテンツを取得し、類似のコンテンツを検索し、そして AI で強化された回答を得ることを可能にします。

 

前提条件

後述の例は​ exa-py ライブラリと、Exa から取得できる API キーを必要とします。

pip install -U exa-py
export EXA_API_KEY=***

 

次のエージェントは AAPL ニュースを Exa で検索し、応答を表示します。

cookbook/tools/exa_tools.py

from agno.agent import Agent
from agno.tools.exa import ExaTools

agent = Agent(
    tools=[ExaTools(
        include_domains=["cnbc.com", "reuters.com", "bloomberg.com"],
        category="news",
        text_length_limit=1000,
    )],
    show_tool_calls=True,
)
agent.print_response("Search for AAPL news", markdown=True)

 

Agno ユーザガイド : コンセプト : ツール – ツールキット : 検索 : Google Search

GoogleSearch はエージェントが web クローリングとスクレイピングのタスクを実行することを可能にします。

 

前提条件

後述の例は googlesearch と pycountry ライブラリが必要です。

pip install -U googlesearch-python pycountry

 

次のエージェントは “Mistral AI” に関する最新ニュースを Google で検索します :

from agno.agent import Agent
from agno.tools.googlesearch import GoogleSearchTools

agent = Agent(
    tools=[GoogleSearchTools()],
    description="You are a news agent that helps users find the latest news.",
    instructions=[
        "Given a topic by the user, respond with 4 latest news items about that topic.",
        "Search for 10 news items and select the top 4 unique items.",
        "Search in English and in French.",
    ],
    show_tool_calls=True,
    debug_mode=True,
)

agent.print_response("Mistral AI", markdown=True)

 

Agno ユーザガイド : コンセプト : ツール – ツールキット : 検索 : Hacker News

HackerNews はエージェントが Hacker News web サイトを検索することを可能にします。

 

次のエージェントは、hackernews のトップ 2 ストーリーの投稿ユーザの興味深い要約 (とストーリーへの言及) を作成します。

cookbook/tools/hackernews.py

from agno.agent import Agent
from agno.tools.hackernews import HackerNewsTools

agent = Agent(
    name="Hackernews Team",
    tools=[HackerNewsTools()],
    show_tool_calls=True,
    markdown=True,
)

agent.print_response(
    "Write an engaging summary of the "
    "users with the top 2 stories on hackernews. "
    "Please mention the stories as well.",
)

 

Agno ユーザガイド : コンセプト : ツール – ツールキット : 検索 : Searxng

Searxng はエージェントがクエリーに対して web 検索し、web サイトをスクレイピングし、あるいは web サイトをクロールすることを可能にします。

cookbook/tools/searxng_tools.py

from agno.agent import Agent
from agno.tools.searxng import SearxngTools

# Initialize Searxng with your Searxng instance URL
searxng = SearxngTools(
    host="http://localhost:53153",
    engines=[],
    fixed_max_results=5,
    news=True,
    science=True
)

# Create an agent with Searxng
agent = Agent(tools=[searxng])

# Example: Ask the agent to search using Searxng
agent.print_response("""
Please search for information about artificial intelligence
and summarize the key points from the top results
""")

 

以上