Changelog
Improvements:
LocalFileSystemTools:- Read files via the
enable_read_fileflag. - Keep file operations within
target_directoryby default; setrestrict_to_base_dir=Falseto opt out.
- Read files via the
- Tools: Renamed
StudioTooltoStudioToolswith a backward-compatible alias.
Bug Fixes
- Registry / MCP: Prevent silent MCP tool loss in Registry.
- Workflow:
- Propagate trusted JWT context for WebSocket workflow factory runs.
- Fixed sync session methods silently breaking when used with an async database.
- Google Drive: Constrain Google Drive download filenames.
- RunOutput:
get_last_run_outputno longer returnsNonefor Agent and Team subclasses. - Knowledge: Preserve knowledge filters without a contents DB.
- MCP: Propagate
CancelledErrorduring MCP reconnection and drop redundantbuild_tools. - Knowledge Chunking: Keep chunk hash IDs in sync with content when overlap is applied.
- AgentOS: Fixed config None-table 500s and A2A streaming terminal event.
- Serialization: Fixed non-ASCII characters escaped as Unicode sequences in web search tool output.
- CustomApiTools: Prevent auth header leakage.
- PerformanceEval: Keep p95 run-time and memory within the observed range for small samples.
- CsvTools: Query CSV files whose names contain hyphens or other special characters.
- Knowledge: URL ingestion no longer chunks documents when
Reader(chunk=False)is set. - Tools: Fixed async-generator tools failing to run.
What's Changed
- docs: fix approvals cookbook run command by @onyx679 in #8597
- [fix] Prevent CustomApiTools auth header leakage by @Fahmid-Arman in #8582
- fix: change Gemini default model from gemini-flash-latest to gemini-3.5-flash by @VirusDumb with @Copilot in #8617
- cookbook: add job application tracker workflow example by @dev-ishant in #8613
- fix: [Bug] Chinese characters displayed as Unicode escape sequences in JSON output by @michaelxer in #8637
- fix: AgentOS config None-table 500s and A2A streaming terminal event by @harshsinha03 in #8614
- fix: keep chunk hash ids in sync with content when overlap is applied by @sannya-singal in #8690
- fix: propagate
CancelledErrorduring MCP reconnection and drop redundantbuild_toolsby @sannya-singal in #8666 - fix: preserve knowledge filters without contents db by @Success6666 in #8663
- fix: [Bug] Workflow._read_session() and Workflow.get_session() call async db.get_session() without await when using AsyncPostgresDb by @michaelxer in #8647
- [feat] Expose read_file tool in LocalFileSystemTools and add cookbook by @yaosongding in #8352
- fix: get_last_run_output returns None for Agent and Team subclasses by @kausmeows in #8692
- fix: rename StudioTool to StudioTools with backward-compatible alias by @ysolanky in #8698
- fix: constrain Google Drive download filenames by @Success6666 in #8704
- [cookbook] Add Dakera persistent memory integration — self-hosted cross-session memory for Agno agents by @ferhimedamine in #8671
- [fix] Propagate trusted JWT context for WebSocket workflow factory runs by @adya07pandey in #8697
- fix: prevent silent MCP tool loss in Registry + StudioTool persistence by @ashpreetbedi in #8696
- [fix] Constrain local file writes to target directory by @fengjikui in #8514
- fix: URL knowledge ingestion ignores
Reader(chunk=False)and chunks docs by @sannya-singal in #8708 - fix: preserve async-generator identity when wrapping tools with validate_call by @kausmeows in #8714
- fix: keep PerformanceResult p95 within observed range for small samples by @harshsinha03 in #8716
- fix: quote DuckDB table name in CsvTools.query_csv_file by @harshsinha03 in #8717
- chore: Release v2.6.21 by @kausmeows in #8707
New Contributors
- @onyx679 made their first contribution in #8597
- @Fahmid-Arman made their first contribution in #8582
- @dev-ishant made their first contribution in #8613
- @michaelxer made their first contribution in #8637
- @Success6666 made their first contribution in #8663
- @ferhimedamine made their first contribution in #8671
- @adya07pandey made their first contribution in #8697
Full Changelog: v2.6.20...v2.6.21