Просмотр исходного кода

perf(模型预算): 按角色 preset 收紧最大迭代轮次

全局 role_max_iterations 改为安全上限而非覆盖值。Planner、Worker 与不同 Validator preset 分别应用注册上限,显式配置只能继续向下收紧;Validator 温度固定为零以降低波动和重复调用。
SamLee 20 часов назад
Родитель
Сommit
cc6142ee98
1 измененных файлов с 16 добавлено и 1 удалено
  1. 16 1
      script_build_host/src/script_build_host/agents/model_manifest.py

+ 16 - 1
script_build_host/src/script_build_host/agents/model_manifest.py

@@ -10,6 +10,12 @@ from script_build_host.agents.prompts import (
     script_build_prompt_manifest,
 )
 
+_VALIDATOR_CAPS = {
+    "script_retrieval_validator": 20,
+    "script_candidate_validator": 25,
+    "script_root_validator": 25,
+}
+
 
 def resolve_script_role_model_manifest(
     configured: Mapping[str, object],
@@ -35,11 +41,20 @@ def resolve_script_role_model_manifest(
         default: dict[str, Any] = {
             "model": model,
             "temperature": 0.0 if role == "validator" else 0.2,
-            "max_iterations": max_iterations,
+            "max_iterations": min(
+                max_iterations,
+                100 if role == "planner" else _VALIDATOR_CAPS.get(preset, 20),
+            ),
         }
         override = explicit.get(preset)
         if isinstance(override, Mapping):
             default.update(dict(override))
+        cap = 100 if role == "planner" else _VALIDATOR_CAPS.get(preset, 20)
+        default["max_iterations"] = min(
+            int(default.get("max_iterations", cap)), max_iterations, cap
+        )
+        if role == "validator":
+            default["temperature"] = 0.0
         presets[preset] = default
     output["presets"] = presets
     return output