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 openaiThe 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.
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
| Parameter | Type | Default | Description |
|---|---|---|---|
base_dir | Path | None | Specifies the base directory for operations. Default is None, indicating the current working directory |
safe_globals | dict | None | Dictionary of global variables that are considered safe to use during execution |
safe_locals | dict | None | Dictionary of local variables that are considered safe to use during execution |
restrict_to_base_dir | bool | True | If True, file operations cannot escape base_dir |
Toolkit Functions
| Function | Description |
|---|---|
save_to_file_and_run | This 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_variable | This 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_file | Reads the contents of the file file_name and returns the contents if successful. |
list_files | Returns a list of files in the base directory |
run_python_code | This 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_package | This 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_package | This 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.