Agno : コンセプト :- ツールキット : ローカル (Docker, File, Python, Shell 等)

ツールキットはエージェントに追加できる関数のコレクションです。
ここでは、ローカル環境対応ツール Docker, File, Python, Shell 等の使い方を説明します。

Agno : ユーザガイド : コンセプト : ツール – ツールキット : ローカル (Docker, File, Python, Shell 等)

作成 : クラスキャット・セールスインフォメーション
作成日時 : 08/04/2025
バージョン : Agno 1.7.7

* 本記事は docs.agno.com の以下のページを独自に翻訳した上で、補足説明を加えてまとめ直しています :

* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、sales-info@classcat.com までご一報いただけると嬉しいです。

 

 

Agno ユーザガイド : コンセプト : ツール – ツールキット : ローカル : Docker

DockerTools はエージェントが Docker コンテナ、イメージ、ボリュームとネットワークと相互作用することを可能にします。

 

前提条件

Docker ツールは docker Python パッケージが必要です。またシステムに Docker がインストールされて実行されている必要があります。

pip install docker

 

次の例は Docker リソースを管理できるエージェントを作成します :

cookbook/tools/docker_tools.py

import sys
from agno.agent import Agent

try:
    from agno.tools.docker import DockerTools

    docker_tools = DockerTools(
        enable_container_management=True,
        enable_image_management=True,
        enable_volume_management=True,
        enable_network_management=True,
    )

    # Create an agent with Docker tools
    docker_agent = Agent(
        name="Docker Agent",
        instructions=[
            "You are a Docker management assistant that can perform various Docker operations.",
            "You can manage containers, images, volumes, and networks.",
        ],
        tools=[docker_tools],
        show_tool_calls=True,
        markdown=True,
    )

    # Example: List all running Docker containers
    docker_agent.print_response("List all running Docker containers", stream=True)

    # Example: Pull and run an NGINX container
    docker_agent.print_response("Pull the latest nginx image", stream=True)
    docker_agent.print_response("Run an nginx container named 'web-server' on port 8080", stream=True)

except ValueError as e:
    print(f"\n❌ Docker Tool Error: {e}")
    print("\n🔍 Troubleshooting steps:")

    if sys.platform == "darwin":  # macOS
        print("1. Ensure Docker Desktop is running")
        print("2. Check Docker Desktop settings")
        print("3. Try running 'docker ps' in terminal to verify access")

    elif sys.platform == "linux":
        print("1. Check if Docker service is running:")
        print("   systemctl status docker")
        print("2. Make sure your user has permissions to access Docker:")
        print("   sudo usermod -aG docker $USER")

    elif sys.platform == "win32":
        print("1. Ensure Docker Desktop is running")
        print("2. Check Docker Desktop settings")

出力

 

Agno ユーザガイド : コンセプト : ツール – ツールキット : ローカル : File

FileTools はエージェントがローカルファイルシステム上のファイルの読む書きを可能にします。

 

次のエージェントは回答を生成してそれをファイルに保存します。

cookbook/tools/file_tools.py

from agno.agent import Agent
from agno.tools.file import FileTools

agent = Agent(tools=[FileTools()], show_tool_calls=True)
agent.print_response("What is the most advanced LLM currently? Save the answer to a file.", markdown=True)

 

Agno ユーザガイド : コンセプト : ツール – ツールキット : ローカル : Python

PythonTools はエージェントが python コードを作成して実行することを可能にします。

 

次のエージェントは、フィボナッチ数列を作成し、ファイルに保存し、実行して結果を返す、python スクリプトを作成します。

cookbook/tools/python_tools.py

from agno.agent import Agent
from agno.tools.python import PythonTools

agent = Agent(tools=[PythonTools()], show_tool_calls=True)
agent.print_response("Write a python script for fibonacci series and display the result till the 10th number")

 

Agno ユーザガイド : コンセプト : ツール – ツールキット : ローカル : Shell

ShellTools はエージェントがシェルを操作してコマンドを実行することを可能にします。

Note : Mention your OS to the agent to make sure it runs the correct command.

 

次のエージェントはシェルコマンドを実行して現在のディレクトリの内容を表示します。

cookbook/tools/shell_tools.py

from agno.agent import Agent
from agno.tools.shell import ShellTools

agent = Agent(tools=[ShellTools()], show_tool_calls=True)
agent.print_response("Show me the contents of the current directory", markdown=True)

 

以上