28 Commits

Author SHA1 Message Date
Christopher Hertel
4d9639c760 bug #1794 [Agent] Fix dispatch of multiple tool instances of the same class (chr-hertel)
This PR was squashed before being merged into the main branch.

Discussion
----------

[Agent] Fix dispatch of multiple tool instances of the same class

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| Docs?         | no
| Issues        | Fix #1657
| License       | MIT

When multiple instances of the same class are registered as separate tools (e.g. two `Subagent` instances wrapping different agents), `Toolbox` would always dispatch to the first matching instance since it resolved executables by class name.

This PR fixes the issue by:

- **`MemoryToolFactory`**: Keys tool registrations by `spl_object_id` when objects are passed, allowing per-instance lookups. Builds `Tool` objects directly with `ExecutionReference` instead of going through `AsTool`/`convertAttribute`.
- **`Toolbox`**: Tries instance-specific lookup via `spl_object_id` first, falls back to class-based lookup. Maintains an `$instanceMap` to dispatch tool calls to the correct instance.
- **Removes `AbstractToolFactory`**: Inlines its logic into `ReflectionToolFactory`, since `MemoryToolFactory` no longer needs it.
- **Updates AI Bundle DI config** to reflect the removal of the abstract factory service.

Replaces #1658 1658

Commits
-------

fe195ea1 [Agent] Fix dispatch of multiple tool instances of the same class
2026-03-22 23:44:17 +01:00
Christopher Hertel
fe195ea16b [Agent] Fix dispatch of multiple tool instances of the same class 2026-03-22 23:44:08 +01:00
Christopher Hertel
17eaefb768 Fix outdated code references across documentation
- Fix class names: CachedPlatform→CachePlatform, OllamaApiCatalog→ModelCatalog,
  Indexer→DocumentIndexer/SourceIndexer, Store\Vector→Platform\Vector\Vector
- Fix namespaces: TokenUsage, MemoryInputProcessor, ConfiguredSourceIndexer,
  SourceIndexer, DocumentIndexer, StructuredOutputSerializer
- Fix method calls: asText()→getContent(), private property access→getters
- Fix API signatures: StoreInterface::query() now requires QueryInterface,
  ChromaDb\Store constructor updated, Ollama PlatformFactory simplified
- Remove unused imports: Gpt, Embeddings, VertexAi Model
- Fix incorrect file reference: _model-listing.php→_model.php
- Fix incorrect link target: Crawler Tool→firecrawl-crawl.php
- Fix MessageBagInterface→MessageBag (interface doesn't exist)
2026-03-20 13:58:41 +01:00
Guillaume Loulier
b59aa9c038 refactor(ollama): remove ModelCatalog 2026-03-17 10:11:34 +01:00
Johannes Wachter
59e66cc692 [Store][Platform] Add platform-level reranking and hybrid retriever 2026-03-14 16:07:15 +01:00
Fabien Potencier
4db41616a2 [Platform][Anthropic] Add support for prompt caching 2026-03-04 23:38:26 +01:00
Guillaume Loulier
5a35197cc7 refactor(elevenlabs): improvement on ScopedHttpClient and configuration 2026-03-02 09:13:14 +01:00
Guillaume Loulier
a741f682a7 refactor(platform): ElevenLabs improvement 2026-02-19 09:20:42 +01:00
Christopher Hertel
3be96df090 bug #1609 [Platform][Ollama] Improve support for ScopingHttpClient (Guikingone)
This PR was merged into the main branch.

Discussion
----------

[Platform][Ollama] Improve support for `ScopingHttpClient`

| Q             | A
| ------------- | ---
| Bug fix?      | yes
| New feature?  | no
| Docs?         | no
| BC BREAK | Yes
| Issues        | Fix #899
| License       | MIT

* Improve `Ollama` platform to support `ScopingHttpClient`
* Rename the `host_url` configuration key to `endpoint`
* Add support for `api_key` for `Ollama.com` Cloud endpoint

Commits
-------

edb80a0e refactor(platform): Ollama support for ScopingHttpClient
2026-02-16 21:04:32 +01:00
Johannes Wachter
919daea5fc [Store] Add query abstraction with filter support 2026-02-16 20:33:28 +01:00
Guillaume Loulier
edb80a0ed8 refactor(platform): Ollama support for ScopingHttpClient 2026-02-16 14:01:44 +01:00
asrar
f917a1d5f3 improv: Better default, preserve tool msgs 2026-02-13 17:36:43 +01:00
Christopher Hertel
9ccba141fd Replace public properties by private+getters for BC promise 2026-02-13 16:00:48 +01:00
Christopher Hertel
fdbecc5542 Remove UID as type from Documents ID 2026-02-09 22:49:57 +01:00
Christopher Hertel
917055b48f Rename "Agent as Agent" to "Subagent" 2026-02-04 23:02:32 +01:00
Christopher Hertel
2811fb45d9 Split Indexer into DocumentIndexer and SourceIndexer 2026-01-30 15:55:37 +01:00
Christopher Hertel
2e8e2ef96b Shift state out of Indexer service 2026-01-29 12:39:38 +01:00
Diego Aguiar
3f380e50c6 [Store] Add support for "remove" operation 2026-01-28 21:47:29 +01:00
Christopher Hertel
6962d6d302 Move StructuredOutputSerializer to feature namespace 2026-01-23 17:56:10 +01:00
Guillaume Loulier
58c3243812 refactor(platform): fix for CachedPlatform 2026-01-22 09:24:34 +01:00
Christopher Hertel
c3276c73d6 Rename SourceMap to SourceCollection, its methods and add to ToolResult directly 2026-01-18 22:56:05 +01:00
Oskar Stark
ba0a1dfa74 [Platform] Change TokenUsageAggregation::__construct from variadic to array 2026-01-15 08:10:31 +01:00
Oskar Stark
75f301e2ca Use full FQCN for removed StreamResult class in UPGRADE.md 2026-01-15 07:40:16 +01:00
Christopher Hertel
d3ec31c110 Introduce stream listener as extension point 2026-01-15 01:16:40 +01:00
Christopher Hertel
df6548f075 Remove variadics from ChoiceResult constructor 2026-01-06 13:27:21 +01:00
Christopher Hertel
a6805fd323 Remove variadic on memory feature 2026-01-04 09:20:18 +01:00
Claude
8d7d919a6d [Store] Change StoreInterface::add() from variadic to array parameter
This change improves backwards compatibility by allowing future
parameters to be added to the method signature. With variadic
parameters, no additional arguments can be added after the variadic
argument per PHP's BC policy.
2025-12-30 22:52:40 +01:00
larry.sulebalogun
6f1d809531 [AI Bundle] Remove suffix from aliased arguments for injection 2025-12-28 14:11:44 +00:00