@@ -593,6 +593,14 @@ private function processAgentConfig(string $name, array $config, ContainerBuilde
593593 // TOOLBOX
594594 if ($ config ['tools ' ]['enabled ' ]) {
595595 // Setup toolbox for agent
596+ $ memoryFactoryDefinition = new ChildDefinition ('ai.tool_factory.abstract ' );
597+ $ memoryFactoryDefinition ->setClass (MemoryToolFactory::class);
598+ $ container ->setDefinition ('ai.toolbox. ' .$ name .'.memory_factory ' , $ memoryFactoryDefinition );
599+ $ chainFactoryDefinition = new Definition (ChainFactory::class, [
600+ [new Reference ('ai.toolbox. ' .$ name .'.memory_factory ' ), new Reference ('ai.tool_factory ' )],
601+ ]);
602+ $ container ->setDefinition ('ai.toolbox. ' .$ name .'.chain_factory ' , $ chainFactoryDefinition );
603+
596604 $ toolboxDefinition = (new ChildDefinition ('ai.toolbox.abstract ' ))
597605 ->replaceArgument (1 , new Reference ('ai.toolbox. ' .$ name .'.chain_factory ' ))
598606 ->addTag ('ai.toolbox ' , ['name ' => $ name ]);
@@ -624,14 +632,6 @@ private function processAgentConfig(string $name, array $config, ContainerBuilde
624632
625633 // Define specific list of tools if are explicitly defined
626634 if ([] !== $ config ['tools ' ]['services ' ]) {
627- $ memoryFactoryDefinition = new ChildDefinition ('ai.tool_factory.abstract ' );
628- $ memoryFactoryDefinition ->setClass (MemoryToolFactory::class);
629- $ container ->setDefinition ('ai.toolbox. ' .$ name .'.memory_factory ' , $ memoryFactoryDefinition );
630- $ chainFactoryDefinition = new Definition (ChainFactory::class, [
631- [new Reference ('ai.toolbox. ' .$ name .'.memory_factory ' ), new Reference ('ai.tool_factory ' )],
632- ]);
633- $ container ->setDefinition ('ai.toolbox. ' .$ name .'.chain_factory ' , $ chainFactoryDefinition );
634-
635635 $ tools = [];
636636 foreach ($ config ['tools ' ]['services ' ] as $ tool ) {
637637 if (isset ($ tool ['agent ' ])) {
0 commit comments