ジェネラティブエージェンツの大嶋です。
「AIエージェントキャッチアップ #26 - Agno」という勉強会を開催しました。
generative-agents.connpass.com
アーカイブ動画はこちらです。
Agno
今回は、メモリ・知識・ツールを備えたマルチモーダルエージェントを構築するための軽量ライブラリ「Agno」について、公式ドキュメントを読んだり動かしたりしてみました。
AgnoのGitHubリポジトリはこちらです。
公式ドキュメントはこちらです。
今回のポイント
Agnoの概要
AgnoはLLMエージェントのPythonフレームワークです。
もともと「Phidata」と呼ばれていたフレームワークが「Agno」になったようです。
Agnoの基本的な使い方
Agnoで単純なエージェントを呼び出す例は以下のようになります。
from agno.agent import Agent from agno.models.openai import OpenAIChat agent = Agent( model=OpenAIChat(id="gpt-4o"), description="あなたは優秀なAIアシスタントです。", markdown=True, ) agent.print_response("こんにちは!", stream=True)

ツール・ナレッジの統合
AgnoのAgentにはツールを与えることもできます。
agent = Agent(
:
tools=[DuckDuckGoTools()],
show_tool_calls=True,
:
)
LangChainのように、Agnoでも様々なツールが提供されています。
また、Vector DBを使ってナレッジを与えることもできます。
agent = Agent(
:
knowledge=PDFUrlKnowledgeBase(
urls=["https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"],
vector_db=LanceDb(
uri="tmp/lancedb",
table_name="recipes",
search_type=SearchType.hybrid,
embedder=OpenAIEmbedder(id="text-embedding-3-small"),
),
),
:
)
マルチエージェント
Agnoではマルチエージェントもサポートされています。
たとえば以下のようにしてWebエージェントとFinanceエージェントのチームを作ることができます。
web_agent = Agent(
:
)
finance_agent = Agent(
:
)
agent_team = Agent(
team=[web_agent, finance_agent],
:
)
マルチエージェントの協調の仕方として、以下の3つのモードがサポートされています。
- Route Mode
- Coordinate Mode
- Collaborate Mode
ワークフロー機能
Agnoには、ワークフローを構築する機能もあります。
Agnoが提供するWorkflowクラスを継承したクラスを用意して、runメソッドで自由にワークフローを組むことができます。
from agno.workflow import Workflow class MyWorkflow(Workflow): : def run(self): # Pythonで自由にワークフローを実装
ワークフローでは「session_state」に状態を保存して管理できるようになっています。
その他、Agnoにはトレーシング機能やUIなどもあり、一通りの機能がそろったエージェントフレームワークという印象でした。
次回のご案内
以上、今回は「Agno」をキャッチアップしました。
次回は「AIエージェントキャッチアップ #27 - Second Me」ということで、自分自身のAIを作り上げる「Second Me」がテーマです!
generative-agents.connpass.com
ご興味・お時間ある方はぜひご参加ください!
また、その次の回以降のテーマも募集しているので、気になるエージェントのOSSなどあれば教えてください!