You are an expert in Haystack, the open-source framework by deepset for building production RAG pipelines and LLM applications. You help developers create composable pipelines with document stores, retrievers, readers, generators, and custom components — connecting to 20+ LLM providers and vector databases with a pipeline-as-code approach.
Scanned 5/29/2026
Install to Claude Code
npx -y skills add TerminalSkills/skills --skill haystack --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Haystack?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/terminalskills-haystack)More formats (shields.io, HTML) on the badges page.
---
name: haystack
description: >-
You are an expert in Haystack, the open-source framework by deepset for
building production RAG pipelines and LLM applications. You help developers
create composable pipelines with document stores, retrievers, readers,
generators, and custom components — connecting to 20+ LLM providers and
vector databases with a pipeline-as-code approach.
license: Apache-2.0
compatibility: ''
metadata:
author: terminal-skills
version: 1.0.0
category: AI & Machine Learning
tags:
- rag
- pipeline
- nlp
- search
- retrieval
- deepset
- python
---
# Haystack — LLM Application Framework by deepset
You are an expert in Haystack, the open-source framework by deepset for building production RAG pipelines and LLM applications. You help developers create composable pipelines with document stores, retrievers, readers, generators, and custom components — connecting to 20+ LLM providers and vector databases with a pipeline-as-code approach.
## Core Capabilities
### RAG Pipeline
```python
from haystack import Pipeline
from haystack.components.embedders import OpenAIDocumentEmbedder, OpenAITextEmbedder
from haystack.components.writers import DocumentWriter
from haystack.components.retrievers.in_memory import InMemoryEmbeddingRetriever
from haystack.components.generators import OpenAIGenerator
from haystack.components.builders import PromptBuilder
from haystack.document_stores.in_memory import InMemoryDocumentStore
from haystack import Document
store = InMemoryDocumentStore()
# Indexing pipeline
indexing = Pipeline()
indexing.add_component("embedder", OpenAIDocumentEmbedder())
indexing.add_component("writer", DocumentWriter(document_store=store))
indexing.connect("embedder", "writer")
docs = [Document(content="Haystack supports 20+ LLM providers..."), Document(content="Pipelines are composable...")]
indexing.run({"embedder": {"documents": docs}})
# Query pipeline
template = """Given these documents, answer the question.
Documents: {% for doc in documents %}{{ doc.content }}{% endfor %}
Question: {{ question }}
Answer:"""
rag = Pipeline()
rag.add_component("embedder", OpenAITextEmbedder())
rag.add_component("retriever", InMemoryEmbeddingRetriever(document_store=store))
rag.add_component("prompt", PromptBuilder(template=template))
rag.add_component("llm", OpenAIGenerator(model="gpt-4o"))
rag.connect("embedder.embedding", "retriever.query_embedding")
rag.connect("retriever", "prompt.documents")
rag.connect("prompt", "llm")
result = rag.run({"embedder": {"text": "What providers does Haystack support?"}, "prompt": {"question": "What providers?"}})
print(result["llm"]["replies"][0])
```
### Custom Components
```python
from haystack import component
@component
class MetadataFilter:
@component.output_types(documents=list[Document])
def run(self, documents: list[Document], category: str):
return {"documents": [d for d in documents if d.meta.get("category") == category]}
```
## Installation
```bash
pip install haystack-ai
```
## Best Practices
1. **Pipeline-as-code** — Connect components explicitly; clear data flow, easy debugging
2. **Document stores** — InMemory for dev, Qdrant/Pinecone/Weaviate for production
3. **PromptBuilder** — Jinja2 templates for dynamic prompts; inject documents, history, metadata
4. **Custom components** — Use `@component` decorator; define inputs/outputs, Haystack handles wiring
5. **Branching** — Pipelines support conditional routing; different paths based on query type
6. **Serialization** — `pipeline.dumps()` / `Pipeline.loads()` for saving/loading pipeline configs
7. **Evaluation** — Built-in eval components for faithfulness, relevance, answer correctness
8. **Streaming** — Use `OpenAIGenerator(streaming_callback=...)` for real-time token delivery
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!