# AI Agents Explained: the Thought-Action-Observation Loop

> Source: <https://dev.to/dev48v/ai-agents-explained-the-thought-action-observation-loop-3mgb>
> Published: 2026-06-20 07:07:51+00:00

A chatbot answers in one shot. An AI agent runs in a loop, uses tools, and acts — Thought → Action → Observation → repeat — until the job's done. Watch one solve a multi-step task by calling a calculator and a search.

🤖 **Run the agent:** [https://dev48v.infy.uk/ai/days/day11-agents.html](https://dev48v.infy.uk/ai/days/day11-agents.html)

You describe tools to the model (name, purpose, arguments). It can't divide big numbers reliably or know today's data — but it CAN decide "call the calculator with this expression". Tools cover the model's weak spots.

``` js
while (true) {
  const step = await llm(history);            // model emits a Thought + Action
  if (step.type === "answer") return step.text;
  const result = tools[step.tool](step.args); // run the tool
  history += `Observation: ${result}`;         // feed the real result back
}
```

The model writes a **Thought** (plan), emits an **Action** (tool + args), your code runs it and returns an **Observation**, which goes back into context. Then it thinks again.

Each observation is REAL, fed back before the next decision — so it's not guessing the tip amount, it sees `126`

from the calculator. And it plans the steps itself: "population of France's capital, doubled" becomes search → then calculator, chained because the model worked out the dependency.

Cap iterations (no infinite loops), validate tool inputs, gate risky actions (email, payments) behind approval. Autonomy is the point; limits make it safe.

[Run a task](https://dev48v.infy.uk/ai/days/day11-agents.html) and watch the Thought→Action→Observation trace build.
