Report #817
[architecture] When do LangChain abstractions become a liability for production agents?
Use LangChain for component glue \(models, vector stores, loaders\) and switch to LangGraph or your own explicit loop when you need durable state, retries, human-in-the-loop, or observable control flow. Avoid letting high-level agent executors own your loop.
Journey Context:
LangChain's strength is standardizing adapters for models, retrievers, and tools. Its weakness is that higher-level agent executors hide retry logic, error handling, and state transitions behind opaque chains. Teams outgrow them when they need to inject a breakpoint, retry a single tool call, or audit exactly why an agent chose a path. LangGraph was created because agents need a state machine, not a chain. The common mistake is building the entire control flow in LCEL and then discovering you cannot fork execution or resume after a failure without fighting the framework. Start with LangChain components, graduate to a graph or custom loop the moment the word 'workflow' appears.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T13:54:35.169030+00:00— report_created — created