Passo-a-passo detalhado do skill, referenciando as fases cognitivas:
1SENSE — Análise de documentos e requisitos
Coletar documentos fonte via mcp-filesystem
Selecionar modelo e vector store baseado no budget e latência
Estimar custo: `total_chars / 4 × custo_por_1M_tokens`
2CONTEXTUALIZE — Definir estratégia de chunking
Escolher baseado no tipo de documento:
Textos narrativos → Semantic chunking (10-20% recall improvement)
Documentação estruturada → Recursive chunking (`\n\n → \n → . → espaço`)
Código-fonte → Chunking por função/classe (usar tree-sitter)
3HYPOTHESIZE — Configurar parâmetros
```python
CHUNK_SIZE = 512 # tokens (ajustar por tipo de conteúdo)
CHUNK_OVERLAP = 64 # 12.5% overlap para preservar contexto
EMBEDDING_MODEL = "text-embedding-3-large" # ou "embed-multilingual-v3.0"
BATCH_SIZE = 100 # vetores por request à API
```
```python
from langchain.text_splitter import RecursiveCharacterTextSplitter
splitter = RecursiveCharacterTextSplitter(chunk_size=512, chunk_overlap=64)
chunks = splitter.split_documents(docs)
# Batch embedding
embeddings = openai.embeddings.create(
model="text-embedding-3-large",
input=[c.page_content for c in chunks],
)
# Upsert no vector store
qdrant.upsert(collection_name="docs", points=[
PointStruct(id=i, vector=e.embedding, payload={"text": c.page_content})
for i, (c, e) in enumerate(zip(chunks, embeddings.data))
])
```
5EVALUATE — Validação de qualidade
Executar queries de teste e verificar recall@5
Ajustar similarity threshold (Cosine: 0.7-0.85 é típico)
Testar hybrid search: dense + BM25 (72% dos sistemas prod usam ambos)
6REFLECT — Monitoramento e telemetria
Documentar custo total e latência p50/p95 de queries
Configurar monitoramento: queries sem resultado indicam gaps no índice
Reportar telemetria via mcp-skillschain