Files
deepset-ai--haystack/releasenotes/notes/toolset-name-selection-e94fbf226507ec54.yaml
wehub-resource-sync c56bef871b
CodeQL / Analyze (python) (push) Has been cancelled
Update Platform Components Table / update (push) Has been cancelled
Docker image release / Build base image (push) Has been cancelled
Sync docs with Docusaurus / sync (push) Has been cancelled
Tests / Check if changed (push) Has been cancelled
Tests / format (push) Has been cancelled
Tests / check-imports (push) Has been cancelled
Tests / Unit / macos-latest (push) Has been cancelled
Tests / Unit / ubuntu-latest (push) Has been cancelled
Tests / Unit / windows-latest (push) Has been cancelled
Tests / mypy (push) Has been cancelled
Tests / Integration / ubuntu-latest (push) Has been cancelled
Tests / Integration / macos-latest (push) Has been cancelled
Tests / Integration / windows-latest (push) Has been cancelled
Tests / notify-slack-on-failure (push) Has been cancelled
Tests / Mark tests as completed (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:22:28 +08:00

20 lines
1.2 KiB
YAML

---
fixes:
- |
Runtime tool-name selection via ``Agent.run(tools=["tool_a", "tool_b"])`` now resolves correctly when a
``SearchableToolset`` is configured. Previously the ``SearchableToolset`` was flattened into a single-item
list (just its search tool), which broke its search and lazy-loading behavior.
- |
A ``Toolset`` is no longer mutated in place during an ``Agent`` run. Each run now operates on an isolated
per-run copy of the configured ``Toolset`` (via the new ``Toolset.spawn()`` method). This makes concurrent
runs that share the same ``Toolset`` instance safe: per-run state such as the active tool-name selection, and
a ``SearchableToolset``'s discovered tools, can no longer leak or collide across runs.
enhancements:
- |
``Toolset`` gained two methods: ``get_selectable_tools()`` returns every tool available for name-based
selection (ignoring any active selection restriction, e.g. the one used by ``SearchableToolset``), and
``spawn()`` returns an isolated, run-scoped copy of the Toolset. Subclasses with additional run-scoped state
can override ``spawn()``.
- |
``SearchableToolset`` now exposes its full catalog of tools via ``SearchableToolset.get_selectable_tools()``.