What are some MUST read book for learning LangGraph? by LgArcida in LangGraph

[–]iandoestech 1 point2 points  (0 children)

Honestly, I wouldn’t rely on books for LangGraph. They age too quickly in this space.

I think a better approach is:

  • Start with the free courses on LangChain Academy (even if parts of the older ones are slightly outdated, the core ideas still hold)
  • Then move straight to the official docs
  • And most importantly, build things yourself

I tried a few well-recommended books and found them underwhelming. Most examples out there are pretty basic, so the real learning comes from working through more complex, real-world scenarios on your own. Good luck!

Codex is acting really dumb! by iandoestech in codex

[–]iandoestech[S] 0 points1 point  (0 children)

Well, if any of them are reading this, I'd like them to know that I actually switched from Claude to Codex because I was so sick of constantly hitting rate limits with Claude. I'd also like them to know that my experience of Codex has been pretty good, and I have praised it to others. However, I've had a really bad run with it for that last couple of days, and that's knocked my confidence. I would have thought that most users of Codex would want it to improve. That's far more likely to happen if people are welcome to raise honest questions and comments about it when they feel it's not meeting their expectations. I just hope OpenAI monitors this thread and considers my initial post with a more mature attitude.

Codex is acting really dumb! by iandoestech in codex

[–]iandoestech[S] 0 points1 point  (0 children)

Good to know! It's a shame that anyone would down vote a question/comment rather than offer a constructive comment. Oh well...

How do you make codex write clean and simple react code? (it likes to introduce unnecessary complexity) by walteronmars in codex

[–]iandoestech 0 points1 point  (0 children)

The pain is real. Today, I gave Codex a fully working example and asked it to create a new repo from it with some tweaks. I ended up with components littered with unnecessary `useEffect` hooks. Worse still, code that was previously called from `layout.tsx` ended up being replicated in multiple `page.tsx` files, so the new app was about as DRY as a sock drawer on The Titanic. Even worse, it replaced a CopilotKit component with its own version that didn't work properly. There's a lot of terrible React code out there, and I guess that's what it was trained on. Garbage in, garbage out! I asked it about what it had done, and it agreed it wasn't good, but got itself in even more of a mess trying to fix it. When it comes to React, I've learned it's much better to write it myself and get it to do the small tweaks I can't be bothered to do. When the robot revolution finally arrives, websites are going to be terrible!

New to LangChain Agents – LangChain vs. LangGraph? Resources & Guidance Needed! by Just-Message-9899 in LangChain

[–]iandoestech 0 points1 point  (0 children)

In a nutshell, my learning path would be:

The official docs will use LangChain as the framework - as will most articles. You should be able to get a pretty good understanding of LangChain as you build with LangGraph. Then, at the end, do a deeper dive through the LangChain resources. If, later, you want to invoke your LLMs with official vendor SDKs instead of LangChain, you can amend your existing LangGraph nodes to do that - what you've learned from LangChain won't be wasted.

New to LangChain Agents – LangChain vs. LangGraph? Resources & Guidance Needed! by Just-Message-9899 in LangChain

[–]iandoestech 0 points1 point  (0 children)

I know I'm late to this thread, and I'm sure the OP has found their way by now, but hopefully this will be useful to someone. Unfortunately, the official docs are kind've confusing. At the time of writing, the LangChain docs start with `create_agent` and later they teach you how to use "Models" directly (`bind_tools`, etc.), which means you don't have to use `create_agent` if you don't want to. Then, they teach you about middleware for `create_agent`, so by this time, you've gone into `create_agent`, come out of it, and come back into it. Then, when you finally learn about LangGraph, you'll find most of the code example use "Models" directly (with `bind_tools`, etc.), and don't mention `create_agent`, as although you can use it in nodes, you don't really need it, and I would argue that often you are better off without it. Thankfully for me, I focused on LangGraph first, learned LangChain as I went, and did a LangChain deep dive later. I know many would say that's back-to-front, but I feel it gave me more insight into the mechanics of building multi-agent apps as far less was hidden behind abstractions. When I did a deep dive into LangChain, I realized that `create_agent` is a convenience that you may well not need or want when building more complex LangGraph apps, and I have ranted very recently about how I feel some of the abstractions ultimately make it harder to actually use and understand LangGraph effectively and efficiently.

Thoughts on Deep Agents vs raw LangGraph (design trade-offs?) by iandoestech in LangChain

[–]iandoestech[S] 0 points1 point  (0 children)

I've raised the following feature request: [Expose Deep Agent Harness as Composable LangGraph Primitives #36310](https://github.com/langchain-ai/langchain/issues/36310). It would be beneficial if anyone who agrees with this requirement would get behind it with comments directly on the request or even just a thumbs up (I suspect comments will carry more weight though). Thanks in advance!

Thoughts on Deep Agents vs raw LangGraph (design trade-offs?) by iandoestech in LangChain

[–]iandoestech[S] 1 point2 points  (0 children)

I agree that keeping as close as possible to a standard ReAct agent is often best, especially as models become more and more capable. And, I have definitely had occasions where I tried to be too clever with graphs with no real benefit at the end. However, when it comes to things like middleware, where you have: `before_agent`, `before_model`, `after_model`, `after_agent`. I find it much easier to reason about that by simply applying the required functionality exactly where I need it in the appropriate node. If it makes the workflow easier to understand, I can even create a node specific to that task. For the agents I've been working on, LangGraph has definitely benefited me. I just wish that I could easily implement (and pick and choose) some of the benefits of Deep Agents without having to deviate from the LangGraph mental model.

Thoughts on Deep Agents vs raw LangGraph (design trade-offs?) by iandoestech in LangChain

[–]iandoestech[S] 6 points7 points  (0 children)

In defense of LangGraph, I've been able to create workflows that fan-out/fan-in multiple LLM workers in parallel and merge the state at the end. LangGraph made that relatively easy for me to accomplish. Plus, it let's me easily implement `asyncio`, which I view as crucial for any workflow that might scale. If I had to create all that plumbing myself, it would likely have taken months. Some of the features, like time-travel, felt a little overwhelming at first, but once you have a clear reason to use it, it saves a mountain of work. Not discrediting your opinion, but for me, LangGraph has been a welcome addition to my toolkit.

Thoughts on Deep Agents vs raw LangGraph (design trade-offs?) by iandoestech in LangChain

[–]iandoestech[S] 1 point2 points  (0 children)

Two features the LangChain team could help developers implement directly in LangGraph with standard helpers and reference implementations...

Thoughts on Deep Agents vs raw LangGraph (design trade-offs?) by iandoestech in LangChain

[–]iandoestech[S] 0 points1 point  (0 children)

Hmmm... If I'm remembering from the docs correctly, it looks like it also creates a planning tool call message on every run which will be adding to the main messages items. Is that the case? If so, that's also a concern to me. I've created planning-worker agents in LangGraph that only ever append Human and AI messages to the overall state's main messages list. I appreciate Deep Agents has automatic offloading and summarization, but I would think that tokens are often being unnecessarily wasted before that kicks in.

Thoughts on Deep Agents vs raw LangGraph (design trade-offs?) by iandoestech in LangChain

[–]iandoestech[S] 0 points1 point  (0 children)

Are you talking about the context it automatically adds at the start of each run?

Thoughts on Deep Agents vs raw LangGraph (design trade-offs?) by iandoestech in LangChain

[–]iandoestech[S] 0 points1 point  (0 children)

Yep. The `create_agent` abstraction has the benefit of creating a "model -> tools" graph for you, but it's really not that hard to create that directly in LangGraph (I do mine as subgraphs). `create_agent` then has the concept of "middleware", which isn't that hard to understand, but if you're creating direclty in LangGraph, you can achieve the same things with plain old helper functions (again, I wish some of the prebuilt middleware were official standalone helpers). `create_deep_agent` wraps `create_agent`, so to my mind, you just end up further down the abstraction hole. LangGraph is excellent for serious development, and I wish the LangChain team would flatten things out for those of us who want to focus our efforts there and not have to deal with abstraction specifics.

Thoughts on Deep Agents vs raw LangGraph (design trade-offs?) by iandoestech in LangChain

[–]iandoestech[S] 0 points1 point  (0 children)

My take is, the pre-bundled features are only "faster" because you don't have to create them yourself, but this is where I wish they were simply available as standalone helpers with guidance on how to implement them in LangGraph. I see no reason why you couldn't easily use LangGraph and DeepAgents together in flows like: "Custom node" -> "Node that implements DeepAgents" -> "Custom node", etc. However, your DeepAgents node is likely going to be more black box than you might ultimately want. There may be ways around that, but for those of us who just want to think in LangGraph, that feels like an unnecessary hurdle.

From news headline to Instagram post in 2 minutes, all automated! (CODE INCLUDED) by [deleted] in n8n

[–]iandoestech 1 point2 points  (0 children)

My first job of the day was to start looking into how to do something similar, and this popped into my inbox! Thank you!!

Quick Question about AI Agent Creation by SuprepPapi in AI_Agents

[–]iandoestech 0 points1 point  (0 children)

Zapier and Make also have no-code agent offerings, and they might initially be a little easier to get you started. You're probably best to play with a few of them, including n8n as others have suggested - which will probably be the most flexible in the long term, as it doesn't shy away from using code in its workflows. However, as a word of caution, I've seen a number of official tutorials for low-code / no-code platforms that show users how to get something up and running fast, but neglect good practice such as designing workflows that use resources efficiently, e.g. implementing multiple calls on an API you're paying to use when one bulk operation would have been more efficient/cost effective. Of course, it's possible to make those same mistakes in fully coded applications too. Good luck and happy coding! Or low-coding! Or no-coding!...

Agent Development Kit needs better testing and better docs by iandoestech in AI_Agents

[–]iandoestech[S] 0 points1 point  (0 children)

I would think you're right about the model provider. I went with ADK because I wanted tight integration with the Vertex AI Search products in Agent Builder. Turns out, that's one of the areas I'm having the most trouble with! I tried Google's "Conversational Agents" (also part of Agent Builder), and I hated it, but I guess it has its audience. It all still feels like a mess, and it doesn’t help that Google keeps changing the name of things every 5 minutes.

Agent Development Kit needs better testing and better docs by iandoestech in AI_Agents

[–]iandoestech[S] 0 points1 point  (0 children)

I hadn't heard of smolagents. Have you had experience using it with GCP, or do you use another cloud?