Agentic Tool
A tool that uses an LLM to orchestrate sub-tools.
Unlike a regular Tool which executes deterministic logic, an AgenticTool uses an LLM to decide which sub-tools to call based on a prompt.
Implementations differ in how they manage tool availability:
com.embabel.agent.api.tool.agentic.simple.SimpleAgenticTool: All tools available immediately
com.embabel.agent.api.tool.agentic.playbook.PlaybookTool: Progressive unlock via conditions
com.embabel.agent.api.tool.agentic.state.StateMachineTool: State-based availability
All implementations share a consistent fluent API for configuration. The type parameter THIS enables fluent method chaining that preserves the concrete type.
Parameters
The concrete implementation type for fluent method chaining
Inheritors
Properties
Functions
Execute the tool with JSON input.
Extension function to convert an Embabel Tool to a Spring AI ToolCallback.
Wrap this tool to conditionally await before execution.
Wrap this tool to always require confirmation before execution.
Create a new tool with a different description. Useful for providing context-specific descriptions while keeping the same functionality.
Extension function to wrap a Tool with event publication.
Create a copy with a different max iterations limit.
Create a copy with an additional parameter in the definition.
Create a copy with a dynamic system prompt creator. The creator receives the execution context and input string.
Create a copy with a fixed system prompt. This is a convenience method that delegates to withSystemPrompt with a creator.
Register a class whose @LlmTool methods become available as tools when a single instance of that type is returned as an artifact.
Register a domain class with a predicate to control when its @LlmTool methods become available as tools.
Enable auto-discovery of chained tools from any returned artifact.
Create a copy with tools extracted from an object with @LlmTool methods. If the object has no @LlmTool methods, returns this unchanged.