KnowledgeTools ツールキットは「思考 → 検索 → 分析」(“Think → Search → Analyze”) サイクルを実装しています。
エージェントが知識ベースから情報を検索、取得して分析することを可能にします。このツールキットは AgentKnowledge と統合され、ユーザに応答する前に関連情報を検索して評価するための構造化ワークフローを提供します。
Agno : ユーザガイド : コンセプト : ツール – 知識ツール
作成 : クラスキャット・セールスインフォメーション
作成日時 : 08/10/2025
バージョン : Agno 1.7.7
* 本記事は docs.agno.com の以下のページを独自に翻訳した上で、補足説明を加えてまとめ直しています :
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。
◆ お問合せ : 下記までお願いします。
- クラスキャット セールス・インフォメーション
- sales-info@classcat.com
- ClassCatJP
Agno ユーザガイド : コンセプト : ツール – 知識ツール
KnowledgeTools ツールキットは、エージェントが知識ベースから情報を検索、取得して分析することを可能にします。このツールキットは AgentKnowledge と統合され、ユーザに応答する前に関連情報を検索して評価するための構造化ワークフローを提供します。
このツールキットは以下をエージェントに可能にする、「思考 → 検索 → 分析」(“Think → Search → Analyze”) サイクルを実装しています :
- 問題全体を考えて検索クエリーを計画します。
- 関連情報を知識ベースで検索します。
- 結果を分析して、それらが十分であるか、追加の検索が必要か判断します。
このアプローチは、エージェントに知識を検索し、評価して合成するツールを与えて、正確な情報を提供するエージェントの能力を大幅に向上させます。
ツールキットは以下のツールを含みます :
- think : 計画、キーワードのブレインストーミング、アプローチの改良のためのスクラッチパッド。これらの思考はエージェント内部に保持され、ユーザには示されません。
- search : 知識ベースに対してクエリーを実行し関連ドキュメントを取得します。
- analyze : 返されたドキュメントが正しく十分であるか評価し、さらなる検索が必要か判断します。
例
KnowledgeTools ツールキットを使用する方法の例が以下です :
from agno.agent import Agent
from agno.embedder.openai import OpenAIEmbedder
from agno.knowledge.url import UrlKnowledge
from agno.models.openai import OpenAIChat
from agno.tools.knowledge import KnowledgeTools
from agno.vectordb.lancedb import LanceDb, SearchType
# Create a knowledge base containing information from a URL
agno_docs = UrlKnowledge(
urls=["https://docs.agno.com/llms-full.txt"],
# Use LanceDB as the vector database and store embeddings in the `agno_docs` table
vector_db=LanceDb(
uri="tmp/lancedb",
table_name="agno_docs",
search_type=SearchType.hybrid,
embedder=OpenAIEmbedder(id="text-embedding-3-small"),
),
)
knowledge_tools = KnowledgeTools(
knowledge=agno_docs,
think=True,
search=True,
analyze=True,
add_few_shot=True,
)
agent = Agent(
model=OpenAIChat(id="gpt-4o"),
tools=[knowledge_tools],
show_tool_calls=True,
markdown=True,
)
if __name__ == "__main__":
# Load the knowledge base, comment after first run
agno_docs.load(recreate=True)
agent.print_response("How do I build multi-agent teams with Agno?", stream=True)
ツールキットは、エージェントがツールを効果的に使用できるように、デフォルトの指示と few-shot サンプルを備えています。それらを設定する方法は以下です :
from agno.tools.knowledge import KnowledgeTools
knowledge_tools = KnowledgeTools(
knowledge=my_knowledge_base,
think=True, # Enable the think tool
search=True, # Enable the search tool
analyze=True, # Enable the analyze tool
add_instructions=True, # Add default instructions
add_few_shot=True, # Add few-shot examples
few_shot_examples=None, # Optional custom few-shot examples
)
以上