After Claude Opus 5.5, What Changes for AI Coding Agents? JSON, Tool Calling, and Code Execution (2026)
On 22 September 2026 Anthropic released Claude Opus 5.5, model ID claude-opus-5-5. The official pitch is long-running agentic coding. This piece does not retell what a coding agent is. It only splits the request, the tool JSON, and what breaks when you leave Opus 5.
Before you read
| Object | Official fact | Who executes |
|---|---|---|
| Model | claude-opus-5-5 / 2026-09-22 | The model fills JSON; it never touches disk |
| Thinking | Always on; default effort=medium | Disabling thinking returns 400 |
| Tools | input_schema + tool_use | The host validates, then runs |
| Cost | $4 / $20 per million tokens | Anthropic: about 40% cheaper than Opus 5 on typical load |
Facts from Anthropic’s launch page and Opus 5.5 docs. Benchmarks are vendor-reported, not a ranking.
Coding agents enter a cheaper long-task phase. The model still does not edit the repo.
Opus 5.5 is the first model in the Claude 5.5 family. Anthropic says it matches Claude Fable 5.1 on most work and costs about 40% less than Opus 5 on typical load. Input / output is $4 / $20 per million tokens; cache reads are $0.20. Context is 1M tokens; max output is 128K. Those numbers change how long you can run one agent loop, and what it costs. They do not change the split: the model fills arguments; the host runs side effects.
- Model: fills
lookup_orderandA-1042. It never sees the socket and never spawns a process. - Thinking stays on: adaptive thinking cannot be disabled. Depth is
effort, defaultmedium. In Anthropic’s tests, medium matched or beat Opus 5 at high on repo-scale work, in fewer steps and tokens. - Long tasks: the launch text talks about migrations, audits, multi-hour jobs with little oversight. The host still needs a stop condition, permissions, and replayable state.
How built-in tools fill JSON: AI coding agents and JSON tool calling. How the loop, gate, and state stack: Agent harness and JSON state. Why Schema is a gate: Why AI needs JSON Schema. This text only writes which fields moved after Opus 5.5.
Write the model and the tool table as objects
Claude API, Google Cloud, and Microsoft Foundry use claude-opus-5-5. Amazon Bedrock uses anthropic.claude-opus-5-5. Fictional lookup — no real secrets:
{
"model": "claude-opus-5-5",
"max_tokens": 16000,
"effort": "medium",
"tools": [{
"name": "lookup_order",
"description": "Look up an order by ID. Confirm before any refund.",
"input_schema": {
"type": "object",
"properties": {
"order_id": { "type": "string", "pattern": "^[A-Z]-\\d{4}$" }
},
"required": ["order_id"],
"additionalProperties": false
}
}],
"messages": [{
"role": "user",
"content": "Look up order A-1042 and say if it is paid."
}]
}
effort is the official default knob. Put it on the request so you can replay “this session was medium.” Each tool needs input_schema. A wide object invites invented keys. A lookup must not carry refund fields.
A tool call is still JSON. The host runs the code.
The model tells the host “look up A-1042.” This is not HTTP and not MCP tools/call. It is a tool_use block in the Messages reply:
{
"type": "tool_use",
"id": "call_3c91",
"name": "lookup_order",
"input": { "order_id": "A-1042" }
}
After Schema, the host runs the tool and writes an object back. Failures are objects too. The model reads the write-back, not a terminal scrollbar:
{
"type": "tool_result",
"tool_use_id": "call_3c91",
"content": "{\"order_id\":\"A-1042\",\"status\":\"paid\"}"
}
Docs also say: text between tool calls lands in thinking blocks; at the default display that text is empty. If you streamed that text as a progress bar, change the host parser. The model did not “go quiet.” MCP hop: How coding agents call MCP. Permission as rules: Coding agent permission model. A long job needs loop state, not a chat window:
{
"model": "claude-opus-5-5",
"effort": "medium",
"session_id": "sess_7f2a",
"task": "migrate_lookup_order",
"pending_tool": "lookup_order",
"immutable": {
"tools": ["lookup_order", "Read", "Bash"]
},
"mutable": {
"turn": 4,
"max_turns": 40,
"last_order_id": "A-1042"
}
}
Four breaks when you leave Opus 5
Anthropic’s What’s new lists four breaking changes. The first three also apply on Claude Fable 5.1. Renaming the model is not a migration:
| Change | What the host must do |
|---|---|
| Thinking cannot be off | Disable thinking or set a manual thinking budget and you get 400. Use effort. |
| Forced tool use errors | Forcing a named tool fails. Let the model pick from Schema, or change the loop. |
| Thinking blocks bind model and conversation | Editing the tools table later changes the prefix and invalidates earlier thinking. Declare tools on the first request. |
| Legacy computer use | Claude API and Google Cloud reject computer_20251124. Switch to computer_toolset_20260801. Bedrock still accepts the old tool. |
One more shape change does not fail the request: inter-tool text moves into thinking. Streaming progress bars must read the new blocks. That is host work. A prompt will not paper over it.
Five steps to wire Opus 5.5 into the repo loop
Do not start from “it is stronger, so open the permissions.” Write objects:
- Change the model ID. Send
claude-opus-5-5(Bedrock adds the prefix). Record effort. - Remove “thinking off” and forced tool use. Both fail on 5.5.
- Freeze the tool table on turn one. Every row has Schema and
additionalProperties: false. Adding a tool later drops earlier thinking. - Write a stop condition.
max_turnsor a budget. Official long jobs are not infinite loops. - Persist state as JSON. Keep tool_use, tool_result, session_id, effort. If
call_3c91lines up, the chain is live.
How Schema is a gate: Agents API + JSON Schema. This text only requires: after the model swap, the gate and the loop still exist, and the host still runs side effects.
To replay a long job, spread four JSON objects
Most failures are a mismatched model ID, effort, tool table, or write-back — not “5.5 is not smart enough.”
- format
input_schemaandinput, then Schema validate for missing fields and extra keys. - Use JSONPath extract for
$.model,$.effort,$.input.order_id. - JSON Diff a good write-back against a 400. Fix “thinking off” / forced-tool leftovers before you rewrite the prompt.
- Check that
call_3c91is the same id on tool_use and tool_result. - Do not paste session logs, tokens, or repo paths into a public formatter. JSONSort runs in the browser.
If those four objects rebuild against Schema, you have the 5.5 call chain — not “it seemed to edit the repo overnight.”
Common traps
- Treating Opus 5.5 as a new coding-agent product. It is a model. Claude Code, Cursor, and your loop are still the host.
- Reading vendor benches as “who wins.” Terminal-Bench and CursorBench are Anthropic-reported or harness-specific. This text cites them for cost and long tasks, not a ranking.
- Turning thinking off to save money. 5.5 will not allow it. Control cost with effort, cache, and max_turns.
- Using forced tool_choice as a stabilizer. Forced tool use errors. Stability is Schema, not a forced name.
- Running a long job with no state. An 18-hour session without session JSON cannot be replayed. The chat window is not state.
- Reading empty inter-tool text as a model bug. The response shape changed. Fix the host parser.
FAQ
Does Opus 5.5 edit files by itself?
No. The model only fills tool JSON. Reads, writes, shell, and MCP are host work. No host, no repo change.
Should I raise effort above the default medium?
Anthropic says default medium already tracks Opus 5 at high on coding tasks. Freeze Schema and the stop condition first. Raise effort on failed jobs. Do not default to max.
Is this the same as the Agents API?
No. Agents API is OpenAI’s session resource. Opus 5.5 is Anthropic’s model. Both are “model fills JSON, host executes.” The field names differ. Do not mix them.
Is computer_toolset the same as Read / Bash?
No. Computer use is a desktop / screen toolset. Read and Bash are a different table. Migrate to computer_toolset_20260801 only if you still send the 2025-11 computer tool.
Are Sonnet 5.5 and Haiku 5.5 out?
The launch post said “coming weeks.” This article only treats Opus 5.5, shipped 2026-09-22. Unreleased IDs are not facts.
Conclusion
After Opus 5.5, coding agents enter a cheaper long-task phase with thinking always on. The layers did not move: the model fills JSON; the host checks Schema, permissions, runs tools, and writes state back.
Write down which tool A-1042 enters, on which turn, in which session. If you can point at model, effort, tool_use, and tool_result, you are on 5.5. Do not fill DevDay with guesses. Do not turn vendor benches into a ranking.
Further reading
- How coding agents call tools with JSON Built-in tool JSON, written before Opus 5.5
- Agent harness and JSON state Loop, gate, state — not tied to one model
- How coding agents call MCP The host sends JSON-RPC; the model fills arguments
- Why coding agents need permissions Shell / Git / filesystem gates
- Agents API + JSON Schema Stable, checkable, executable
- Why AI needs JSON Schema Schema is a gate, not “please output JSON”
- JSONSort local toolbox Format, validate, Diff, Schema
- All posts More notes on JSON and AI development
Changelog: First published