I built my first agent last night using the Anthropic Python SDK directly. No LangChain, no CrewAI, no orchestration framework. About 60 lines of code, one tool, one goal. The point was to see the mechanics without abstractions on top of them.
Three things stood out. None of them were what I expected going in.
The conversation history array is the agent
There is no hidden state. The "memory" is a Python list you maintain yourself. Every iteration, you append the model's full response — including any tool_use blocks — and then append any tool results back into the list before the next API call.
pythonconversation_history = []











