Class AgenticServices
java.lang.Object
dev.langchain4j.agentic.AgenticServices
Provides static factory methods to create and configure various types of agent services.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic final recordThe hooks through which an integration takes part in the creation of a declarative agentic system.static classstatic classstatic interfacestatic final recordstatic final classstatic class -
Method Summary
Modifier and TypeMethodDescriptionstatic A2AClientBuilder<UntypedAgent> a2aBuilder(String a2aServerUrl) Creates a builder for an A2A client that can be used to interact with agents over the A2A protocol.static <T> A2AClientBuilder<T> a2aBuilder(String a2aServerUrl, Class<T> agentServiceClass) Creates a builder for an A2A client that can be used to interact with agents over the A2A protocol.static A2AClientBuilder<UntypedAgent> a2aBuilder(String a2aServerUrl, String tenant) Creates a builder for an A2A client that can be used to interact with agents over the A2A protocol.This is useful for building agentic systems that communicate with remote agents.static <T> A2AClientBuilder<T> a2aBuilder(String a2aServerUrl, String tenant, Class<T> agentServiceClass) Creates a builder for an A2A client that can be used to interact with agents over the A2A protocol.static AgenticServices.AgentActionWraps a runnable into an agent action that can be executed within the context of an agent.Wraps a consumer of the AgenticScope into an agent action that can be executed within the context of an agent.static UntypedAgentBuilderCreates an agent builder for untyped agents.static <T> AgentBuilder<T, AgentBuilder<T, ?>> agentBuilder(Class<T> agentServiceClass) Creates an agent builder for the given agent service class.static ConditionalAgentService<UntypedAgent> Creates a builder for an untyped agent implementing a conditional workflow of its subagents.static <T> ConditionalAgentService<T> conditionalBuilder(Class<T> agentServiceClass) Creates a builder for an agent implementing a conditional workflow of its subagents that can be invoked in a strongly typed way through the provided agent service interface.static <T> TcreateAgenticSystem(Class<T> agentServiceClass) Creates an instance of an agentic system defined through the declarative API.static <T> TcreateAgenticSystem(Class<T> agentServiceClass, AgenticServices.AgentConfigurator agentConfigurator) Creates an instance of an agentic system defined through the declarative API.static <T> TcreateAgenticSystem(Class<T> agentServiceClass, ChatModel chatModel) Creates an instance of an agentic system defined through the declarative API and using the provided ChatModel.static <T> TcreateAgenticSystem(Class<T> agentServiceClass, ChatModel chatModel, AgenticServices.AgentConfigurator agentConfigurator) Creates an instance of an agentic system defined through the declarative API and using the provided ChatModel.static AgentExecutorcreateBuiltInAgentExecutor(Class<?> agentServiceClass) static <T> DecisionAgentBuilder<T> decisionAgentBuilder(Class<T> agentServiceClass) Creates a builder for a decision agent: an agent whose implementation is a single call to aDecisionModelinstead of a chat model.Creates a builder for an agent implementing the human-in-the-loop pattern.static LoopAgentService<UntypedAgent> Creates a builder for an untyped agent implementing a loop workflow of its subagents.static <T> LoopAgentService<T> loopBuilder(Class<T> agentServiceClass) Creates a builder for an agent implementing a loop workflow of its subagents that can be invoked in a strongly typed way through the provided agent service interface.static <T> AgenticServices.NonAiAgentBuilder<T> nonAiAgentBuilder(AgenticServices.AgenticScopeFunction.NonThrowingFunction<AgenticScope, T> function) Creates a builder for a non-AI agent whose logic is a function of theAgenticScope.static ParallelAgentService<UntypedAgent> Creates a builder for an untyped agent implementing a parallel workflow of its subagents.static <T> ParallelAgentService<T> parallelBuilder(Class<T> agentServiceClass) Creates a builder for an agent implementing a parallel workflow of its subagents that can be invoked in a strongly typed way through the provided agent service interface.static ParallelMapperService<UntypedAgent> Creates a builder for an untyped agent implementing a parallel mapper workflow that creates multiple instances of the same sub-agent, one per item in a collection.static <T> ParallelMapperService<T> parallelMapperBuilder(Class<T> agentServiceClass) Creates a builder for an agent implementing a parallel mapper workflow that creates multiple instances of the same sub-agent, one per item in a collection, and can be invoked in a strongly typed way through the provided agent service interface.static PlannerBasedService<UntypedAgent> Creates a builder for a customizable planner agent service.static <T> PlannerBasedService<T> plannerBuilder(Class<T> agentServiceClass) Creates a builder for a customizable planner agent service.static SequentialAgentService<UntypedAgent> Creates a builder for an untyped agent implementing a workflow sequence of its subagents.static <T> SequentialAgentService<T> sequenceBuilder(Class<T> agentServiceClass) Creates a builder for an agent implementing a workflow sequence of its subagents that can be invoked in a strongly typed way through the provided agent service interface.static voidsetWorkflowAgentsBuilder(WorkflowAgentsBuilder workflowAgentsBuilder) Explicitly set a WorkflowAgentsBuilder.Creates a builder for a supervisor agent service that can be used to manage and supervise other agents.static <T> SupervisorAgentService<T> supervisorBuilder(Class<T> agentServiceClass) Creates a builder for a supervisor agent service that can be used to manage and supervise other agents.
-
Method Details
-
setWorkflowAgentsBuilder
Explicitly set a WorkflowAgentsBuilder. -
agentBuilder
Creates an agent builder for untyped agents.- Returns:
- a new UntypedAgentBuilder instance
-
agentBuilder
Creates an agent builder for the given agent service class.- Parameters:
agentServiceClass- the class of the agent service- Returns:
- a new AgentBuilder instance
-
decisionAgentBuilder
@Experimental public static <T> DecisionAgentBuilder<T> decisionAgentBuilder(Class<T> agentServiceClass) Creates a builder for a decision agent: an agent whose implementation is a single call to aDecisionModelinstead of a chat model. The agent is defined by a Decision Service interface whose method also carries@Agent: its arguments are read from theAgenticScopeand sent to the decision model as the input, its return type defines the question(s), and the typed answer is written to the output key. SeeDecisionAgentBuilderfor the details.- Parameters:
agentServiceClass- the decision agent interface- Returns:
- a new DecisionAgentBuilder instance
- Since:
- 1.23.0
-
humanInTheLoopBuilder
Creates a builder for an agent implementing the human-in-the-loop pattern. -
sequenceBuilder
Creates a builder for an untyped agent implementing a workflow sequence of its subagents. -
sequenceBuilder
Creates a builder for an agent implementing a workflow sequence of its subagents that can be invoked in a strongly typed way through the provided agent service interface.- Parameters:
agentServiceClass- the class of the agent service
-
parallelBuilder
Creates a builder for an untyped agent implementing a parallel workflow of its subagents. -
parallelBuilder
Creates a builder for an agent implementing a parallel workflow of its subagents that can be invoked in a strongly typed way through the provided agent service interface.- Parameters:
agentServiceClass- the class of the agent service
-
parallelMapperBuilder
Creates a builder for an untyped agent implementing a parallel mapper workflow that creates multiple instances of the same sub-agent, one per item in a collection. -
parallelMapperBuilder
Creates a builder for an agent implementing a parallel mapper workflow that creates multiple instances of the same sub-agent, one per item in a collection, and can be invoked in a strongly typed way through the provided agent service interface.- Parameters:
agentServiceClass- the class of the agent service
-
loopBuilder
Creates a builder for an untyped agent implementing a loop workflow of its subagents. -
loopBuilder
Creates a builder for an agent implementing a loop workflow of its subagents that can be invoked in a strongly typed way through the provided agent service interface.- Parameters:
agentServiceClass- the class of the agent service
-
conditionalBuilder
Creates a builder for an untyped agent implementing a conditional workflow of its subagents. -
conditionalBuilder
Creates a builder for an agent implementing a conditional workflow of its subagents that can be invoked in a strongly typed way through the provided agent service interface.- Parameters:
agentServiceClass- the class of the agent service
-
supervisorBuilder
Creates a builder for a supervisor agent service that can be used to manage and supervise other agents. This is useful for building complex agentic systems where one agent oversees the execution of others. -
supervisorBuilder
Creates a builder for a supervisor agent service that can be used to manage and supervise other agents. This is useful for building complex agentic systems where one agent oversees the execution of others.- Parameters:
agentServiceClass- the class of the agent service
-
plannerBuilder
Creates a builder for a customizable planner agent service. -
plannerBuilder
Creates a builder for a customizable planner agent service.- Parameters:
agentServiceClass- the class of the agent service
-
a2aBuilder
Creates a builder for an A2A client that can be used to interact with agents over the A2A protocol. This is useful for building agentic systems that communicate with remote agents.- Parameters:
a2aServerUrl- the URL of the A2A server- Returns:
- a new A2AClientBuilder instance
-
a2aBuilder
Creates a builder for an A2A client that can be used to interact with agents over the A2A protocol.This is useful for building agentic systems that communicate with remote agents.- Parameters:
a2aServerUrl- the URL of the A2A servertenant- the A2A agent tenant- Returns:
- a new A2AClientBuilder instance
-
a2aBuilder
Creates a builder for an A2A client that can be used to interact with agents over the A2A protocol. This is useful for building agentic systems that communicate with remote agents.- Parameters:
a2aServerUrl- the URL of the A2A serveragentServiceClass- the class of the agent service- Returns:
- a new A2AClientBuilder instance
-
a2aBuilder
public static <T> A2AClientBuilder<T> a2aBuilder(String a2aServerUrl, String tenant, Class<T> agentServiceClass) Creates a builder for an A2A client that can be used to interact with agents over the A2A protocol. This is useful for building agentic systems that communicate with remote agents.- Parameters:
a2aServerUrl- the URL of the A2A servertenant- the A2A agent tenantagentServiceClass- the class of the agent service- Returns:
- a new A2AClientBuilder instance
-
createAgenticSystem
Creates an instance of an agentic system defined through the declarative API.- Parameters:
agentServiceClass- the class of the agent service
-
createAgenticSystem
Creates an instance of an agentic system defined through the declarative API and using the provided ChatModel.- Parameters:
agentServiceClass- the class of the agent servicechatModel- the ChatModel used by default for all agents participating in this agentic system
-
createAgenticSystem
public static <T> T createAgenticSystem(Class<T> agentServiceClass, AgenticServices.AgentConfigurator agentConfigurator) Creates an instance of an agentic system defined through the declarative API.- Parameters:
agentServiceClass- the class of the agent serviceagentConfigurator- A callback to tweak the configuration of each agent created in this agentic system
-
createAgenticSystem
public static <T> T createAgenticSystem(Class<T> agentServiceClass, ChatModel chatModel, AgenticServices.AgentConfigurator agentConfigurator) Creates an instance of an agentic system defined through the declarative API and using the provided ChatModel.- Parameters:
agentServiceClass- the class of the agent servicechatModel- the ChatModel used by default for all agents participating in this agentic systemagentConfigurator- A callback to tweak the configuration of each agent created in this agentic system
-
createBuiltInAgentExecutor
-
agentAction
public static AgenticServices.AgentAction agentAction(AgenticServices.AgentAction.NonThrowingRunnable runnable) Wraps a runnable into an agent action that can be executed within the context of an agent.- Parameters:
runnable- the runnable to be executed- Returns:
- an AgentAction that encapsulates the runnable
-
agentAction
public static AgenticServices.AgenticScopeAction agentAction(AgenticServices.AgenticScopeAction.NonThrowingConsumer<AgenticScope> consumer) Wraps a consumer of the AgenticScope into an agent action that can be executed within the context of an agent.- Parameters:
consumer- the consumer to be executed- Returns:
- an AgentAction that encapsulates the consumer
-
nonAiAgentBuilder
public static <T> AgenticServices.NonAiAgentBuilder<T> nonAiAgentBuilder(AgenticServices.AgenticScopeFunction.NonThrowingFunction<AgenticScope, T> function) Creates a builder for a non-AI agent whose logic is a function of theAgenticScope. Unlike anagentAction, the resulting agent can be given a name, a description, typed input keys and an output key, so that it can also be used as a subagent of a supervisor or of any other planner that relies on this metadata.- Parameters:
function- the function computing the agent's result from the AgenticScope- Returns:
- a new NonAiAgentBuilder instance
-