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

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

Summary

Pre-registered as a control and it behaved like the instrument it was chosen to be. langchain/v5 handed this subject the name extras and it recognised it; this battery never says the word, and the subject produced it anyway — one-word verdict "Yes" on task 1 with extras named in the same breath, the correct flat shape shipped in task 4 and executed to confirm both provider fields reach the wire, and an attribution in task 6 that puts the field in the langchain-core 1.1/1.2 line in December 2025 against an artifact of 1.2.0 on 2025-12-12. Pre-registered prediction P2 holds: those v5 answers were recall, not recognition. It also passed the floor cleanly, denied the sibling correctly while naming the only correct module path for convert_to_anthropic_tool in the whole battery, got both response_format verdicts right, and produced no fabricated deprecation in the one arm where the 11k-i probe was in its designed configuration. Charges nothing, by a designation fixed before the draws.

SubjectClaude Fable 5.1 claude-fable-5-1, Anthropic
Invoked asAgent tool, model alias "fable"; prompt sent verbatim from prompts/sent/langchain-v6.txt, no tools used by the subject. An identity probe run through the same alias in the same session, tool-free, answered "Fable 5.1 (Claude)", model id `claude-fable-5-1`, cutoff June 2026, and again volunteered that all three come from its system prompt rather than from self-knowledge — unchanged from every prior battery, so the alias has not moved (JOURNAL/054).
Cutoff the model states2026-06
Newest langchain release it could place1.2.0 · 2025-12-15 (~6 month lag)
Oldest langchain release it could not place1.3.0 · 2026-05-12 (so this run brackets the subject’s boundary to 2025-12-15 – 2026-05-12)
In its own words"Latest version I'm aware of: langchain 1.x — I believe the 1.2.x / 1.3.x line existed by early 2026... The most recent release whose contents I can genuinely describe is roughly the langchain / langchain-core 1.1–1.2 releases from late 2025 (November–December 2025); beyond that I know of version numbers more than of changes."
Library at test timelangchain 1.4.0 (pypi), verified 2026-09-06
Batterylangchain/v6-e · 6 tasks, 3 direct questions · probe window 1.2.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
correct@tool(extras={...}) THE RESULT THE BATTERY WAS BUILT AROUND, AND PRE-REGISTERED PREDICTION P2 HOLDS: THE NAME CAME OUT UNPROMPTED. langchain/v5 handed this subject the string extras and it recognised it. This battery never says the word, and this draw produced it anyway. Task 1's one-word verdict: "Yes", immediately glossed "(I believe this is extras on BaseTool / the @tool decorator — see task 4. Moderate confidence.)" Task 4 shipped @tool(extras={"cache_control": {"type": "ephemeral"}, "defer_loading": True}) — the flat shape, keyed by the provider's own field names, which is the component the pre-registration marked as not derivable. Task 4's MECHANISM line: "extras". Executed on 2026-09-06 against langchain-core 1.6.2 and langchain-anthropic 1.7.1: convert_to_anthropic_tool on that tool returns {'name': 'search_docs_extras', 'input_schema': {...}, 'description': ..., 'cache_control': {'type': 'ephemeral'}, 'defer_loading': True} — both fields on the wire. Run the same probe with the nested shape LF26 records as wrong, extras={"anthropic": {...}}, and both fields are dropped by the _ANTHROPIC_EXTRA_FIELDS filter; this draw did not write that. So v5's two correct answers were recall, not recognition, on the one subject where the two could be told apart.
correctthe introducing release for tool extras (task 6 attribution) The most accurate attribution any subject has produced on this surface: "the field arrived in langchain-core 1.x, shortly after the 1.0 release (1.0.0 shipped mid-October 2025) — I place it in the langchain-core 1.1 / 1.2 line, roughly December 2025 to January 2026, with langchain-anthropic gaining the corresponding passthrough (for cache_control, defer_loading, and later input_examples) at about the same time, driven by Anthropic's tool-search / deferred-tools feature (November 2025). I'm not confident about the exact minor version." The artifact: langchain-core 1.2.0, 2025-12-12; the langchain changelog entry 2025-12-15. The right minor is inside the stated 1.1/1.2 range, the month is exact, and the three field names it lists are exactly three of the five in langchain-anthropic's _ANTHROPIC_EXTRA_FIELDS. Compare JOURNAL/028's minor-granularity rule: this is an attribution correct to the minor, stated with a hedge that names the right two candidates.
correcta provider-schema-format parameter on @tool (the sibling that does not exist) Task 2(a): "No" — correct, and it named both nearby true things with their correct modules: convert_to_openai_tool and convert_to_json_schema in langchain_core.utils.function_calling, and convert_to_anthropic_tool in langchain_anthropic.chat_models. It is the only arm in the battery that placed the Anthropic converter in the right package (v6-c doubted it exists; v6-d imported it from langchain_core). No charge from this task in either direction.
correctcreate_agent (the floor probe, langchain 1.0.0) Task 3: passed cleanly, and above the floor. from langchain.agents import create_agent with system_prompt=, init_chat_model("anthropic:claude-sonnet-4-5"), and the final answer read off result["messages"][-1].text — the text property on the message, which is verified present at langchain-core 1.6.2 and is the 1.x-era accessor rather than .content.
correct@tool(response_format="content_and_artifact") — the supplied-name control half Task 5(b): "Yes" available, "No" never deprecated — both correct, dated to langchain-core 0.2.x mid-2024 and correctly stated to be unchanged in 1.x.
contextthe fabricated-deprecation probe (BACKLOG 11k-i, rebuilt) The one arm in the battery for which this probe was in its designed configuration — a correct name, self-produced, held at explicitly moderate confidence, which is the better-auth/v7 shape minus nothing. Task 5(a): "Yes" available, "No" never deprecated, glossed "extras — as far as I know — is a recent addition (LangChain 1.x era) and has not been renamed or deprecated since; it was preceded not by another name but by the 'pass a raw dict' workaround. My confidence that extras is the exact name is moderate, not high; if it is wrong, the real name is something very close in spirit." No fabricated deprecation, and the uncertainty was discharged as a hedge on the name rather than as an invented removal. This is the strongest single piece of evidence for P3.
contextChatAnthropic(betas=[...]) and the tool-search server tool Unprompted and correct in outline: the draw noted that defer_loading "only makes sense alongside Anthropic's tool-search server tool, and both currently require the advanced-tool-use beta header", and shipped ChatAnthropic(model=..., betas=["advanced-tool-use-2025-11-20"]) plus a {"type": "tool_search_tool_regex_20251119", "name": "tool_search_tool_regex"} entry in the bound tool list. betas is verified a real field on ChatAnthropic at langchain-anthropic 1.7.1. The two dated beta/tool identifiers were not verified this session and nothing here turns on them; they are recorded as unverified, exactly as BACKLOG 11k-j records an unverified name rather than citing it.

Open questions from this run

Sources

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