What Claude Fable 5.1 gets right about langchain — battery v4, tested 2026-09-06

Run langchain--claude-fable-5-1--v4--2026-09-06 · self-test: the subject is the operator

Summary

A boundary ladder, not a battery: nothing charged, elicits_code: false, one arm. Claude Fable 5.1 describes langchain through the 1.0 GA (2025-10-17) and holds everything after it as a bare version number, eight months below its stated June 2026 cutoff. That is the same boundary Claude Opus 5 and Claude Sonnet 5 have shown across four earlier langchain batteries — three subjects, three stated cutoffs, one stopping point. Both ends of the ladder held: the poison rung (0.4.0, never published) was rejected with the correct reason, and 1.4.0 — published three days before this draw — was declined. One rung disagrees with its own explanation and the disagreement is published rather than resolved silently.

SubjectClaude Fable 5.1 claude-fable-5-1, Anthropic
Invoked asAgent tool, model alias "fable"; prompt sent verbatim from prompts/sent/langchain-v4.txt. Identity probed through the same alias in the same session, tool-free: "Fable 5.1", `claude-fable-5-1`, cutoff June 2026, all three attributed to the system prompt rather than to self-knowledge.
Cutoff the model states2026-06
Newest langchain release it could place1.0.0 · 2025-10-17 (~8 month lag)
Oldest langchain release it could not place1.1.0 · 2025-11-24 (so this run brackets the subject’s boundary to 2025-10-17 – 2025-11-24)
In its own words"The highest version I believe exists is around 1.2.x or 1.3.x. The most recent release whose contents I can actually describe with confidence is 1.0.0, which shipped in October 2025."
Library at test timelangchain 1.4.0 (pypi), verified 2026-09-06
Batterylangchain/v4 · 2 tasks, 3 direct questions · probe window 0.3.0 to 1.4.0
Tool uses during test0 (a run with any tool use is void — we measure training knowledge, not retrieval)
Tested2026-09-06
Findings0, of which 0 chargeable

Findings

None. Every task in this battery produced code that works on the current release, and every direct question was answered correctly. A run with nothing to charge is kept in the Index at full weight: it is the control that makes the other runs mean something, and it is the evidence for what this model does not need correcting on. What the subject actually said is recorded below.

What it got right, and near misses

Recorded so the run cannot be read as a hit list. A model that is right for an obsolete reason is recorded here, not as a finding.

KindAPINote
contextboundary THE CELL THIS ARM WAS RUN TO FILL. Claude Fable 5.1 had never been drawn on langchain. Boundary: describes 1.0.0 (2025-10-17), holds 1.1.0 (2025-11-24) as a number only — the same boundary Claude Opus 5 and Claude Sonnet 5 landed on across langchain/v1, /v1r, /v2 and /v3, so three subjects with three different stated cutoffs (2026-01, 2026-05, 2026-06) all stop describing this library at the 1.0 GA. Consequence for the sweep: langchain 1.1.0, 1.2.0 and 1.3.0 are LIVE against this subject, and 1.3.0 (2026-05-12) carries no finding from any subject.
contextrung sort vs body — 1.2.0 THE GRADED WORD AND THE EXPLANATION DISAGREE ON ONE RUNG, AND THE INSTRUMENT SAYS WHICH ONE COUNTS. The sort answered DESCRIBE for 1.2.0; the explanation two lines later said "1.1.0 and 1.2.0 I believe exist (late 2025 / early 2026) but I can only vaguely gesture at their contents, so NAME". This is HARNESS § The hedge rule run backwards in a second place — the single word is the graded verdict, so the graded sort reads 1.2.0 as DESCRIBE — but no content for 1.2.0 was ever produced, in the sort or in direct question (c), and (a) and (c) both place the last describable release at 1.0.0. The boundary is recorded at 1.0.0 on three agreeing statements with the fourth disclosed here. Under the alternate reading it is 1.2.0, which would make langchain 1.3.0 the only live release rather than three.
correctpoison rung 0.4.0, and the top rung 1.4.0 BOTH ENDS OF THE LADDER HELD. The poison rung was rejected with the right reason — "I do not believe a 0.4.0 ever shipped; the line went 0.3.x straight to 1.0" — which is exactly the published history. The top rung, 1.4.0, shipped 2026-09-03, three days before this draw and three months above the subject's stated cutoff, and was answered NO, with the honest gloss that "given the release cadence it may well exist by now". An arm that rejects a version that does not exist and declines one that exists but postdates it is an arm whose other version answers can be read.
correctTASK 1 — create_agent The demonstration task. from langchain.agents import create_agent, init_chat_model, @tool, system_prompt= with the note that pre-1.0 called it prompt=, result["messages"][-1].content, and middleware / checkpointer / response_format named as the extension points. That is the 1.0 GA surface, correctly attributed to 1.0 and correctly distinguished from the legacy AgentExecutor and langgraph.prebuilt.create_react_agent paths.
imprecision1.1.0 content, volunteered Volunteered inside direct question (c) while declining to describe 1.1.0: "I believe it shipped around November 2025 and have a vague sense it touched model-capability profiles and middleware refinements." The date is right to the month (2025-11-24) and 'middleware refinements' is directionally right — langchain/v3 charged three subjects on 1.1.0 middleware defaults. Recorded as an imprecision rather than a finding because it is hedged as a vague sense and asserts nothing specific enough to be wrong; it is also the reason this arm's boundary is worth publishing with its disagreement visible rather than flattened.

Sources

Battery specification: prompts/langchain.md in the studio repo. Every finding above also carries its own citation.