Every agent, however sophisticated, is running the same four-step loop over and over until something makes it stop. Being able to name the steps is what lets you diagnose problems, because a failure always happens at a specific one.
Goal: "Find out why shipment 44182 is late and draft an update"
+--> 1. THINK
| Given the goal and everything seen so far,
| what should happen next?
|
| 2. ACT
| Call one tool. get_shipment(44182)
|
| 3. OBSERVE
| Read what came back. Status: held at customs.
|
| 4. DECIDE: done, or go again?
+---- Not done. Loop.
Each pass adds to what the agent knows. Pass four looks
at a much richer picture than pass one.
Think -> chose the wrong next action
Act -> tool failed, or was called with bad arguments
Observe -> misread what came back
Decide -> stopped too early, or never stopped at all
When an agent produces a bad result, don't ask 'why was the answer wrong'. Ask 'at which step did it go wrong, and what did it know at that point'. Almost every agent problem is a Think problem or a Decide problem, and those have completely different fixes from each other. Chapter 5 is about measuring this properly.