---
library: langchain
library-latest: "1.3.18"
library-latest-verified: 2026-08-31
model: claude-opus-5 (spawned via Agent model alias "opus")
model-self-reported-cutoff: 2026-05
model-believed-latest: "1.0.x; 1.0 (late October 2025) is the last release whose contents it can describe"
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/releases/changelog · https://docs.langchain.com/oss/python/langchain/tools · https://pypi.org/pypi/langchain/json
status: open (no retest yet)
self-test: true (the operator model is the subject — disclosed, weaker evidence)
json: opus-5.json
---

# LangChain × Claude Opus 5 — battery v1 findings

**One finding, and it is not about code.** Eleven code tasks produced eleven pieces of working
LangChain v1.

This is a disclosed self-test: the operator model is the subject. Treat it as weaker evidence than
the other two runs.

## What it wrote

Every v1 surface the battery was built to probe, correct and attributed:

- `from langchain.agents import create_agent`, `system_prompt=`, with the migration history
  attached — *"in the older `langgraph.prebuilt.create_react_agent` it was `prompt=`"* — and a
  usable diagnostic: *"If `system_prompt` raises a `TypeError`, you are on a pre-1.0 install."*
- `ToolStrategy(WeatherAnswer)` from `langchain.agents.structured_output`, reading
  `result["structured_response"]`, plus the correct nuance that a bare schema also works.
- `ToolRuntime[Context]` from `langchain.tools` with `context_schema` and `context=`, and the
  security property stated correctly: the parameter is stripped from the schema the model sees.
- `@wrap_model_call` middleware for trimming, chosen over `before_model` for the right reason —
  it shapes only what is sent and leaves persisted state intact — with an orphaned-`ToolMessage`
  guard neither other subject produced.
- `langgraph_node == "model"` in the stream filter, naming the trap: *"in the older
  `langgraph.prebuilt.create_react_agent` it was `\"agent\"`."*
- `.text` as a property, and an explicit refusal of the removed surfaces: *"I did not reach for
  `RetrievalQA` or `ConversationalRetrievalChain` ... they live in `langchain-classic`"*, and
  *"the old `from langchain import hub` ... is not in `langchain` 1.x."* It is the only subject
  that stated the `hub` removal rather than tripping over it.

## The finding

Its knowledge stops at **1.0.0 (2025-10-17)**. **1.1.0** shipped 2025-11-24 and **1.2.0** on
2025-12-15 — both inside its stated **2026-05** window, so both are chargeable under the probe
fairness rule. It said so itself:

> *"What I cannot describe: any release after the 1.0 line's early patches. If a 1.1 or later
> shipped a new API, I don't know its shape, and I would not recognize a feature added in it."*

Seven months of lag. Nothing in the gap breaks 1.0 code — model profiles, `SystemMessage` for
`system_prompt`, model-retry middleware, tool `extras`, strict `ProviderStrategy` schemas are all
additive — so the finding is diagnostic rather than costly. It is charged because the rule is
mechanical.

## Two imprecisions, neither charged

**The Anthropic default.** It wrote *"`ChatAnthropic` supplies a small default (1024 in the
versions I know)"*. 1.0.0 replaced the flat 1024 with a per-model value. Not charged under the
code-vs-claim rule: the claim is hedged, and the code sets `max_tokens=8000` explicitly, which is
correct whatever the default is. What is out of date is the stated reason, not the fix.

**The date.** It put the 1.0 GA at *"roughly October 22, 2025"*. PyPI has the files uploaded
2025-10-17; the vendor changelog labels the entry Oct 20, 2025. Explicitly approximate, and within
a week. The Index charges wrong version facts, not rounding.

## Its own account of its staleness was accurate

Asked for its cutoff, it separated the nominal date from the useful one without being asked to:

> *"my reliable, detailed knowledge of this particular library is noticeably older than that — it
> thins out sharply after the 1.0 launch in late 2025 ... for `langchain`, my effective cutoff is
> late 2025 / very early 2026, not May 2026."*

That is the number this dataset exists to measure, volunteered by the subject and then confirmed
by the measurement.

## Where this sits

Seven months is this subject's **best** result in the Index — against thirteen on Tailwind CSS and
seven on Next.js. Not because it knows LangChain better, but because LangChain shipped a release
close to its boundary. Same model, same day: the lag is a property of the library's calendar as
much as the model's. See [JOURNAL/013](../../JOURNAL/013-the-python-that-split-the-models.md).

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