Stop Stacking Frameworks. This Agent Runs on 100 Lines of Lisp.

You’ve felt it. That creeping dread every time you start a new AI project and the dependency list scrolls past your terminal like a credit card receipt after a bad night out.

LangChain. LlamaIndex. Vector stores. Embedding pipelines. Orchestrators. Tool registries. Memory layers. Abstract base classes for abstract base classes. You npm-install your way into a dependency hell that would make a medieval cartographer dizzy, and what do you have at the end? An agent that hallucinates just as badly as the one you could’ve built in a weekend with a text file and a dream.

Here’s the thing nobody in the AI engineering space wants to say out loud: Most of the complexity in modern agent frameworks isn’t solving your problem — it’s solving the framework’s problem of justifying its own existence.

So when I came across a developer who built a fully functional AI agent in roughly 100 lines of Lisp, I didn’t just feel intrigued. I felt vindicated. And then I felt angry — because I’d spent months of my life wrestling with abstractions that added nothing to my actual product.

The agent works. It reasons. It takes actions. It loops on feedback. And it does all of this not through some sprawling neural architecture or a 47-layer orchestration stack, but through Lisp’s symbolic nature — the same property that made it powerful in 1958 and apparently hasn’t expired.

Let me explain why this matters more than you think.

Lisp treats code as data and data as code. This isn’t a party trick. It’s the foundational property that lets you represent reasoning, planning, and tool-use as manipulable structures without inventing a parallel abstraction layer. The language IS the framework. The agent’s logic isn’t buried under six indirection layers — it’s right there, readable, in a file shorter than your average README.

When you can read every line of your agent’s reasoning in a single screen, you stop debugging frameworks and start debugging ideas.

Now, the obvious objection: “But what about scale? What about production? What about the ecosystem?” I hear you. And I’ll be honest — this isn’t going to replace your enterprise deployment tomorrow. But that’s not the point. The point is that somewhere along the way, we collectively confused capability with complexity. We started believing that sophisticated behavior required sophisticated infrastructure, when in reality, sophisticated behavior requires clear thinking about what an agent actually IS.

An agent perceives. It reasons about what it perceives. It acts. It observes the result. It repeats. That’s it. That’s the whole loop. Everything else — the RAG pipelines, the tool-calling protocols, the multi-agent choreography — is implementation detail that we’ve elevated to the status of architecture.

The Lisp agent strips this back to first principles. And in doing so, it reveals something uncomfortable about the current AI engineering zeitgeist: we’ve been optimizing for employability, not for elegance. Nobody puts “built an agent in 100 lines of Lisp” on a resume and expects to get hired. But “architected a multi-agent orchestration system with dynamic tool composition and retrieval-augmented memory”? That’s a senior title and a 30% raise.

I’m not anti-framework. I’m anti-cargo-cult. There’s a difference between using a tool because it solves your problem and using a tool because everyone else is using it and you’re terrified of being left behind. The AI space runs on this fear. It’s the engine that drives adoption of technologies that half the team doesn’t understand and nobody can fully explain.

What the Lisp agent demonstrates — quietly, almost smugly — is that the distance between “I have an idea for an agent” and “I have a working agent” can be measured in hours, not sprints. That the barrier to entry isn’t technical. It’s psychological. We’ve been told so many times that AI is hard, that agents are complex, that you need GPUs and vector databases and a team of ML engineers, that we’ve internalized it as truth.

The most dangerous thing about a 100-line agent isn’t what it can do — it’s what it proves you don’t need.

So here’s my challenge to you. The next time you reach for a framework, ask yourself: what am I actually trying to do? Not what does the architecture diagram say I should do. Not what will look impressive in a tech talk. What is the actual loop? What does the agent perceive, decide, and do? Write that down. In pseudocode. In a notebook. In Lisp if you’re feeling brave.

You might find, as I did, that the answer is shorter than you feared. And that the frameworks you’ve been carrying like a security blanket were solving problems you never had.

The future of AI agents might not belong to whoever builds the biggest stack. It might belong to whoever remembers that the simplest solution that works is the one that survives.

FAQ

Q: Can a 100-line Lisp agent really compete with framework-based agents in production?

A: In narrow, well-defined domains? Absolutely. In broad, open-ended enterprise scenarios? Not yet. But that's not the point — the point is that most agents people build don't need the enterprise stack they're copying. Match your complexity to your actual problem.

Q: What's the practical takeaway for a developer shipping AI products today?

A: Before reaching for LangChain or LlamaIndex, write your agent loop in pseudocode. If the core logic is 20 lines, your framework shouldn't be 20,000. The gap between those numbers is where technical debt lives and where your weekends die.

Q: Isn't this just nostalgia for Lisp when Python won the AI war?

A: No. This is about first principles, not language wars. Lisp happens to expose them cleanly because code-as-data eliminates the abstraction layer between reasoning and execution. The lesson applies regardless of language: stop building cathedrals when you need a shed.

📎 Source: View Source