Pinecone Research
Agent RAG and long-term memory with Pinecone.
Skill metadata
| Source | Optional — install with hermes skills install official/research/pinecone-research |
| Path | optional-skills/research/pinecone-research |
| Version | 1.0.0 |
| Author | immuhammadfurqan |
| License | MIT |
| Dependencies | pinecone-client, langchain-pinecone |
| Platforms | linux, macos, windows |
| Tags | RAG, 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
- Namespace by session or user — isolate data for multi-tenant agents
- Batch upserts — 100–200 vectors per batch for efficiency
- Metadata filtering — tag vectors with session ID, timestamp, topic
- Prune old memory — delete stale namespaces to control costs
- Use serverless — auto-scaling, pay-per-use pricing
Resources
- Pinecone Docs: https://docs.pinecone.io
- LangChain Integration: https://python.langchain.com/docs/integrations/vectorstores/pinecone
- Free Tier: 1 index, 100K vectors (1536 dimensions)