Community Roundup: September 2026
Cosette CresslerContent & Product Marketing LeadOctober 5, 20267 min read
Agno shipped seven patch releases in September, headlined by PublicSurface for public agents, page storage for docs-backed knowledge, and MCP servers that scale across replicas. More than 50 community contributors landed changes alongside us, and the community shipped some incredible projects of its own.
There's a lot to cover, so let's dive in.
New releases & features
PublicSurface serves agents to anonymous users
Say you want a product assistant on your marketing site. Visitors aren't logged in, and they shouldn't get anywhere near your admin API or your internal teams.
Pass public=PublicSurface(...) to AgentOS and list the components anonymous users may reach. Everything you leave off that list stays private. Public requests run against per-client and global quotas, per minute and per day, and AgentOS counts them in PostgreSQL so every replica enforces the same numbers. Request size, run time, output size, and concurrent runs all have ceilings you can set.
Later in the month, PublicSurface gained support for sharing an AgentOS with the Control Plane. Set authorization=True and one URL serves anonymous chat on the routes you picked, while verified JWTs reach the full REST API under their scopes.
Read the changelog entries on PublicSurface and running it with the Control Plane, or learn more about PublicSurface in the docs.
Page storage turns your docs into agent knowledge
Keeping an agent in step with your docs usually means a crawler, a chunker, and a vector table that drift apart. A refresh dies halfway through, and the agent serves new text against old vectors.
Knowledge.sync_pages takes a site's llms.txt URL, discovers the pages, fetches their Markdown, embeds them, and publishes each page's text, catalog entry, and vectors in one transaction. A page either publishes whole or keeps its previous version. Unchanged pages skip re-embedding, and the sync report lists every page that failed or was removed.
Once the pages are published, the PageFileSystem toolkit lets an agent work through them with ls, tree, rg, grep, cat, and head, the way an engineer works through a repo. Vector search finds the right page, and the agent then reads all of it. The toolkit is read-only: no shell, no writes, and bounded output.
Read the changelog entries on page storage and PageFileSystem, or learn more about published pages in the docs.
Rerankers now work on every vector database
Knowledge.search() now runs the reranker itself. Before, reranking had to be built into each vector database adapter, and only some adapters had it.
Pass a reranker to Knowledge and every search goes through it, on any vector database. Agno widens the fetch first, so the reranker has a bigger pool of candidates to reorder. Two new rerankers ship with it: MMRReranker swaps near-duplicate results for diverse ones, and RecencyReranker ranks newer documents higher. CohereReranker and your own rerankers work too.
Setting reranker on a vector database still works but now logs a deprecation warning. Move it to Knowledge(reranker=...).
Read the full changelog entry, or learn more about reranking in the docs.
Elasticsearch joins the vector databases
Teams that already run Elasticsearch for search and logs can now keep agent knowledge there too. The new Elasticsearch vector database supports vector, keyword, and hybrid search, metadata filters, rerankers, async, and per-user isolation through a user_id field. Hybrid search works on every Elasticsearch license, and you can switch it to reciprocal rank fusion on Platinum, Enterprise, and trial licenses.
Read the full changelog entry, or learn more about the Elasticsearch vector database in the docs.
AgentOS MCP servers scale out
MCPConfig(stateless=True) serves /mcp without tracking sessions, so any replica can answer any request and a multi-instance deployment no longer needs session affinity. It's off by default, because stateless serving also drops server-initiated notifications and SSE resumability.
Two more additions make an AgentOS MCP server easier to discover and connect to. GET /mcp/server-card lists the tools your server offers before a client connects. MCPConfig can also serve your tool server at its own hostname, like mcp.example.com, without the routing middleware you used to write.
On the client side, MCPTools(protocol_mode="auto") negotiates the newest MCP protocol version both sides support, including the sessionless 2026-07-28 version. The default stays "legacy", so existing servers are unaffected. A community contributor built this one (more below).
Learn more about the AgentOS MCP server and MCP tools in the docs.
Azure OpenAI deployments get the Responses API
AzureOpenAIResponses gives your Azure deployment the tools, structured output, streaming, and background responses of OpenAIResponses. Agno's AzureOpenAI model only offered Chat Completions until now.
Read the full changelog entry, or see the cookbook for reference.
New tools & integrations
Also shipped in September:
- New model providers: llmman and Y-API, an OpenAI-compatible gateway.
- GandrTools: agents can turn text into speech through the Gandr TTS API.
- Bring your own Bedrock client: Bedrock accepts an async client you configure yourself.
- MCP tools return audio: when an MCP tool returns audio,
MCPToolsdecodes it and adds it torun.audio. - Public custom routes: mark individual custom routes public while authorization stays on for everything else.
- AG-UI protocol 1.0: the AG-UI interface handles tool results sent as lists of content parts, so paused runs resume cleanly.
- Slack retries: the Slack interface now answers a message whose first delivery never reached AgentOS. It used to drop the retry.
- Cancelled runs say where they stopped:
cancellation_stagetells you whether a run never started, stopped mid-run, or was waiting on a human. - Dependencies can read the run: callables in an agent's
dependenciescan read the run input and the session.
Breaking changes
A few September releases changed behavior. The ones most likely to affect you:
- Knowledge ingestion now reports embedding failures. Content that used to show
completedmay now showfailedorpartial, and embedders raiseEmbeddingErrorwhere they used to return an empty vector. Knowledgeconstructor arguments are keyword-only, soKnowledge("docs")becomesKnowledge(name="docs").CodingToolsmakesrun_shellopt-in withenable_run_shell=True.- With
authorization=TrueandPublicSurface(mcp=True), MCP accepts onlylocalhostby default. Add your domain toMCPConfig(allowed_hosts=[...]).
Read the release notes before you upgrade.
Community projects & showcases
A few of the things people built with Agno in September:
Workspace Council: a governed multi-agent council for your workspace by Anshul Raj, Mohamed Tahir, and Mujtaba Mohimtulay
Built at the AI Tinkerers Dubai hackathon, Workspace Council puts six specialized Agno agents to work across the web, Slack, and the Ambiguous workspace app. They pull documents and email context, research with Exa, draft decision-ready artifacts, and run an adversarial critic loop on every draft. Every write waits for human approval, and a CopilotKit Mission Control view shows each handoff as it happens.
Read more on LinkedIn.
Vega: voice trading inside OpenAlgo by Marketcalls (@marketcallsHQ)
OpenAlgo is an open-source trading platform for Indian markets that works with 35+ brokers. Its new assistant, Vega, lets you talk to the platform and place trades by voice. Agno runs the agents, and LiteLLM keeps it model-agnostic.
Check it out on X.
An agent council for pressure-testing ideas by Tarun Jain
Pick a room for your niche in a pixelated world, pitch an idea, and six Agno agents with their own personas interview you, research with Exa, debate each other, and land on a collective opinion. Tarun built it to test agent-to-agent communication, comparing coordinator and routing orchestration with an A2A branch. The code will be open-sourced alongside a video walkthrough.
Read more on LinkedIn.
Contributor shoutouts
Community MVPs
- @basnijholt: Fixes across the 3.x line.
SqliteDbbulk upserts now apply the session owner check, empty Anthropic tool arguments survive replay, and nullable document titles in Claude citations no longer break (#9937, #8970, #10147, #9941). - @ProgrammerPlus1998: Migrated the MCP client and the AgentOS MCP server to
mcp2.x, which broughtprotocol_modetoMCPTools(#9269). - @hugoaimlapi (AI/ML API): Repaired the AIMLAPI model integration, then added
AIMLAPIToolsfor image, video, speech, and transcription behind one key (#9898, #10276). - @luisnmartins: Added
.zipand.emlas AgentOS upload types, so archives and email files go straight into a run (#9193).
More great contributions
- @ericcurtin (Docker): Added llmman as a model provider (#9863).
- @rastagan-git: Added the Azure OpenAI Responses model (#9841).
- @ddellspe-vl: Let Bedrock take an async client you provide (#9531).
- @kinKingen: Added
AuthorizationConfig.excluded_route_pathsfor public custom routes (#9295). - @jiweiyeah: Added Y-API as an OpenAI-compatible model provider (#10326).
- @devansh173: Made MCP tools return audio as audio artifacts (#10036).
- @yetuge: Four PRs, including DeepSeek thinking-model detection in
OpenAILikeand UTF-8 reads and writes inLocalFileSystemTools(#10342, #10538). - @BlueX888: Three fixes, including real image MIME types for Gemini and keeping falsy tool results like
0and[](#9887, #9948). - @devYRPauli: Stopped
RecursiveChunkingfrom emitting duplicate trailing chunks and added grouped-shape support to the PowerPoint readers (#9919, #10037). - @ericdelorefice: Made a failed async run delete raise an error, so a dropped connection no longer looks like a missing run (#10682).
- @runshouse (Magic Hour AI) and @DanceNitra: Added cookbooks for the Magic Hour hosted MCP server and inspeximus memory (#10057, #10146).
- Reader fixes: @RaycarlLei, @Minouccc, @n1uz1, @harbinresearcher, @lakers-abing, @emme1t, @tdog54646, @daleselaji-dev, @Kyousuk1e, and @baba9811 fixed edge cases in the knowledge readers, from text streams in the Text, Markdown, and CSV readers to CR line endings and scalar JSON roots.
- Docs and cookbook cleanup: @Shxiao101, @Theater-ahyeon, @simpleqt, and @xizhuomengcontin fixed dead links, broken imports, and docstrings across the cookbook.
Every one of you made Agno better. Thanks for building with us.
Get involved
Want to contribute to Agno?
- ⭐ Star Agno on GitHub
- 💬 Join our Discord
- 📖 Read the docs
- 🛠️ Check out open issues
- 🚀 Share what you're building. We want to feature your project next month.
— Team Agno
Frequently asked questions
Agno shipped seven patch releases in September. The biggest additions were PublicSurface for serving agents to anonymous users, page storage and PageFileSystem for publishing docs as agent knowledge, rerankers that run on every vector database, an Elasticsearch vector database, and stateless MCP serving for AgentOS.
Pass public=PublicSurface(...) to AgentOS and list the agents, teams, or MCP server that anonymous users may reach. Everything else stays private, and public requests run against per-client and global rate limits stored in PostgreSQL.
Post it in the built-with-agno channel on the Agno Discord, or tag @AgnoHQ on X or Agno on LinkedIn. The team reviews those every month when it writes the roundup.
