// the find
langchain-ai/langchain
The agent engineering platform.
LangChain is a Python (and JS) framework for wiring LLMs, tools, retrievers, and memory together into chains and agents. It's the dominant choice in the space by volume — 139k stars and integrations with essentially every model provider and vector store. Aimed at developers who want a common interface across providers rather than rolling their own glue code.
The provider abstraction layer (`init_chat_model`, common embeddings/vectorstore interfaces) is genuinely useful — swapping OpenAI for Anthropic or Gemini is a one-liner. The integration surface is unmatched: if a vector DB, model provider, or document loader exists, there's probably already a LangChain connector for it. LangGraph (the companion graph-based orchestration layer) is a real improvement over the older chain/agent model for anything stateful or complex. The CI/CD setup is unusually disciplined for an OSS project — per-package release workflows, VCR-based integration tests, and automated dependency checks.
The abstraction layers added to support every provider create real debugging pain — stack traces go through five layers of Runnable wrappers before you hit actual logic, and error messages rarely tell you where the problem actually is. The LCEL (Runnable) pipe syntax is clever until you need to do anything conditional or stateful, then you're fighting the abstraction instead of using it. Breaking changes have historically been frequent and the migration path is rarely smooth — the shift from v0.1 to v0.2 to v0.3 left a long tail of ecosystem packages on incompatible versions. For simple use cases (call an LLM, maybe do RAG), the framework adds more complexity than it removes; you're better off with the provider SDK directly.