Full History Is Required
Every request carries the entire conversation.
The Model Keeps No State
The most important fact about the Claude API: the model is stateless. It remembers nothing between requests. There is no hidden session on Anthropic's side holding your earlier turns.
Every time you call the API, you send the entire conversation history in the messages array. If a fact isn't in that array, the model simply doesn't know it — even if it told you the same fact thirty seconds ago.
For a Claude Certified Architect, internalizing this changes how you design every multi-turn system, agentic loop, and multi-agent handoff.
Anatomy of a Request
A Claude API request carries a fixed set of fields. The ones you'll touch on every turn:
model— which Claude model to callmax_tokens— output budgetsystem— the system prompt (instructions, persona, rules)messages— the full conversation history as an array of role/content objectstoolsandtool_choice— optional tool definitions and selection control
Notice what is NOT here: any kind of conversation ID or session token. State lives entirely in what you resend.
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-5",
max_tokens=1024,
system="You are a concise travel assistant.",
messages=[
{"role": "user", "content": "I want to visit Japan in spring."}
],
)All lessons in this course
- Full History Is Required
- Progressive Summarization Risks
- Lost-in-the-Middle Effect
- Case-Facts Blocks & Trimming Output