LangChain aims to connect language models with external data sources and computational systems, enabling them to act as reasoning engines while outsourcing knowledge and execution tasks. This approach allows for retrieval augmented generation, interaction with APIs, and code generation. However, it also introduces potential risks when the language model generates unsafe output that can be passed downstream, such as malicious API requests or code. LangChain has started separating experimental features into a separate package called langchain_experimental to better manage these security concerns while continuing to develop new features and enhance robustness.