Runtimes · Microsoft Agent Framework

Microsoft Agent Framework Overview

Microsoft Agent Framework is Microsoft's Python and .NET agent SDK. Its AG-UI bridge turns an Agent into an AG-UI event stream, which is all @threadplane/ag-ui needs in order to bind it to <chat>.

The Threadplane example is an expense assistant. It looks up policy through a server-side tool, streams a proposed expense into frontend state while the model is still writing it, and requires human approval before submitting.

What the integration demonstrates

SurfaceStatusHow
MessagesSupportedStreamed assistant text from Agent in agent-framework-core.
Tool callsSupportedlookup_expense_policy executes server-side with no pause.
Shared stateSupportedpredict_state_config streams a tool argument into frontend state.
InterruptsSupportedsubmit_expense declares approval_mode="always_require".
SubagentsNot availableThe bridge emits no per-subagent activity stream.

This is the most complete third-party row in the measured matrix: four of five surfaces are green, and the fifth is red on every runtime tested.

Predictive state is the interesting part

predict_state_config maps a tool argument onto a state key:

predict_state_config={
    "expense": {"tool": "submit_expense", "tool_argument": "expense"},
}

The bridge then streams the expense argument of submit_expense into frontend state as the model generates it, over STATE_SNAPSHOT and STATE_DELTA. The user watches the expense fill in before the tool has been called, let alone approved.

Unlike AWS Strands, this runtime emits real deltas, so state does not have to be reassembled in full on every update.

Subagents are not available

The bridge emits coarse executor-level activity snapshots and constructs ACTIVITY_DELTA nowhere. The Threadplane subagent projection keys on an activityType of subagent, which no third-party runtime emits.

This is an upstream gap rather than an adapter defect. The AG-UI protocol has carried dedicated SUBAGENT_* events since @ag-ui/core 0.0.59, and adopting them is upstream work.

Model access

Azure OpenAI is the default path. When AZURE_OPENAI_ENDPOINT is set, the agent routes through Azure OpenAI with key authentication. When it is absent, the agent falls back to the plain OpenAI client on OPENAI_API_KEY.

Next steps