Package com.embabel.agent.api.tool
Class ArtifactSinkingTool
-
- All Implemented Interfaces:
-
com.embabel.agent.api.tool.DelegatingTool,com.embabel.agent.api.tool.Tool,com.embabel.agent.api.tool.ToolInfo
public final class ArtifactSinkingTool<T extends Object> implements DelegatingTool
Tool decorator that captures artifacts from tool results, filters and transforms them, then sends to one or more sinks.
Handles both single artifacts and Iterables of artifacts.
-
-
Field Summary
Fields Modifier and Type Field Description private final Tool.Definitiondefinitionprivate final Tool.Metadatametadataprivate final Tooldelegate
-
Constructor Summary
Constructors Constructor Description ArtifactSinkingTool(Tool delegate, Class<T> clazz, ArtifactSink sink, Function1<T, Boolean> filter, Function1<T, Object> transform)
-
Method Summary
Modifier and Type Method Description Tool.DefinitiongetDefinition()Tool definition for LLM Tool.MetadatagetMetadata()Optional metadata ToolgetDelegate()Tool.Resultcall(String input)Execute the tool with JSON input. StringtoString()-
-
Constructor Detail
-
ArtifactSinkingTool
ArtifactSinkingTool(Tool delegate, Class<T> clazz, ArtifactSink sink, Function1<T, Boolean> filter, Function1<T, Object> transform)
- Parameters:
delegate- The tool to wrapclazz- The class of T for type filteringsink- Where to send captured artifactsfilter- Optional filter to decide which artifacts to capture.transform- Optional function to transform artifacts before sending to sink.
-
-
Method Detail
-
getDefinition
Tool.Definition getDefinition()
Tool definition for LLM
-
getMetadata
Tool.Metadata getMetadata()
Optional metadata
-
getDelegate
Tool getDelegate()
-
call
Tool.Result call(String input)
Execute the tool with JSON input.
- Parameters:
input- JSON string matching inputSchema- Returns:
Result to send back to LLM
-
-
-
-