Package com.embabel.agent.spi.loop
Class ChainedToolInjectionStrategy
-
- All Implemented Interfaces:
-
com.embabel.agent.spi.loop.ToolInjectionStrategy
public final class ChainedToolInjectionStrategy implements ToolInjectionStrategy
Chains multiple injection strategies into a pipeline.
Evaluates strategies in order and combines their results. Tool additions are accumulated, tool removals are accumulated.
-
-
Constructor Summary
Constructors Constructor Description ChainedToolInjectionStrategy(ToolInjectionStrategy strategies)ChainedToolInjectionStrategy(List<ToolInjectionStrategy> strategies)
-
Method Summary
Modifier and Type Method Description ToolInjectionResultevaluate(ToolInjectionContext context)Called after each tool execution to determine tool changes. final static ChainedToolInjectionStrategywithUnfolding(ToolInjectionStrategy additionalStrategies)Create a chained strategy that includes UnfoldingTool support plus custom strategies. final static ChainedToolInjectionStrategywithMatryoshka(ToolInjectionStrategy additionalStrategies)-
-
Constructor Detail
-
ChainedToolInjectionStrategy
ChainedToolInjectionStrategy(ToolInjectionStrategy strategies)
-
ChainedToolInjectionStrategy
ChainedToolInjectionStrategy(List<ToolInjectionStrategy> strategies)
- Parameters:
strategies- The strategies to evaluate in order
-
-
Method Detail
-
evaluate
ToolInjectionResult evaluate(ToolInjectionContext context)
Called after each tool execution to determine tool changes.
Default implementation bridges to legacy evaluateToolResult for backward compatibility. Override this method for new implementations that need to add/remove tools.
- Parameters:
context- The current state of the tool loop- Returns:
Result containing tools to add and/or remove
-
withUnfolding
final static ChainedToolInjectionStrategy withUnfolding(ToolInjectionStrategy additionalStrategies)
Create a chained strategy that includes UnfoldingTool support plus custom strategies.
-
withMatryoshka
@Deprecated(message = "Use withUnfolding() instead", replaceWith = @ReplaceWith(imports = {}, expression = "withUnfolding(*additionalStrategies)")) final static ChainedToolInjectionStrategy withMatryoshka(ToolInjectionStrategy additionalStrategies)
-
-
-
-