I found that the PydanticAI [0] framework strikes a perfect balance between control and abstraction.<p>I’m building a non trivial AI app and the validation and dependency injection is such a great addition compared to using the LLM libraries directly.<p>[0] <a href="https://ai.pydantic.dev/" rel="nofollow">https://ai.pydantic.dev/</a>
I read the article but have yet to understand why someone would want to use a framework that introduces meaningless abstractions that are not properly documented or well maintained -aka, they often introduce breaking changes.<p>I’m interested in a useful agentic framework but LangGraph doesn’t seem to cut it.
One thing that's nice in LangGraph is the flexibility in what a node is. A node doesn't have to be an agent it can be any State manipulation function. So you can create nodes that exclusively do preprocessing or postprocessing and get your run loop as close as possible to just ainvoke on your graph repeatedly.<p>You can have a subclass of your Node class be an AgentNode class and then subclass that for each type of Agent and then when you declare your Graph object you pass in the data to instantiate the AgentNode with the type of data it needs. It is a bit weird that LangGraph doesn't have a default Node class but it sort of makes sense that they want you to write it in a way that makes sense for how you use it.<p>I do highly recommend abstracting your graph into Node and Edge classes (with appropriate subclasses) and being able to declare your graph in a constant that you can pass to a build_graph method. Getting as much code reuse as possible dramatically simplifies debugging graph issuses.
What are the benefits of these frameworks(Langgraph, Llamaindex) over a dedicated orchestration platform like Temporal (or DBOS as a lightweight alternative)?
How can one deploy LangGraph as an API (with production like features)? I have worked with langgraph serve to deploy locally, but are there other frameworks to deploy langgraph?