Skip to main content

Pinecone Research

Agent RAG and long-term memory with Pinecone.

Skill metadata

SourceOptional — install with hermes skills install official/research/pinecone-research
Pathoptional-skills/research/pinecone-research
Version1.0.0
Authorimmuhammadfurqan
LicenseMIT
Dependenciespinecone-client, langchain-pinecone
Platformslinux, macos, windows
TagsRAG, Pinecone, Memory, Research, Vector Database, Agent, Retrieval

Reference: full SKILL.md

info

The following is the complete skill definition that Hermes loads when this skill is triggered. This is what the agent sees as instructions when the skill is active.

Pinecone Research — Agent RAG & Long-Term Memory

Use Pinecone as a retrieval-augmented generation (RAG) backend for agent conversations: persist embeddings, retrieve relevant context from past sessions, and build long-term memory.

When to use this skill

Use when:

  • Building agent RAG pipelines with Pinecone as the vector store
  • Need persistent long-term memory across agent sessions
  • Combining retrieval with agent tool use
  • Researching or prototyping semantic search workflows

Use the mlops/pinecone skill instead when:

  • Need a general Pinecone reference (index management, CRUD, hybrid search)
  • Working on production infrastructure without agent integration

Quick start

Setup

pip install pinecone-client langchain-pinecone langchain-openai

Set your API key:

export PINECONE_API_KEY="your-api-key"

Basic RAG pipeline

from pinecone import Pinecone, ServerlessSpec
from langchain_pinecone import PineconeVectorStore
from langchain_openai import OpenAIEmbeddings

# Initialize Pinecone
pc = Pinecone(api_key=os.environ["PINECONE_API_KEY"])

# Create or connect to index
index_name = "agent-memory"
if index_name not in [i.name for i in pc.list_indexes()]:
pc.create_index(
name=index_name,
dimension=1536,
metric="cosine",
spec=ServerlessSpec(cloud="aws", region="us-east-1"),
)

# Build vector store
vectorstore = PineconeVectorStore.from_documents(
documents=docs,
embedding=OpenAIEmbeddings(),
index_name=index_name,
)

# Retrieve relevant context
retriever = vectorstore.as_retriever(search_kwargs={"k": 5})
results = retriever.invoke("What did the agent discuss yesterday?")

Namespace-based session memory

# Store per-session memory
vectorstore = PineconeVectorStore(
index=pc.Index(index_name),
embedding=OpenAIEmbeddings(),
namespace=f"session-{session_id}",
)

# Query across all sessions (no namespace filter)
all_memory = PineconeVectorStore(
index=pc.Index(index_name),
embedding=OpenAIEmbeddings(),
)
results = all_memory.similarity_search("relevant query", k=10)

Best practices

  1. Namespace by session or user — isolate data for multi-tenant agents
  2. Batch upserts — 100–200 vectors per batch for efficiency
  3. Metadata filtering — tag vectors with session ID, timestamp, topic
  4. Prune old memory — delete stale namespaces to control costs
  5. Use serverless — auto-scaling, pay-per-use pricing

Resources