ツールキットはエージェントに追加できる関数のコレクションです。
ここでは、ローカル環境対応ツール Docker, File, Python, Shell 等の使い方を説明します。
Agno : ユーザガイド : コンセプト : ツール – ツールキット : ローカル (Docker, File, Python, Shell 等)
作成 : クラスキャット・セールスインフォメーション
作成日時 : 08/04/2025
バージョン : Agno 1.7.7
* 本記事は docs.agno.com の以下のページを独自に翻訳した上で、補足説明を加えてまとめ直しています :
- User Guide : Concepts : Tools – Toolkits : Local : Docker
- User Guide : Concepts : Tools – Toolkits : Local : File
- User Guide : Concepts : Tools – Toolkits : Local : Python
- User Guide : Concepts : Tools – Toolkits : Local : Shell
* サンプルコードの動作確認はしておりますが、必要な場合には適宜、追加改変しています。
* ご自由にリンクを張って頂いてかまいませんが、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)
以上