
Anyone can wire together an AI agent with a framework in an afternoon.
Almost none of them can fix it when it breaks.
When I design how people learn AI engineering, I make a choice that frustrates some of them at first: we start with first principles in plain Python. Before LangChain. Before the agent frameworks. Before the shortcuts.
Why slow down when the framework does it for you?
Because a framework is a black box until you understand what’s underneath it.
Build a simple version by hand first — the loop, the tool calls, the memory — and you actually see what’s happening. Then the framework becomes a convenience you control.
The engineers who only know the framework are fine right up until something breaks. A strange error, an edge case, a version bump — and they’re stuck, because they never learned the layer below.
The ones who know the fundamentals just drop down a level and fix it.
And here’s the career part: frameworks change every few months. First principles don’t. What you learn underneath outlives every tool built on top of it.
So yes, learn the frameworks — they’re how you move fast. But earn them. Build the thing by hand once, so you own the understanding, not just the syntax.
Could you rebuild your favorite framework’s core agent loop from scratch? If not, that’s where I’d start.
Build from the ground up,
Kirill
P.S. A framework you don’t understand is borrowed speed. The day it breaks, you find out whose speed it really was.
