Agent with Knowledge

Load a PDF into PgVector and query it with a Llama agent.

Code

from agno.agent import Agent
from agno.knowledge.knowledge import Knowledge
from agno.models.meta import Llama
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=Llama(id="Llama-4-Maverick-17B-128E-Instruct-FP8"), knowledge=knowledge
)
agent.print_response("How to make Thai curry?", markdown=True)

These examples require access to the Meta Llama API, an API key, and the chosen model enabled for your account. Check the model catalog while signed in, and replace the example ID if your account offers a different compatible model. Installing llama-api-client alone does not grant API access.

Usage

Set up your virtual environment

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

Set your API keys

export LLAMA_API_KEY=YOUR_API_KEY
export OPENAI_API_KEY=YOUR_API_KEY

Install dependencies

uv pip install llama-api-client sqlalchemy "psycopg[binary]" 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 \
  -v pgvolume:/var/lib/postgresql \
  -p 5532:5432 \
  --name pgvector \
  agnohq/pgvector:18

Run Agent

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

python knowledge.py