Skip to main content
Enable Agno agents to move beyond simple text responses by granting them the ability to query, summarize, and manage relational data directly.

from agno.agent import Agent
from agno.tools.postgres import PostgresTools

# ---------------------------------------------------------------------------
# Create Agent
# ---------------------------------------------------------------------------


# Example 1: Include specific Postgres functions (default behavior - all functions included)
agent = Agent(
    tools=[
        PostgresTools(
            host="localhost",
            port=5532,
            db_name="ai",
            user="ai",
            password="ai",
            table_schema="ai",
        )
    ]
)

# Example 2: Include only read-only operations
agent_readonly = Agent(
    tools=[
        PostgresTools(
            host="localhost",
            port=5532,
            db_name="ai",
            user="ai",
            password="ai",
            table_schema="ai",
            include_tools=[
                "show_tables",
                "describe_table",
                "summarize_table",
                "inspect_query",
            ],
        )
    ]
)

# Example 3: Exclude dangerous operations
agent_safe = Agent(
    tools=[
        PostgresTools(
            host="localhost",
            port=5532,
            db_name="ai",
            user="ai",
            password="ai",
            table_schema="ai",
            exclude_tools=["run_query"],  # Exclude direct query execution
        )
    ]
)

# ---------------------------------------------------------------------------
# Run Agent
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    agent.print_response(
        "List the tables in the database and summarize one of the tables", markdown=True
    )

    agent.print_response("""
    Please run a SQL query to get all sessions in `agno_sessions` created in the last 24 hours and summarize the table.
    """)

Run the Example

# Clone and setup repo
git clone https://github.com/agno-agi/agno.git
cd agno/cookbook/91_tools

# Create and activate virtual environment
./scripts/demo_setup.sh
source .venvs/demo/bin/activate

python postgres_tools.py
For details, see Postgres cookbook.