fix: avoid low-confidence supervisor retry by default
This commit is contained in:
@@ -104,6 +104,9 @@ public class ChatService {
|
||||
@Value("${verifier.low-confidence-threshold:0.5}")
|
||||
private double verifierLowConfidenceThreshold;
|
||||
|
||||
@Value("${chat.complex.retry-on-low-confidence:false}")
|
||||
private boolean retryOnLowConfidence;
|
||||
|
||||
/** 多 Agent Chat 的 Prompt */
|
||||
private String chatPlannerPrompt;
|
||||
private String chatExecutorPrompt;
|
||||
@@ -211,16 +214,19 @@ public class ChatService {
|
||||
|
||||
/**
|
||||
* 动态构建方法工具数组
|
||||
* 根据 cls.mock-enabled 决定是否包含 QueryLogsTools
|
||||
* 根据已注入的 Bean 暴露本地工具,避免 mock/真实模式下漏注入。
|
||||
*/
|
||||
public Object[] buildMethodToolsArray() {
|
||||
List<Object> methodTools = new ArrayList<>();
|
||||
methodTools.add(dateTimeTools);
|
||||
methodTools.add(lookupKnowledgeTool);
|
||||
if (queryLogsTools != null) {
|
||||
// Mock 模式:包含 QueryLogsTools
|
||||
return new Object[]{dateTimeTools, lookupKnowledgeTool};
|
||||
} else {
|
||||
// 真实模式:不包含 QueryLogsTools(由 MCP 提供日志查询功能)
|
||||
return new Object[]{dateTimeTools, lookupKnowledgeTool, queryMetricsTools};
|
||||
methodTools.add(queryLogsTools);
|
||||
}
|
||||
if (queryMetricsTools != null) {
|
||||
methodTools.add(queryMetricsTools);
|
||||
}
|
||||
return methodTools.toArray();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -436,7 +442,10 @@ public class ChatService {
|
||||
break;
|
||||
}
|
||||
|
||||
if (finalDecision.groundednessScore() >= verifierLowConfidenceThreshold || round == 2) {
|
||||
boolean shouldRetry = retryOnLowConfidence
|
||||
&& finalDecision.groundednessScore() < verifierLowConfidenceThreshold
|
||||
&& round < 2;
|
||||
if (!shouldRetry) {
|
||||
answer = buildLowConfidenceOutput(answer, finalDecision);
|
||||
persistVerifierEvaluation(session, finalDecision, round);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user