DocumentationAPI Reference📓 Tutorials🧑‍🍳 Cookbook🤝 Integrations💜 Discord

Experimental Package

Try out new experimental features with Haystack.

The haystack-experimental package allows you to test new experimental features without committing to their official release. Its main goal is to gather user feedback and iterate on new features quickly.

Check out the haystack-experimental GitHub repository for the latest catalog of available features.


For simplicity, every release of haystack-experimental includes all the available experiments at that time. To install the latest features, run:

pip install -U haystack-experimental


The latest version of the experimental package is only tested against the latest version of Haystack. Compatibility with older versions of Haystack is not guaranteed.


Each experimental feature has a default lifespan of 3 months starting from the date of the first non-pre-release build that includes it. Once it reaches the end of its lifespan, we will remove it from haystack-experimental and either:

  • Merge the feature into Haystack and publish it with the next minor release,
  • Release the feature as an integration, or
  • Drop the feature.


You can import the experimental new features like any other Haystack integration package:

from haystack.dataclasses import ChatMessage
from haystack_experimental.components.generators import FoobarGenerator

c = FoobarGenerator()[ChatMessage.from_user("What's an experiment? Be brief.")])

Experiments can also override existing Haystack features. For example, you can opt into an experimental type of Pipeline by changing the usual import:

# from haystack import Pipeline
from haystack_experimental import Pipeline

pipe = Pipeline()
# ...