Class CustomerReportDoer
- All Implemented Interfaces:
GuardedExecution, ScopeAuthority, Identifiable, Job<CustomerReport>, Doer<CustomerQuestion, CustomerReport>, Orchestrator<CustomerQuestion, CustomerReport>, Tool<CustomerQuestion, CustomerReport>
A doer is a tool: the same @ToolName and typed input and output, so an agent
could call it and code submits it like any job. Each lookup is a new tool created with
this doer as its parent, so it appears under the doer in the record of the run.
nextStep() plus submitInCurrentStep fan the lookups out into one step,
all running at once on virtual threads of their own; submitInStep gives the model
call a step after them. The step numbers are how the record shows what ran side by side.
A doer holds nothing while it waits: its execute has no resources parameter,
and each job it runs asks for what it needs and holds it only while it runs. A hundred
doers waiting on their lookups hold no connections between them.
LLMReadableCheckedException.unwrap passes the runtime's retry signals through and
reports anything else as a failure the caller can read.
- Since:
- 0.1 (2026-09-27)
- Author:
- Andrey Santrosyan
-
Field Summary
Fields inherited from class AbstractOrchestrator
META_ITERATIONFields inherited from class AbstractTool
inputFields inherited from class AbstractJob
timeout, upstreamRetriesFields inherited from interface Job
DEFAULT_UPSTREAM_RETRIESFields inherited from interface Tool
OBS_INPUT, OBS_OUTPUT -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionexecute(JobContext<CustomerReport> context) Main execution - spawn jobs, wait on handles, return when done.Methods inherited from class AbstractDoer
nextStep, submitInCurrentStep, submitInCurrentStep, submitInCurrentStep, submitInStepMethods inherited from class AbstractOrchestrator
execute, getJobType, getRequirements, getScopeGuard, getTimeout, sealScopeGuard, setScopeGuard, setTimeout, submitInIteration, submitInIteration, submitInIterationMethods inherited from class AbstractTool
getInput, postExecute, preExecute, setInputMethods inherited from class AbstractJob
getId, getName, getParentJobId, getPriority, getUpstreamRetries, getUserId, getWorkflowId, randomIdSuffix, setUpstreamRetries, toStringMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface GuardedExecution
declareAdmissionGuardrails, declareAuthGuardrails, declareContentGuardrailsMethods inherited from interface Identifiable
getParentJobId, getUserId, getWorkflowIdMethods inherited from interface Job
getDisplayName, getId, getJobId, getJobType, getName, getPriority, getRequirements, getTimeout, getUpstreamRetries, postExecute, preExecuteMethods inherited from interface ScopeAuthority
getScopeGuard, sealScopeGuard, setScopeGuardMethods inherited from interface Tool
execute, getInput, guardedInputTarget, setInput
-
Constructor Details
-
CustomerReportDoer
-
-
Method Details
-
execute
public CustomerReport execute(JobContext<CustomerReport> context) throws LLMReadableCheckedException Description copied from class:AbstractOrchestratorMain execution - spawn jobs, wait on handles, return when done.Write natural Java code. Spawn children through the iteration-stamping helpers (
AbstractOrchestrator.submitInIteration(long, Job), or a doer's step helpers), callhandle.get()to wait. Branch, loop, whatever. Return when done.- Specified by:
executein classAbstractOrchestrator<CustomerQuestion, CustomerReport>- Parameters:
context- the job context for progress reporting and cancellation- Returns:
- the result of the coordinator's work
- Throws:
LLMReadableCheckedException- if coordination fails
-