Skip to content

ClassCat® AI Research

クラスキャット – Agno, AgentOS, MCP, LangChain/LangGraph, CrewAI

Menu
  • ホーム
    • ClassCat® AI Research ホーム
    • クラスキャット・ホーム
  • OpenAI API
    • OpenAI Python ライブラリ 1.x : 概要
    • OpenAI ブログ
      • GPT の紹介
      • GPT ストアの紹介
      • ChatGPT Team の紹介
    • OpenAI platform 1.x
      • Get Started : イントロダクション
      • Get Started : クイックスタート (Python)
      • Get Started : クイックスタート (Node.js)
      • Get Started : モデル
      • 機能 : 埋め込み
      • 機能 : 埋め込み (ユースケース)
      • ChatGPT : アクション – イントロダクション
      • ChatGPT : アクション – Getting started
      • ChatGPT : アクション – アクション認証
    • OpenAI ヘルプ : ChatGPT
      • ChatGPTとは何ですか?
      • ChatGPT は真実を語っていますか?
      • GPT の作成
      • GPT FAQ
      • GPT vs アシスタント
      • GPT ビルダー
    • OpenAI ヘルプ : ChatGPT > メモリ
      • FAQ
    • OpenAI ヘルプ : GPT ストア
      • 貴方の GPT をフィーチャーする
    • OpenAI Python ライブラリ 0.27 : 概要
    • OpenAI platform
      • Get Started : イントロダクション
      • Get Started : クイックスタート
      • Get Started : モデル
      • ガイド : GPT モデル
      • ガイド : 画像生成 (DALL·E)
      • ガイド : GPT-3.5 Turbo 対応 微調整
      • ガイド : 微調整 1.イントロダクション
      • ガイド : 微調整 2. データセットの準備 / ケーススタディ
      • ガイド : 埋め込み
      • ガイド : 音声テキスト変換
      • ガイド : モデレーション
      • ChatGPT プラグイン : イントロダクション
    • OpenAI Cookbook
      • 概要
      • API 使用方法 : レート制限の操作
      • API 使用方法 : tiktoken でトークンを数える方法
      • GPT : ChatGPT モデルへの入力をフォーマットする方法
      • GPT : 補完をストリームする方法
      • GPT : 大規模言語モデルを扱う方法
      • 埋め込み : 埋め込みの取得
      • GPT-3 の微調整 : 分類サンプルの微調整
      • DALL-E : DALL·E で 画像を生成して編集する方法
      • DALL·E と Segment Anything で動的マスクを作成する方法
      • Whisper プロンプティング・ガイド
  • Gemini API
    • Tutorials : クイックスタート with Python (1) テキスト-to-テキスト生成
    • (2) マルチモーダル入力 / 日本語チャット
    • (3) 埋め込みの使用
    • (4) 高度なユースケース
    • クイックスタート with Node.js
    • クイックスタート with Dart or Flutter (1) 日本語動作確認
    • Gemma
      • 概要 (README)
      • Tutorials : サンプリング
      • Tutorials : KerasNLP による Getting Started
  • Keras 3
    • 新しいマルチバックエンド Keras
    • Keras 3 について
    • Getting Started : エンジニアのための Keras 入門
    • Google Colab 上のインストールと Stable Diffusion デモ
    • コンピュータビジョン – ゼロからの画像分類
    • コンピュータビジョン – 単純な MNIST convnet
    • コンピュータビジョン – EfficientNet を使用した微調整による画像分類
    • コンピュータビジョン – Vision Transformer による画像分類
    • コンピュータビジョン – 最新の MLPモデルによる画像分類
    • コンピュータビジョン – コンパクトな畳込み Transformer
    • Keras Core
      • Keras Core 0.1
        • 新しいマルチバックエンド Keras (README)
        • Keras for TensorFlow, JAX, & PyTorch
        • 開発者ガイド : Getting started with Keras Core
        • 開発者ガイド : 関数型 API
        • 開発者ガイド : シーケンシャル・モデル
        • 開発者ガイド : サブクラス化で新しい層とモデルを作成する
        • 開発者ガイド : 独自のコールバックを書く
      • Keras Core 0.1.1 & 0.1.2 : リリースノート
      • 開発者ガイド
      • Code examples
      • Keras Stable Diffusion
        • 概要
        • 基本的な使い方 (テキスト-to-画像 / 画像-to-画像変換)
        • 混合精度のパフォーマンス
        • インペインティングの簡易アプリケーション
        • (参考) KerasCV – Stable Diffusion を使用した高性能画像生成
  • TensorFlow
    • TF 2 : 初級チュートリアル
    • TF 2 : 上級チュートリアル
    • TF 2 : ガイド
    • TF 1 : チュートリアル
    • TF 1 : ガイド
  • その他
    • 🦜️🔗 LangChain ドキュメント / ユースケース
    • Stable Diffusion WebUI
      • Google Colab で Stable Diffusion WebUI 入門
      • HuggingFace モデル / VAE の導入
      • LoRA の利用
    • Diffusion Models / 拡散モデル
  • クラスキャット
    • 会社案内
    • お問合せ
    • Facebook
    • ClassCat® Blog
Menu

Agno 2.x : エージェント – ツール, MCP ツールの使用

Posted on 10/31/202511/01/2025 by Masashi Okumura

Agno のツールを使用して AI エージェントを構築する方法を学習します。
エージェントはツールを使用してアクションを実行し、外部システムとやり取りします。ツールは、Agent がタスクを達成するために実行可能な関数です。

Agno 2.x : Learn : エージェント – ツール

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

* 本記事は docs.agno.com の以下のページを独自に翻訳した上で、補足説明を加えてまとめ直しています。スニペットはできる限り日本語を使用しています :

  • Learn : Agents – Tools

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

 

クラスキャット 人工知能 研究開発支援サービス ⭐️ 創立30周年(30th Anniversary)🎉💐

◆ クラスキャット は人工知能に関する各種サービスを提供しています。お気軽にご相談ください :

  • 人工知能導入個別相談会(無償)実施中! [詳細]

  • 人工知能研究開発支援 [詳細]
    1. 自社特有情報を含むチャットボット構築支援
    2. 画像認識 (医療系含む) / 画像生成

  • PoC(概念実証)を失敗させないための支援 [詳細]

◆ お問合せ : 下記までお願いします。

  • クラスキャット セールス・インフォメーション
  • sales-info@classcat.com
  • ClassCatJP

 

 

Agno 2.x : Learn : エージェント – ツール

Agno のツールを使用して AI エージェントを構築する方法を学習します。

エージェントはツールを使用してアクションを実行し、外部システムとやり取りします。

ツールは、Agent がタスクを達成するために実行可能な関数です。例えば: web 検索、SQL 実行、電子メール送信や API 呼び出し。ツールとして任意の python 関数が使用できて、事前構築済み Agno ツールキットも使用できます。

一般的な構文は :

from agno.agent import Agent

agent = Agent(
    # Add functions or Toolkits
    tools=[...],
)

 

ツールキットの使用

Agno は、エージェントに追加できる多くの事前構築済みツールキットを提供しています。例えば、DuckDuckGo ツールキットを使用して web を検索してみましょう。

💡 You can find more toolkits in the Toolkits guide.

  1. Web 検索エージェントの作成

    ファイル web_search.py の作成

    web_search.py

    from agno.agent import Agent
    from agno.models.openai import OpenAIChat
    from agno.tools.duckduckgo import DuckDuckGoTools
    
    agent = Agent(
        model=OpenAIChat(id="gpt-5-nano"),
        tools=[DuckDuckGoTools()],
        markdown=True)
    
    agent.print_response("フランスでは何が起こっているのですか?", stream=True)
    

  2. エージェントの実行

    ライブラリのインストール

    pip install openai ddgs agno
    

    エージェントの実行

    python web_search.py
    

    出力例

    ┏━ Message ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
    ┃                                                                                                                                ┃
    ┃ フランスでは何が起こっているのですか?                                                                                         ┃
    ┃                                                                                                                                ┃
    ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
    ┏━ Response (49.7s) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
    ┃                                                                                                                                ┃
    ┃ 以下は、直近の主要な話題を要約したものです。日々ニュースは変わるので、興味のある分野があればさらに詳しく追います。             ┃
    ┃                                                                                                                                ┃
    ┃  • ブラッシャーイベント(国民的なお祝い)                                                                                      ┃
    ┃     • 2025年7月14日(フランスの革命記念日)にパリで行われたイベント。シャンゼリゼ大通りの軍事パレードのほか、夜にはエッフェル  ┃
    ┃       塔での花火などが開催され、国民的な祝祭ムードが高まりました。                                                             ┃
    ┃  • ルーヴル美術館の強盗事件(文化財・治安ニュース)                                                                            ┃
    ┃     • 2025年10月頃、ルーヴル美術館で19点ほどの美術品が盗まれる事件が報じられました。調査が進行中で、国内外の美術界にも大きな関 ┃
    ┃       心が寄せられています。                                                                                                   ┃
    ┃  • 経済・政治の動向(経済成長の回復感と財政問題の継続性)                                                                      ┃
    ┃     • フランス経済は成長の回復傾向が見られる一方、財政運営や労働市場の動向については引き続き議論が続いています。物価動向や雇用 ┃
    ┃       情勢の動きにも注目が集まっています。                                                                                     ┃
    ┃  • その他の話題                                                                                                                ┃
    ┃     • 海外ニュースサイトや日本語メディアで、フランス国内の政治・社会状況、外交動向、文化イベントに関する報道が並んでいます。具 ┃
    ┃       体的な話題を指定いただければ、最新情報をピックアップして詳しく要約します。                                               ┃
    ┃                                                                                                                                ┃
    ┃ よろしければ、次のいずれかを教えてください。                                                                                   ┃
    ┃                                                                                                                                ┃
    ┃  • 政治、経済、治安、文化のどの分野を深掘りしますか?                                                                          ┃
    ┃  • 特定の出来事(例:ルーヴル事件、国の財政政策、労働改革など)について詳しく知りたいですか?                                  ┃
    ┃  • 最新ニュースの公式ソースへのリンク付きで詳しく解説します。                                                                  ┃
    ┃                                                                                                                                ┃
    ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    

 

独自ツールの作成

より良い制御のためには、独自の python 関数を作成してツールとしてエージェントに追加します。例えば、get_top_hackernews_stories ツールをエージェントに追加する方法が以下になります :

hn_agent.py

import json
import httpx

from agno.agent import Agent
from agno.models.openai import OpenAIChat

def get_top_hackernews_stories(num_stories: int = 10) -> str:
    """Use this function to get top stories from Hacker News.

    Args:
        num_stories (int): Number of stories to return. Defaults to 10.
    """

    # Fetch top story IDs
    response = httpx.get('https://hacker-news.firebaseio.com/v0/topstories.json')
    story_ids = response.json()

    # Fetch story details
    stories = []
    for story_id in story_ids[:num_stories]:
        story_response = httpx.get(f'https://hacker-news.firebaseio.com/v0/item/{story_id}.json')
        story = story_response.json()
        if "text" in story:
            story.pop("text", None)
        stories.append(story)
    return json.dumps(stories)

agent = Agent(
    model=OpenAIChat(id="gpt-5-nano"),
    tools=[get_top_hackernews_stories],
    markdown=True
)

agent.print_response("hackernews のトップ5 の記事を要約してくれますか?", stream=True)

出力例

┏━ Message ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃                                                                                                                                ┃
┃ hackernews のトップ5 の記事を要約してくれますか?                                                                              ┃
┃                                                                                                                                ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
┏━ Response (47.9s) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃                                                                                                                                ┃
┃ 以下は、いただいたトップ5の記事情報です。本文をまだ読んでいないため、正確な要約は現時点では作成できません。本文を共有いただけ  ┃
┃ れば、日本語で要約します。まずは記事の概要情報をリストします。                                                                 ┃
┃                                                                                                                                ┃
┃  1 タイトル: 987654321 / 123456789                                                                                             ┃
┃                                                                                                                                ┃
┃  • 著者: ColinWright                                                                                                           ┃
┃  • スコア: 126                                                                                                                 ┃
┃  • URL: https://www.johndcook.com/blog/2025/10/26/987654321/                                                                   ┃
┃                                                                                                                                ┃
┃  2 タイトル: Estimating the Perceived 'Claustrophobia' of New York City's Streets (2024)                                       ┃
┃                                                                                                                                ┃
┃  • 著者: jxmorris12                                                                                                            ┃
┃  • スコア: 18                                                                                                                  ┃
┃  • URL: http://mfranchi.net/posts/claustrophobic-streets/                                                                      ┃
┃                                                                                                                                ┃
┃  3 タイトル: Uv is the best thing to happen to the Python ecosystem in a decade                                                ┃
┃                                                                                                                                ┃
┃  • 著者: todsacerdoti                                                                                                          ┃
┃  • スコア: 1943                                                                                                                ┃
┃  • URL: https://emily.space/posts/251023-uv                                                                                    ┃
┃                                                                                                                                ┃
┃  4 タイトル: Show HN: In a single HTML file, an app to encourage my children to invest                                         ┃
┃                                                                                                                                ┃
┃  • 著者: roberdam                                                                                                              ┃
┃  • スコア: 59                                                                                                                  ┃
┃  • URL: https://roberdam.com/en/dinversiones.html                                                                              ┃
┃                                                                                                                                ┃
┃  5 タイトル: Language models are injective and hence invertible                                                                ┃
┃                                                                                                                                ┃
┃  • 著者: mazsa                                                                                                                 ┃
┃  • スコア: 143                                                                                                                 ┃
┃  • URL: https://arxiv.org/abs/2510.15511                                                                                       ┃
┃                                                                                                                                ┃
┃ 次のいずれかの方法で要約を進められます。                                                                                       ┃
┃                                                                                                                                ┃
┃  • 本文をこちらに貼り付けてください。日本語で要約します。                                                                      ┃
┃  • 私に各記事の本文を取得して要約してほしい場合は、本文の要約を可能にする形で情報を共有してください(例:                       ┃
┃    主要な段落抜粋や結論など)。                                                                                                ┃
┃  • 本文のURLを私が直接読める形で提供していただければ、要約作成プロセスを開始します(現在の環境では直接ウェブを読む機能はなく、 ┃
┃    提供された情報に基づく要約となりますが、本文の要点を教えていただければ正確に要約します)。                                  ┃
┃                                                                                                                                ┃
┃ どう進めましょうか?                                                                                                           ┃
┃                                                                                                                                ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

Read more about:

  • Available toolkits

  • Creating your own tools

 

ツールで組み込みパラメータへのアクセス

ツール内で session_state, dependencies, agent と team のようなエージェント属性にアクセスできます。例えば :

from agno.agent import Agent

def get_shopping_list(session_state: dict) -> str:
    """Get the shopping list."""
    return session_state["shopping_list"]

agent = Agent(tools=[get_shopping_list], session_state={"shopping_list": ["milk", "bread", "eggs"]}, markdown=True)
agent.print_response("What's on my shopping list?", stream=True)

See more in the Tool Built-in Parameters section.

 

MCP ツール

Agno は Model Context Protocol (MCP) ツールをサポートします。一般的な構文は以下のとおりです :

from agno.agent import Agent
from agno.tools.mcp import MCPTools

async def run_mcp_agent():

    # Initialize the MCP tools
    mcp_tools = MCPTools(command=f"uvx mcp-server-git")

    # Connect to the MCP server
    await mcp_tools.connect()

    agent = Agent(tools=[mcp_tools], markdown=True)
    await agent.aprint_response("What is the license for this project?", stream=True)
    ...

💡 Learn more about MCP tools in the MCP tools guide.

 

以上





クラスキャット

最近の投稿

  • Agno 2.x : エージェント – ツール, MCP ツールの使用
  • Agno 2.x : エージェント – ナレッジ (参照可能な知識)
  • Agno 2.x : エージェント – ストレージ
  • Agno 2.x : エージェント – エージェント状態
  • Agno 2.x : エージェント – コンテキスト・エンジニアリング

タグ

AG2 (14) Agno (46) Agno 2.x (11) AutoGen (13) ClassCat Press Release (20) ClassCat TF/ONNX Hub (11) DGL 0.5 (14) Edward (17) FLUX.1 (16) Gemini (20) HuggingFace Transformers 4.5 (10) HuggingFace Transformers 4.29 (9) Keras 2 Examples (98) Keras 2 Guide (16) Keras 3 (10) Keras Release Note (17) Kubeflow 1.0 (10) LangChain (45) LangChain v1.0 (10) LangGraph (24) LangGraph 0.5 (9) MediaPipe 0.8 (11) Model Context Protocol (16) NNI 1.5 (16) OpenAI Cookbook (13) OpenAI platform (10) OpenAI platform 1.x (10) OpenAI ヘルプ (8) TensorFlow 2.0 Advanced Tutorials (33) TensorFlow 2.0 Advanced Tutorials (Alpha) (15) TensorFlow 2.0 Advanced Tutorials (Beta) (16) TensorFlow 2.0 Guide (10) TensorFlow 2.0 Guide (Alpha) (16) TensorFlow 2.0 Guide (Beta) (9) TensorFlow 2.0 Release Note (12) TensorFlow 2.0 Tutorials (20) TensorFlow 2.0 Tutorials (Alpha) (14) TensorFlow 2.0 Tutorials (Beta) (12) TensorFlow 2.4 Guide (24) TensorFlow Deploy (8) TensorFlow Probability (9) TensorFlow Programmer's Guide (22) TensorFlow Release Note (18) TensorFlow Tutorials (33) TF-Agents 0.4 (11)
2025年10月
月 火 水 木 金 土 日
 12345
6789101112
13141516171819
20212223242526
2728293031  
« 9月    
© 2025 ClassCat® AI Research | Powered by Minimalist Blog WordPress Theme