Earlier quoted context omitted.
Because it tries to solve non existent problems (prompt templates for example) and adds complexity, instead of abstracting
Ok I agree with that, I think they had some weird idea of managing templates in LangSmith and then being able to load them dynamically from LangChain. LangSmith’s prompt engineering workflow is okay-ish but a lot of work and gets quite expensive quite fast, and only works for a specific set of prompts (ie one-turn prompts, multi-turn never works). PydanticAI seems more lightweight and gets out of the way.
Critical vulnerability in LangChain – CVE-2025-68664
91–93 of 93 posts
Re: Critical vulnerability in LangChain – CVE-2025-68664
#92Earlier quoted context omitted.
I'll admit that I haven't looked it in a while, but as originally released, it was a textbook example on how to complicate a fundamentally simple and well-understood task (text templates, basically) with lots of useless abstractions that made it all sound more "enterprise". People would write complicated langchains, but then when you looked under the hood all it was doing is some string concatenation, and the result…
What do you suggest instead? Handrolled code with “import openai”? BAML?
As for "import openai", that's actually somewhat orthogonal, but if what you want is a common API for different providers then there are many options around that do just that. But then again at that point you probably also want something like OpenRouter, which has its own generic API.
Re: Critical vulnerability in LangChain – CVE-2025-68664
#93Earlier quoted context omitted.
What do you suggest instead? Handrolled code with “import openai”? BAML?
For what LangChain does, yes, handrolled code. There won't be much of it because it doesn't actually do all that much. As for "import openai", that's actually somewhat orthogonal, but if what you want is a common API for different providers then there are many options around that do just that. But then again at that point you probably also want something like OpenRouter, which has its own generic API.
class AI(Protocol):
def call_llm(prompt: str) -> str: …