ACP now works in both directions (serve an AG2 agent through ACP), A2A gains signed agent cards and TLS, ElevenLabs joins the realtime voice providers, and the first community extensions land.
ACP — serve as well as drive
v1.0 could drive CLI coding agents over the Agent Client Protocol. v1.0.2 closes the loop.
- Serve an AG2 Agent over ACP — Any AG2 Agent can now be exposed as an ACP agent, so ACP clients can drive it the same way AG2 drives them.
- Remote ACP agents over HTTP and WebSocket — Drive ACP agents across a network boundary rather than only as local subprocesses, and answer questions those agents ask back mid-task.
- ACP 0.12 — Upgraded to the current protocol version.
- Kilo Code support and model selection — Added to the ACP configurations.
A2A — signed cards, TLS, and extensions
- Signed AgentCards — Served agent cards are signed, and consumed cards are verified, so an agent can establish that a card came from who it claims.
- gRPC TLS — Transport security for agent-to-agent communication over gRPC.
- User-defined A2A extensions — Define your own extensions on top of the protocol.
Realtime voice
- ElevenLabs — ElevenLabs joins the realtime voice providers available to
LiveAgent. Documentation
Extensions
The first community extensions have landed, both installable alongside the framework rather than merged into it:
- Tenki sandbox — Sandbox integration for isolated execution.
- TealTiger governance middleware — Deterministic governance as middleware.
The optionals dependency group for extensions is now documented for contributors.
Agent and middleware introspection
Agentcomposition is public — An agent's composition is exposed as read-only properties, so you can inspect how an agent is assembled without reaching into internals.middleware.describe()— Middleware can report its own configuration, which makes a stack of middleware inspectable at runtime.AgentSpecwarns on unknown fields — Previously unknown fields were dropped silently; they now surface a warning.- Tool abstractions homed in
ag2.tools.types— The tool type surface now lives in one place.
Fixes
Reasoning and policies
- Built-in tool calls are never trimmed away from their reasoning item.
- Durable reasoning items are kept in
ConversationPolicy.
Providers and tools
- Gemini — Built-in tools work alongside function calling;
media_resolutionis sent in thePartshape the SDK expects; HEIC and HEIF image inputs are supported. - Perplexity — SDK response nodes that arrive as dicts are read correctly.
- TinyFish — Adapted to TinyFish 0.5 per-product hosts, pinned to
>=0.5,<0.6. - A2UI — Extension activation persists on
ServerCallContext.state. - Usage reporting — Sub-task usage incurred before a failure is now reported rather than lost.
Dependencies
cryptographyto 50.0.0,aiohttpto 3.14.3,h2to 4.4.1, plus routine bumps.
Documentation and project
- AG2 Code Assistant added to the docs site.
- Tool middleware sharing claims corrected, with the shared-budget pattern documented.
- The
optionalsdependency group documented for Extensions contributors. - A policy for handling AI-generated reviews has been added.
robots.txtnow ships, so the/latestarchive is no longer advertised to crawlers.
What's Changed
- fix(docs): ship robots.txt so it stops advertising the /latest archive by @marklysze in #3115
- docs: Add AG2 Code Assistant to docs site by @marklysze in #3110
- fix(perplexity): read SDK response nodes that arrive as dicts by @marklysze in #3119
- docs(contributing): document the optionals dependency group for Extensions by @marklysze in #3126
- chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #3127
- fix(gemini): send media_resolution in the Part shape the SDK expects by @vvlrff in #3129
- chore(deps): bump aiohttp from 3.14.1 to 3.14.3 by @dependabot[bot] in #3132
- chore(deps): bump cryptography from 49.0.0 to 50.0.0 by @dependabot[bot] in #3130
- chore(deps): bump gitpython from 3.1.54 to 3.1.57 by @dependabot[bot] in #3131
- fix(a2ui): persist extension activation on ServerCallContext.state by @marklysze in #3122
- fix(tinyfish): adapt to tinyfish 0.5 per-product hosts and pin >=0.5,<0.6 by @marklysze in #3135
- feat: add Kilo Code support and model selection to ACP configurations by @vvlrff in #3101
- feat(a2a): sign served AgentCards and verify consumed ones by @vvlrff in #3111
- feat(a2a): support user-defined A2A extensions by @vvlrff in #3116
- fix(spec): warn on unknown fields in AgentSpec instead of dropping them silently by @marklysze in #3118
- feat(middleware): add describe() so middleware can report its configuration by @marklysze in #3120
- feat(agent): expose composition as public read-only properties by @marklysze in #3134
- refactor(tools): home the tool abstractions in ag2.tools.types by @marklysze in #3117
- chore(deps): bump h2 from 4.3.0 to 4.4.1 by @dependabot[bot] in #3140
- chore(deps): bump pymdown-extensions from 11.0 to 11.0.1 by @dependabot[bot] in #3141
- chore(deps): bump gitpython from 3.1.57 to 3.1.58 by @dependabot[bot] in #3142
- fix(gemini): allow builtin tools alongside function calling by @marklysze in #3145
- feat(acp): serve an AG2 Agent over ACP by @marklysze in #3139
- chore(deps): bump the github-actions group with 2 updates by @dependabot[bot] in #3144
- feat(a2a): add gRPC TLS support for secure agent communication by @vvlrff in #3138
- fix: support Gemini HEIC and HEIF image inputs by @uuzzrm in #3148
- fix(tools): report sub-task usage incurred before a failure by @Sanjays2402 in #3106
- Feat/elevenlabs live by @stepacool in #3086
- fix(policies): never trim a builtin tool call away from its reasoning item by @marklysze in #3150
- chore(policy): policy for handling AI-generated reviews by @marklysze in #3152
- feat(extensions): add Tenki sandbox integration by @camcalaquian in #3096
- chore: ACP version bump to 0.12 by @marklysze in #3154
- fix(policies): keep durable reasoning items in ConversationPolicy by @marklysze in #3149
- feat(extensions): Add TealTiger deterministic governance middleware by @nagasatish007 in #3128
- fix(test): de-flake transport demux delivery assertions by @marklysze in #3155
- feat(acp): drive remote ACP agents over HTTP/WebSocket, answer agent questions, upgrade to ACP 0.12 by @vvlrff in #3146
- docs(middleware): correct tool middleware sharing claims and document the shared-budget pattern by @marklysze in #3136
- Version bump to 1.0.2 by @marklysze in #3157
New Contributors
- @uuzzrm made their first contribution in #3148
- @Sanjays2402 made their first contribution in #3106
- @camcalaquian made their first contribution in #3096
Full Changelog: v1.0.1...v1.0.2