spec/v0.5.0
microsoft/agent-host-protocolspec/v0.5.0Jun 26, 2026by github-actions[bot]
Upgrading?
Release notes summary
Defines the protocol spec for AHP 0.5.0, establishing multi-client sessions, progress tracking, and the new `SessionState` structure.
Key Highlights
- Multi-client support via `SessionState.activeClients` array.
- Generic progress notifications (`root/progress`) with `progressToken`.
- Flattened session state structure.
Breaking Changes
- Renamed `session/activeClientChanged` to `session/activeClientSet`.
- Removed `session/activeClientToolsChanged`.
- `ConfigPropertySchema.enum` now accepts `JsonPrimitive[]` instead of `string[]`.
New Features
- Optional `progressToken` on `createSession`.
- Optional `SessionSummary._meta` for session presentation hints.
- New `JsonPrimitive` type alias.
Full Release Notes
## [0.5.0] — 2026-06-26 Spec version: `0.5.0` ### Added - `chat/activityChanged` action for updating a chat's current activity description independently of the session summary. - `root/progress` (`ProgressParams`) generic host→client progress notification, correlated by a `progressToken` the client supplies on the originating request (today `createSession.progressToken`) rather than a domain object. Lets the host report long-running work — e.g. the lazy first-use download of an agent's native SDK — so clients can show an indicator instead of a silent multi-second hang. Carries monotonic `progress` and optional `total`; complete when `progress === total`. - `createSession.progressToken` optional opt-in token for receiving `root/progress` notifications about a session's bring-up. - `SessionModelInfo.maxOutputTokens` and `SessionModelInfo.maxPromptTokens` optional fields for communicating model token limits. - `SessionSummary._meta` optional provider metadata field for lightweight session-list presentation hints. - `JsonPrimitive` type alias (`string | number | boolean | null`) in `types/common/state.ts`. - `session/activeClientRemoved` action to release a single active client from a session by `clientId`. ### Changed - `ConfigPropertySchema.enum` now accepts `JsonPrimitive[]` instead of `string[]`, allowing numeric, boolean, and null enum values. - `ModelSelection.config` values are now `JsonPrimitive` (`string | number | boolean | null`) instead of `string`, allowing numeric, boolean, and null configuration values. - `SessionState.activeClients` (a required array, keyed by `clientId`) replaces the single optional `SessionState.activeClient`. A session may now have multiple concurrent active clients. - `session/activeClientChanged` is renamed to `session/activeClientSet` with upsert-by-`clientId` semantics. It no longer accepts `null` to unset the active client — dispatch `session/activeClientRemoved` instead. ### Removed - `session/activeClientToolsChanged`. An active client now updates its published tools by re-dispatching `session/activeClientSet` with its full, updated entry. ### Fixed - Corrected the `ACTION_INTRODUCED_IN` entries for `annotations/set`, `annotations/removed`, `annotations/entrySet`, and `annotations/entryRemoved` from `0.3.0` to `0.4.0`. The annotations channel first shipped in the `0.4.0` spec release (it is absent from `spec/v0.3.0`), so version negotiation must not advertise it to peers speaking `0.3.0`.
Related Repositories
openclaw/openclaw★ 392,878
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
morluto/rea★ 372,734
Reverse engineer anything with agents, from app behavior down to native binaries.
nilbuild/developer-roadmap★ 370,231
Interactive roadmaps, guides and other educational content to help developers grow in their careers.
anomalyco/opencode★ 220,584
The open source coding agent.
n8n-io/n8n★ 208,403
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.