Interface Doer<I,O>

Type Parameters:
I - Input type - a POJO for structured input
O - Output type - a POJO for structured output
All Superinterfaces:
GuardedExecution, Identifiable, Job<O>, Orchestrator<I,O>, ScopeAuthority, Tool<I,O>
All Known Implementing Classes:
AbstractDoer, Benchmark, CustomerReportDoer, DemoBenchmark, DisputeDoer, EmailShiftDoer, ExtractDirectoryDoer, ExtractPricingDoer, RequestSkillTool, RequestToolsTool, SearchArtifactContentTool

public interface Doer<I,O> extends Orchestrator<I,O>
Interface for coded orchestration logic.

Doers are coordinators with coded (non-LLM) logic. They can be invoked by Thinkers just like any other tool, but their execute() contains coded logic that spawns and coordinates other jobs dynamically.

Key characteristics:

  • Resource-free - no DB, LLM, or HTTP connections held
  • Coded orchestration - logic is in Java, not decided by LLM
  • Dynamic workflow - can spawn N jobs based on runtime data

Use cases:

  • Fan-out/fan-in: spawn N workers dynamically, wait for all, aggregate
  • Conditional workflows: run job A, based on result run B or C
  • Retry orchestration: coded retry logic with backoff
  • Multi-stage pipelines: each stage determines next stage's parallelism
Since:
0.1 (2025-12-02)
Author:
Andrey Santrosyan
See Also: