Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs-v1.agno.com/llms.txt

Use this file to discover all available pages before exploring further.

DuckDbTools enable an Agent to run SQL and analyze data using DuckDb.

Prerequisites

The following example requires DuckDB library. To install DuckDB, run the following command:
pip install duckdb
For more installation options, please refer to DuckDB documentation.

Example

The following agent will analyze the movies file using SQL and return the result.
cookbook/tools/duckdb_tools.py
from agno.agent import Agent
from agno.tools.duckdb import DuckDbTools

agent = Agent(
    tools=[DuckDbTools()],
    show_tool_calls=True,
    system_message="Use this file for Movies data: https://agno-public.s3.amazonaws.com/demo_data/IMDB-Movie-Data.csv",
)

agent.print_response("What is the average rating of movies?", markdown=True, stream=False)

Toolkit Params

ParameterTypeDefaultDescription
db_pathstr-Specifies the path to the database file.
connectionDuckDBPyConnection-Provides an existing DuckDB connection object.
init_commandsList-A list of initial SQL commands to run on database connection.
read_onlyboolFalseConfigures the database connection to be read-only.
configdict-Configuration options for the database connection.
run_queriesboolTrueDetermines whether to run SQL queries during the operation.
inspect_queriesboolFalseEnables inspection of SQL queries without executing them.
create_tablesboolTrueAllows creation of tables in the database during the operation.
summarize_tablesboolTrueEnables summarization of table data during the operation.
export_tablesboolFalseAllows exporting tables to external formats during the operation.

Toolkit Functions

FunctionDescription
show_tablesFunction to show tables in the database
describe_tableFunction to describe a table
inspect_queryFunction to inspect a query and return the query plan. Always inspect your query before running them.
run_queryFunction that runs a query and returns the result.
summarize_tableFunction to compute a number of aggregates over a table. The function launches a query that computes a number of aggregates over all columns, including min, max, avg, std and approx_unique.
get_table_name_from_pathGet the table name from a path
create_table_from_pathCreates a table from a path
export_table_to_pathSave a table in a desired format (default: parquet). If the path is provided, the table will be saved under that path. Eg: If path is /tmp, the table will be saved as /tmp/table.parquet. Otherwise it will be saved in the current directory
load_local_path_to_tableLoad a local file into duckdb
load_local_csv_to_tableLoad a local CSV file into duckdb
load_s3_path_to_tableLoad a file from S3 into duckdb
load_s3_csv_to_tableLoad a CSV file from S3 into duckdb
create_fts_indexCreate a full text search index on a table
full_text_searchFull text Search in a table column for a specific text/keyword

Developer Resources