refactor(action): support initiate turn after evaluation

This commit is contained in:
2026-03-29 22:58:55 +08:00
parent 6e37ed032b
commit 0b750f8028

View File

@@ -163,18 +163,35 @@ public class ActionPlanner extends AbstractAgentModule.Running<PartnerRunningFlo
} }
private void handleEvaluatorResults(List<EvaluatorResult> evaluatorResults, String source, String input) { private void handleEvaluatorResults(List<EvaluatorResult> evaluatorResults, String source, String input) {
List<ExecutableAction> passedActions = new ArrayList<>();
int approvedExecutableCount = 0;
int pendingConfirmCount = 0;
for (EvaluatorResult evaluatorResult : evaluatorResults) { for (EvaluatorResult evaluatorResult : evaluatorResults) {
expireResolvedPending(evaluatorResult); expireResolvedPending(evaluatorResult);
if (!evaluatorResult.isOk()) { if (!evaluatorResult.isOk()) {
continue; continue;
} }
ExecutableAction executableAction = assemblyHelper.buildActionData(evaluatorResult, source); ExecutableAction executableAction = assemblyHelper.buildActionData(evaluatorResult, source);
passedActions.add(executableAction);
if (evaluatorResult.isNeedConfirm()) { if (evaluatorResult.isNeedConfirm()) {
registerPendingContextBlock(executableAction, evaluatorResult, input); registerPendingContextBlock(executableAction, evaluatorResult, input);
pendingConfirmCount++;
continue; continue;
} }
executeOrSchedule(executableAction); executeOrSchedule(executableAction);
approvedExecutableCount++;
} }
if (passedActions.isEmpty()) {
return;
}
createTurn(approvedExecutableCount, pendingConfirmCount, source, input);
}
private void createTurn(int approvedExecutableCount, int pendingConfirmCount, String source, String input) {
String turnInput = approvedExecutableCount + " actions are approved for execution, " +
pendingConfirmCount + " actions are waiting for confirmation, " +
"according to input: " + trimInput(input) + ". For more information, please refer to the context content or other tags in this input block.";
cognitionCapability.initiateTurn(turnInput, source, getModuleName());
} }
private void expireResolvedPending(EvaluatorResult evaluatorResult) { private void expireResolvedPending(EvaluatorResult evaluatorResult) {