AgentLoopConfig constructor

const AgentLoopConfig({
  1. required Model model,
  2. ToolExecutionMode toolExecution = ToolExecutionMode.parallel,
  3. BeforeToolCallHook? beforeToolCall,
  4. AfterToolCallHook? afterToolCall,
  5. TransformContextHook? transformContext,
  6. PrepareNextTurnHook? prepareNextTurn,
  7. OverWindowRelief? overWindowRelief,
  8. QueuedMessagesSource? getSteeringMessages,
  9. QueuedMessagesSource? getFollowUpMessages,
  10. Stream<void>? steeringNotifications,
  11. Future<bool> hasPendingSteering()?,
  12. int maxEmptyRetries = 1,
  13. int emptyHiccupRetries = 3,
  14. Duration emptyHiccupBaseDelay = const Duration(milliseconds: 500),
  15. Duration emptyHiccupMaxBackoff = const Duration(milliseconds: 8000),
  16. int maxSteeringTurns = 20,
  17. int? contextWindowCap,
  18. bool wireDump = false,
  19. ToolMisuseBreaker? toolMisuseBreaker,
  20. StuckToolConfig? stuckTool,
  21. bool finalizeGate = false,
  22. List<Skill> operativeSkills = const [],
  23. Set<String>? reportedOrphanKeys,
  24. String? budgetLineProvider()?,
})

Implementation

const AgentLoopConfig({
  required this.model,
  this.toolExecution = ToolExecutionMode.parallel,
  this.beforeToolCall,
  this.afterToolCall,
  this.transformContext,
  this.prepareNextTurn,
  this.overWindowRelief,
  this.getSteeringMessages,
  this.getFollowUpMessages,
  this.steeringNotifications,
  this.hasPendingSteering,
  this.maxEmptyRetries = 1,
  this.emptyHiccupRetries = 3,
  this.emptyHiccupBaseDelay = const Duration(milliseconds: 500),
  this.emptyHiccupMaxBackoff = const Duration(milliseconds: 8000),
  this.maxSteeringTurns = 20,
  this.contextWindowCap,
  this.wireDump = false,
  this.toolMisuseBreaker,
  this.stuckTool,
  this.finalizeGate = false,
  this.operativeSkills = const [],
  this.reportedOrphanKeys,
  this.budgetLineProvider,
});