🧪 New Experiments
New `Agent` component
[`Agent`](https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/components/agents/agent.py) component enables tool-calling functionality with provider-agnostic chat model support and can be used as a standalone component or within a pipeline.
👉 See the `Agent` in action: [🧑🍳 Build a GitHub Issue Resolver Agent](https://haystack.deepset.ai/cookbook/github_issue_resolver_agent)
python
from haystack.dataclasses import ChatMessage
from haystack.components.websearch import SerperDevWebSearch
from haystack_experimental.tools.component_tool import ComponentTool
from haystack_experimental.components.agents import Agent
from haystack.components.generators.chat import OpenAIChatGenerator
web_tool = ComponentTool(
component=SerperDevWebSearch(),
)
agent = Agent(
chat_generator=OpenAIChatGenerator(model="gpt-4o-mini"),
tools=[web_tool],
exit_condition="text",
)
result = agent.run(
messages=[ChatMessage.from_user("Find information about Haystack")]
)
Improved `ComponentTool` and `tool` Decorator
The [`ComponentTool`](https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/tools/component_tool.py) and [`tool`](https://github.com/deepset-ai/haystack-experimental/blob/7e88f2a4e4310359e6c76a6ce8ff920d1bb841f7/haystack_experimental/tools/from_function.py#L137) decorator are extended for better integration with the new `Agent` component
New Ready-Made `SuperComponents`
Introducing new `SuperComponent`s that bundle commonly used components and logic for indexing pipelines: [`MultiFileConverter`](https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/super_components/converters/multi_file_converter.py), [`SentenceTransformersDocumentIndexer`](https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/super_components/indexers/sentence_transformers_document_indexer.py), [`DocumentPreprocessor`](https://github.com/deepset-ai/haystack-experimental/blob/main/haystack_experimental/super_components/preprocessors/document_preprocessor.py)
python
from haystack_experimental.super_components.converters import MultiFileConverter
process all common file types (.csv, .docx, .html, .json, .md, .txt, .pdf, .pptx, .xlsx) with one component
converter = MultiFileConverter()
converter.run(sources=["test.txt", "test.pdf"], meta={})
What's Changed
* docs: add Supercomponent pydoc, delete outdated by dfokina in https://github.com/deepset-ai/haystack-experimental/pull/193
* docs: updating trace comparison tool README.md by davidsbatista in https://github.com/deepset-ai/haystack-experimental/pull/195
* chore: Create issue templates for adding, removing, moving an experiment by julian-risch in https://github.com/deepset-ai/haystack-experimental/pull/192
* chore: remove OpenSearch from experimental by anakin87 in https://github.com/deepset-ai/haystack-experimental/pull/200
* fix: fixing auto-merging tests, removing hard-coded doc ids by davidsbatista in https://github.com/deepset-ai/haystack-experimental/pull/202
* chore: add tool related code to prepare Agent PR by mathislucka in https://github.com/deepset-ai/haystack-experimental/pull/203
* feat: add file and indexing related super components by mathislucka in https://github.com/deepset-ai/haystack-experimental/pull/184
* docs: Add SuperComponent to catalog by julian-risch in https://github.com/deepset-ai/haystack-experimental/pull/190
* feat: Introduce Agent by mathislucka in https://github.com/deepset-ai/haystack-experimental/pull/175
* docs: add pydoc config for Agent component by julian-risch in https://github.com/deepset-ai/haystack-experimental/pull/208
* docs: Notebook for Agent component by mathislucka in https://github.com/deepset-ai/haystack-experimental/pull/204
* docs: add MultiFileConverter, SentenceTransformerrsDocumentIndexer, and DocumentPreprocessor to docs by dfokina in https://github.com/deepset-ai/haystack-experimental/pull/210
**Full Changelog**: https://github.com/deepset-ai/haystack-experimental/compare/v0.6.0...v0.7.0