Tracking issue for the Python hosting core + pluggable channels work.
Design: docs/specs/002-python-hosting-channels.md
Overall PR: #6031 (feature/python-hosting → main)
Hosting core (agent-framework-hosting)
Channels
Identity, linking & policy
Cross-channel delivery
Samples & docs
Fast-follow / stretch
Tracking issue for the Python hosting core + pluggable channels work.
Design:
docs/specs/002-python-hosting-channels.mdOverall PR: #6031 (
feature/python-hosting→main)Hosting core (
agent-framework-hosting)AgentFrameworkHost(target=..., channels=[...])— one Starlette app, agent orWorkflowtargetChannelprotocol +ChannelContribution(routes/middleware/commands/lifecycle)ChannelRequestenvelope + per-requestrun_hooksession_modeauto/required/disabled)ChannelSession.isolation_keyIdentityResolverseam (channel-native id → isolation_key)IdentityLinkerseam (begin/complete link ceremony)ResponseTarget(originating / active / channel / channels / identities / all_linked / none)ChannelPushcapability for proactive/cross-channel deliveryrun_in_background→ContinuationToken, poll routes)host.serve(...)/host.appHostStateStoredefault (survives restart); in-memory for testsChannels
ResponsesChannel(agent-framework-hosting-responses) — HTTP+SSE (+ WebSocket transport)InvocationsChannel(agent-framework-hosting-invocations)TelegramChannel(agent-framework-hosting-telegram) — polling + webhook,ChannelCommandcatalog, silent attributed echoesActivityChannel(agent-framework-hosting-activity-protocol) — Azure Bot Service / Teams, push via ConversationReference, slash commands, markdown renderingDiscordChannel(agent-framework-hosting-discord) — interactions + slash commands (Python: add agent-framework-hosting-discord channel #6081)TeamsChannel(agent-framework-hosting-teams) — Teams-native viamicrosoft/teams.py(Python: add agent-framework-hosting-teams channel (microsoft-teams-apps SDK) #5642)A2AChannel(agent-framework-hosting-a2a)MCPToolChannel(agent-framework-hosting-mcp)Identity, linking & policy
agent-framework-hosting-entra)LinkPolicy+confidentiality_tier(AllowAll / SameTier / ExplicitAllowList / DenyAll)IdentityAllowlistseamCross-channel delivery
all_linkedfan-out + input replay (echo_input) with per-channel attributionSamples & docs
002-python-hosting-channels.md+ hosting channels ADRFast-follow / stretch
HostStateStore)