-
Notifications
You must be signed in to change notification settings - Fork 49
Open
Labels
Description
var creativeWriter = AgentsUtils.newCreativeWriter();
var scorer = AgentsUtils.newStyleScorer();
var editor = AgentsUtils.newStyleEditor();
Predicate<AgenticScope> until = s -> s.readState("score", 0).doubleValue() >= 0.8;
Map<String, Object> input =
Map.of(
"topic", "fantasy",
"style", "fantasy",
"audience", "young adults");
Workflow wf = workflow("loopFlow").agent(creativeWriter)
.loop(until, scorer, editor).build();
Object result;
try (WorkflowApplication app = WorkflowApplication.builder().build()) {
result = app.workflowDefinition(wf).instance(input).start().get().asJavaObject();
} catch (Exception e) {
throw new RuntimeException("Workflow execution failed", e);
}
System.out.println(result);
What happened:
Caused by: java.lang.NullPointerException: Cannot invoke "java.util.Optional.isPresent()" because the return value of "io.serverlessworkflow.api.types.func.ForTaskFunction.getForClass()" is null
at io.serverlessworkflow.impl.executors.func.JavaForExecutorBuilder.collectionFilterObject(JavaForExecutorBuilder.java:70)
at io.serverlessworkflow.impl.executors.func.JavaForExecutorBuilder.buildCollectionFilter(JavaForExecutorBuilder.java:65)
at io.serverlessworkflow.impl.executors.ForExecutor$ForExecutorBuilder.<init>(ForExecutor.java:47)
at io.serverlessworkflow.impl.executors.func.JavaForExecutorBuilder.<init>(JavaForExecutorBuilder.java:37)
at io.serverlessworkflow.impl.executors.func.JavaTaskExecutorFactory.getTaskExecutor(JavaTaskExecutorFactory.java:30)
at io.serverlessworkflow.impl.executors.TaskExecutorHelper.createExecutorBuilderList(TaskExecutorHelper.java:93)
at io.serverlessworkflow.impl.executors.TaskExecutorHelper.createExecutorList(TaskExecutorHelper.java:65)
at io.serverlessworkflow.impl.WorkflowDefinition.<init>(WorkflowDefinition.java:59)
at io.serverlessworkflow.impl.WorkflowDefinition.of(WorkflowDefinition.java:69)
at io.serverlessworkflow.impl.WorkflowDefinition.of(WorkflowDefinition.java:64)
at io.serverlessworkflow.impl.WorkflowApplication.lambda$workflowDefinition$0(WorkflowApplication.java:257)
at java.base/java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1708)
at io.serverlessworkflow.impl.WorkflowApplication.workflowDefinition(WorkflowApplication.java:256)
at io.serverlessworkflow.fluent.agentic.langchain4j.WorkflowAgentsIT.loopTest(WorkflowAgentsIT.java:142)
... 3 more
What you expected to happen:
No Exception, resulted String returned from the workflow