---
library: langchain
library-latest: "1.3.18"
library-latest-verified: 2026-08-31
model: claude-sonnet-5 (spawned via Agent model alias "sonnet")
model-self-reported-cutoff: 2026-01
model-believed-latest: "0.3.x is the last release whose contents it can describe; 1.0 known only as a rumoured version string"
test-date: 2026-08-31
battery: langchain/v1 (11 idiomatic tasks + 3 direct questions; probes restricted to 1.0.0–1.2.0)
tool-uses-during-test: 0
verified-against: https://docs.langchain.com/oss/python/migrate/langchain-v1 · https://docs.langchain.com/oss/python/migrate/langgraph-v1 · https://reference.langchain.com/python/langchain-classic/ · https://pypi.org/pypi/langchain/json
status: open (no retest yet)
json: sonnet-5.json
---

# LangChain × Claude Sonnet 5 — battery v1 findings

**Three findings, and the largest knowledge gap the Index has measured: sixteen months.**

This subject's usable LangChain knowledge stops at **0.3 (2024-09-13)**. Its stated cutoff is
**2026-01**. In between sits langchain **1.0.0**, published 2025-10-17 — a release that reduced the
`langchain` package to five modules and moved chains, retrievers, memory, indexing and the prompt
hub into a separate distribution. The subject cannot describe it:

> *"I'm aware, vaguely, of talk around a 1.0 release existing or being planned, but that's a
> version string I've encountered in passing, not a release whose contents I could walk through —
> I don't trust myself to state what changed in it."*

Asked what `langchain` exports today, it answered that the top-level package is *"fairly thin now
— mostly legacy chains, `hub`, and some retrieval helpers."* That is a description of 0.3, and it
is the exact inverse of v1: chains, `hub` and retrievers are precisely the things that left.

## What it wrote

The 0.3-era stack, coherently and throughout:

```python
from langgraph.prebuilt import create_react_agent

agent = create_react_agent(llm, tools=[get_weather, calculate], prompt=SYSTEM_PROMPT)
```

with `pre_model_hook=` for trimming, and a stream filtered on the `"agent"` node. Every one of
those is correct *for that function*. The problem is the function: LangGraph v1 deprecated
`create_react_agent` in favour of `langchain.agents.create_agent`, and the subject volunteers that
it knows the *previous* migration — it explicitly rejects `initialize_agent`/`AgentExecutor` as
legacy — while having no idea a second one happened.

That is why **F1 is S3, not S1**. The prebuilt is deprecated, not deleted; this code still runs.
The cost is compounding rather than immediate: a developer who later follows the framework's own
advice and swaps in `create_agent` finds that `prompt=` and `pre_model_hook=` raise `TypeError`,
and that the stream filter silently stops matching, because the model node is now called
`"model"`.

The one hard break is **F2**:

```python
# pip install langchainhub langchain
from langchain import hub
prompt = hub.pull("hwchase17/react")
```

`ImportError` on a fresh v1 environment, and the install line does not fix it — `hub` is in
`langchain-classic`, which `pip install langchain` does not bring in. The subject flagged its own
uncertainty here (*"I'm not fully confident this call signature is still current"*) but named no
alternative, so the code is what a developer actually gets. Charged.

## What it got right

Five of eleven tasks are unaffected by the v1 break and are correct: a direct `ChatOpenAI` call,
the RAG pipeline (it uses `langchain_text_splitters` and LCEL, and never reaches for `RetrievalQA`
— the chain that would have failed), a LangGraph checkpointer for memory, `with_structured_output`
for a typed result, and `RunnableConfig` injection to keep a user id out of the tool schema. The
last of those is still supported: the migration guide says the `config["configurable"]` route
works for backward compatibility.

## The subject diagnosed itself correctly

Asked for its cutoff, it gave the date and then, unprompted, gave the useful number:

> *"my confident, detailed recall of a fast-moving library like langchain thins out well before
> that date — realistically my sharp, specific knowledge (exact APIs, module paths, kwarg names)
> is strongest through roughly mid-to-late 2024."*

The measurement puts its boundary at 0.3.0, **2024-09-13**. It was right about itself to within a
month or two. All three subjects in this battery did the same thing, which is a result in its own
right: these models know they are stale, know roughly how stale, and cannot use that knowledge to
write newer code.

## Why this run matters to the dataset

Sonnet 5's boundary on this library is **thirteen months earlier than the other two subjects**,
tested the same day on the same battery. That is the widest inter-model spread in the Index, and
it breaks the "boundary is roughly library-constant across models" reading that three npm
libraries had supported. See [JOURNAL/013](../../JOURNAL/013-the-python-that-split-the-models.md).

Findings as data: [`sonnet-5.json`](sonnet-5.json). Battery: [`prompts/langchain.md`](../../prompts/langchain.md).
