v2.6.21

agno-agi/agnov2.6.21Jul 2, 2026by kausmeows

AI Summary

Enhances LocalFileSystemTools with read capabilities, fixes workflow and MCP reliability issues, and improves knowledge management.

Key Highlights

  • LocalFileSystemTools `enable_read_file` flag
  • StudioTool renamed to StudioTools
  • Workflow trusted JWT context propagation
  • Google Drive filename constraints
  • Knowledge chunk hash ID synchronization

New Features

  • LocalFileSystemTools read file support
  • StudioTools rename
  • Workflow session fixes
  • Drive filename constraints
  • Knowledge ingestion with `Reader(chunk=False)`

Full Release Notes

# Changelog

## Improvements:

- `LocalFileSystemTools`:
    - Read files via the `enable_read_file` flag.
    - Keep file operations within `target_directory` by default; set `restrict_to_base_dir=False` to opt out.
- **Tools**: Renamed `StudioTool` to `StudioTools` with 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_output` no longer returns `None` for Agent and Team subclasses.
- **Knowledge**: Preserve knowledge filters without a contents DB.
- **MCP**: Propagate `CancelledError` during MCP reconnection and drop redundant `build_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 https://github.com/agno-agi/agno/pull/8597
* [fix] Prevent CustomApiTools auth header leakage by @Fahmid-Arman in https://github.com/agno-agi/agno/pull/8582
* fix: change Gemini default model from gemini-flash-latest to gemini-3.5-flash by @VirusDumb with @Copilot in https://github.com/agno-agi/agno/pull/8617
* cookbook: add job application tracker workflow example by @dev-ishant in https://github.com/agno-agi/agno/pull/8613
* fix: [Bug] Chinese characters displayed as Unicode escape sequences in JSON output by @michaelxer in https://github.com/agno-agi/agno/pull/8637
* fix: AgentOS config None-table 500s and A2A streaming terminal event by @harshsinha03 in https://github.com/agno-agi/agno/pull/8614
* fix: keep chunk hash ids in sync with content when overlap is applied by @sannya-singal in https://github.com/agno-agi/agno/pull/8690
* fix: propagate `CancelledError` during MCP reconnection and drop redundant `build_tools` by @sannya-singal in https://github.com/agno-agi/agno/pull/8666
* fix: preserve knowledge filters without contents db by @Success6666 in https://github.com/agno-agi/agno/pull/8663
* fix: [Bug] Workflow._read_session() and Workflow.get_session() call async db.get_session() without await when using AsyncPostgresDb by @michaelxer in https://github.com/agno-agi/agno/pull/8647
* [feat] Expose read_file tool in LocalFileSystemTools and add cookbook by @yaosongding in https://github.com/agno-agi/agno/pull/8352
* fix: get_last_run_output returns None for Agent and Team subclasses by @kausmeows in https://github.com/agno-agi/agno/pull/8692
* fix: rename StudioTool to StudioTools with backward-compatible alias by @ysolanky in https://github.com/agno-agi/agno/pull/8698
* fix: constrain Google Drive download filenames by @Success6666 in https://github.com/agno-agi/agno/pull/8704
* [cookbook] Add Dakera persistent memory integration — self-hosted cross-session memory for Agno agents by @ferhimedamine in https://github.com/agno-agi/agno/pull/8671
* [fix] Propagate trusted JWT context for WebSocket workflow factory runs by @adya07pandey in https://github.com/agno-agi/agno/pull/8697
* fix: prevent silent MCP tool loss in Registry + StudioTool persistence by @ashpreetbedi in https://github.com/agno-agi/agno/pull/8696
* [fix] Constrain local file writes to target directory by @fengjikui in https://github.com/agno-agi/agno/pull/8514
* fix: URL knowledge ingestion ignores `Reader(chunk=False)` and chunks docs by @sannya-singal in https://github.com/agno-agi/agno/pull/8708
* fix: preserve async-generator identity when wrapping tools with validate_call by @kausmeows in https://github.com/agno-agi/agno/pull/8714
* fix: keep PerformanceResult p95 within observed range for small samples by @harshsinha03 in https://github.com/agno-agi/agno/pull/8716
* fix: quote DuckDB table name in CsvTools.query_csv_file by @harshsinha03 in https://github.com/agno-agi/agno/pull/8717
* chore: Release v2.6.21 by @kausmeows in https://github.com/agno-agi/agno/pull/8707

## New Contributors
* @onyx679 made their first contribution in https://github.com/agno-agi/agno/pull/8597
* @Fahmid-Arman made their first contribution in https://github.com/agno-agi/agno/pull/8582
* @dev-ishant made their first contribution in https://github.com/agno-agi/agno/pull/8613
* @michaelxer made their first contribution in https://github.com/agno-agi/agno/pull/8637
* @Success6666 made their first contribution in https://github.com/agno-agi/agno/pull/8663
* @ferhimedamine made their first contribution in https://github.com/agno-agi/agno/pull/8671
* @adya07pandey made their first contribution in https://github.com/agno-agi/agno/pull/8697

**Full Changelog**: https://github.com/agno-agi/agno/compare/v2.6.20...v2.6.21