Agent with Knowledge

Query PDF knowledge stored in PgVector with a Vercel v0 agent.

Code

from agno.agent import Agent
from agno.knowledge.knowledge import Knowledge
from agno.models.vercel import V0
from agno.vectordb.pgvector import PgVector

db_url = "postgresql+psycopg://ai:ai@localhost:5532/ai"

knowledge = Knowledge(
    vector_db=PgVector(table_name="recipes", db_url=db_url),
)
# Add content to the knowledge
knowledge.insert(
    url="https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"
)

agent = Agent(model=V0(id="v0-1.0-md"), knowledge=knowledge)
agent.print_response("How to make Thai curry?", markdown=True)

Vercel retired the v0 Model API endpoint (https://api.v0.dev/v1/) that this integration targets, in favor of the Platform API. Requests made with V0 will fail until Agno updates this integration. See Vercel's community announcement.

PgVector defaults to OpenAIEmbedder for embeddings, so this example also needs OPENAI_API_KEY.

Usage

Set up your virtual environment

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

Set your API keys

export V0_API_KEY=xxx
export OPENAI_API_KEY=xxx

Install dependencies

uv pip install -U sqlalchemy psycopg pgvector pypdf openai agno

Run PgVector

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

Run Agent

Save the code above as knowledge.py, then run:

python knowledge.py