Package com.embabel.agent.core.hitl
Class ConditionalAwaitingTool
-
- All Implemented Interfaces:
-
com.embabel.agent.api.tool.DelegatingTool,com.embabel.agent.api.tool.Tool,com.embabel.agent.api.tool.ToolInfo
public final class ConditionalAwaitingTool implements DelegatingTool
Tool decorator that conditionally requires awaiting before execution.
The decider inspects the input context and returns either:
An Awaitable to pause execution and wait for user input
nullto proceed with normal tool execution
-
-
Field Summary
Fields Modifier and Type Field Description private final Tool.Definitiondefinitionprivate final Tool.Metadatametadataprivate final Tooldelegate
-
Constructor Summary
Constructors Constructor Description ConditionalAwaitingTool(Tool delegate, AwaitDecider decider)
-
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. -
-
Constructor Detail
-
ConditionalAwaitingTool
ConditionalAwaitingTool(Tool delegate, AwaitDecider decider)
- Parameters:
delegate- The tool to wrapdecider- Function that decides whether to await based on input context
-
-
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
-
-
-
-