1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

爆速&超軽量!話題のAIエージェントライブラリ『Agno』をclineで簡単に開発・コーディング

Posted at

はじめに

最近話題のAIエージェントライブラリ『Agno』。速度とメモリ効率が抜群との謳い文句。しかし、ドキュメントが英語中心でよくわからない?。安心してください!この記事では、英語が苦手でもストレスなくAgnoのドキュメントを理解し、手軽にAIエージェントを開発・コーディングする方法を簡単に解説します。(方法が簡単という意味じゃなくて、簡単な解説ですいません)

Agnoをclineで攻略!苦手な英語ドキュメントも簡単理解

Agnoはまだまだ日本語での情報が少なく、英語のドキュメントを読み解くのは難しいですよね。そこで活躍するのが、AIアシスタント『cline』です。

以下の手順で簡単にセットアップできます。

  1. Agnoのドキュメントを公式サイトからダウンロードします。(利用規約などを確認してくださいね!)
  2. HTML形式のドキュメントをMarkdownに変換して、余計な情報を削除します。
  3. .clineruleファイルを作成して、clineがドキュメントを参照できるようにします。

具体的には、以下のように記述します。

.clinerule
AIエージェントライブラリのagnoのドキュメントは、ローカルディレクトリdocs/docs.agno.com/にあります。agnoのコーディングの時に参照してください。

これだけで、Agnoのドキュメントをclineが読み解いてくれるようになります。

試しに、Agnoのクラス構成をclineに質問してみましょう。

agno.agent.agent.Agentのコンストラクタの引数を全部解説したドキュメントをつくって

clineがしっかりと日本語の解説ドキュメントを作ってくれました!すごくよく解かる!!

Screenshot from 2025-03-15 13-29-12.png

Agnoで作る!cline頼りの簡単AIエージェント作成法

さらに、clineを使えばAgnoのサンプルコード作成も簡単です。以下の指示をclineに入力するだけで、基本的なチャットボットを作成できます。

agnoを使って基本的なチャットボットを作って。ファイル名はsamplebot.py

clineはAgnoのドキュメントを参照しながら、正確なコードを生成してくれます。非常に便利ですね!

Screenshot from 2025-03-15 13-39-06.png

まとめ

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

    • 説明: モニタリングを停止
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?