126 lines
3.7 KiB
Markdown
126 lines
3.7 KiB
Markdown
---
|
||
title: "Pinecone Research — Agent RAG and long-term memory with Pinecone"
|
||
sidebar_label: "Pinecone Research"
|
||
description: "Agent RAG and long-term memory with Pinecone"
|
||
---
|
||
|
||
{/* This page is auto-generated from the skill's SKILL.md by website/scripts/generate-skill-docs.py. Edit the source SKILL.md, not this page. */}
|
||
|
||
# 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
|
||
|
||
```bash
|
||
pip install pinecone-client langchain-pinecone langchain-openai
|
||
```
|
||
|
||
Set your API key:
|
||
```bash
|
||
export PINECONE_API_KEY="your-api-key"
|
||
```
|
||
|
||
### Basic RAG pipeline
|
||
|
||
```python
|
||
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
|
||
|
||
```python
|
||
# 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
|
||
|
||
- **Pinecone Docs**: https://docs.pinecone.io
|
||
- **LangChain Integration**: https://python.langchain.com/docs/integrations/vectorstores/pinecone
|
||
- **Free Tier**: 1 index, 100K vectors (1536 dimensions)
|