【新生Agno】旧Phidataが進化!Pythonで高速・軽量な自律型マルチエージェントを構築する実践ガイド

はじめに

近年、LLM(大規模言語モデル)の進化に伴い、単一のAIとチャットするだけでなく、複数のAIが協調して複雑なタスクを自律的に遂行する「「マルチエージェントシステム」」が注目を浴びています。

そんな中、人気を集めていたAIエージェントフレームワーク「「Phidata」」が、2025年に「「Agno」」へと大規模なリブランディングを遂げました。Agnoは、従来のPhidataの強みであった「「シンプルさ」」や「「開発者フレンドリー」」を継承しつつ、さらに高速・軽量で拡張性の高い自律型エージェント開発環境を提供しています。

本記事では、新生Agnoの概要、他の代表的なフレームワークとの違い、そしてPythonを用いた実践的なマルチエージェントの構築手順までを分かりやすく解説します。


1. Agno(旧Phidata)とは?

Agno(旧Phidata)は、Pythonで自律型AIエージェントを迅速に構築するためのオープンソースフレームワークです。

他のフレームワーク(例えば、複雑な状態遷移をグラフで定義するLangGraphや、イベント駆動に特化したAutoGen v0.4など)と比較した時、Agnoの最大の特徴は「「圧倒的なシンプルさと読みやすさ(Pythonic)」」にあります。

Agnoの主な特徴

  • 高速かつ軽量: 余計な抽象化レイヤーを極限まで排除しており、起動や処理のオーバーヘッドが非常に小さい。
  • マルチエージェントのサポート: 「チーム(Team)」という概念を用い、異なる役割やツールを持った複数のエージェントを直感的に連携させられます。
  • 豊富な組み込みツール: Web検索(DuckDuckGo、Google)、データベース連携、ファイナンスデータ解析(YFinance)などのツールが最初から容易に導入可能。
  • モデル非依存: OpenAIはもちろん、Anthropic、Google Gemini、さらにはOllamaなどを用いたローカルLLMまで、柔軟に切り替えることができます。

2. 開発環境の構築とインストール

まずは、Agnoを使用するための基本的な開発環境を構築しましょう。Python 3.10以上が推奨されています。

必要なライブラリのインストール

ターミナルを開き、以下のコマンドを実行します。今回はAgno本体のほか、動作確認で使用するOpenAI、DuckDuckGo、YFinanceの拡張パッケージも同時にインストールします。

pip install -U agno openai duckduckgo-search yfinance

注意: agnoは旧パッケージ名であるphidataから移行したため、旧バージョンのphidataがインストールされている場合は、あらかじめ pip uninstall phidata でアンインストールしておくことをおすすめします。

APIキーの設定

エージェントにOpenAIのモデルを使用させるため、環境変数にAPIキーを設定します。

macOS/Linuxの場合:

export OPENAI_API_KEY="your-openai-api-key-here"

Windows (PowerShell) の場合:

$env:OPENAI_API_KEY="your-openai-api-key-here"

3. 実践:マルチエージェントシステムの構築

ここでは、Agnoの本領である「「マルチエージェント」」の協調動作を実装します。 今回は例として、最新の市場ニュースを検索する「「Web検索エージェント」」と、特定の株価情報を分析する「「ファイナンス分析エージェント」」を束ねる「「投資調査アシスタント・チーム」」を構築してみましょう。

以下のソースコードを app.py として保存します。

import os
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.tools.yfinance import YFinanceTools

# 1. Web検索エージェントの定義
web_search_agent = Agent(
    name="Web Search Agent",
    role="インターネットから最新の情報を検索・収集する専門家",
    model=OpenAIChat(id="gpt-4o-mini"),
    tools=[DuckDuckGoTools()],
    instructions=["検索結果は常に信頼できる情報源から引用し、ソースのURLや参照元を明記してください。"],
    show_tool_calls=True,
    markdown=True,
)

# 2. ファイナンス分析エージェントの定義
finance_agent = Agent(
    name="Finance Agent",
    role="株価情報や財務データを分析する財務専門家",
    model=OpenAIChat(id="gpt-4o-mini"),
    tools=[YFinanceTools(stock_price=True, analyst_recommendations=True, company_info=True)],
    instructions=["データを表形式(Markdown Table)で整理し、分かりやすく視覚化してください。"],
    show_tool_calls=True,
    markdown=True,
)

# 3. マルチエージェント(チーム)の定義
agent_team = Agent(
    team=[web_search_agent, finance_agent],
    model=OpenAIChat(id="gpt-4o-mini"),
    instructions=[
        "Web Search Agent と Finance Agent の能力を組み合わせて回答してください。",
        "まずFinance Agentに該当株のデータを分析させ、その後Web Search Agentで最新ニュースを検索・マージしてください。"
    ],
    show_tool_calls=True,
    markdown=True,
)

# チームに指示を出して実行
if __name__ == "__main__":
    agent_team.print_response(
        "NVIDIA (NVDA) の最新の株価、アナリストの推奨度、および最近の重要なAI関連ニュースを要約してください。",
        stream=True
    )

コードの解説

  1. Agent クラスの定義: 各エージェントに name(名前)、role(役割)、model(使用するLLM)、および tools(エージェントに持たせる道具)を指定するだけの非常にシンプルな構造です。
  2. team 引数: 複数のエージェントをリスト形式で渡すことで、メインの Agent がチームリーダーの役割を果たし、指示の内容に応じて適切な専門エージェントへタスクを自動で割り振ります。
  3. print_response: 実行結果をターミナルにマークダウン形式でストリーミング表示します。

Agno公式ドキュメントでは、他にもSlack、PostgreSQL、GitHubなどの各種外部ツール(Tools)のインテグレーション方法が詳しく紹介されています。


4. トラブルシューティング:開発時によくあるエラーと対処法

Agnoを用いた開発中に発生しやすい代表的なエラーと、その解決方法について解説します。

エラー1: ModuleNotFoundError: No module named 'phidata' もしくは名前衝突

旧Phidata時代のソースコードを再利用したり、古いブログ記事を参考にしたりすると、インポートエラーが発生します。

  • 原因: 2025年のリブランディングにより、インポート元が phidata から agno に完全に移行したため。
  • 解決策:
    # ❌ 誤り(旧バージョン)
    from phidata.agent import Agent
    
    # ⭕ 正しい(新バージョン)
    from agno.agent import Agent
    
    ローカル環境に古い phidata が残っている場合は、一度 pip uninstall phidata を実行し、改めて pip install -U agno を実行してください。

エラー2: APIキーの未設定エラー

プログラム実行時に「「APIキーが見つかりません」」という旨のエラーが出力される。

  • 原因: 環境変数 OPENAI_API_KEY が正しくロードされていない。
  • 解決策: コードの冒頭に以下のように直接設定するか、.env ファイルを読み込ませる処理を記述してください。
    import os
    # コード内で直接指定する場合(テスト用。本番環境でのハードコーディングは非推奨)
    os.environ["OPENAI_API_KEY"] = "sk-..."
    
    プロジェクトルートに .env ファイルを作成し、python-dotenv などのライブラリを用いて起動時に読み込むのがより安全で堅牢な手法です。

5. まとめ

「「Agno」」は、複雑化しがちなAIエージェント開発において、Python本来の直感的でシンプルな書き方を極限まで維持した優秀なフレームワークです。

LangGraphやAutoGenのような「高度な状態遷移やループの厳密な定義」が必要ないユースケースであれば、Agnoを使用することで開発工数を大幅に削減し、高速・軽量なAIプロダクトを構築できます。

ぜひ今回の実践ガイドを参考に、独自の自律型マルチエージェントを構築し、業務効率化や新規AIサービスの開発に役立ててみてください!