Changelog
New Features:
- Antigravity: Added first-party support for Google's Antigravity API in two shapes —
AntigravityAgent(aBaseExternalAgentserved through AgentOS with native sessions/streaming/UI) andAntigravityTools(aToolkitthat lets any Agno agent delegate a sub-task to a managed Antigravity sandbox). - Gemini Managed Agents: Added
GeminiInteractionssupport for Google's managed agents — Deep Research (autonomous research with citations, background streaming with reconnect/last_event_idresume) and Antigravity (general-purpose agent in a managed Linux sandbox). Newagent/agent_config/environmentfields, per-agent forcing ofbackgroundandstore, and support formcp_servers+file_search_store_nameson the agent path. - Cookbook - Data Labeling: Added
cookbook/data_labeling/with 18 self-contained workflows covering text, image, audio, video, document, and composed (LLM-as-judge, quality review) labeling primitives. - Cookbook - Slack HITL: Added a deterministic Slack HITL incident-commander demo showing structured pauses via
tool_choice="required", user_input echo, and clean termination viastop_after_tool_call=True.
Improvements:
- Path Safety (Security): Centralized path-safety into a new
agno.utils.path_safetymodule withsafe_joinandsafe_join_subpath. HardenedFileGenerationTools,SlackTools,Toolkit._check_path,agno.skills.utils.is_safe_path, andFileTools.check_escapeagainst path traversal, symlink escape, control-char injection, Windows MagicDot, and Unicode normalization attacks. IntroducedPathSecurityError(FileGenerationSecurityErrorkept as deprecation alias). Bumpedrequires-pythonto>=3.9,<4. - Parallel MCP:
ParallelMCPBackendnow sendsUser-Agent: agno/<version>on every request so Parallel can attribute traffic to agno. - Evals Config: Dropped the unused
available_modelsfield fromEvalsDomainConfig; the top-levelAgentOSConfig.available_modelsis now the only supported source for the Evals UI dropdown. - Chonkie: Updated chonkie dependency pin (follow-up to #7869).
- Cookbook: Renamed
gemini-3-flash-previewtogemini-3.5-flashacross the Gemini Interactions cookbooks.
Bug Fixes:
- AG-UI Teams: Fixed a typo (
stream_steps→stream_events) that caused teams running via AG-UI to silently drop all intermediate streaming events (lifecycle, reasoning, tool calls, member delegations) for ~7 months. - Slack Extra: Added
aiohttp>=3.7.3,<4to theslackoptional extra —AsyncWebClientimportsaiohttpat module load, sopip install agno[slack]was broken for all Slack operations. - Google Drive: Surfaced the Drive API
incompleteSearchflag fromGoogleDriveTools.search_files()socorpora="allDrives"callers can detect when Drive did not search every drive. - GeminiInteractions: Added a
generation_configpassthrough field for advanced controls (top_k,presence_penalty, etc.) and fixed history handling — whenprevious_interaction_idis set, only the new turn is sent rather than replaying the full history. Now actually leverages server-side statefulness. - Anthropic Server Tools: Preserved
server_tool_useand code-execution content blocks in message history so multi-turn server-tool flows no longer break across turns. - Anthropic Hardening: Follow-up to the above — switched to the canonical
redacted_thinkingtype literal (the SDK rejectsredacted_reasoning_content), accepted both spellings on the streaming start event, added a dedup guard on round-tripped server tool blocks, made coercion failures visible vialog_warning, and coerced non-block tool-result items to text. - Gemini Errors: Generic Gemini errors now include the exception type when
str(error)is empty or weak, preserving error context acrossinvoke/invoke_stream/ainvoke/ainvoke_stream. - N1N: Added the missing
n1nprovider mapping inget_model()soAgent(model="n1n:...")model-string paths now resolve correctly.
What's Changed
- [chore] identify agno traffic to Parallel MCP via User-Agent by @NormallyGaussian in #7857
- [fix] Resolve N1N model strings by @pragnyanramtha in #7948
- chore: update chonkie deps by @chonk-lain in #7904
- fix: preserve Anthropic server tool content blocks in message history by @aayushbaluni in #7766
- fix(gemini): preserve generic error context by @MukundaKatta in #7607
- fix: harden Anthropic server tool content block handling by @ysolanky in #7977
- fix: GeminiInteractions generation_config passthrough and stateful input slicing by @ysolanky in #7973
- fix: centralize path safety and harden filesystem-touching tools by @Himanshu040604 in #7707
- cookbook: add deterministic Slack HITL incident commander demo by @Himanshu040604 in #7831
- [fix] Surface incomplete Google Drive searches by @basnijholt in #7824
- fix: add aiohttp to slack extra dependencies by @Mustafa-Esoofally in #7939
- fix: use stream_events instead of stream_steps for AG-UI teams by @Mustafa-Esoofally in #7938
- chore: drop unused available_models field from EvalsDomainConfig by @harshsinha03 in #7993
- cookbook: rename gemini-3-flash-preview to gemini-3.5-flash by @ysolanky in #8005
- cookbook: data labeling primitives (18 workflows) by @ashpreetbedi in #7976
- feat: add Gemini managed agents (Deep Research + Antigravity) to GeminiInteractions by @kausmeows in #7975
- feat: add antigravity tools and external agent by @ysolanky in #8006
- chore: release 2.6.8 by @ysolanky in #8008
New Contributors
- @NormallyGaussian made their first contribution in #7857
- @pragnyanramtha made their first contribution in #7948
- @chonk-lain made their first contribution in #7904
- @aayushbaluni made their first contribution in #7766
- @MukundaKatta made their first contribution in #7607
Full Changelog: v2.6.7...v2.6.8