File Generation Tools
Generate files in different formats with Agno agents.
Agno provides the FileGenerationTools to generate files in different formats.
from agno.agent import Agent
from agno.db.sqlite import SqliteDb
from agno.models.openai import OpenAIResponses
from agno.tools.file_generation import FileGenerationTools
agent = Agent(
model=OpenAIResponses(id="gpt-5.2"),
db=SqliteDb(db_file="tmp/test.db"),
tools=[FileGenerationTools(output_directory="tmp")],
description="You are a helpful assistant that can generate files in various formats.",
instructions=[
"When asked to create files, use the appropriate file generation tools.",
"Always provide meaningful content and appropriate filenames.",
"Explain what you've created and how it can be used.",
],
markdown=True,
)
response = agent.run(
"Create a PDF report about renewable energy trends in 2024. Include sections on solar, wind, and hydroelectric power."
)
print(response.content)
if response.files:
for file in response.files:
print(f"Generated file: {file.filename} ({file.size} bytes)")
if file.filepath:
print(f"File location: {file.filepath}")Usage
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateInstall dependencies
uv pip install -U openai sqlalchemy reportlab python-docx agnoExport your OpenAI API key
export OPENAI_API_KEY="your_openai_api_key_here"Run Agent
python file_generation.py