
Share
Despite their promise, traditional modular approaches to large language model workflows are faltering in the face of more dynamic agent-based systems, argues Benjamin Anderson.
Posted Dec 17, 2025 by Benjamin Anderson
I’ve got something to get off my chest. It’s a bit embarrassing, but I need to be honest: I have a deep-seated aversion to DSPy and GEPA. This might sound harsh, especially since the people behind these tools are incredibly talented and kind. But after giving them a fair shot-I even went through the 45-minute Colab notebook and tried integrating GEPA into my open-source LLM SDK, lm-deluge-I’ve come to the conclusion that treating LLM workflows as modular programs is often a mistake. It feels backwards, rigid, and ill-suited for the most interesting tasks.
In this article, I’ll break down why I feel this way and explore whether there are any redeeming aspects of GEPA worth salvaging.
For those new to the scene, DSPy is a toolkit created in 2023 by Omar Khattab (@lateinteraction on Twitter), known for his work on ColBERT and the concept of "late interaction" in information retrieval. The core idea of DSPy is to make AI programs more reliable by breaking them down into modular components and decoupling their function from their specific implementation.
For example, if you want to summarize a long story into a single paragraph, you might start by creating a prompt like "Summarize this long story into a single paragraph" and send it to an AI model. You could then spend time refining the prompt, specifying details like sentence count and key aspects to include. However, if your budget gets slashed or a better model becomes available, all that work can become obsolete.
DSPy aims to solve this by letting you define what you want the program to do, and it handles the optimization for you. Here’s an example from DSPy’s documentation:
def search_wikipedia(query: str) -> list:
# Define the function using modular components
result = dspy.module('search')(query)
return result

While I’m critical of the modular approach, there are aspects of GEPA (Generalized Execution of Prompting Algorithms) that could be valuable if integrated into a more flexible framework:
While DSPy and GEPA aim to make LLM workflows more reliable and modular, their rigid design often falls short in the face of dynamic and complex tasks. Agents, which can adapt and learn on the fly, are better suited for the evolving landscape of AI development. However, there’s still value in automated optimization and modular components if they’re integrated into a more flexible framework.
Tags
Original Sources
About the author
Kai built ML infrastructure at a Bay Area startup before developing an obsession with transformer architectures and inference optimisation that eventually pulled him out of product work entirely. A stint at a compute research lab sharpened his instinct for what actually matters in a model release versus what is marketing. He writes from the inside — from the perspective of someone who has debugged the systems he is describing at three in the morning. He is allergic to hype and instinctively drawn to the unglamorous plumbing questions that everyone else skips over.
More from The Engineer →This Week's Edition
19 December 2025
88 articles
Related Articles
Related Articles
More Stories