deepset-ai / deepset-ai/haystack
Enable/refine reasoning support
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 26.6k
- Forks
- 3.2k
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 194
Description
In #9696, we added the ReasoningContent field to ChatMessage for storing model's reasoning.
For each ChatGenerator that explicitly supports reasoning-capable models, we should do the following:
- Verify whether init/run parameters allow reasoning settings. If not, add them.
- Refactor internal methods to ensure that reasoning is stored in the new field (not in
meta). - At runtime, handle reasoning content appropriately: some providers require removing reasoning from previous messages, while others require including it.
- Check how reasoning works with tool calls. Several providers have special requirements (e.g., using reasoning signatures).
- Check that when streaming is enabled, the reasoning content is successfully returned in the final assistant message. (For the moment, I have the impression that we cannot support streaming reasoning in a unified way).
Most child issues should wait until the 2.17.0 release (which will include the new field).
The list of child issues might not be comprehensive. If I forgot some relevant ChatGenerator, feel free to add it.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading #9696 and locating ChatMessage plus the ChatGenerator implementations that support reasoning-capable models. Inventory their init/run parameters, message handling, tool-call behavior, and streaming paths; done means reasoning uses the new field consistently and provider-specific requirements are covered.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- ai
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 28/100