はじめに
最近話題のAIエージェントライブラリ『Agno』。速度とメモリ効率が抜群との謳い文句。しかし、ドキュメントが英語中心でよくわからない?。安心してください!この記事では、英語が苦手でもストレスなくAgnoのドキュメントを理解し、手軽にAIエージェントを開発・コーディングする方法を簡単に解説します。(方法が簡単という意味じゃなくて、簡単な解説ですいません)
Agnoをclineで攻略!苦手な英語ドキュメントも簡単理解
Agnoはまだまだ日本語での情報が少なく、英語のドキュメントを読み解くのは難しいですよね。そこで活躍するのが、AIアシスタント『cline』です。
以下の手順で簡単にセットアップできます。
- Agnoのドキュメントを公式サイトからダウンロードします。(利用規約などを確認してくださいね!)
- HTML形式のドキュメントをMarkdownに変換して、余計な情報を削除します。
-
.clinerule
ファイルを作成して、clineがドキュメントを参照できるようにします。
具体的には、以下のように記述します。
AIエージェントライブラリのagnoのドキュメントは、ローカルディレクトリdocs/docs.agno.com/にあります。agnoのコーディングの時に参照してください。
これだけで、Agnoのドキュメントをclineが読み解いてくれるようになります。
試しに、Agnoのクラス構成をclineに質問してみましょう。
agno.agent.agent.Agentのコンストラクタの引数を全部解説したドキュメントをつくって
clineがしっかりと日本語の解説ドキュメントを作ってくれました!すごくよく解かる!!
Agnoで作る!cline頼りの簡単AIエージェント作成法
さらに、clineを使えばAgnoのサンプルコード作成も簡単です。以下の指示をclineに入力するだけで、基本的なチャットボットを作成できます。
agnoを使って基本的なチャットボットを作って。ファイル名はsamplebot.py
clineはAgnoのドキュメントを参照しながら、正確なコードを生成してくれます。非常に便利ですね!
まとめ
Agnoとclineを組み合わせることで、英語ドキュメントへの苦手意識を克服し、効率よくAIエージェント開発を進めることができます。ぜひあなたもclineを使ってAgnoを試してみてください!
感想や質問はコメント欄でお待ちしています。
参考までに、作ってもらったドキュメントも貼っておきますね。
Agentクラスのコンストラクタパラメータ解説
基本設定
モデルと識別子
-
model
(Optional[Model]): エージェントが使用する言語モデル -
name
(Optional[str]): エージェントの名前 -
agent_id
(Optional[str]): エージェントのUUID (未設定の場合は自動生成) -
agent_data
(Optional[Dict[str, Any]]): エージェントに関連付けられたメタデータ
プロンプト設定
-
description
(Optional[str]): システムメッセージの先頭に追加されるエージェントの説明 -
goal
(Optional[str]): タスクの目標 -
instructions
(Optional[Union[str, List[str], Callable]]): エージェントへの指示リスト -
expected_output
(Optional[str]): エージェントから期待される出力形式 -
introduction
(Optional[str]): 実行開始時にチャット履歴に追加される自己紹介文 -
markdown
(bool): True の場合、出力をマークダウン形式で整形する指示を追加 (デフォルト: False)
セッション管理
セッション設定
-
session_id
(Optional[str]): セッションUUID (未設定の場合は自動生成) -
session_name
(Optional[str]): セッション名 -
session_state
(Optional[Dict[str, Any]]): セッション状態(データベースに永続化)
ユーザー情報
-
user_id
(Optional[str]): エージェントと対話するユーザーのID -
user_data
(Optional[Dict[str, Any]]): ユーザーに関連付けられたメタデータ
拡張機能
ツール
-
tools
(Optional[List[Union[Toolkit, Callable, Function]]]): モデルに提供されるツールのリスト -
show_tool_calls
(bool): ツール呼び出しをエージェントのレスポンスに表示 (デフォルト: False) -
tool_call_limit
(Optional[int]): 許可される最大ツール呼び出し回数 -
tool_choice
(Optional[Union[str, Dict[str, Any]]]): モデルが呼び出すツールの制御
知識とメモリ
-
knowledge
(Optional[AgentKnowledge]): エージェントの知識ベース -
memory
(Optional[AgentMemory]): エージェントのメモリ -
storage
(Optional[AgentStorage]): エージェントのストレージ -
add_references
(bool): 知識ベースからの参照をユーザープロンプトに追加 (デフォルト: False) -
references_format
(Literal["json", "yaml"]): 参照のフォーマット (デフォルト: "json")
チーム機能
-
team
(Optional[List[Agent]]): このエージェントがタスクを移譲できるエージェントチーム -
team_data
(Optional[Dict[str, Any]]): チームメンバー間で共有されるデータ -
role
(Optional[str]): チームにおけるエージェントの役割 -
respond_directly
(bool): True の場合、メンバーエージェントがユーザーに直接応答 (デフォルト: False)
システムメッセージ設定
メッセージ制御
-
system_message
(Optional[Union[str, Callable, Message]]): システムメッセージを文字列または関数として提供 -
system_message_role
(str): システムメッセージの役割 (デフォルト: "system") -
create_default_system_message
(bool): True の場合、エージェント設定から既定のシステムメッセージを作成 (デフォルト: True) -
user_message
(Optional[Union[List, Dict, str, Callable, Message]]): ユーザーメッセージの設定 -
user_message_role
(str): ユーザーメッセージの役割 (デフォルト: "user")
履歴と状態
-
add_history_to_messages
(bool): チャット履歴をメッセージに追加 (デフォルト: False) -
num_history_responses
(int): 追加する履歴レスポンスの数 (デフォルト: 3) -
add_state_in_messages
(bool): セッション状態変数をメッセージに追加 (デフォルト: False)
エラー処理とモニタリング
リトライ設定
-
retries
(int): 試行回数 (デフォルト: 0) -
delay_between_retries
(int): リトライ間の遅延秒数 (デフォルト: 1) -
exponential_backoff
(bool): True の場合、リトライ間の遅延を指数関数的に増加 (デフォルト: False)
デバッグと監視
-
debug_mode
(bool): デバッグログを有効化 (デフォルト: False) -
monitoring
(bool): agno.comでのエージェント情報のモニタリングを有効化 (デフォルト: False) -
telemetry
(bool): 最小限のテレメトリログを有効化 (デフォルト: True)
出力制御
レスポンス設定
-
response_model
(Optional[Type[BaseModel]]): レスポンスをPydanticモデルとして取得 -
parse_response
(bool): True の場合、レスポンスをresponse_modelに変換 (デフォルト: True) -
structured_outputs
(bool): サポートされている場合、モデル強制の構造化出力を使用 (デフォルト: False) -
save_response_to_file
(Optional[str]): レスポンスをファイルに保存 -
stream
(Optional[bool]): エージェントからのレスポンスをストリーミング -
stream_intermediate_steps
(bool): エージェントからの中間ステップをストリーミング (デフォルト: False)
Agentクラスのメソッド解説
基本実行メソッド
run関連
-
run(input_str: str, **kwargs) -> str
- 説明: エージェントにタスクを実行させる基本メソッド
- 引数:
- input_str: 実行するタスクの説明や指示
- kwargs: 追加のパラメータ(stream、response_modelなど)
- 戻り値: エージェントからの応答文字列
-
arun(input_str: str, **kwargs) -> str
- 説明: runの非同期バージョン
- 引数: runと同じ
- 戻り値: エージェントからの応答文字列(非同期)
レスポンス出力
-
print_response(input_str: str, **kwargs) -> None
- 説明: エージェントの応答を直接コンソールに出力
- 引数:
- input_str: 実行するタスクの説明や指示
- kwargs: 追加のパラメータ(stream、response_modelなど)
-
get_response(input_str: str, **kwargs) -> Dict
- 説明: エージェントの応答を辞書形式で取得
- 引数: runと同じ
- 戻り値: 応答内容とメタデータを含む辞書
セッション管理
状態管理
-
save_state() -> None
- 説明: 現在のセッション状態を保存
-
load_state() -> None
- 説明: 保存されたセッション状態を読み込み
履歴管理
-
add_to_history(message: Union[str, Dict]) -> None
- 説明: チャット履歴にメッセージを追加
- 引数: 追加するメッセージ(文字列または辞書)
-
clear_history() -> None
- 説明: チャット履歴をクリア
ツールと知識管理
ツール操作
-
add_tool(tool: Union[Toolkit, Callable, Function]) -> None
- 説明: エージェントに新しいツールを追加
- 引数: 追加するツール
-
remove_tool(tool_name: str) -> None
- 説明: 指定した名前のツールを削除
- 引数: 削除するツールの名前
知識操作
-
add_knowledge(knowledge: AgentKnowledge) -> None
- 説明: エージェントに新しい知識を追加
- 引数: 追加する知識オブジェクト
-
search_knowledge(query: str, **kwargs) -> List[Dict]
- 説明: 知識ベースから情報を検索
- 引数:
- query: 検索クエリ
- kwargs: 検索オプション
- 戻り値: 検索結果のリスト
チーム連携
チーム管理
-
add_team_member(agent: Agent) -> None
- 説明: チームに新しいエージェントを追加
- 引数: 追加するエージェント
-
remove_team_member(agent_id: str) -> None
- 説明: チームから指定したエージェントを削除
- 引数: 削除するエージェントのID
タスク移譲
-
transfer_task(task: str, agent_id: str) -> str
- 説明: タスクを他のチームメンバーに移譲
- 引数:
- task: 移譲するタスクの説明
- agent_id: タスクを移譲するエージェントのID
- 戻り値: 移譲先エージェントからの応答
モニタリングとデバッグ
ログ管理
-
enable_debug() -> None
- 説明: デバッグモードを有効化
-
disable_debug() -> None
- 説明: デバッグモードを無効化
モニタリング
-
start_monitoring() -> None
- 説明: agno.comでのモニタリングを開始
-
stop_monitoring() -> None
- 説明: モニタリングを停止