Annotation Interface SupervisorAgent


@Retention(RUNTIME) @Target(METHOD) public @interface SupervisorAgent
Marks a method as a supervisor agent that can autonomously coordinate and invoke multiple sub-agents.

Example:


    public interface SupervisorBanker {

        @SupervisorAgent( responseStrategy = SupervisorResponseStrategy.SUMMARY,
                subAgents = { WithdrawAgent.class, CreditAgent.class })
        String invoke(@V("request") String request);

        @ChatModelSupplier
        static ChatModel chatModel() {
            return plannerModel();
        }
    }

  • Required Element Summary

    Required Elements
    Modifier and Type
    Required Element
    Description
    Class<?>[]
    Array of sub-agents that can be invoked by the supervisor agent.
  • Optional Element Summary

    Optional Elements
    Modifier and Type
    Optional Element
    Description
    Strategy for providing context to the supervisor agent.
    Description of the agent.
    int
    Maximum number of sub-agent invocations allowed during a single supervisor agent execution.
    Name of the agent.
    Key of the output variable that will be used to store the result of the agent's invocation.
    Strategy to decide which response the supervisor agent should return.
    Class<? extends TypedKey<?>>
    Strongly typed key of the output variable that will be used to store the result of the agent's invocation.
  • Element Details

    • name

      String name
      Name of the agent. If not provided, method name will be used.
      Returns:
      name of the agent.
      Default:
      ""
    • description

      String description
      Description of the agent. It should be clear and descriptive to allow language model to understand the agent's purpose and its intended use.
      Returns:
      description of the agent.
      Default:
      ""
    • outputKey

      String outputKey
      Key of the output variable that will be used to store the result of the agent's invocation.
      Returns:
      name of the output variable.
      Default:
      ""
    • typedOutputKey

      Class<? extends TypedKey<?>> typedOutputKey
      Strongly typed key of the output variable that will be used to store the result of the agent's invocation. It enforces type safety when retrieving the output from the agent's state and can be used in alternative to the outputKey() attribute. Note that only one of those two attributes can be used at a time.
      Returns:
      class representing the typed output variable.
      Default:
      dev.langchain4j.agentic.Agent.NoTypedKey.class
    • subAgents

      Class<?>[] subAgents
      Array of sub-agents that can be invoked by the supervisor agent.
      Returns:
      array of sub-agents.
    • maxAgentsInvocations

      int maxAgentsInvocations
      Maximum number of sub-agent invocations allowed during a single supervisor agent execution. This limit helps prevent infinite loops and excessive resource consumption.
      Returns:
      maximum number of sub-agent invocations.
      Default:
      10
    • contextStrategy

      SupervisorContextStrategy contextStrategy
      Strategy for providing context to the supervisor agent.
      Default:
      CHAT_MEMORY
    • responseStrategy

      SupervisorResponseStrategy responseStrategy
      Strategy to decide which response the supervisor agent should return.
      Default:
      LAST