deepset-ai/haystack

Open-source AI orchestration framework for building context-engineered, production-ready LLM applications. Design modular pipelines and agent workflows with explicit control over retrieval, routing, memory, and generation. Built for scalable agents, RAG, multimodal applications, semantic search, and conversational systems.

Агенты⭐ 26 564MDXпоследний релиз: v3.1.1
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

Haystack — это open-source фреймворк на Python для создания масштабируемых LLM-приложений с модульными пайплайнами и агентами.

Зачем нужен

Инструмент решает задачу построения production-ready систем, предоставляя явный контроль над этапами извлечения информации (retrieval), маршрутизации, памяти и генерации. Он полезен для инженеров, которым нужна прозрачная архитектура для глубокой кастомизации и надежного развертывания сложных AI-решений.

Что можно реализовать

  • Построение масштабируемых систем RAG (Retrieval-Augmented Generation)
  • Создание мультимодальных приложений, работающих с разными типами данных
  • Разработка семантического поиска и систем ответов на вопросы
  • Проектирование автономных AI-агентов с сложными рабочими процессами

Ключевые возможности

  • Модульная архитектура пайплайнов и рабочих процессов агентов
  • Явный контроль над извлечением, маршрутизацией, памятью и генерацией
  • Поддержка семантического поиска и мультимодальных сценариев
  • Открытая лицензия и активное сообщество (Discord, GitHub)

👤 Кому подойдёт: разработчики и AI-инженеры, строящие сложные LLM-приложения

Релизы

v3.1.1patch
🕐 18 дн назад · релиз на GitHub ↗

Исправлена ошибка, из-за которой конвертеры сообщений OpenAI и Hugging Face падали при обработке пустого контента от ассистента.

  • Fixed: Конвертеры OpenAI Chat Completions и Responses больше не вызывают ошибку при получении сообщения ассистента с пустым контентом, что позволяет корректно обрабатывать отброшенные некорректные вызовы инс
  • Fixed: Конвертер Hugging Face теперь также корректно обрабатывает сообщения ассистента без контента, отправляя их с пустым значением вместо падения.
  • Fixed: Метод ChatMessage.from_openai_dict_format поддерживает пустой контент, обеспечивая корректный round-trip для таких сообщений.
v3.1.0minor
🕐 27 дн назад · релиз на GitHub ↗

Haystack v3.1.0: экспериментальная компактизация контекста агентов, новые токено-счётчики и exit_reason.

  • Added: Добавлен экспериментальный CompactionHook для агентов: сокращает историю диалога через SlidingWindowCompactor при достижении порога контекстного окна.
  • Added: Агент теперь возвращает exit_reason, объясняющий причину завершения (текст, инструмент или лимит шагов), что упрощает маршрутизацию вывода.
  • Added: Внедрён модуль haystack.token_counters с протоколом TokenCounter и реализациями ApproximateTokenCounter и TiktokenCounter для оценки количества токенов.
  • Added: Добавлен OpenAITokenCounter, использующий API OpenAI для точного подсчёта токенов с учётом форматирования, изображений и инструментов.
  • Added: В компоненты PyPDFToDocument и PDFMinerToDocument добавлен параметр link_format для парсинга ссылок из аннотаций PDF.
v3.0.0majorbreaking
🕐 2 мес назад · релиз на GitHub ↗

Haystack 3.0: полноценный async, хуки для агентов, интеграции вынесены в отдельные пакеты, устарели старые генераторы.

  • Added: Агенты получили систему хуков, навыки (Skills) и поддержку асинхронных инструментов.
  • Added: Pipeline и AsyncPipeline объединены в один класс с поддержкой стриминга и асинхронного выполнения.
  • Added: Встроенная наблюдаемость: трассировка на уровне шагов и доступ к метрикам (токены, вызовы инструментов).
  • Breaking: Удален ToolInvoker; классы Legacy Generators заменены на Chat Generators.
  • Breaking: 30 компонентов перенесены в отдельные пакеты haystack-core-integrations, изменились пути импорта.
v2.31.0majorbreaking
🕐 2 мес назад · релиз на GitHub ↗

Начало миграции компонентов в отдельные пакеты для Haystack 3.0, асинхронные оценщики и улучшенная маршрутизация.

  • Deprecated: Компоненты с тяжелыми зависимостями (SentenceTransformers, Hugging Face, Whisper и др.) объявлены устаревшими и будут удалены в v3.0.
  • Breaking: DocumentNDCGEvaluator теперь сравнивает документы по полю content по умолчанию, что может изменить результаты оценки.
  • Added: Добавлена нативная асинхронная поддержка для LLMEvaluator, FaithfulnessEvaluator и ContextRelevanceEvaluator.
  • Added: ConditionalRouter получил флаг output_passthrough для передачи сложных типов данных без преобразования в строку.
  • Added: MarkdownToDocument теперь поддерживает извлечение YAML-фронтматтера в метаданные при включении соответствующей опции.
v2.30.2patch
🕐 3 мес назад · релиз на GitHub ↗

Исправлено преждевременное завершение работы Agent при использовании условия выхода по тексту.

  • Fixed: Agent теперь корректно обрабатывает невалидные вызовы инструментов: если LLM генерирует сообщение с пустым текстом и без вызовов, агент продолжает цикл, позволяя модели восстановиться, а не завершаетс