Skip to main content

ai-python-ui-adapter

Use when connecting AI SDK for Python streams to AI SDK UI useChat clients.

Source facts

Repository
vercel-labs/seal
Last source activity
July 17, 2026 at 17:25
Detected SKILL.md language
English
Stars
8
Forks
3

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
ai-python-ui-adapter
description
Use when connecting AI SDK for Python streams to AI SDK UI useChat clients.
metadata
{"sdk-version":"0.2.1"}
# ai-python-ui-adapter Frontend: ```tsx const chat = useChat({ transport: new DefaultChatTransport({ api: "/api/chat" }), sendAutomaticallyWhen: lastAssistantMessageIsCompleteWithApprovalResponses, }); ``` Use `chat.sendMessage(...)` to send user input. Use `chat.addToolApprovalResponse(...)` from approval buttons. Backend request: ```python class ChatRequest(pydantic.BaseModel): messages: list[ai.agents.ui.ai_sdk.UIMessage] messages, approvals = ai.agents.ui.ai_sdk.to_messages(request.messages) ai.agents.ui.ai_sdk.apply_approvals(approvals) ``` Backend stream: ```python async def body(): async with agent.run(model, messages) as stream: async def events(): async for event in stream: if ( isinstance(event, ai.events.HookEvent) and event.hook.status == "pending" ): ai.defer_hook(event.hook) yield event async for chunk in ai.agents.ui.ai_sdk.to_sse(events()): yield chunk return StreamingResponse( body(), headers=ai.agents.ui.ai_sdk.UI_MESSAGE_STREAM_HEADERS, ) ``` The adapter handles `UIMessage` parsing, message IDs, tool state, approvals, subagent `MessageBundle` values, and AI SDK UI stream events. You handle the HTTP route, auth, storage, session lookup, frontend rendering, and when to defer hooks. For saved UI history, use: ```python ui_messages = ai.agents.ui.ai_sdk.to_ui_messages(messages) ```
View on GitHub