Today's concept: ReAct.
LLMs are terrible at math, until you let them think out loud AND use a calculator at the same time.
ReAct is a pattern where your AI agent alternates between two modes: reasoning (thinking through a problem step by step in natural language) and acting (calling tools, APIs, or running code to gather new information). Think of it like debugging: instead of guessing the answer, you add print statements, run your code, see what breaks, then adjust. The LLM writes its thinking in plain English, you give it feedback from actions it takes, it reasons again, repeat. Every tool call interrupts the thinking, grounds it in reality, and lets it recalibrate.
Remember it as: think, do, see, think again. The loop is the agent.
Why it matters: ReAct is how real agentic systems actually work. It is the core loop of Claude, AutoGPT, and every production LLM agent. Understanding this pattern is the difference between "LLM that answers questions" and "AI that solves problems."
Quick check before you scroll:
If your agent gets stuck in a loop, asking for the same data twice, making the same mistake, what part of the ReAct cycle probably broke?
Here is where teams get ReAct wrong in production: they obsess over making agents "smart enough" to reason better, but the real bottleneck is feedback quality. A dumb agent with crisp, fast feedback (API response in 100ms, clear success or failure signal) beats a brilliant agent waiting 10 seconds for a complex tool response it cannot quite parse. The loop speed matters as much as the reasoning. That is why Claude's tools are designed to return structured data, not just to be "correct," but to close the feedback loop fast enough that the agent can actually learn from it.
Full breakdown plus the answer: frankduah.me/learnings/2026-06-14-react-pattern-reasoning-and-acting
Drafted by an agent from yesterday's briefs in my private daily-briefs repo. Pipeline: frankduah.me/learnings/how
The answer
The reasoning step after acting. The agent took an action and got feedback, but didn't incorporate that feedback into its next thought. It's not looping on the tool call - it's looping on the interpretation.