fix(langchain): emit finish and finish-step events for LangGraph streams #11624
+194
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Background
When using
@ai-sdk/langchainwith LangGraph agents, the stream was missingfinishandfinish-stepevents. ThetoUIMessageStreamfunction only emitted these lifecycle events formodelandstreamEventsstream types, but not forlanggraphstreams.This caused the stream to go from
text-endstraight to[DONE]without proper protocol events, which breaks the expected AI SDK UI Message Stream protocol and can cause issues in multi-turn conversations.Summary
finishevent emission for LangGraph streams at the end of the streamfinish-stepevent emission for LangGraph streams when a step was started (tracked vialangGraphState.currentStep)finisheventsManual Verification
streamMode: ['values', 'messages']start-stepwhen a step beginsfinish-stepwhen a step ends or at stream completionfinishat the end of the streamChecklist
pnpm changesetin the project root)Related Issues
Fixes #11417
Related reproduction: https://github.com/tuntisz/ai-sdk-langchain-bug-repro