Changelog
New Features:
- ClickhouseDB for Traces: Added support for ClickHouse for high-volume trace ingest and OLAP scans. See docs.
- Scavio Search Toolkit: New search toolkit integration with Scavio.
Improvements:
- OpenAI: Citations from web-search responses are now surfaced on
response.citationsforOpenAIChatandOpenAILikeproviders. - AgentOS: Support
FastAPI >= 0.137soget_routes()lists every route. - LiteLLM: Support native structured outputs and JSON schema outputs (enable per provider with
supports_native_structured_outputsorsupports_json_schema_outputs). - Google Toolkits Auth Refactor: Unified auth base class for Google toolkits.
- AgentOS: Updated to not limit
quick_promptsto 3 per agent/team/workflow.
Bug Fixes:
- MCP: Preserve
_metaandstructuredContentfrom MCP tool results onToolResult.metadata. - Tool-Result Compression: Fixed token miscount for tools with numeric enum params, so compression triggers at the right time.
- Workflow: Isolate
step_idacross concurrent runs while keeping it stable across pause/continue in HITL runs. - Tools:
ToolkitandSearxngno longer reuse a mutable default list across instances. - Traces: Use canonical conditions key when scoping trace filters for scoped users.
- Reddit: Write actions are now scoped to the configured allowed subreddits.
- MoviePy: Generated outputs are written atomically to avoid partial files.
- OpenAI: Fixed
OpenAIResponsesto support Chat Completions–stylejson_schemaoutput schemas.
What's Changed
- cookbook: add remote agent as team member examples by @Mustafa-Esoofally in #8248
- fix: Fixes a data-loss bug by @abhi10691 in #7659
- feat: refactor Google toolkits with unified auth base class by @Mustafa-Esoofally in #8267
- refactor: split agui/utils.py into focused modules by @Himanshu040604 in #8364
- fix: preserve structuredContent from MCP CallToolResult by @weiguangli-io in #7715
- [fix] Add support for citations in OpenAI chat responses by @MSNP1381 in #5885
- feat: Add checkpointing demo for AgentOS by @anuragts in #8549
- fix: render numeric enums as numeric literal unions in token type formatting by @Osamaali313 in #8554
- fix: guard path-less routes in OS resync and regenerate step_id on workflow deep_copy by @ysolanky in #8465
- fix: use canonical conditions key when scoping trace filters for scoped users by @sannya-singal in #8564
- fix: Pass response_format to LiteLLM completion for structured outputs by @dee-walia20 in #5881
- [test] make function cache path test cross-platform by @Fishbone23333 in #8326
- [fix] Write MoviePy outputs atomically by @fengjikui in #8537
- fix: scope reddit writes to allowed subreddits by @fengjikui in #8539
- fix: quick prompt cap removal by @mishramonalisha76 in #8577
- fix: replace mutable default argument in Toolkit.init by @xlyoung in #8253
- refactor: consolidate MCP ToolResult metadata into a single field by @harshsinha03 in #8580
- fix: replace EOL claude-sonnet-4-0 with claude-sonnet-4-5 and harden flaky knowledge tests by @sannya-singal in #8581
- [feat] Add Scavio search toolkit by @scavio-ai in #8508
- feat: clickhouse db for traces by @kausmeows in #7799
- chore: Release v2.6.20 by @harshsinha03 in #8576
New Contributors
- @weiguangli-io made their first contribution in #7715
- @Osamaali313 made their first contribution in #8554
- @dee-walia20 made their first contribution in #5881
- @Fishbone23333 made their first contribution in #8326
- @xlyoung made their first contribution in #8253
- @scavio-ai made their first contribution in #8508
Full Changelog: v2.6.19...v2.6.20