Class SelectingAgent

All Implemented Interfaces:
GuardedExecution, ScopeAuthority, ArtifactRegistryAware, ConversationCarrier, Identifiable, Job<SelectedOrders>, ModelDependent, ModelDependentTool<OrderQuestion, SelectedOrders>, Orchestrator<OrderQuestion, SelectedOrders>, Thinker<OrderQuestion, SelectedOrders>, Tool<OrderQuestion, SelectedOrders>

public class SelectingAgent extends SingleObjectiveThinker<OrderQuestion, SelectedOrders>
An agent that selects data instead of retelling it: it lists a customer's orders with its one tool and answers with the references of exactly the orders the question asks for. Its answer class carries one field of its own, a one-sentence summary; the selection travels on ThinkerOutput, whose references are looked up in the registry when the agent finishes, so getArtifacts() returns the records the tool built. The summary is the model's prose and may paraphrase; the records cannot.
Since:
0.1 (2026-09-27)
Author:
Andrey Santrosyan
  • Constructor Details

    • SelectingAgent

      public SelectingAgent(Identifiable parent)
  • Method Details

    • getSystemPromptText

      protected String getSystemPromptText()
      Description copied from class: SingleObjectiveThinker
      Simple-case override: return the static system-prompt text. Annotate the override with @StaticPrompt to declare the immutability contract.

      The auto-derived registry key is the subclass FQN. Pin an explicit key on the annotation (@StaticPrompt("ops.visible.key")) when ops needs a stable name for DB-stored overrides that survives class renames.

      Overrides:
      getSystemPromptText in class SingleObjectiveThinker<OrderQuestion, SelectedOrders>
    • declareDefaultTools

      protected List<Class<? extends Tool>> declareDefaultTools()
      Description copied from class: AbstractThinker
      Declares the core tools this thinker always has loaded with full schemas. Called during construction to initialize the tool registry.
      Specified by:
      declareDefaultTools in class AbstractThinker<OrderQuestion, SelectedOrders>
      Returns:
      List of tool classes, or empty list if no tools needed