Class BlackboardPlanner
java.lang.Object
dev.langchain4j.agentic.patterns.blackboard.BlackboardPlanner
- All Implemented Interfaces:
dev.langchain4j.agentic.planner.Planner
A blackboard planner that activates agents based on data availability in the shared scope.
Agents are knowledge sources that post partial results to the AgenticScope (the blackboard).
After each agent completes, the planner inspects the blackboard and activates whichever single agent
can contribute next. When multiple agents are ready, a ConflictResolutionStrategy determines
which one fires; if no strategy is provided, declaration order is used.
The planner terminates when:
- The goal predicate is satisfied (by default, when the planner's outputKey is present in scope)
- No agent can fire (quiescence)
- The maximum number of invocations is reached
-
Constructor Summary
ConstructorsConstructorDescriptionBlackboardPlanner(ConflictResolutionStrategy conflictResolutionStrategy) BlackboardPlanner(Predicate<dev.langchain4j.agentic.scope.AgenticScope> goalPredicate) BlackboardPlanner(Predicate<dev.langchain4j.agentic.scope.AgenticScope> goalPredicate, int maxInvocations) BlackboardPlanner(Predicate<dev.langchain4j.agentic.scope.AgenticScope> goalPredicate, int maxInvocations, ConflictResolutionStrategy conflictResolutionStrategy) BlackboardPlanner(Predicate<dev.langchain4j.agentic.scope.AgenticScope> goalPredicate, ConflictResolutionStrategy conflictResolutionStrategy) -
Method Summary
Modifier and TypeMethodDescriptiondev.langchain4j.agentic.planner.ActionfirstAction(dev.langchain4j.agentic.planner.PlanningContext planningContext) voidinit(dev.langchain4j.agentic.planner.InitPlanningContext initPlanningContext) dev.langchain4j.agentic.planner.ActionnextAction(dev.langchain4j.agentic.planner.PlanningContext planningContext) voidrestoreExecutionState(Map<String, Object> state) dev.langchain4j.agentic.planner.AgenticSystemTopologytopology()Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface dev.langchain4j.agentic.planner.Planner
as, call, call, done, done, noOp, terminated
-
Constructor Details
-
BlackboardPlanner
public BlackboardPlanner() -
BlackboardPlanner
-
BlackboardPlanner
-
BlackboardPlanner
public BlackboardPlanner(Predicate<dev.langchain4j.agentic.scope.AgenticScope> goalPredicate, int maxInvocations) -
BlackboardPlanner
public BlackboardPlanner(Predicate<dev.langchain4j.agentic.scope.AgenticScope> goalPredicate, ConflictResolutionStrategy conflictResolutionStrategy) -
BlackboardPlanner
public BlackboardPlanner(Predicate<dev.langchain4j.agentic.scope.AgenticScope> goalPredicate, int maxInvocations, ConflictResolutionStrategy conflictResolutionStrategy)
-
-
Method Details
-
init
public void init(dev.langchain4j.agentic.planner.InitPlanningContext initPlanningContext) - Specified by:
initin interfacedev.langchain4j.agentic.planner.Planner
-
firstAction
public dev.langchain4j.agentic.planner.Action firstAction(dev.langchain4j.agentic.planner.PlanningContext planningContext) - Specified by:
firstActionin interfacedev.langchain4j.agentic.planner.Planner
-
nextAction
public dev.langchain4j.agentic.planner.Action nextAction(dev.langchain4j.agentic.planner.PlanningContext planningContext) - Specified by:
nextActionin interfacedev.langchain4j.agentic.planner.Planner
-
executionState
-
restoreExecutionState
-
topology
public dev.langchain4j.agentic.planner.AgenticSystemTopology topology()- Specified by:
topologyin interfacedev.langchain4j.agentic.planner.Planner
-