news.ycombinator.com
Why we no longer use LangChain for building our AI agents
sc077y on June 21, 2024 I kept telling them that it works well if you have a standard usage case but the second you need to something a little original you have to go through 5 layers of abstraction just to change a minute detail. Furthermore, you won't really understand every step in the process, so if any issue arises or you need to be improve the process you will start back at square 1. … prompt | model | parser Also the downside of not being able to easily tweak prompts based on experiments (crucial!) And not to mention the library doesn’t actually live up to this use case, and you immediately (IME) run into “you actually can’t use a _Chain with provider _ if you want to use their _ API”, so I ultimately did have to care about whats supposed to be abstracted over
Related Pain Points4件
Design doesn't follow software development best practices
7LangChain's architecture leads to messy, non-modular code that's difficult to scale or maintain as projects grow. The framework lacks features like automatic prompt versioning and joint prompt evaluation, making reproducibility and maintenance harder in production.
Limited customization and template rigidity
7LangChain's pre-built chains and templates are restrictive for non-standard use cases. Developers requiring customized behavior find the framework's structure limiting and may need to fork the library or switch to lower-level approaches.
Provider-specific API incompatibilities and hidden limitations
7LangChain abstracts over provider details, but developers encounter situations where specific chains don't work with certain provider APIs despite the abstraction promise. Hidden limitations and lack of transparency force developers to care about underlying implementation details.
Framework over-engineering and performance overhead
7LangChain's modular design introduces unnecessary steps for simple tasks and its multiple abstraction layers add runtime performance cost. The extra processing steps within framework layers can add milliseconds to seconds to response times, making it inefficient for production systems.