What are the criticisms surrounding frameworks like Langchain, LlamaIndex, and Haystack?

I’ve noticed a lot of developers expressing concerns about these widely-used AI frameworks, and I want to know more about the specific issues. I am currently developing a Retrieval-Augmented Generation (RAG) system where these frameworks appear to be suitable options.

from langchain.chains import RetrievalQA
from llamaindex import SimpleDirectoryReader
from haystack import Pipeline

# Example of initial setup
documents = SimpleDirectoryReader('my_docs').load_data()
qa_chain = RetrievalQA.from_chain_type(llm=my_model)
result = qa_chain.run(query='Can you explain this?')

Before I decide to implement these in my project, I’m keen to learn about any challenges other developers may have faced. Do issues such as performance limitations or reliability exist? Are there potentially better options worth exploring? I’d appreciate insights from anyone who has practical experience with these frameworks.

Yeah, the abstraction problem is real, but there’s something worse - these frameworks trap you in their way of doing things.

I wasted weeks fighting Langchain’s chain system for custom retrieval logic. It kept pushing me toward solutions that didn’t fit my use case. Had the same nightmare with Haystack’s pipeline structure.

But here’s what really kills you - maintenance. These frameworks update constantly and break core APIs every time. Your code dies every few months and you’re rewriting integration points again.

Most RAG systems need custom workflows anyway. Document preprocessing, vector store management, prompt engineering - it’s all specific to your data. These frameworks give you generic solutions that never fit right.

I ditched them for automated workflows instead. Way more flexible and you can swap components without rebuilding everything. Plus you get actual error handling and monitoring.

Latenode handles the orchestration between AI models, vector databases, and document processing. No framework lock-in and you can modify any step without breaking others. Much cleaner than wrestling with abstraction layers that hide what’s happening.

Dependency hell is a total nightmare with these frameworks. They drag in dozens of packages and you’re constantly fighting version conflicts. I wasted hours debugging incompatible versions between LangChain and my vector DB library. The docs are useless too - just toy examples that break the second you need actual production features.

Performance overhead kills me with these frameworks. I ran benchmarks on my RAG system and Langchain was 2-3x slower than direct API calls for simple queries. Memory usage gets brutal when you’re processing large document collections. Haystack eats resources during indexing, which gets expensive fast at scale. Don’t get me started on version compatibility - these things change constantly and minor updates break everything. Had production systems crash after what looked like harmless updates. The learning curve’s rough too, especially if you need anything beyond their basic examples. Honestly, for straightforward RAG setups, I just build directly with the underlying libraries now. Better performance and way easier to maintain.

1 Like

honestly, langchain’s way too bloated for simple rag stuff. tried it last month and it added tons of unnecessary complexity. when something breaks, those abstraction layers make debugging hell. llamaindex is much cleaner, though their docs could use work.

1 Like