5.2 KiB
Parity Notes
Baseline: showcase/integrations/langgraph-python/.
This document lists demos present in the langgraph-python reference that
are not ported to the PydanticAI showcase, with the reason for each
skip. See manifest.yaml for the full list of demos that are shipped
in this package.
Recently ported demos
gen-ui-tool-based— Tool-based generative UI with frontend-registeredrender_bar_chartandrender_pie_chartcomponents. The PydanticAI agent uses a chart-viz system prompt and relies on the runtime to surface frontend-registered tool definitions on each run; no backend tool implementations are required because the components handle rendering directly on the client.
New demos (post-PR #4271)
The following demos introduced on main via PR #4271 are now ported:
byoc-json-render—@json-render/reactBYOC pattern with JSONUIProvider wrapping<Renderer />and MetricCard children forwarding (both post-#4271 fixes preserved).byoc-hashbrown—@hashbrownai/reactBYOC pattern. The PydanticAI agent emits the post-#4271 JSON envelope{"ui": [{componentName: {"props": {...}}}]}verbatim.multimodal— image / PDF attachments. Images flow to GPT-4o vision natively viaOpenAIResponsesModel. PDFs are flattened to inline text viapypdfinside a PydanticAIhistory_processorshook (equivalent to langgraph-python's_PdfFlattenMiddleware). The frontend'sonRunInitializedshim and LFS-pointer guard are kept intact.voice— audio transcription. Route reuses the main sales agent at the PydanticAI root as a neutral backing agent; theGuardedOpenAITranscriptionService+ direct-instance wiring pattern is lifted verbatim from the langgraph-python reference.agent-config—forwardedPropsrouting. The TS runtime route subclassesHttpAgentto repack providerpropertiesinto an AG-UIcontextentry taggedagent-config-properties; the Python agent's dynamic@agent.system_promptreads that entry. Framework-specific adaptation vs. langgraph-python'sforwardedProps.config.configurablepath — user-visible behaviour is identical.auth— bearer token auth. Gate is built oncreateCopilotRuntimeHandlerfrom@copilotkit/runtime/v2with theonRequesthook, framework-agnostic. Post-#4271 fixes preserved (default authenticated,ChatErrorBoundary, inverted button labels).
Skipped demos
-
mcp-apps— Requires CopilotKit MCP Apps middleware wired to a remote MCP server (Excalidraw). The PydanticAI integration exposes tools viaagent.to_ag_ui()and does not yet have a documented MCP-apps path through the Python SDK's A2UI middleware as of this writing. Can be revisited whencopilotkit-sdk-pythongrows first-class MCP client support across AG-UI integrations. Thebeautiful-chatandheadless-completecells are ported with their Excalidraw suggestion pills intentionally omitted (the rest of each cell is at parity). -
agentic-chat-reasoning,reasoning-default-render,tool-rendering-reasoning-chain— These three demos depend ondeepagents.create_deep_agentto emit reasoning/thinking tokens alongside regular tool calls. PydanticAI has its own reasoning model support (OpenAIResponsesModelwith reasoning enabled) but does not currently stream reasoning content as AG-UITHINKING_*events throughagent.to_ag_ui(). Skipped until that bridge exists; a faked version would not reflect the real integration. -
gen-ui-interrupt,interrupt-headless,hitl-in-chat,hitl-in-chat-booking— All four demos are built on LangGraph'sinterrupt()primitive (pauses graph execution mid-tool-call and surfaces the payload to the client viauseInterrupt). PydanticAI does not have an equivalent interrupt/resume primitive — its tools run to completion. Skipped as framework-specific. (The HITL experience in this package is delivered via thehitlandhitl-in-appcells, which use a frontend-tool-driven approval pattern that does not require backend interrupts.)
Parked for future parity
These demos are intentionally not in scope for the PydanticAI package today — none remain now that the post-#4271 demos listed above have landed.
Partial parity — ported with documented gaps
The following demos are in the package but do not ship 100% of the langgraph-python behaviour:
-
headless-complete— ported without the Excalidraw-via-MCP suggestion (seemcp-appsskip above). The reasoning-message branch ofuse-rendered-messages.tsxis omitted because@ag-ui/core@0.0.43(the version pinned in this package) does not exportReasoningMessageand PydanticAI's AG-UI adapter does not emit reasoning content today. All other rendering surfaces (per-tool renderers, frontend components, default catch-all) are at parity. -
beautiful-chat— ported without the Excalidraw-via-MCP suggestion. Shared todo state uses PydanticAI'sStateSnapshotEvent(emitted onmanage_todoscompletion) instead of langgraph-python'sStateStreamingMiddlewareper-token deltas — the shared todo list still syncs, just without per-character streaming animation. All other surfaces (A2UI fixed + dynamic, Open Generative UI, HITL, frontend tools) are at parity.