Add LangGraph integration with state persistence and human-in-the-loop support #14
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.
Implements cross-language (C# → Python) integration with LangGraph/LangServe for stateful graph-based agent orchestration. Key capability: BotSharp ConversationId maps 1:1 to LangGraph thread_id, enabling LangGraph's checkpointer to act as external state persistence.
Implementation
Plugin Structure (
BotSharp.Plugin.LangGraph)LangServeClient: HTTP client supporting/invoke(sync),/stream(SSE), and interrupt detectionLangGraphStateMapper: State bridge between BotSharp conversation state and LangGraph thread stateState Mapping
Human-in-the-Loop
interruptedstatus or__interrupt__field in responsesResumeAsynccontinues execution with same thread_id (LangGraph handles state restoration)Streaming
[EnumeratorCancellation]attribute for proper async enumerable cancellationDocumentation
QUICKSTART.md: Integration architecture, sequence diagrams, protocol specificationPlugin README.md: Configuration, usage examples, troubleshootingConfiguration
{ "LangGraph": { "BaseUrl": "http://localhost:8000", "ApiKey": "optional-key", "Timeout": 300, "EnableTracing": true } }Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.