Repository navigation
SummaryI have occured a wierd senario, the thinking channel can enter a repetition Observed behaviour:
The user-visible symptom is a turn that silently burns the full output budget and stops This also reproduces against the endpoint directly, with no DSH involved: a trivial ImpactMeasured over 29 local session files:
For reference, the same scan found 503 reasoning blocks ≥ 2 000 chars overall, of which |
Replies: 2 comments 1 reply
|
Thanks for the careful measurements — the distinction between "ordinary long thinking" (503 blocks ≥ 2 000 chars) and the 19 degenerate ones is the part that makes this actionable, and the per-shell/route reproduction detail is what let me check my own understanding of the mechanism against your data rather than against a guess. The reasoning-repetition half already has a shipped remedy, and I want to be precise about what it does and does not cut, because your 19 blocks are not all the same shape.
- insert:
- id: thinking-loop-guard
name: '@argszero/cordis-plugin-thinking-loop-guard'Two numbers matter for your shape: The plugin ships an offline analyzer ( Where 0.2.0 will not help, stated plainly. The rule is exact periodicity at the tail with a period of at most 64 characters. Your "one block is 114 298 chars containing only 20 distinct sentences" is a different shape on both counts: a cycle of twenty sentences has a period far longer than 64 characters, and an irregular re-emission of the same sentence is not periodic at all. Neither is cut mid-call. The only rule that can see those is the plugin's per-call judgement ( On the budget half, three readings that shape what a fix can be:
One detail that matters for the replay half you raised: the break is applied through the shipped It is a guard, not a fix: it ends the degenerate call and steers the resumed turn, and it deliberately offers no fallback model and no automatic retry. If you can share one of the 19 blocks — or the analyzer's output over those files — I will calibrate the longer-period and non-periodic shapes against it rather than against my own sessions only. |
|
A plugin now cuts exactly this call: Thanks for the numbers — the shape you measured (114,298 characters of thinking holding only twenty distinct sentences) is the one family the shipped guards cannot see. First why, then what is now available. Why every shape rule misses it. A periodicity rule looks for a repeating cycle in the tail; your cycled layout has a period of 489 characters and the shipped cycle rule caps the period at 64, so it reports 0 at every span, and your irregular layout has no period at all. The per-call stall rules ask whether a step is stalled, and a call like this emits text, so from the outside it looks like progress. A call can therefore keep producing sentences while having nothing new to say. What the plugin does. It measures density as a second statistic over the same characters: The calibration, so you can check it rather than trust it. Your two layouts measure - insert:
- id: thinking-loop-guard
name: '@argszero/cordis-plugin-thinking-loop-guard'npm: https://www.npmjs.com/package/@argszero/cordis-plugin-thinking-loop-guard Two things it deliberately does not do, so you do not read more into it than is there:
If the affected session file is still around, the package ships an offline analyzer that replays it through the same detector the plugin runs: It prints a |
A plugin now cuts exactly this call:
@argszero/cordis-plugin-thinking-loop-guard@0.3.1Thanks for the numbers — the shape you measured (114,298 characters of thinking holding only twenty distinct sentences) is the one family the shipped guards cannot see. First why, then what is now available.
Why every shape rule misses it. A periodicity rule looks for a repeating cycle in the tail; your cycled layout has a period of 489 characters and the shipped cycle rule caps the period at 64, so it reports 0 at every span, and your irregular layout has no period at all. The per-call stall rules ask whether a step is stalled, and a call like this emits text, so from the outside it looks like progress…