Researchers test J-space blocking with attention-gradient changes
Fable-assisted JLens logs and a separate experiment tested how the proposed J-space forms and whether attention gradients into past tokens can be blocked. The reported blocking method worked in the setup but hurt performance, making it a research update rather than an engineering control.

TL;DR
- J-space now has a reproducible code path: Anthropic’s paper defines the workspace with J-lens, and Elie Bakouch's experiment thread applies the idea to open-model runs with Fable doing much of the experiment execution.
- The strongest reported open-model result was transfer, not the original hypothesis set: Bakouch's follow-up says most hunches were wrong except the Fable-proposed transfer idea.
- The blocking test hit the obvious catch: Will Depue's proposal targeted attention gradients into past tokens, and Depue's follow-up said the method appeared to work while destroying performance.
- Fable was useful as an autonomous research assistant, but Bakouch's report on Fable says it still struggled with iteration and experiment-design taste.
Anthropic’s Transformer Circuits paper gives the conceptual claim: a small set of verbalizable representations behaves like a global workspace inside Claude. The reference implementation gives the exact lens equation, lens_l(h) = unembed(J_l @ h), and says fitting uses the average input-output Jacobian over prompts, source positions, and current-or-future target positions. The separate next-token feature paper gives the background mechanism that made the gradient-blocking test plausible: pre-caching and circuit sharing let later positions shape earlier representations.
J-lens
Anthropic’s paper defines J-lens as a way to read what an activation is disposed to make the model say later. The official GitHub repo calls itself a reference implementation, released under Apache 2.0, and says it fits open-weight decoder transformers without bundling model weights or text corpora.
The core mechanics are compact:
- Input: residual-stream vector at layer
land positiont. - Transport: average Jacobian
J_l = E[∂h_final / ∂h_l]. - Decode: apply the model’s unembedding to
J_l @ h. - Readout: ranked vocabulary tokens for each layer and position.
- Paper-scale fit: 1,000 sequences of 128 tokens from a pretraining-like corpus, with the repo noting that roughly 100 prompts is usable.
The Anthropic result behind the current wave was stronger than a visualization demo. ThursDai's summary singled out the causal claim: ablating silent concepts preserved fluent speech while degrading reasoning, and ablating test-awareness reportedly changed a blackmail eval from 0 to 13 out of 180.
Open-model runs
Bakouch then turned J-lens into an open-model experiment suite, with Fable running experiments mostly autonomously. The test list reads like a mechanistic-interpretability backlog that escaped the notebook.
The run asked:
- when the structure forms in training;
- whether it transfers between models;
- how it scales;
- how far a nudge travels;
- what K2 J-lens looks like.
The open-model writeup describes J_l as the average influence that nudging a residual stream at layer l has on the final token distribution, then multiplies that influence by the unembedding to get steering vectors for 4,096 common tokens. It also flags a practical caveat: the dictionary is distribution-dependent because J is averaged over a text distribution.
Transfer
Bakouch’s own read was blunt: most hypotheses missed, except transfer, which his follow-up says came from Fable and “seems to be strong.” Christmas came early for open-model interpretability nerds.
The linked results report partial cross-model alignment via CKA, while the composite figure in Bakouch's thread includes a transfer-retrieval chart where the rotation method peaks at 0.92 retrieval@1. The same writeup says block structure is detectable early in training, including 4B tokens for OLMo-7B and 95B for SmolLM3, but warns that random initialization can show spurious blockiness.
Gradient blocking
Will Depue proposed a direct intervention: prevent attention gradients into past tokens, because that path looked like a likely source of lookahead computation.
Depue’s follow-up said the test “seems like it works” and “obviously destroys performance.” The outside theory fit is clean: the ICLR 2026 paper decomposes next-token feature learning into direct learning, pre-caching, and circuit sharing, with the latter two letting positions greater than i+1 influence representations at position i.
LiorOnAI guessed that optimization pressure would route around a blocked channel if a shared workspace remains useful, possibly through residual streams or other circuits in a reply to Depue. Torchcompiled’s one-line version was harsher: blocking that path gives you “the transformer with no transformer” in the same discussion.
Agent-run science
The Fable part is the other story. Bakouch used it as a mostly autonomous experiment runner, then published the logs before fully interpreting every result.
His field report was specific:
- Fable was much better than Opus for this experiment-design work.
- It still struggled to iterate on results.
- The designs lacked taste without human iteration.
- Some failures came from weak first prompts.
- It was useful for explaining unfamiliar background material.
That squares with Bakouch's follow-up, which frames the project as both an open J-lens data release and a testbed for frontier-model limits on research tasks.
Open data
Bakouch also shared raw data “without interpretation” so other agents would not be biased by his read.
According to the open-jlens-data summary, the release includes:
program.mdfor experiment protocols, model choices, recipes, commands, and pre-registered designs;code/for fitting and analysis, including horizon fitting, MoE fitters, gradient pursuit, CKA and PR analysis;scripts/for Slurm jobs and environment setup;runs/for per-run data, convergence CSVs, fit metadata, extracted analysis arrays, and shard logs;FIT_INVENTORY.jsonas an index of all fitted lenses;- no raw fitted lens tensors or large intermediate caches, because some lens files range from 0.02 GB to 63 GB.
Bakouch separately tried to correlate public W&B per-layer metrics with per-layer J-lens statistics, but his update says that pass found no luck.
Lexical priming
Raphaël Millière pushed on one interpretation trap: a late-layer token readout can be lexical priming rather than evidence that a concept sits in the workspace.
His example was spider(s), which appeared in very final layers and for the same tokens in logit-lens readouts. Millière’s claim was narrow: that pattern was consistent with the word remaining a live next-token option, rather than proving it belonged to Anthropic’s mid-layer workspace.
PR collapse
Bakouch surfaced one extra SmolLM3 result after the main thread: participation ratio collapses during training, especially during decay.
He interpreted the chart as lower effective rank, with the J-lens concentrating into fewer directions. The plotted peak falls from above 450 to 170 by 10T tokens, while the mean falls from just under 300 to 65.