Just ported one of our more complex agent graphs over to the new `langgraph-sdk` 0.1.0 release. The change is significant.
Building a UI for a stateful agent used to mean a custom backend setup. ๐ง We had a whole WebSocket server just to stream state updates and tool call events from our Python agent to the React front end. It was brittle and a ton of boilerplate code to maintain.
The new client-server model in the SDK handles this natively. You define the graph in Python, run it as a server, and the new TypeScript client gets a real-time stream of *every single step*. ๐ง It pushes LLM outputs, tool calls, and full state diffs automatically. The server even manages the persistence and thread-safe snapshots. ๐พ
The result? We ripped out our entire custom WebSocket and state-syncing logic. This cut the client-side integration code by nearly half and makes debugging so much cleaner. ๐ Now, building a UI that shows an agent's "chain of thought" doesn't require any extra backend work.
๐ก It feels like a proper separation of concerns for agentic apps.
With stateful backends becoming this simple, is building agent logic directly into edge functions now officially dead?