Pinecone Research
RAG для агента и долговременная память на Pinecone.
Метаданные навыка
| Источник | Опциональный — установка: hermes skills install official/research/pinecone-research |
| Путь | optional-skills/research/pinecone-research |
| Версия | 1.0.0 |
| Автор | immuhammadfurqan |
| Лицензия | MIT |
| Зависимости | pinecone-client, langchain-pinecone |
| Платформы | linux, macos, windows |
| Теги | RAG, Pinecone, Memory, Research, Vector Database, Agent, Retrieval |
Справочник: полный SKILL.md
инфо
Ниже — полное определение навыка, которое Hermes Agent загружает при его активации. Именно этот текст агент получает как инструкцию в момент работы навыка.
Pinecone Research — RAG и долговременная память агента
Используй Pinecone как бэкенд генерации с извлечением (RAG) для диалогов агента: сохраняй эмбеддинги, доставай нужный контекст из прошлых сессий и выстраивай долговременную память.
Когда брать этот навык
Бери, когда:
- Строишь RAG-конвейер агента, где векторное хранилище — Pinecone
- Нужна постоянная память, переживающая сессии агента
- Извлечение сочетается с вызовом инструментов
- Исследуешь или прототипируешь семантический поиск
Вместо него бери навык mlops/pinecone, когда:
- Нужен общий справочник по Pinecone (управление индексами, CRUD, гибридный поиск)
- Работаешь над продакшн-инфраструктурой без интеграции с агентом
Быстрый старт
Подготовка
pip install pinecone-client langchain-pinecone langchain-openai
Задай ключ API:
export PINECONE_API_KEY="your-api-key"
Простейший RAG-конвейер
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)
Хорошие практики
- Раздельные пространства имён по сессии или пользователю — изоляция данных для мультиарендных агентов
- Пакетная запись — по 100–200 векторов за раз ради эффективности
- Фильтрация по метаданным — размечай векторы идентификатором сессии, временем, темой
- Чистка старой памяти — удаляй протухшие пространства имён, чтобы не переплачивать
- Serverless — автомасштабирование и оплата по факту
Материалы
- Документация Pinecone: https://docs.pinecone.io
- Интеграция с LangChain: https://python.langchain.com/docs/integrations/vectorstores/pinecone
- Бесплатный тариф: 1 индекс, 100 тысяч векторов (размерность 1536)