{"slug": "community-roundup-september-2026", "title": "Community Roundup: September 2026", "summary": "Agno shipped seven patch releases in September 2026, led by PublicSurface for serving agents to anonymous users, page storage that syncs docs into agent knowledge via llms.txt, and MCP servers that scale across replicas, with more than 50 community contributors landing changes. PublicSurface, enabled by passing `public=PublicSurface(...)` to `AgentOS`, enforces per-client and global quotas per minute and per day counted in PostgreSQL so every replica applies the same limits, and later gained Control Plane sharing via `authorization=True`. The releases also moved reranking into `Knowledge.search()` so it works on any vector database, added `MMRReranker` and `RecencyReranker`, and added Elasticsearch as a supported vector database.", "body_md": "[Blog](https://www.agno.com/blog)\n\n# Community Roundup: September 2026\n\n[Cosette Cressler](https://github.com/CosetteCressler)Content & Product Marketing Lead\n\nOctober 5, 20267 min read\n\nAgno 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.\n\nThere's a lot to cover, so let's dive in.\n\n## New releases & features\n\n### PublicSurface serves agents to anonymous users\n\nSay 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.\n\nPass `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.\n\nLater 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.\n\nRead the changelog entries on [PublicSurface](https://www.agno.com/blog/serve-agents-to-the-public-with-publicsurface) and [running it with the Control Plane](https://www.agno.com/blog/run-the-control-plane-and-a-public-agent-on-one-agentos), or learn more about [PublicSurface](https://docs.agno.com/agent-os/public-surface) in the docs.\n\n### Page storage turns your docs into agent knowledge\n\nKeeping 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.\n\n`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.\n\nOnce 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.\n\nRead the changelog entries on [page storage](https://www.agno.com/blog/publish-your-docs-as-agent-knowledge-with-page-storage) and [PageFileSystem](https://www.agno.com/blog/give-agents-a-read-only-filesystem-over-your-docs), or learn more about [published pages](https://docs.agno.com/knowledge/published-pages) in the docs.\n\n### Rerankers now work on every vector database\n\n`Knowledge.search()` now runs the reranker itself. Before, reranking had to be built into each vector database adapter, and only some adapters had it.\n\nPass 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`](https://www.agno.com/blog/get-diverse-search-results-with-the-mmr-reranker) swaps near-duplicate results for diverse ones, and [`RecencyReranker`](https://www.agno.com/blog/rank-newer-documents-higher-with-the-recency-reranker) ranks newer documents higher. `CohereReranker` and your own rerankers work too.\n\nSetting `reranker` on a vector database still works but now logs a deprecation warning. Move it to `Knowledge(reranker=...)`.\n\nRead the [full changelog entry](https://www.agno.com/blog/rerank-knowledge-search-on-any-vector-database), or learn more about [reranking](https://docs.agno.com/knowledge/concepts/search-and-retrieval/reranking) in the docs.\n\n### Elasticsearch joins the vector databases\n\nTeams 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.\n\nRead the [full changelog entry](https://www.agno.com/blog/search-knowledge-in-elasticsearch-with-vector-keyword-and-hybrid-search), or learn more about the [Elasticsearch vector database](https://docs.agno.com/knowledge/vector-stores/elasticsearch/overview) in the docs.\n\n### AgentOS MCP servers scale out\n\n[`MCPConfig(stateless=True)`](https://www.agno.com/blog/serve-mcp-statelessly-so-any-replica-can-answer-any-request) 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.\n\nTwo more additions make an AgentOS MCP server easier to discover and connect to. [`GET /mcp/server-card`](https://www.agno.com/blog/agentos-now-serves-an-mcp-server-card) lists the tools your server offers before a client connects. `MCPConfig` can also serve your tool server [at its own hostname](https://www.agno.com/blog/serve-your-mcp-server-at-its-own-hostname), like `mcp.example.com`, without the routing middleware you used to write.\n\nOn the client side, [`MCPTools(protocol_mode=\"auto\")`](https://www.agno.com/blog/mcptools-can-now-negotiate-the-newest-mcp-protocol-era) 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).\n\nLearn more about the [AgentOS MCP server](https://docs.agno.com/features/mcp-server) and [MCP tools](https://docs.agno.com/tools/mcp/overview) in the docs.\n\n### Azure OpenAI deployments get the Responses API\n\n`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.\n\nRead the [full changelog entry](https://www.agno.com/blog/use-the-responses-api-with-azure-openai-deployments), or see the [cookbook](https://github.com/agno-agi/agno/blob/main/cookbook/90_models/azure/openai/responses.py) for reference.\n\n## New tools & integrations\n\nAlso shipped in September:\n\n- **New model providers** :[llmman](https://www.agno.com/blog/llmman-is-now-a-supported-model-provider) and[Y-API](https://www.agno.com/blog/y-api-joins-agno-as-a-model-provider) , an OpenAI-compatible gateway.\n- **[GandrTools](https://www.agno.com/blog/gandrtools-adds-gandr-text-to-speech-to-your-agents)** : agents can turn text into speech through the Gandr TTS API.\n- **[Bring your own Bedrock client](https://www.agno.com/blog/bring-your-own-async-client-to-bedrock)** : Bedrock accepts an async client you configure yourself.\n- **[MCP tools return audio](https://www.agno.com/blog/mcp-tools-now-return-audio)** : when an MCP tool returns audio,`MCPTools` decodes it and adds it to`run.audio` .\n- **[Public custom routes](https://www.agno.com/blog/mark-custom-routes-public-without-turning-off-auth)** : mark individual custom routes public while authorization stays on for everything else.\n- **[AG-UI protocol 1.0](https://www.agno.com/blog/the-ag-ui-interface-supports-ag-ui-protocol-1-0)** : the AG-UI interface handles tool results sent as lists of content parts, so paused runs resume cleanly.\n- **[Slack retries](https://www.agno.com/blog/slack-now-answers-messages-whose-first-delivery-was-lost)** : the Slack interface now answers a message whose first delivery never reached AgentOS. It used to drop the retry.\n- **[Cancelled runs say where they stopped](https://www.agno.com/blog/cancelled-runs-now-say-where-they-stopped)** :`cancellation_stage` tells you whether a run never started, stopped mid-run, or was waiting on a human.\n- **[Dependencies can read the run](https://www.agno.com/blog/dependency-callables-can-now-read-the-run-input-and-session)** : callables in an agent's`dependencies` can read the run input and the session.\n\n## Breaking changes\n\nA few September releases changed behavior. The ones most likely to affect you:\n\n- Knowledge ingestion now reports embedding failures. Content that used to show `completed` may now show`failed` or`partial` , and embedders raise`EmbeddingError` where they used to return an empty vector.\n- `Knowledge` constructor arguments are keyword-only, so`Knowledge(\"docs\")` becomes`Knowledge(name=\"docs\")` .\n- `CodingTools` makes`run_shell` opt-in with`enable_run_shell=True` .\n- With `authorization=True` and`PublicSurface(mcp=True)` , MCP accepts only`localhost` by default. Add your domain to`MCPConfig(allowed_hosts=[...])` .\n\nRead the [release notes](https://github.com/agno-agi/agno/releases) before you upgrade.\n\n## Community projects & showcases\n\nA few of the things people built with Agno in September:\n\n### Workspace Council: a governed multi-agent council for your workspace by Anshul Raj, Mohamed Tahir, and Mujtaba Mohimtulay\n\nBuilt 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.\n\nRead more on [LinkedIn](https://www.linkedin.com/posts/anshul-raj-372740202_agentseverywhere-aiagents-copilotkit-ugcPost-7504510433589071872-uHlP).\n\n### Vega: voice trading inside OpenAlgo by Marketcalls (@marketcallsHQ)\n\nOpenAlgo 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.\n\nCheck it out on [X](https://x.com/marketcallsHQ/status/2099579349460750708).\n\n### An agent council for pressure-testing ideas by Tarun Jain\n\nPick 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.\n\nRead more on [LinkedIn](https://www.linkedin.com/feed/update/urn:li:activity:7507055553433677824).\n\n## Contributor shoutouts\n\n### Community MVPs\n\n- **@basnijholt** : Fixes across the 3.x line.`SqliteDb` bulk upserts now apply the session owner check, empty Anthropic tool arguments survive replay, and nullable document titles in Claude citations no longer break ([#9937](https://github.com/agno-agi/agno/pull/9937) ,[#8970](https://github.com/agno-agi/agno/pull/8970) ,[#10147](https://github.com/agno-agi/agno/pull/10147) ,[#9941](https://github.com/agno-agi/agno/pull/9941) ).\n- **@ProgrammerPlus1998** : Migrated the MCP client and the AgentOS MCP server to`mcp` 2.x, which brought`protocol_mode` to`MCPTools` ([#9269](https://github.com/agno-agi/agno/pull/9269) ).\n- **@hugoaimlapi** (AI/ML API): Repaired the AIMLAPI model integration, then added`AIMLAPITools` for image, video, speech, and transcription behind one key ([#9898](https://github.com/agno-agi/agno/pull/9898) ,[#10276](https://github.com/agno-agi/agno/pull/10276) ).\n- **@luisnmartins** : Added`.zip` and`.eml` as AgentOS upload types, so archives and email files go straight into a run ([#9193](https://github.com/agno-agi/agno/pull/9193) ).\n\n### More great contributions\n\n- **@ericcurtin** (Docker): Added llmman as a model provider ([#9863](https://github.com/agno-agi/agno/pull/9863) ).\n- **@rastagan-git** : Added the Azure OpenAI Responses model ([#9841](https://github.com/agno-agi/agno/pull/9841) ).\n- **@ddellspe-vl** : Let Bedrock take an async client you provide ([#9531](https://github.com/agno-agi/agno/pull/9531) ).\n- **@kinKingen** : Added`AuthorizationConfig.excluded_route_paths` for public custom routes ([#9295](https://github.com/agno-agi/agno/pull/9295) ).\n- **@jiweiyeah** : Added Y-API as an OpenAI-compatible model provider ([#10326](https://github.com/agno-agi/agno/pull/10326) ).\n- **@devansh173** : Made MCP tools return audio as audio artifacts ([#10036](https://github.com/agno-agi/agno/pull/10036) ).\n- **@yetuge** : Four PRs, including DeepSeek thinking-model detection in`OpenAILike` and UTF-8 reads and writes in`LocalFileSystemTools` ([#10342](https://github.com/agno-agi/agno/pull/10342) ,[#10538](https://github.com/agno-agi/agno/pull/10538) ).\n- **@BlueX888** : Three fixes, including real image MIME types for Gemini and keeping falsy tool results like`0` and`[]` ([#9887](https://github.com/agno-agi/agno/pull/9887) ,[#9948](https://github.com/agno-agi/agno/pull/9948) ).\n- **@devYRPauli** : Stopped`RecursiveChunking` from emitting duplicate trailing chunks and added grouped-shape support to the PowerPoint readers ([#9919](https://github.com/agno-agi/agno/pull/9919) ,[#10037](https://github.com/agno-agi/agno/pull/10037) ).\n- **@ericdelorefice** : Made a failed async run delete raise an error, so a dropped connection no longer looks like a missing run ([#10682](https://github.com/agno-agi/agno/pull/10682) ).\n- **@runshouse** (Magic Hour AI) and**@DanceNitra** : Added cookbooks for the Magic Hour hosted MCP server and inspeximus memory ([#10057](https://github.com/agno-agi/agno/pull/10057) ,[#10146](https://github.com/agno-agi/agno/pull/10146) ).\n- **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.\n- **Docs and cookbook cleanup** : @Shxiao101, @Theater-ahyeon, @simpleqt, and @xizhuomengcontin fixed dead links, broken imports, and docstrings across the cookbook.\n\nEvery one of you made Agno better. Thanks for building with us.\n\n## Get involved\n\nWant to contribute to Agno?\n\n- ⭐ [Star Agno on GitHub](https://github.com/agno-agi/agno)\n- 💬 [Join our Discord](https://agno.link/discord)\n- 📖 [Read the docs](https://docs.agno.com/)\n- 🛠️ Check out [open issues](https://github.com/agno-agi/agno/issues)\n- 🚀 Share what you're building. We want to feature your project next month.\n\n*— Team Agno*\n\n## Frequently asked questions\n\nAgno 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.\n\nPass 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.\n\nPost 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.", "url": "https://wpnews.pro/news/community-roundup-september-2026", "canonical_source": "https://www.agno.com/blog/community-roundup-september-2026", "published_at": "2026-10-05 00:00:00+00:00", "updated_at": "2026-10-30 17:16:38.682710+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "agent-protocols", "developer-tools", "ai-infrastructure"], "entities": ["Agno", "PublicSurface", "AgentOS", "Control Plane", "PageFileSystem", "MMRReranker", "RecencyReranker", "Elasticsearch"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/community-roundup-september-2026", "markdown": "https://wpnews.pro/news/community-roundup-september-2026.md", "text": "https://wpnews.pro/news/community-roundup-september-2026.txt", "jsonld": "https://wpnews.pro/news/community-roundup-september-2026.jsonld"}}