Skip to content

RC4.2: a repeat notice instead of blocking tool calls (engine sparkglm/atlas-20261012-rc4.2-layered) - #47

Merged
data-angel merged 2 commits into
mainfrom
release/rc4.2
Oct 12, 2026
Merged

data-angel merged 2 commits into
mainfrom
release/rc4.2

Conversation

@data-angel

Copy link
Copy Markdown
Contributor

RC4.2 pins engine Enntity/atlas sparkglm/atlas-20261012-rc4.2-layered @ dfb9c26a (tree 89e392a3). It is RC4.1 plus one spark-server commit, d8a55e0f on upstream/glm53-flash-20261012-rc4.2, with the seven SparkGLM-only layer commits re-applied.

The image is ghcr.io/enntity/atlas-sparkglm:246a3a948ab9 (sha256:e4d313b5e32c47545eab0059eea65a38e65d03fc8e0d5b8c2cfb497c39f0372a), install tree 246a3a948ab98d19e085bfd39797e554f0ee9261. It is staged on both pair hosts and not yet deployed.

The incident. In production, an agent on RC4.1 ran the same grep three times and got the same result each time. The loop detector then hard-masked <tool_call> for the next turn. Unable to call a tool, GLM wrote its intended action as prose and repeated one paragraph for 756 tokens, twice within a minute.

The fix (engine). From the second identical round (the same calls and arguments, returning the same non-error result), the engine:

  • appends a <REPEAT NOTICE> to the latest tool result;
  • gives that turn the xhigh thinking rung, unless the client set an explicit budget;
  • leaves <tool_call> open and unbiased: no mask, no negative bias.

Turning the mask off alone (the earlier ATLAS_LOOP_NO_SUPPRESS=1 profile commit on this branch) let GLM repeat the identical call, so that switch is removed again. The profiles now equal RC4.1's.

Before and after, same reproduction: RC4.1 produced a prose loop of about 4,000 tokens; RC4.2 makes a new tool call. On the same build:

  • the long tool call is intact;
  • the logprob hash 246cd1331b41 is unchanged;
  • decode speed is unchanged.

Thinking harder on every turn did not help. Raising thinking for every turn from 128 to 256 tokens scored 11/13 on RigMark Quality both ways, but took 4.5× as long (2,204 s vs 485 s) with 22× the reasoning tokens. So only the stuck turn thinks harder.

Changes

  • install/atlas-source.json: pins dfb9c26a / 89e392a3 and records the layers (upstream candidate d8a55e0f; the SparkGLM-only layer 26812d35..dfb9c26a).
  • install/profiles/*: unchanged from main.
  • results/2026-10-12-rc4/RESULT.md: the RC4.2 section is rewritten.
  • README.md: a note on repeated tool calls under the supported-features paragraph, and the engine section.
  • docs/INSTALL-MANUAL.md: the engine row.

Install tests: 18/18 pass. Engine CI on 03:

  • fmt and clippy are clean;
  • the repeat-notice, hint and loop tests pass;
  • the only failures are two spark-server tests that already failed at a1c9b1bc.

After merge: repin LLooM's source.revision to the merge commit (Enntity/lloom PR for RC4.2). The tree, tag and digest stay the same.

🤖 Generated with Claude Code

data-angel and others added 2 commits October 12, 2026 14:28
…sk on repeated calls)

After three identical tool calls the loop detector hard-masked <tool_call> for
a turn, and GLM wrote its intended action as prose, repeating one paragraph
for 756 tokens (seen twice in production on RC4.1). The switch keeps the
detection, logging, metrics and soft bias and skips only the mask. Engine pin
unchanged (301479a2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…instead of masking tool calls

Drop ATLAS_LOOP_NO_SUPPRESS from the profiles (they equal RC4.1's again) and
pin dfb9c26a (tree 89e392a3): on repeated identical tool rounds the engine
appends a <REPEAT NOTICE> and thinks at xhigh on that turn, with <tool_call>
open and unbiased. RESULT.md RC4.2 section and README note rewritten.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@data-angel
data-angel merged commit 3c7d671 into main Oct 12, 2026
1 check passed
data-angel added a commit to Enntity/lloom that referenced this pull request Oct 12, 2026
…t 3c7d6714

Enntity/sparkglm#47 merged as 3c7d6714; its install tree is unchanged
(246a3a948ab9), so the image, tag and digest stay the same.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant