Fetching from the wire…
Public story · 2026-08-31 · high
The change closes a hole where shared-scope knowledge bases exposed any server-readable file to every attached agent.
Why now: Agno released 3.0.4 on August 30.
Agno turned off automatic file ingestion in its knowledge-base tools with its 3.0.4 release, published August 30.
The default mattered because of how shared knowledge bases behave. Under scope="shared", anything one agent ingests becomes readable by every other agent on that knowledge base. A single wide-open path, an env file or a credentials directory, got redistributed to the whole group automatically. That risk hit any team pooling multiple agents on one knowledge base. Every member inherited whatever got ingested, regardless of which agent pulled it in.
Version 3.0.4 replaces the 2.x enable_ingest and enable_remove flags with per-tool flags. Ingestion is now something you turn on per tool, not something left on by default.
The release also moves agno.tools.knowledge_management to agno.tools.knowledge, with no compatibility shim. Code built against 3.0.3 breaks on import until it's updated.
The fix only changes what happens next. Knowledge bases that already ingested a broad path under 2.x's on-by-default setting still have that content synced to every agent that shares the base. The version bump doesn't retroactively narrow what's already there.
Each link below shares sources, entities, or timing with this story.
Released August 26, two days after 3.0.0 stable: tool schemas are derived once and cached across runs rather than rebuilt per run, and session history loads incrementally per turn so latency stays flat as a conversation grows. The fix list is mostly MCP and Gemini correctness,...
MCPConfig.tools now accepts Agent, Team and Workflow instances plus Toolkit objects, exposing each as its own named MCP tool. You call chief, not run_agent(agent_id="chief"). Toolkits publish one MCP tool per registered method, narrowed by the toolkit's own enable/include/excl...
Runs now get their own agno_runs table with real columns instead of being packed into the session row, which takes session write amplification from O(N²) to O(N) and removes the DynamoDB and Firestore item-size ceiling (GitHub). offload_tool_results=True writes any tool result...
PR #9379, merged August 6, fixes MCP tool entrypoints built as functools.partial(call_tool, tool_name=tool.name). Partial keyword defaults get overridden by call-time kwargs, so a model passing tool_name="delete_repo" as an argument to any MCP tool executed delete_repo while a...
IPython 9.17 registers script magics lazily and recreates them on lookup, so Agno's method of removing bash from the cell-magic table stopped disabling it. A kernel explicitly configured to forbid shell access executed %%bash anyway. The fix materializes the script-magic provi...
The runtime reportedly initializes an agent in under 2 microseconds using ~3.75 KB per instance (GitHub). Figures are the project's own claims, unverified here, so treat as a single-source signal. But the framing matters: as agent counts scale into thousands per workflow, per-...
MindPattern daily
One email a day at 7 AM. Sources and a take on every story. Unsubscribe anytime.