diff --git a/src/ai-bundle/src/AiBundle.php b/src/ai-bundle/src/AiBundle.php index 4a26f8521..71e948f46 100644 --- a/src/ai-bundle/src/AiBundle.php +++ b/src/ai-bundle/src/AiBundle.php @@ -593,6 +593,14 @@ private function processAgentConfig(string $name, array $config, ContainerBuilde // TOOLBOX if ($config['tools']['enabled']) { // Setup toolbox for agent + $memoryFactoryDefinition = new ChildDefinition('ai.tool_factory.abstract'); + $memoryFactoryDefinition->setClass(MemoryToolFactory::class); + $container->setDefinition('ai.toolbox.'.$name.'.memory_factory', $memoryFactoryDefinition); + $chainFactoryDefinition = new Definition(ChainFactory::class, [ + [new Reference('ai.toolbox.'.$name.'.memory_factory'), new Reference('ai.tool_factory')], + ]); + $container->setDefinition('ai.toolbox.'.$name.'.chain_factory', $chainFactoryDefinition); + $toolboxDefinition = (new ChildDefinition('ai.toolbox.abstract')) ->replaceArgument(1, new Reference('ai.toolbox.'.$name.'.chain_factory')) ->addTag('ai.toolbox', ['name' => $name]); @@ -624,14 +632,6 @@ private function processAgentConfig(string $name, array $config, ContainerBuilde // Define specific list of tools if are explicitly defined if ([] !== $config['tools']['services']) { - $memoryFactoryDefinition = new ChildDefinition('ai.tool_factory.abstract'); - $memoryFactoryDefinition->setClass(MemoryToolFactory::class); - $container->setDefinition('ai.toolbox.'.$name.'.memory_factory', $memoryFactoryDefinition); - $chainFactoryDefinition = new Definition(ChainFactory::class, [ - [new Reference('ai.toolbox.'.$name.'.memory_factory'), new Reference('ai.tool_factory')], - ]); - $container->setDefinition('ai.toolbox.'.$name.'.chain_factory', $chainFactoryDefinition); - $tools = []; foreach ($config['tools']['services'] as $tool) { if (isset($tool['agent'])) {