website/docs/user-guide/skills/optional/research/research-pinecone-research.md
Agent RAG and long-term memory with Pinecone.
| 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 |
:::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. :::
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.
Use when:
Use the mlops/pinecone skill instead when:
pip install pinecone-client langchain-pinecone langchain-openai
Set your API key:
export PINECONE_API_KEY="your-api-key"
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?")
# 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)