Repository navigation
Highlights
- New sandbox backends for
SandboxShellToolandSandboxCodeTool:E2BEnvironment(ag2.extensions.e2b) runs them in E2B cloud sandboxes, andag2.extensions.boxdruns them on boxd Linux microVMs. - MCP Apps work with browser-based hosts:
/mcpno longer redirectsPOSTand the CORS preflight, and the docs include a CORS recipe. Misuse is reported with clear errors, and App documents built on the upstreamext-appsSDK are served as written. - Extended prompt-cache writes are reported separately:
Usage.cache_creation_extended_input_tokenscounts OpenAI 12h and Anthropic 1h writes, which are priced differently. The field also flows through telemetry, eval traces andMetricsMiddleware. XAIConfigacceptssafety_identifierandguidelines.- Fixes for the AG-UI final reply after
ToolResult(..., final=True), OpenAI-compatible streamed tool calls without anindex, Gemini 3thought_signatureerrors, recursivefind_filespatterns on Python 3.11–3.12, and MCP App documents read in a non-UTF-8 locale. ag2.eval,ag2/agent.py,ag2/extensionsand most core modules are now checked with strict mypy.
Upgrade notes
- A2UI v1.0 now speaks the stable upstream spec. 1.3.0 targeted a release candidate. v1.0 messages carry
"version": "1.0"instead of"v1.0", the basic catalog requiresTextField.value, and custom v1.0 catalogs with$reftargets the spec does not allow are rejected at load.protocol_version="v1.0"and thev0.9default are unchanged. v0.9.1 client capabilities are now read from the"v0.9"key, so conformant clients' capabilities are no longer dropped. - MCP-UI is documented as legacy. Use MCP Apps for new work.
ag2.mcp_uiis not deprecated and keeps working for hosts that render only MCP-UI resources.
What's Changed
- docs: explain Agent Status Bar with practical examples by @Lancetnik in #3583
- feat(xai): support safety_identifier and guidelines by @vvlrff in #3598
- feat(usage): report extended prompt-cache writes (OpenAI 12h, Anthrop… by @vvlrff in #3599
- fix(usage): carry extended cache writes through telemetry, traces and… by @vvlrff in #3600
- fix(gemini): send the skip placeholder for unsigned current-turn function calls by @marklysze in #3603
- fix(a2ui): speak the stable A2UI v1.0 wire and re-vendor the spec by @vvlrff in #3618
- feat(mcp): let browser hosts connect, explain MCP Apps misuse, and ad… by @vvlrff in #3613
- fix(openai): accept streamed tool calls without an index by @pcbeingused333 in #3611
- chore(deps): bump provider SDKs in uv.lock by @vvlrff in #3621
- ci: install just and prek from PyPI instead of GitHub Releases by @vvlrff in #3622
- fix(mcp): read path-like MCP app documents as UTF-8 by @pcbeingused333 in #3608
- fix(tools): preserve wildcard prefixes in recursive file searches by @Ytq1115 in #3529
- fix(eval): make ag2.eval strict-clean and check it with mypy by @vvlrff in #3624
- fix(types): check events, knowledge, streams, middleware, observers and files with strict mypy by @vvlrff in #3625
- fix(types): check ag2.response and the core root modules with strict mypy by @vvlrff in #3626
- fix(types): check ag2/agent.py with strict mypy by @vvlrff in #3627
- fix(types): check ag2/extensions with strict mypy by @vvlrff in #3628
- chore(deps): bump astral-sh/setup-uv from 10.3.2 to 10.3.3 in the github-actions group by @dependabot[bot] in #3631
- docs: align custom expectation evaluator with the Hub protocol by @shuaiyafei in #3633
- docs: update Arize agent evaluation resource URL by @arizedatngo in #3630
- feat(extensions): add E2B sandbox integration by @max-sudolabs in #3320
- fix(ag-ui): send the reply a model call leaves only in its ModelResponse by @coder-abu in #3635
- feat(extensions): add boxd sandbox integration by @MichielMAnalytics in #3606
- chore: bump version to 1.3.1 by @vvlrff in #3636
- feat(mcp): serve upstream ext-apps App documents as written; mark MCP-UI legacy by @vvlrff in #3614
New Contributors
- @Ytq1115 made their first contribution in #3529
- @max-sudolabs made their first contribution in #3320
- @coder-abu made their first contribution in #3635
- @MichielMAnalytics made their first contribution in #3606
Full Changelog: v1.3.0...v.1.3.1