jd_
Joined 14 years ago
Joined 14 years ago
I could maybe see that being the case for LangChain, specifically, if you’re just thinking about abstracting the LLM provider’s APIs. But here, we’re specifically using LangGraph to handle checkpointing and state management. This is a much more difficult challenge to get right in a sufficiently complex application like Pizza Bot.
Case in point: for the internal-only version, we wrote this ourselves. It works for the most part, but there are subtle edge cases and bugs that we’ve had to tackle like a game of whack-a-mole.
For the open source release, we looked at a few frameworks and deliberately settled on LangGraph (and DeepAgents). I’ve never been so happy to throw away code. :)
In our experience so far, it’s been rock solid. Most of the issues/bugs we’ve had have come from streaming to the frontend, so a simple Cmd-R / Ctrl-R will get you back up and running without having to worry about your data being lost.
It seemed fitting to build Pizza Bot on top of LangChain’s tech, given the inspiration. :)
The bigger proof point for me was the adoption we saw from less technical folks at Amazon. Most of them immediately “got it.”
I’ve been describing Pizza Bot as an “inbox” because it captures the UX, but this does seem to cause confusion and undercuts the fact that Pizza Bot actually is an agent harness itself, not just an orchestrator of agents hosted elsewhere.
Let me know if that makes sense!
The internal-only predecessor actually did let you specify the individual model for the subagent calls. DeepAgents supports this, so it shouldn’t be a big lift. I’ll add an issue on GitHub. Thanks for the request!
In our case, we wanted to borrow the UX of email (to be intuitive to knowledge workers) but not necessarily the implementation.
Full control of your data was a design principle from the beginning, including being able to run fully offline with local models, so we didn’t want to add a dependency on email.
With that said, you can certainly hook up an MCP server and have the agents read and send emails (with human-in-the-loop approval) on your behalf.
It's an interesting alternate UX framing, for sure. It's possible there are scenarios where a different abstraction makes more sense, but I'm personally curious to see how far we can extend the email idiom!
In our case, we wanted to borrow the UX of email (to be intuitive to knowledge workers) but not necessarily the implementation.
Was there a particular workflow you had in mind here?
- https://github.com/pizza-bot-app/pizza-bot/issues/99
- https://github.com/pizza-bot-app/pizza-bot/issues/100
Thanks again!