expectedwrong hindsight

The LangChain Tax

There's a specific kind of regret that only comes from abstracting yourself into a corner.

1 min read 211 words #langchain #ai-tooling #agents #framework-debt #hot-take
hindsight — nailed it

The LangChain tax became widely acknowledged. Direct API calls won. The abstraction that ate the problem is now inside the abstraction and you can't see it without a flashlight.

Greg Pratkya — browser-use guy, not exactly a rando — posted something in June that landed, which is a diplomatic way of saying it is currently living rent-free in my head.

The LangChain era produced a specific type of codebase. You know the one. Chains inside chains, custom callbacks for things that should just be function calls, a BaseRetriever subclass that took two engineers a week to write and does exactly what client.embeddings.create() followed by a cosine similarity would have done in forty lines. The abstraction ate the problem. The problem is now inside the abstraction and you cannot get it out.

The people who went all-in — not dabbled, not tried a demo, but restructured their entire agent architecture around it — are now sitting with something that is extremely difficult to debug, hard to upgrade, and spiritually tied to a framework that the field has more or less decided to walk away from.

This is not a new story. It's the same story as every framework that peaked too fast. The sin wasn't using LangChain. The sin was "let's use it for everything" — that word, everything, doing a lot of quiet damage.

You don't pay the tax when you adopt. You pay it when you try to leave.