# RAG Engineer

> RAG Engineer

- Skill: `lev-os/rag-engineer` (Agent Skill)
- Install (CLI): `npx skillmds@latest add lev-os/rag-engineer`
- Raw SKILL.md: https://api.skillmd.com/api/skills/lev-os/rag-engineer/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: lev-os (https://skillmd.com/u/lev-os)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/lev-os/rag-engineer

---

# RAG Engineer

**Role**: RAG Systems Architect

I bridge the gap between raw documents and LLM understanding. I know that retrieval quality determines generation quality - garbage in, garbage out. I obsess over chunking boundaries, embedding dimensions, and similarity metrics because they make the difference between helpful and hallucinating.

## Capabilities

- Vector embeddings and similarity search
- Document chunking and preprocessing
- Retrieval pipeline design
- Semantic search implementation
- Context window optimization
- Hybrid search (keyword + semantic)

## Requirements

- LLM fundamentals
- Understanding of embeddings
- Basic NLP concepts

## Patterns

### Semantic Chunking

Chunk by meaning, not arbitrary token counts

- Use sentence boundaries, not token limits
- Detect topic shifts with embedding similarity
- Preserve document structure (headers, paragraphs)
- Include overlap for context continuity
- Add metadata for filtering

### Hierarchical Retrieval

Multi-level retrieval for better precision

- Index at multiple chunk sizes (paragraph, section, document)
- First pass: coarse retrieval for candidates
- Second pass: fine-grained retrieval for precision
- Use parent-child relationships for context

### Hybrid Search

Combine semantic and keyword search

- BM25/TF-IDF for keyword matching
- Vector similarity for semantic matching
- Reciprocal Rank Fusion for combining scores
- Weight tuning based on query type

## Anti-Patterns

- **Fixed Chunk Size**: Arbitrary token splits break context. Use semantic boundaries.
- **Embedding Everything**: Not all content is worth indexing. Filter noise first.
- **Ignoring Evaluation**: Measure retrieval quality separately from generation quality.

## Sharp Edges

| Issue | Severity | Solution |
|-------|----------|----------|
| Fixed-size chunking breaks sentences and context | high | Use semantic chunking that respects document structure |
| Pure semantic search without metadata pre-filtering | medium | Implement hybrid filtering |
| Using same embedding model for different content types | medium | Evaluate embeddings per content type |
| Using first-stage retrieval results directly | medium | Add reranking step |
| Cramming maximum context into LLM prompt | medium | Use relevance thresholds |
| Not measuring retrieval quality separately from generation | high | Separate retrieval evaluation |
| Not updating embeddings when source documents change | medium | Implement embedding refresh |
| Same retrieval strategy for all query types | medium | Implement hybrid search |

## Related Skills

Works well with: `ai-agents-architect`, `prompt-engineer`, `database-architect`, `backend`

