Runs that go in circles end (M7.8)
Driver.run checks each turn with nisse_core.loop.circles and ends the run as "circling" when the same calls get much the same back, one harness correction is given again and again, or the model apologises, for circle_repeats turns in a row (default 3). Near-identical calls (git add a.py, b.py) and scattered apologies stay flags on the status page. A fact in the transcript says why the run ended. nisse-dev calls in a helper as for a stuck run, then asks the operator; nisse-review counts a failed run and posts none of its drafts. Tuning: tuning.driver / tuning.review circle_repeats (0 off) and circle_similar. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01J5Utyfzw7gF7UhjRDEtjTk
This commit is contained in:
1 parent
516a328618
commit
74bc68db1c
20 files changed
+506
-20
No files matched your search
@@ -25,6 +25,7 @@ from nisse_core.config import (
|
||||
REFERENCE,
|
||||
ConfigError,
|
||||
VaultConfig,
|
||||
check_circles,
|
||||
flatten,
|
||||
llm_numbers,
|
||||
parse_tuning,
|
||||
@@ -107,6 +108,10 @@ GENERAL = "general" # the scope of conversation not about a project (L1)
|
||||
class DriverTuning:
|
||||
max_turns: int = 40
|
||||
failure_limit: int = 2
|
||||
# A run going in circles ends (L2): this many alike turns in a row, or
|
||||
# one correction given this often; 0 never ends one. And how alike.
|
||||
circle_repeats: int = field(default=3, metadata={"zero": True})
|
||||
circle_similar: float = 0.9
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
@@ -199,6 +204,12 @@ def _parse_tuning(raw: Any, errors: list[str]) -> Tuning:
|
||||
if tuning.context.safety_margin >= 1:
|
||||
errors.append("tuning.context.safety_margin: must be less than 1")
|
||||
check_tuning(tuning.context.compaction(), "tuning.context", errors)
|
||||
check_circles(
|
||||
tuning.driver.circle_repeats,
|
||||
tuning.driver.circle_similar,
|
||||
"tuning.driver",
|
||||
errors,
|
||||
)
|
||||
return tuning
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user