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.
"""
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/activateInstall dependencies
uv pip install -U agno "psycopg[binary]" fastapi openai sqlalchemyExport 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:18Clone 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.4Save the workflow
Persist the content-creation-workflow record before loading it:
python cookbook/93_components/save_workflow.pyRun the example
Run the example from the repository root:
python cookbook/93_components/get_workflow.pyFull source: cookbook/93_components/get_workflow.py