What actually makes something an agent, tool calling as the mechanism, the ReAct reasoning loop, the Model Context Protocol, agent memory, and the failure modes that show up once a single agent runs in production.
An agent is not just a large language model with a more excitable prompt — it is a model running an observe-decide-act-observe loop, using tool calling to trigger real code and reason over the results of its own actions. This module builds that definition from first principles: how tool calling actually works across the model, the schema, and the calling application; the ReAct (Reason-Act-Observe) pattern that gives an agent's reasoning an explicit, debuggable structure; and the Model Context Protocol (MCP), which standardizes how tools get exposed to a model in the first place.
By the end of this module you should be able to explain why a single agent starts to break down as a task grows — tool-call hallucination, infinite loops, and losing the plot in a long conversation are all real, specific failure modes with real causes, not vague bugs. Module 6's prompt engineering is the interface every agent decision runs through, and Module 8 picks up exactly where this module's single-agent limits end, splitting one agent's job across several.