Skip to content

Commit 4834f03

Browse files
committed
bug #776 [AI Bundle] Shift chain factory service definition to fix agent definition (chr-hertel)
This PR was merged into the main branch. Discussion ---------- [AI Bundle] Shift chain factory service definition to fix agent definition | Q | A | ------------- | --- | Bug fix? | yes | New feature? | no | Docs? | no | Issues | Fix #775 | License | MIT Whoops ... Commits ------- 49a7ee6 Shift chain factory service definition to fix agent definition
2 parents c3ac16c + 49a7ee6 commit 4834f03

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

src/ai-bundle/src/AiBundle.php

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)