|
3 | 3 | ## [3.0.0](https://github.com/google/adk-python/compare/v2.10.0...v3.0.0) (2026-10-01) |
4 | 4 |
|
5 | 5 |
|
| 6 | +### Highlights |
| 7 | + |
| 8 | +This release focuses on improving workflow control and agent capabilities, introducing execution cancellation, human-in-the-loop tool confirmations, a dedicated tool for consulting expert models, and compatibility updates for MCP SDK 2.x. |
| 9 | + |
| 10 | +* **Execution Control**: Prevent wasted compute and resources by cleanly aborting running workflows and nodes when a client disconnects. ([ef5bbcf](https://github.com/google/adk-python/commit/ef5bbcfe51670bd211645a043914c162e7c1cd60)) |
| 11 | +* **Workflows**: Build secure human-in-the-loop approval flows by pausing tool nodes for user confirmation before execution. ([ce132b9](https://github.com/google/adk-python/commit/ce132b92d471b8df903524593d863171b000a764)) |
| 12 | +* **Tools**: Enhance agent reasoning by delegating complex tasks to advisor models using a dedicated consultation tool with turn and session budgets. ([84cc99a](https://github.com/google/adk-python/commit/84cc99abd53010817a85b51fdcdc5d4f48366769)) |
| 13 | +* **Integrations**: Connect your agents to the latest Model Context Protocol ecosystem using an opt-in protocol path for MCP SDK 2.x. ([e738c26](https://github.com/google/adk-python/commit/e738c26fe5abcecffe2fbeba31f8d837086aad8a)) |
| 14 | + |
| 15 | +#### Breaking changes |
| 16 | + |
| 17 | +* **Schema Serialization**: Adapt to strict JSON coercion for inputs and outputs (Decimals, UUIDs, datetimes, Enums now serialize to primitives), and ensure your schemas do not pass un-coercible values which now trigger hard serialization errors. |
| 18 | +* **Dev UI Config**: Update your setup to retrieve the dev UI runtime configuration directly from the server instead of reading it from a static file. |
| 19 | + |
| 20 | +<details> |
| 21 | +<summary>All changes</summary> |
| 22 | + |
6 | 23 | ### ⚠ BREAKING CHANGES |
7 | 24 |
|
8 | | -* Coerces validated schema inputs and outputs (Decimal, datetime, UUID, Enum) to JSON primitives (str, int) via mode='json'. This affects in-memory node outputs as well as llm_agent output_key state and agent_tool results (bare Decimal dumps to str), as well as node inputs when a dict input_schema is used (such as with parameter_binding='node_input'). Additionally, validating against a dict or types.Schema now raises a hard failure (PydanticSerializationError) on values that Pydantic cannot coerce, where un-coercible values passed through before. |
9 | | -* Coerces validated schema inputs and outputs (Decimal, datetime, UUID, Enum) to JSON primitives (str, int) via mode='json'. This affects in-memory node outputs as well as llm_agent output_key state and agent_tool results (bare Decimal dumps to str), as well as node inputs when a dict input_schema is used (such as with parameter_binding='node_input'). Additionally, validating against a dict or types.Schema now raises a hard failure (PydanticSerializationError) on values that Pydantic cannot coerce, where un-coercible values passed through before. |
| 25 | +* coerces validated schema inputs and outputs (Decimal, datetime, UUID, Enum) to JSON primitives (str, int) via mode='json'. This affects in-memory node outputs as well as llm_agent output_key state and agent_tool results (bare Decimal dumps to str), as well as node inputs when a dict input_schema is used (such as with parameter_binding='node_input'). Additionally, validating against a dict or types.Schema now raises a hard failure (PydanticSerializationError) on values that Pydantic cannot coerce, where un-coercible values passed through before. |
10 | 26 | * serve the dev UI runtime config from the server instead of a file |
11 | 27 |
|
12 | 28 | ### Features |
|
50 | 66 | * drop stale replies to superseded tool updates ([fdca5e7](https://github.com/google/adk-python/commit/fdca5e7b20db78347a19966354af4219c2bd012a)) |
51 | 67 | * drop unpairable trailing FRs in rearrange ([643df96](https://github.com/google/adk-python/commit/643df966a0fa223454e34a4eee1eddd68931ffa3)), closes [#6751](https://github.com/google/adk-python/issues/6751) |
52 | 68 | * dump validated schemas in JSON mode ([731ea30](https://github.com/google/adk-python/commit/731ea30ecb63ea54ea1b51a81635b3016e9c8f55)), closes [#6747](https://github.com/google/adk-python/issues/6747) |
53 | | -* dump validated schemas in JSON mode ([d1e61e5](https://github.com/google/adk-python/commit/d1e61e5a461bc47bb9487355c12b0027d4926978)), closes [#6747](https://github.com/google/adk-python/issues/6747) |
54 | 69 | * **eval:** skip content-less events when mapping Vertex multi-turn turns ([fd2ca87](https://github.com/google/adk-python/commit/fd2ca8773ed51ec13a96670fdeb11f333727217a)) |
55 | 70 | * **flows:** detect thought-only and whitespace turns as empty content ([dea8110](https://github.com/google/adk-python/commit/dea81109d15066b89dd3447f7c20523cc06d5e6a)) |
56 | 71 | * follow redirects when downloading skills in GcpSkillRegistry ([fd14aec](https://github.com/google/adk-python/commit/fd14aec26534adb9743e963f39af468f1f0c329f)) |
|
65 | 80 | * make conformance runs report replay and recording failures ([5355c7c](https://github.com/google/adk-python/commit/5355c7c60684e38e9ea158e34a41974e525be90f)) |
66 | 81 | * normalize jj and hg added paths on Windows ([fe69c0b](https://github.com/google/adk-python/commit/fe69c0b94f6c90ee342f87b9eba2663fa2abb3aa)) |
67 | 82 | * only apply --avatar_config to live sessions requesting video ([4d241bf](https://github.com/google/adk-python/commit/4d241bff1bdf63ddf5ef947a2aa5d145b008c013)) |
68 | | -* Persist sibling tool results before a tool confirmation request ([67d3e49](https://github.com/google/adk-python/commit/67d3e494b610c6962ca8290dcb66c9f6b8b08735)), closes [#6732](https://github.com/google/adk-python/issues/6732) |
| 83 | +* persist sibling tool results before a tool confirmation request ([67d3e49](https://github.com/google/adk-python/commit/67d3e494b610c6962ca8290dcb66c9f6b8b08735)), closes [#6732](https://github.com/google/adk-python/issues/6732) |
69 | 84 | * **plugins:** let tools run as workflow nodes under ToolCallIntegrityPlugin ([b057697](https://github.com/google/adk-python/commit/b0576978ec1f341980abdf385cf47f8b22da4178)) |
70 | 85 | * **plugins:** record content_formatter failure class in error_message ([e5a24b6](https://github.com/google/adk-python/commit/e5a24b6f168581a1904049a8896a6939cdb88e30)) |
71 | 86 | * preserve single-turn structured output ([6b96ba1](https://github.com/google/adk-python/commit/6b96ba199b3e2684272fad870d9e0ab45b79ec33)), closes [#6089](https://github.com/google/adk-python/issues/6089) |
|
99 | 114 |
|
100 | 115 | ### Code Refactoring |
101 | 116 |
|
102 | | -* serve the dev UI runtime config from the server instead of a file ([3722746](https://github.com/google/adk-python/commit/3722746568a33226d54ba51876801c5948479eb5)) |
103 | 117 |
|
104 | 118 |
|
105 | 119 | ### Documentation |
106 | 120 |
|
107 | 121 | * add known issues for A2A workflow output schema and serialization ([f7967c3](https://github.com/google/adk-python/commit/f7967c35fecbd2080953d28d0f9f9a8d71674fc2)) |
108 | | -* add unit guide for Node and [@node](https://github.com/node) ([3e59f4d](https://github.com/google/adk-python/commit/3e59f4dd18391cd9d56cc712c64ec030cba9fab7)) |
| 122 | +* add unit guide for Node and `@node` ([3e59f4d](https://github.com/google/adk-python/commit/3e59f4dd18391cd9d56cc712c64ec030cba9fab7)) |
109 | 123 | * document execution cancellation, node tool direct output, and span provenance ([76af4b0](https://github.com/google/adk-python/commit/76af4b08cbc81e46c933d1558305f7336d876cc0)) |
110 | 124 | * explain local lockfile needed by tox in adk-setup skill ([96319fc](https://github.com/google/adk-python/commit/96319fc85d01c64137610de85250f950055e9747)) |
111 | 125 | * explain why live audio is not flushed on generation_complete ([dcd5d76](https://github.com/google/adk-python/commit/dcd5d76036aa28048cf52c1fb902082290d20c90)) |
112 | 126 | * fix to_a2a import so the task mode sample runs ([e6bdb4d](https://github.com/google/adk-python/commit/e6bdb4dab7a1657a871ef63292f9b76e26a95bd0)) |
113 | 127 | * **runners:** add developer guide for execution cancellation ([4e48bb0](https://github.com/google/adk-python/commit/4e48bb07292ac80a0c897bf1311454750bda8097)) |
114 | 128 | * **tools:** add ModelConsultTool developer guide and sample agent ([89ebdec](https://github.com/google/adk-python/commit/89ebdecf233b9d57fcd27cc4b003a9a62b107097)) |
115 | 129 |
|
| 130 | +</details> |
| 131 | + |
116 | 132 | ## [2.10.0](https://github.com/google/adk-python/compare/v2.9.2...v2.10.0) (2026-09-24) |
117 | 133 |
|
118 | 134 |
|
|
0 commit comments