Managed Vector Databases: Pinecone
Pinecone is a fully managed, serverless vector database for production workloads where you want zero infrastructure management.
"""
Managed Vector Databases: Pinecone
====================================
Pinecone is a fully managed, serverless vector database for
production workloads where you want zero infrastructure management.
Features:
- Fully managed, serverless option available
- Automatic scaling and high availability
- Metadata filtering
- Namespaces for multi-tenancy
Requires: pip install pinecone
See also: 01_qdrant.py for recommended default, 04_pgvector.py for PostgreSQL.
"""
from os import getenv
from agno.agent import Agent
from agno.knowledge.embedder.openai import OpenAIEmbedder
from agno.knowledge.knowledge import Knowledge
from agno.models.openai import OpenAIResponses
# ---------------------------------------------------------------------------
# Pinecone Setup
# ---------------------------------------------------------------------------
try:
from agno.vectordb.pineconedb import PineconeDb
knowledge_pinecone = Knowledge(
vector_db=PineconeDb(
name="knowledge-demo",
api_key=getenv("PINECONE_API_KEY"),
embedder=OpenAIEmbedder(id="text-embedding-3-small"),
),
)
except ImportError:
knowledge_pinecone = None
print("Pinecone not installed. Run: pip install pinecone")
# ---------------------------------------------------------------------------
# Run Demo
# ---------------------------------------------------------------------------
if __name__ == "__main__":
if knowledge_pinecone:
print("\n" + "=" * 60)
print("Pinecone: managed serverless vector database")
print("=" * 60 + "\n")
knowledge_pinecone.insert(
url="https://agno-public.s3.amazonaws.com/recipes/ThaiRecipes.pdf"
)
agent = Agent(
model=OpenAIResponses(id="gpt-5.2"),
knowledge=knowledge_pinecone,
search_knowledge=True,
markdown=True,
)
agent.print_response("What Thai recipes do you know?", stream=True)
else:
print("Skipping demo: Pinecone not installed.")The current PineconeDb constructor requires dimension and spec. Add them to the retained source’s constructor before running:
from pinecone import ServerlessSpec
knowledge_pinecone = Knowledge(
vector_db=PineconeDb(
name="knowledge-demo",
dimension=1536,
spec=ServerlessSpec(cloud="aws", region="us-east-1"),
api_key=getenv("PINECONE_API_KEY"),
embedder=OpenAIEmbedder(id="text-embedding-3-small"),
),
)The dimension matches the default output of text-embedding-3-small. Choose a supported region for your project; an existing knowledge-demo index must have a compatible dimension.
Run the Example
Set up your virtual environment
uv venv --python 3.12
source .venv/bin/activateInstall dependencies
uv pip install -U agno beautifulsoup4 openai pinecone==5.4.2 pypdfExport your API keys
export OPENAI_API_KEY="your_openai_api_key_here"
export PINECONE_API_KEY="your_pinecone_api_key_here"Run the example
Save the code above as managed.py, then run:
python managed.pyFull source: cookbook/07_knowledge/05_integrations/vector_dbs/03_managed.py