Events And Citations¶
Three deterministic graphs show how graph output crosses the OpenAI boundary without turning UI notifications into tool calls.
| Graph | Public output | Client behavior |
|---|---|---|
citation-events |
Markdown links and inline markers plus OpenAI url_citation annotations |
Chainlit renders the Markdown; Open WebUI resolves markers through native source events |
status-events |
Standard assistant text plus opt-in status events |
Chainlit uses a TaskList; Open WebUI persists native status history |
custom-event-showcase |
Assistant text interleaved with progress and artifact events |
Chainlit renders its custom activity panel; Open WebUI ignores these unsupported kinds |
LangGraph Topology¶
graph TD;
__start__ --> answer_with_citation;
answer_with_citation --> __end__;
graph TD;
__start__ --> prepare_media;
prepare_media --> __end__;
graph TD;
__start__ --> build_compatibility_report;
build_compatibility_report --> __end__;
Request Flow¶
- The client sends a standard Chat Completions request to one deterministic graph.
citation-eventsreturns portable Markdown plus standard OpenAIurl_citationannotations.status-eventsandcustom-event-showcasepublish passive updates through LangGraph's stream writer while returning ordinary assistant text.- LGOS always transports the assistant text. It includes client-event chunks
only for streaming requests with
metadata.langgraph_stream_events="v1". - UI adapters render the fields and events they support. Other OpenAI clients can ignore the optional output and keep the text.
These graphs have no checkpointer or Store. Their graph state and event timeline last for one request; each UI separately owns its transcript and rendered status or activity history.
Try It¶
| Model | Prompt |
|---|---|
citation-events |
Show me a cited answer. |
status-events |
Prepare the media workflow. |
custom-event-showcase |
Build the compatibility report. |
See Citation Ownership and Client Events for the normative transport contract.