はじめに
Phidataは、AIエージェントの構築と管理に最適なフレームワークで、知識、ツール、記憶機能を備えたエージェントの作成をサポートします。本記事では、Phidataを使ったエージェント構築方法や、主要な機能について解説します。
Phidataの特徴
Phidataの注目すべき機能は以下の通りです:
- エージェントの作成:ツールと知識を持ったAIエージェントを作成可能
- エージェントチームの構築:複数のエージェントを連携させて一括管理
- エージェントUI:直感的なUIでエージェントと対話
- モニタリングと最適化:エージェントのパフォーマンスをリアルタイムで監視・評価
Phidataのインストール
以下のコマンドで、Phidataをインストールします。
pip install -U phidata
必要なAPIキー(OPENAI_API_KEY
)も事前に設定しておく必要があります。
エージェントの構築方法
Web検索エージェント
Web検索を担当するエージェントのサンプルコードを以下に示します。
from phi.agent import Agent
from phi.model.openai import OpenAIChat
from phi.tools.duckduckgo import DuckDuckGo
web_agent = Agent(
name="Web Agent",
model=OpenAIChat(id="gpt-4o"),
tools=[DuckDuckGo()],
instructions=["常にソースを含める"],
show_tool_calls=True,
markdown=True,
)
web_agent.print_response("フランスで何が起こっているのか?", stream=True)
金融データエージェント
株価データやアナリストの推奨情報を取得する金融エージェントです。
from phi.agent import Agent
from phi.model.openai import OpenAIChat
from phi.tools.yfinance import YFinanceTools
finance_agent = Agent(
name="Finance Agent",
model=OpenAIChat(id="gpt-4o"),
tools=[YFinanceTools(stock_price=True, analyst_recommendations=True, company_info=True, company_news=True)],
instructions=["データは表形式で表示する"],
show_tool_calls=True,
markdown=True,
)
finance_agent.print_response("NVDAのアナリスト推奨を要約してください", stream=True)
エージェントチームの構築
異なる役割を持つエージェントを1つのチームにまとめ、連携させることで複雑なタスクを効率的に解決します。
from phi.agent import Agent
from phi.model.openai import OpenAIChat
from phi.tools.duckduckgo import DuckDuckGo
from phi.tools.yfinance import YFinanceTools
agent_team = Agent(
team=[web_agent, finance_agent],
instructions=["常にソースを含める", "データは表形式で表示する"],
show_tool_calls=True,
markdown=True,
)
agent_team.print_response("NVDAに関する最新ニュースと推奨要約を提供してください", stream=True)
高度な機能:推論エージェント
Phidataでは、推論エージェントを使って問題解決の過程を段階的に説明させることができます。
from phi.agent import Agent
from phi.model.openai import OpenAIChat
task = (
"3人の宣教師と3人の食人族が川を渡りたい。"
"2人まで乗れる船があるが、宣教師より食人族が多くなったら宣教師は食べられる。"
)
reasoning_agent = Agent(model=OpenAIChat(id="gpt-4o"), reasoning=True, markdown=True, structured_outputs=True)
reasoning_agent.print_response(task, stream=True, show_full_reasoning=True)
RAGエージェント:トークン節約と応答品質向上
RAGエージェントは、コンテキスト全体を毎回挿入する代わりに、必要な情報だけを知識ベースから取得することで効率化を図ります。
from phi.agent import Agent
from phi.model.openai import OpenAIChat
from phi.embedder.openai import OpenAIEmbedder
from phi.knowledge.pdf import PDFUrlKnowledgeBase
from phi.vectordb.lancedb import LanceDb, SearchType
knowledge_base = PDFUrlKnowledgeBase(
urls=["https://phi-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"],
vector_db=LanceDb(
table_name="recipes",
uri="tmp/lancedb",
search_type=SearchType.vector,
embedder=OpenAIEmbedder(model="text-embedding-3-small"),
),
)
knowledge_base.load()
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
knowledge=knowledge_base,
show_tool_calls=True,
markdown=True,
)
agent.print_response("トムカーガイの作り方は?", stream=True)
まとめ
Phidataは、強力なAIエージェントシステムを迅速に構築・管理できる優れたフレームワークです。公式ドキュメントやフォーラムで詳細を学び、プロジェクトに最適なエージェントを構築してみましょう。
ノートブック