v3.0.11

teableio/teablev3.0.11Sep 23, 2026by kausmeows

Upgrading?

AI Summary

This release introduces a Knowledge Retrieval Pipeline with MMR and Recency Rerankers, adds Page Source Relocation APIs, and introduces Y-API support. It also adds a machine-readable cancellation stage for runs and includes numerous bug fixes for MCP tools, CSV readers, and file handling.

Key Highlights

  • Knowledge Retrieval Pipeline with MMR and Recency Rerankers
  • Page Source Relocation API for documentation migration
  • Typed Page Tool Results with explicit metadata
  • Y-API as an OpenAI-compatible model provider
  • Cancellation Stage for machine-readable run status

Breaking Changes

  • The `reranker` parameter on vector databases is deprecated in favor of the reranker on `Knowledge`.

New Features

  • Knowledge Retrieval Pipeline
  • MMR Reranker
  • Recency Reranker
  • Page Source Relocation
  • Typed Page Tool Results
  • Y-API Provider
  • Cancellation Stage

Full Release Notes

# Changelog

## New Features:

- **Knowledge Retrieval Pipeline**: `Knowledge.search()` now runs a knowledge level retrieval pipeline that can widen the candidate pool before a reranker reorders it, so rerankers no longer need to be implemented per vector db.
- **MMR Reranker**: Added `MMRReranker` (Maximal Marginal Relevance) as a retrieval strategy that balances relevance against diversity so near-duplicate chunks do not crowd out the result set.
- **Page Source Relocation**: Added `Knowledge.inspect_page_source` / `ainspect_page_source` and guarded `migrate_page_source` / `amigrate_page_source` to move an indexed documentation source to a new hostname. Migration is a dry run by default.
- **Recency Reranker**: Added `RecencyReranker`, which blends the search score with an exponential decay on a timestamp so newer revisions outrank superseded ones. Built on the knowledge level pipeline, focused on pgvector.
- **Typed Page Tool Results**: Added `PageCommandResult` and `PageFileSystem.run_command_result` / `arun_command_result` with explicit error, completeness and truncation metadata. `Knowledge.get_tools(page_results=True)` returns ranked `SearchResult` objects, including as MCP structured output.
- **Y-API**: Added `YAPI` as an OpenAI-compatible model provider.
- **Cancellation Stage**: Added a machine-readable `cancellation_stage` (`PENDING`, `EXECUTING`, `INTERRUPTED`, or unknown) to `RunOutput`, `TeamRunOutput`, `WorkflowRunOutput` and the run API schemas, so clients no longer match on the cancellation message text.
- **OpenAIResponses**: Added `use_previous_response_id` so `store=True` no longer forces automatic `previous_response_id` chaining.

## Improvements:

- **MCP Tool Schemas**: Every argument on the AgentOS MCP tools now carries a description in its `inputSchema`, and `get_sessions` bounds `limit` and `page` to a minimum of 1.
- **Reasoning Detection**: DeepSeek thinking-mode model IDs are recognised as reasoning models when served through any `OpenAILike` provider such as `DashScope`.
- **Tools**: Removed phantom `Args` entries from tool docstrings and corrected streaming docstring parameter names in two model classes.

## Bug Fixes:

- **Tool Hooks**: Sync hooks that return `function_call(**arguments)` now work in the async execution path. Previously the chain treated the unawaited coroutine as the tool result and the tool body never ran.
- **MCP Server Card**: Bare `mcp=True` now installs the same routing layer as `MCPConfig`, so the Host check and mount prefix apply on both spellings. Dropped the unimplemented `ETag` / `If-None-Match` CORS headers.
- **MCP Tools**: Tool discovery over a raw `ClientSession` now collects every `tools/list` page instead of only the first.
- **AG-UI**: Support `ag-ui-protocol` 1.0, including list-valued tool result content on resume.
- **Workflows over WebSocket**: Version-pinned submissions are no longer queued without their pin, session ownership is checked on the write path, and a missing session id mints a new session like HTTP.
- **JSONReader**: Preserve scalar JSON roots.
- **CSVReader**: Read text streams, not only byte streams.
- **CSVReader & FieldLabeledCSVReader**: Validate `page_size` before reading, so zero or negative values raise `ValueError` instead of silently returning no documents.
- **Structured Output Parsing**: Ignore unmatched closing braces in prose when extracting JSON objects from model output.
- **GoogleDriveTools**: Read text inside grouped shapes and honour line breaks when extracting `.pptx` text.
- **UTF-8 Files**: `read_yaml_file` / `write_yaml_file`, `AntigravityTools` and `AirflowTools` now read and write files as UTF-8 regardless of locale.
- **DuckDbTools**: Escape CSV delimiters.
- **TavilyTools**: Forward extract options.
- **Cookbooks & Docs**: Replaced dead links in knowledge sources and fixed a duplicated word in the V3 migration guide. Added Inspeximus memory and Confident AI observability examples.

## Deprecations:

- **Vector DB Reranker**: The `reranker` parameter on vector databases is deprecated in favour of the reranker on `Knowledge`, which applies to every vector db and supports async.


## What's Changed
* chore: remove phantom Args entries in the tool docstrings by @simpleqt in https://github.com/agno-agi/agno/pull/10229
* cookbook: add Confident AI observability example by @kausmeows in https://github.com/agno-agi/agno/pull/10257
* fix: correct streaming docstring parameter names in two model classes by @simpleqt in https://github.com/agno-agi/agno/pull/10228
* feat: add knowledge level retrieval pipeline and MMR reranker by @sannya-singal in https://github.com/agno-agi/agno/pull/10115
* fix: bring WebSocket workflow submissions in line with the HTTP admission rules by @ysolanky in https://github.com/agno-agi/agno/pull/10179
* [fix] Paginate MCP tool discovery for ClientSession by @sicauzxl in https://github.com/agno-agi/agno/pull/10012
* fix: support ag-ui-protocol 1.0 in the AG-UI interface by @Himanshu040604 in https://github.com/agno-agi/agno/pull/10283
* [feat] Add Y-API as an OpenAI-compatible model provider by @jiweiyeah in https://github.com/agno-agi/agno/pull/10326
* [fix] Correct duplicated word in V3 migration guide by @yetuge in https://github.com/agno-agi/agno/pull/10315
* [fix] replace dead links in cookbook knowledge sources and docs references by @Theater-ahyeon in https://github.com/agno-agi/agno/pull/10160
* [cookbook] Add inspeximus memory integration example by @DanceNitra in https://github.com/agno-agi/agno/pull/10146
* fix: recognize DeepSeek thinking-mode IDs in OpenAILike reasoning detection by @yetuge in https://github.com/agno-agi/agno/pull/10342
* [fix] Validate page_size in FieldLabeledCSVReader by @tdog54646 in https://github.com/agno-agi/agno/pull/10358
* fix: decouple OpenAI response storage from automatic chaining by @ashpreetbedi in https://github.com/agno-agi/agno/pull/10075
* feat: deprecate the vector db level reranker by @sannya-singal in https://github.com/agno-agi/agno/pull/10385
* feat: add guarded documentation source relocation API by @ashpreetbedi in https://github.com/agno-agi/agno/pull/10096
* feat: expose typed page command and search tool results by @ashpreetbedi in https://github.com/agno-agi/agno/pull/10097
* [fix] read text streams in CSVReader instead of only byte streams by @harbinresearcher in https://github.com/agno-agi/agno/pull/10355
* [fix] Escape CSV delimiters in DuckDbTools by @imexlovery in https://github.com/agno-agi/agno/pull/10415
* [fix] Forward Tavily extract options by @daleselaji-dev in https://github.com/agno-agi/agno/pull/10403
* [fix] Preserve scalar JSON roots in JSONReader by @daleselaji-dev in https://github.com/agno-agi/agno/pull/10402
* fix: route bare mcp=True like MCPConfig for the MCP server card by @ysolanky in https://github.com/agno-agi/agno/pull/10418
* fix: describe and bound the MCP tool arguments by @ysolanky in https://github.com/agno-agi/agno/pull/10419
* [fix] Validate CSVReader page sizes before reading by @emme1t in https://github.com/agno-agi/agno/pull/10437
* feat: add cancellation_stage to cancelled runs by @ysolanky in https://github.com/agno-agi/agno/pull/10411
* fix: read and write YAML, Antigravity and Airflow files as UTF-8 by @MohammadHijjawi97 in https://github.com/agno-agi/agno/pull/10242
* fix: read grouped shapes and line breaks in Drive pptx text by @devYRPauli in https://github.com/agno-agi/agno/pull/10473
* [fix] Ignore unmatched closing braces when extracting JSON objects by @makiaveli1 in https://github.com/agno-agi/agno/pull/10421
* feat: add recency reranker by @sannya-singal in https://github.com/agno-agi/agno/pull/10396
* fix: await sync hook continuations in async chains by @kausmeows in https://github.com/agno-agi/agno/pull/10481
* fix: drop IMDB CSV from knowledge URL tests to stop CI timeouts by @sannya-singal in https://github.com/agno-agi/agno/pull/10498
* chore: Release v3.0.11 by @kausmeows in https://github.com/agno-agi/agno/pull/10444

## New Contributors
* @sicauzxl made their first contribution in https://github.com/agno-agi/agno/pull/10012
* @jiweiyeah made their first contribution in https://github.com/agno-agi/agno/pull/10326
* @yetuge made their first contribution in https://github.com/agno-agi/agno/pull/10315
* @Theater-ahyeon made their first contribution in https://github.com/agno-agi/agno/pull/10160
* @DanceNitra made their first contribution in https://github.com/agno-agi/agno/pull/10146
* @tdog54646 made their first contribution in https://github.com/agno-agi/agno/pull/10358
* @harbinresearcher made their first contribution in https://github.com/agno-agi/agno/pull/10355
* @imexlovery made their first contribution in https://github.com/agno-agi/agno/pull/10415
* @emme1t made their first contribution in https://github.com/agno-agi/agno/pull/10437
* @MohammadHijjawi97 made their first contribution in https://github.com/agno-agi/agno/pull/10242
* @makiaveli1 made their first contribution in https://github.com/agno-agi/agno/pull/10421

**Full Changelog**: https://github.com/agno-agi/agno/compare/v3.0.10...v3.0.11

Related Repositories