Building with LLM Agents
2025 is the year of LLM Agents. There are tons of resources to get started and it can get confusing very quickly. The space is evolving quickly and it can be hard to keep up.
For a detailed deep dive into the research papers around LLM agentic approaches, the best sources are long-ish essays by Lilian Weng of OpenAI and Chip Huyen. I’d recommend LLM Agents section by Prompting Guide and LLM Agents MOOC and this recent white paper from Google.
If you want to build with LLM agents, LangGraph, CrewAI and Microsoft Autogen are the best and most full featured libraries1. However, in my personal explorations, I found these libraries using overly complex to use with too much magic, and debugging them becomes difficult very quickly.
It’s hard not to agree with the team at Anthropic:
These frameworks make it easy to get started by simplifying standard low-level tasks like calling LLMs, defining and parsing tools, and chaining calls together. However, they often create extra layers of abstraction that can obscure the underlying prompts and responses, making them harder to debug. They can also make it tempting to add complexity when a simpler setup would suffice.
In their most ambitious interpretation, LLM agents are probabilistic state machines that connect LLMs to external world through tools and data stores. State machines are not new, we understand them well and have decades long knowledge on how to program with them. Yet, most developers should not need to use them. Quoting Pydantic AI (latest LLM framework, by the creators of popular Pydantic library):
If PydanticAI agents are a hammer, and multi-agent workflows are a sledgehammer, then graphs are a nail gun:
sure, nail guns look cooler than hammers
but nail guns take a lot more setup than hammers
and nail guns don't make you a better builder, they make you a builder with a nail gun
Lastly, (and at the risk of torturing this metaphor), if you're a fan of medieval tools like mallets and untyped Python, you probably won't like nail guns or our approach to graphs. (But then again, if you're not a fan of type hints in Python, you've probably already bounced off PydanticAI to use one of the toy agent frameworks — good luck, and feel free to borrow my sledgehammer when you realize you need it)
In short, graphs are a powerful tool, but they're not the right tool for every job. Please consider other multi-agent approaches before proceeding.
If you're not confident a graph-based approach is a good idea, it might be unnecessary.
Building with agents should not be very complex and simple approaches as described by Open AI in Orchestrating Agents should suffice for most use cases.
Prompting Guide has a full list of LLM frameworks (though it may not be up to date).