News for hackers. Stuff that matters.
Re:We no longer use LangChain for building our AI agents by hwchase17 on Friday June 21, 2024 @11:34AM (#40750669)
Hi HN, Harrison (CEO/co-founder of LangChain) here, wanted to chime in briefly

I appreciate Fabian and the Octomind team sharing their experience in a level-headed and precise way. I don't think this is trying to be click-baity at all which I appreciate. I want to share a bit about how we are thinking about things because I think it aligns with some of the points here (although this may be worth a longer post)

> But frameworks are typically designed for enforcing structure based on well-established patterns of usage - something LLM-powered applications don’t yet have.

I think this is the key point. I agree with their sentiment that frameworks are useful when there are clear patterns. I also agree that it is super early on and super fast moving field.

The initial version of LangChain was pretty high level and absolutely abstracted away too much. We're moving more and more to low level abstractions, while also trying to figure out what some of these high level patterns are.

For moving to lower level abstractions - we're investing a lot in LangGraph (and hearing very good feedback). It's a very low-level, controllable framework for building agentic applications. All nodes/edges are just Python functions, you can use with/without LangChain. It's intended to replace the LangChain AgentExecutor (which as they noted was opaque)

I think there are a few patterns that are emerging, and we're trying to invest heavily there. Generating structured output and tool calling are two of those, and we're trying to standardize our interfaces there

Again, this is probably a longer discussion but I just wanted to share some of the directions we're taking to address some of the valid criticisms here. Happy to answer any questions!

Re:We no longer use LangChain for building our AI agents by causal on Friday June 21, 2024 @11:58AM (#40750878)
I appreciate that you're taking feedback seriously, and it sounds like you're making some good changes.

But frankly, all my goodwill was burnt up in the days I spent trying to make LangChain work, and the number of posts I've seen like this one make it clear I'm not the only one. The changes you've made might be awesome, but it also means NEW abstractions to learn, and "fool me once..." comes to mind.

But if you're sure it's in a much better place now, then for marketing purposes you might be better off relaunching as LangChain2, intentionally distancing the project from earlier versions.

Re:We no longer use LangChain for building our AI agents by ctxc on Friday June 21, 2024 @12:24PM (#40751109)
They were early to the scene, made the decisions that made sense at each point in time. Initially I (like many other engineers with no AI exposure) didn't know enough to want to play around with the knobs too much. Now I do.

So the playing field has and is changing, langChain are adapting.

Isn't that a bit too extreme? Goodwill burnt up? When the field changes, there will be new abstractions - of course I'll have to understand them to decide for myself if they're optimal or not.

React has an abstraction. Svelte has something different. AlpineJS, another. Vanilla JS has none. Does that mean only one is right and the remaining are wrong?

I'd just understand them and pick what seems right for my usecase.

Re:We no longer use LangChain for building our AI agents by causal on Friday June 21, 2024 @12:44PM (#40751314)
You seem to be implying all abstractions are equal, its just use-case dependent. I disagree- some really are worse than others. In your webdev example, it would not be hard to contrive a framework designed to frustrate. This can also happen by accident. Sometimes bad products really do waste time.

In the case of LangChain, I think it was an earnest attempt, but a misguided one. So I'm grateful for LangChain's attempt, and attempts to correct- especially since itis free to use. But there are alternatives that I would rather give a shot first.

Re:We no longer use LangChain for building our AI agents by mikeqq2024 on Sunday June 23, 2024 @05:32AM (#40766034)
What alternatives are you tring and how good/bad about those?
Re:We no longer use LangChain for building our AI agents by int_19h on Friday June 21, 2024 @05:39PM (#40754100)
I don't think the choices made sense even back when they were made. LangChain always looked like an answer in search of a question, a collection of abstractions that don't do much except making a simple thing more complex.
Re:We no longer use LangChain for building our AI agents by hwchase17 on Friday June 21, 2024 @12:34PM (#40751219)
sorry to hear that, totally understand feeling burnt

ooc - do you think theres anything we could do to change that? that is one of the biggest things we are wrestling with. (aside from completely distancing from langchain project)

Re:We no longer use LangChain for building our AI agents by chatmasta on Friday June 21, 2024 @01:14PM (#40751618)
My advice is to focus less on the “chaining” aspect and more on the “provider agnostic” part. That’s the real reason people use something other than the native SDK of an LLM provider - they want to be able to swap out LLMs. That’s a well-defined problem that you can solve with a straight forward library. There’s still a lot of hidden work because you need to nail the “least common denominator” of the interfaces while retaining specialized behavior of each provider. But it’s not a leaky abstraction.

The “chaining” part is a huge problem space where the proper solution looks different in every context. It’s all the problems of templating engines, ETL scripts and workflow orchestration. (Actually I’ve had a pet idea for a while, of implementing a custom react renderer for “JSX for LLMs”). Stay away from that.

My other advice would be to build a lot of these small libraries… take advantage of your resources to iterate quickly on different ideas and see which sticks. Then go deep on those. What you’re doing now is doubling down on your first success, even though it might not be the best solution to the problem (or that it might be a solution looking for a problem).

Re:We no longer use LangChain for building our AI agents by hwchase17 on Friday June 21, 2024 @01:25PM (#40751725)
> My advice is to focus less on the “chaining” aspect and more on the “provider agnostic” part

a lot of our effort recently has been going into standardizing model wrappers, including for tool calling, images etc. this will continue to be a huge focus

> My other advice would be to build a lot of these small libraries… take advantage of your resources to iterate quickly on different ideas and see which sticks. Then go deep on those. What you’re doing now is doubling down on your first success, even though it might not be the best solution to the problem (or that it might be a solution looking for a problem).

I would actually argue we have done this (to some extent). we've invested a lot in LangSmith (about half our team), making it usable with or without langchain. Likewise, we're investing more and more in langgraph, also usable with or without langchain (that is in the orchestration space, which youre separately not bullish on, but for us that was a separate bet than LangChain orchestration)

Re:We no longer use LangChain for building our AI agents by chatmasta on Saturday June 22, 2024 @01:36AM (#40756569)
Separating into smaller libraries is a smart move. And yeah, like you said, I might be bearish on the orchestration space, but at least you can insulate it from the rest of your projects.

Best of luck to you. I don’t agree with the disparaging tone of the comments here. You executed quickly and that’s the hardest part. I wouldn’t bet against you, as long as you can keep iterating at the same pace that got you over the initial hurdles.

Your funding gives you the competitive advantage of “elbow grease,” which is significant when tackling problems like N-M ETL pipelines. But don’t get stuck focusing on solving every new corner case of these problems. Look for opportunities to be nimble, and cast a wide net so you can find them.

Re:We no longer use LangChain for building our AI agents by olafgeibig on Friday June 28, 2024 @11:08AM (#40821394)
I agree. Adopting a more modular approach is a great idea. Coming from the Java ecosystem, I still miss having something like the Spring framework in Python. I believe Spring remains an example of excellent framework design. Let me explain what I mean.

Using Spring requires adopting Spring IoC, but beyond that, everything is modular. You can choose to use only the abstractions you need, such as ORM, messaging, caching, and so on. At its core, Spring IoC is used to loosely integrate these components. Later on, they introduced Spring Boot and Spring Cloud, which are distributions of various Spring modules, offering an opinionated application programming model that simplifies getting started.

This strategy allows users the flexibility to selectively use the components they need while also providing an opinionated programming model that saves time and effort when starting a new project.

Re:We no longer use LangChain for building our AI agents by causal on Friday June 21, 2024 @01:02PM (#40751501)
I'm not sure. My suspicion is that the fundamental issue with frameworks like LangChain is that the problem domain they are attempting to solve is a proper subset of the problems that LLMs also solve.

Good code abstractions make code more tractable, tending towards natural language as they get better. But LLMs are already at the natural language level. How can you usefully abstract that further?

I think there are plenty of LLM utilities to be made- libraries for calling models, setting parameters, templating prompts, etc. But I think anything that ultimately hides prompts behind code will create more friction than not.

Re:We no longer use LangChain for building our AI agents by causal on Friday June 21, 2024 @01:08PM (#40751565)
Glad to hear that- sounds like I should give LangGraph a try after all
Re:We no longer use LangChain for building our AI agents by hwchase17 on Friday June 21, 2024 @01:13PM (#40751609)
would love any feedback if you do!
Re:We no longer use LangChain for building our AI agents by hwchase17 on Friday June 21, 2024 @01:06PM (#40751544)
totally agree on not hiding prompts, and have tried to stop doing that as much as possible in LangChain and are not doing that at all in LangGraph

thanks for the thoughts, appreciate it

Re:We no longer use LangChain for building our AI agents by fswd on Friday June 21, 2024 @12:20PM (#40751072)
using LangGraph for a month, every single "graph" was the same single solution. The idea is cool, but it isn't solving the right problem.... (and the problem statement shouldn't be generating buzz on twitter. sorry to be harsh).

You could borrow some ideas from DSPy (which borrows from pytorch) their Module: def forward: and chain LM objects this way. LangGraph sounds cool, but is a very fancy and limited version of basic conditional statements like switch/if, already built into languages.

Re:We no longer use LangChain for building our AI agents by hwchase17 on Friday June 21, 2024 @12:35PM (#40751228)
ooc, what was the "same single solution"
Re:We no longer use LangChain for building our AI agents by fswd on Friday June 21, 2024 @08:53PM (#40755310)
The graph code, when all done and said, is identical for all scenarios.
Re:We no longer use LangChain for building our AI agents by hwchase17 on Friday June 21, 2024 @09:39PM (#40755483)
what did it look like though? I'm really keen to hear what the common patterns you saw emerging were
Re:We no longer use LangChain for building our AI agents by jfjeschke on Friday June 21, 2024 @01:06PM (#40751541)
Thanks Harrison. LangGraph (eg graph theory + Networkx) is the correct implementation of multi-agent frameworks, though it is looking further into, and anticipating a future, then where most GPT/agent deployments are at.

And while structured output and tool calling are good, from client feedback, I'm seeing more of a need for different types of composable agents other then the default ReAct, which has distinct limitations and performs poorly in many scenarios. Reflection/Reflextion are really good, REWOO or Plan/Execute as well.

Different agents for different situations...

Re:We no longer use LangChain for building our AI agents by hwchase17 on Friday June 21, 2024 @01:12PM (#40751605)
> Different agents for different situations...

totally agree. we've opted for keeping langgraph very low level and not adding these higher level abstractions. we do have examples for them in the notebooks, but havent moved them into the core library. maybe at some point (if things stabilize) we will. I would argue the react architecture is the only stable one at the moment. planning and reflection are GREAT techniques to bring into your custom agent, but i dont think theres a great generic implementation of them yet

Re:We no longer use LangChain for building our AI agents by jfjeschke on Friday June 21, 2024 @01:41PM (#40751896)
Agreed. I've got a few of them ready to open source. It's almost like there needs to be a reference library of best practices for agent types
Re:We no longer use LangChain for building our AI agents by jes5199 on Friday June 21, 2024 @01:07PM (#40751549)
[deleted]
Re:We no longer use LangChain for building our AI agents by causal on Friday June 21, 2024 @01:09PM (#40751584)
I also have my criticisms of LangChain, but this feels mean-spirited towards devs that I think are honestly trying and didn't charge anything to use.
Re:We no longer use LangChain for building our AI agents by jes5199 on Friday June 21, 2024 @01:17PM (#40751647)
the road to hell is paved with engineers honestly trying
Re:We no longer use LangChain for building our AI agents by cynicalpeace on Friday June 21, 2024 @02:39PM (#40752362)
LangChain had a time and place. That was Spring of 2023, when everyone was figuring out how to string together llm calls with function calls.

We've figured that out, and the answer (like usual) is just K.I.S.S., not LangChain.

It seems even the LangChain folks are abandoning it. Good on you, you will most likely succeed if you do.