Interface ToolChaining
-
- All Implemented Interfaces:
public interface ToolChaining<THIS extends Object>Fluent API for configuring domain tool chaining.
Enables @LlmTool methods on returned domain objects to become available as tools. Shared by AgenticTool and com.embabel.agent.api.common.PromptRunner.
-
-
Method Summary
Modifier and Type Method Description abstract <T extends Any> THISwithToolChainingFrom(Class<T> type, DomainToolPredicate<T> predicate)Register a domain class with a predicate to control when its @LlmTool methods become available as tools. <T extends Any> THISwithToolChainingFrom(Class<T> type)Register a class whose @LlmTool methods become available as tools when a single instance of that type is returned as an artifact. abstract THISwithToolChainingFromAny()Enable auto-discovery of chained tools from any returned artifact. -
-
Method Detail
-
withToolChainingFrom
abstract <T extends Any> THIS withToolChainingFrom(Class<T> type, DomainToolPredicate<T> predicate)
Register a domain class with a predicate to control when its @LlmTool methods become available as tools.
When a single artifact of the specified type is returned, any @LlmTool annotated methods on that instance become available as tools, provided the predicate is satisfied.
When multiple artifacts of the same type are returned, "last wins" - only the most recent artifact that passes the predicate will have its tools exposed.
- Parameters:
type- The domain class that may contribute @LlmTool methodspredicate- Predicate to filter which instances contribute tools
-
withToolChainingFrom
<T extends Any> THIS withToolChainingFrom(Class<T> type)
Register a class whose @LlmTool methods become available as tools when a single instance of that type is returned as an artifact.
This is a convenience method that accepts all instances (no filtering).
- Parameters:
type- The class that may contribute @LlmTool methods
-
withToolChainingFromAny
abstract THIS withToolChainingFromAny()
Enable auto-discovery of chained tools from any returned artifact.
When enabled, any artifact with @LlmTool methods will automatically have its tools exposed, replacing ALL previous bindings.
-
-
-
-