Python

PythonTools gives an agent the ability to write, save, and run Python code, install packages, and read files in a scoped directory.

PythonTools enable an Agent to write and run python code.

Prerequisites

Create and activate a virtual environment, then install:

uv pip install agno openai

The Agent model uses an OpenAI key, separately from any toolkit provider credentials.

Set OpenAI Key

Set your OPENAI_API_KEY as an environment variable. You can get one from OpenAI.

export OPENAI_API_KEY=sk-***

Example

The following agent will write a python script that creates the fibonacci series, save it to a file, run it and return the result.

cookbook/91_tools/python_tools.py
from agno.agent import Agent
from agno.tools.python import PythonTools

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

PythonTools can run arbitrary Python code and install packages with no command restriction. Keep human supervision for untrusted prompts, and run inside a sandbox (container, VM, or Daytona) for untrusted code execution.

Toolkit Params

ParameterTypeDefaultDescription
base_dirPathNoneSpecifies the base directory for operations. Default is None, indicating the current working directory
safe_globalsdictNoneDictionary of global variables that are considered safe to use during execution
safe_localsdictNoneDictionary of local variables that are considered safe to use during execution
restrict_to_base_dirboolTrueIf True, file operations cannot escape base_dir

Toolkit Functions

FunctionDescription
save_to_file_and_runThis function saves Python code to a file called file_name and then runs it. If successful, returns the value of variable_to_return if provided otherwise returns a success message. If failed, returns an error message. Make sure the file_name ends with .py
run_python_file_return_variableThis function runs code in a Python file. If successful, returns the value of variable_to_return if provided otherwise returns a success message. If failed, returns an error message.
read_fileReads the contents of the file file_name and returns the contents if successful.
list_filesReturns a list of files in the base directory
run_python_codeThis function runs Python code in the current environment. If successful, returns the value of variable_to_return if provided otherwise returns a success message. If failed, returns an error message.
pip_install_packageThis function installs a package using pip in the current environment. If successful, returns a success message. If failed, returns an error message.
uv_pip_install_packageThis function installs a package using uv and pip in the current environment. If successful, returns a success message. If failed, returns an error message.

You can use include_tools or exclude_tools to modify the list of tools the agent has access to. Learn more about selecting tools.

Developer Resources