Blog
2 min read

Claude API: On-Demand Compaction and a Smarter Models API

September–October 2026 Claude API updates for builders: on-demand conversation compaction in beta (a signed summary block you send in place of old messages), and new Models API fields — line, capabilities.thinking.types.disabled and capabilities.server_tools — so code can check what a model supports instead of hard-coding it.

Two quieter Claude API changes from the past month solve problems anyone running a long-lived chat or agent feature runs into.

On-demand compaction (beta, 14 September)

Long conversations eventually hit the context window, and every turn re-sends (and pays for) the whole history. Until now, summarising old turns was your job. (What Is a Context Window?)

The Messages API can now compact a conversation on demand on the Claude API, in beta with the compact-2026-09-04 header:

  1. Send a request with the top-level compaction parameter.
  2. The API returns a signed compaction block that summarises the messages you sent.
  3. On later requests, send that block first, in place of those messages.

You decide when to compact, the request can run in the background, and you can keep recent turns word for word after the summary. On models with preserved thinking, thinking in the kept turns can stay valid.

This is the same idea as Claude Code's /compact, now available to your own apps. (Claude Code /compact vs /clear, AI Agent Memory)

Models API: ask what a model supports

New models keep changing what's allowed — Haiku 5.5 rejects temperature, Opus 5.5 can't disable thinking, some models don't accept certain tools. Hard-coding those rules breaks on every release. The Models API (GET /v1/models and GET /v1/models/{id}) gained fields so code can check instead:

Added Field Tells you
1 October line The model line (e.g. opus), so you can group models without parsing IDs
5 October capabilities.thinking.types.disabled Whether thinking: {type: "disabled"} is accepted
6 October capabilities.server_tools Whether web search and code execution tools are accepted
import anthropic
client = anthropic.Anthropic()

model = client.models.retrieve("claude-haiku-5-5")
print(model.line)
print(model.capabilities)

(The exact attribute names in each SDK follow the API fields; check your SDK version.)

A practical pattern: read the model ID from configuration, fetch its capabilities at startup, and build requests accordingly — no code changes when you switch models. (Environment Variables Explained)

Also recently

  • Sonnet 4.5 retires on 30 November 2026. (How to migrate)
  • Dreams (research preview, Managed Agents) now supports Opus 5.5, Fable 5.1 and Sonnet 5.5.

Source: Claude Platform release notes


EasySpawn gives your AI features a server-side backend where conversation state, compaction blocks and model configuration live next to your database. See how it works or join the waitlist.

Related: Stream LLM Responses · How to Build an AI App · Context Engineering for Coding Agents · Claude Haiku 5.5 Released

Keep reading