Load Workflow from Database

Fetch a stored workflow from PostgresDb with get_workflow_by_id and run it, with get_workflows shown for listing all.

Demonstrates loading a workflow from the database by ID and running it.

get_workflow.py
"""
Load Workflow from Database
===========================

Demonstrates loading a workflow from the database by ID and running it.
"""

from agno.db.postgres import PostgresDb
from agno.workflow.workflow import get_workflow_by_id, get_workflows  # noqa: F401

# ---------------------------------------------------------------------------
# Create Database Client
# ---------------------------------------------------------------------------
db = PostgresDb(db_url="postgresql+psycopg://ai:ai@localhost:5532/ai")

# ---------------------------------------------------------------------------
# Run Workflow Load Example
# ---------------------------------------------------------------------------
if __name__ == "__main__":
    workflow = get_workflow_by_id(db=db, id="content-creation-workflow")

    if workflow:
        workflow.print_response(input="AI trends in 2024", markdown=True)
    else:
        print("Workflow not found")

    # You can also get all workflows from the database
    # workflows = get_workflows(db=db)
    # for workflow in workflows:
    #     print(workflow)

Run the Example

Set up your virtual environment

uv venv --python 3.12
source .venv/bin/activate

Install dependencies

uv pip install -U agno "psycopg[binary]" fastapi openai sqlalchemy

Export your API keys

export OPENAI_API_KEY="your_openai_api_key_here"

Run PgVector

docker run -d \
  -e POSTGRES_DB=ai \
  -e POSTGRES_USER=ai \
  -e POSTGRES_PASSWORD=ai \
  -e PGDATA=/var/lib/postgresql \
  -v pgvolume:/var/lib/postgresql \
  -p 5532:5432 \
  --name pgvector \
  agnohq/pgvector:18

Clone Agno

Clone the pinned Agno source and run the remaining commands from its root:

git clone https://github.com/agno-agi/agno.git
cd agno
git checkout v3.0.4

Save the workflow

Persist the content-creation-workflow record before loading it:

python cookbook/93_components/save_workflow.py

Run the example

Run the example from the repository root:

python cookbook/93_components/get_workflow.py

Full source: cookbook/93_components/get_workflow.py