# Mustafa Esoofally AI-obsessed engineer, getting agents into the hands of normies. I take an idea from concept to a production-ready agent - custom integrations, memory, the right context and approvals. AI-obsessed engineer working on getting agents into the hands of normies. I take an idea from concept all the way to a production-ready agent - custom integrations, memory, the right context and approvals. The dream: a production agent in under 10 minutes and 10 lines of code, on any model, deployed anywhere. Motivated by AI that takes the mundane, repetitive work off people's plates, speeds up research, and runs wildly ambitious systems in production. - Agents where people work: Running inside Slack, Telegram and WhatsApp, with approvals built in. - Memory and context: Context compression and memory that keep long-running agents fast and on-task. - A leaner runtime: Less memory and less time per run across the agent runtime. - Any model, deploy anywhere: A production agent in under 10 minutes - any model, one-command deploys to Railway or AWS. Skills: Python, TypeScript, Agno, Multi-agent systems, MCP, RAG, FastAPI, PostgreSQL, Docker, AWS Education: MS, Computer Science - Florida International University (2023 - 2025); BTech, Data Science - Vishwakarma University (2019 - 2023) Contact: mustafa.z.esoofally [at] gmail [dot] com · https://github.com/Mustafa-Esoofally · https://www.linkedin.com/in/esoofallymustafa ## Experience ### Agno - Senior Software Engineer, Agents Led Agno's learning, orchestration and platform work, the open-source agent framework with 2M+ monthly downloads. **Platform** - Spearheaded [Learning Machines](/work/learning-machines), Agno's learning layer: 6 learning stores and 3 learning modes so agents and teams improve every run. - Designed Agno's sub-agent system: a coordinator splits complex tasks across specialists, each with its own isolated context. - Architected per-user isolation across all 17 database backends, unlocking multi-tenant distributed workloads and caching. [Access control](/work/security) - Unified tool-result compression and history compaction into one context manager, so long-running agents stay on-task. [Context engineering](/work/context-engineering) - Took concurrent-request failures from 31% to 0% and cut latency and memory across the agent runtime. **Products** - Took [Scout](/projects/scout), [Dash](/projects/dash) and [Pal](/projects/pal) to production for enterprise teams - any model, deployed in the customer's own cloud - with the one-command [AgentOS templates](/projects/agentos-templates). **Team** - Mentored and onboarded engineers, and cut CI time roughly in half by parallelizing the test suite. [AI code review](/work/ci-review) ### Agno - Software Engineer, Agents Built client agent systems and how agents reach people on Agno. **Clients** - Led a beverage importer from discovery to a production seven-agent [procurement intelligence](/projects/procurement-intelligence) system as primary technical contact - it runs Kraljic, PESTLE and Porter's analyses and emails reports on its own. - Scaled a multi-agent RAG [knowledge assistant](/projects/policy-assistant) across a global asset manager, a top-10 accounting firm and an AmLaw 50 law firm, with per-domain agents, a SQL agent and reranking. - Owned a [Fortune 10 company's](/projects/fortune-10-enterprise) Agno adoption as technical lead, from onboarding to custom workflows. - Automated a logistics company's document intake with mixture-of-experts [document agents](/projects/logistics-document-agents), plus [browser agents](/projects/beverage-finance-agents) that pull and summarize government filings. **Interfaces - where agents meet people** - Built the Telegram interface from scratch; rebuilt WhatsApp (5 media types, signature validation, encrypted identities) and Slack streaming. [Chat interfaces](/work/chat-interfaces) - Human-in-the-loop approval flows in Slack and over AG-UI, for agents and teams. [Approvals](/work/human-in-the-loop) - Started Agno's AG-UI frontend integration, including browser-side tools. [AG-UI](/work/ag-ui) **Integrations and context** - Rebuilt the Gmail, Calendar (14 tools) and Drive (6 tools) toolkits on one shared, encrypted auth layer. [Google Workspace](/work/google-workspace) - Context providers, tool-result compression and token counting across 5 model providers. [Context engineering](/work/context-engineering) - MCP backends, model-provider fixes and third-party toolkits. [MCP and tools](/work/mcp-and-tools) **Products** - Designed [Scout](/projects/scout), [Dash](/projects/dash) and [Pal](/projects/pal) - enterprise agent apps that run in your own cloud on any model - and was a core contributor to [Coda](/projects/coda). - Built an automated AI code-review system for every pull request. [AI code review](/work/ci-review) ### AI tooling ecosystem - Open-source contributor Contributions to open-source AI apps and protocols before and alongside Agno. - **[AG-UI](https://github.com/ag-ui-protocol/ag-ui)** - Agno feature pages in the AG-UI Dojo (shared state, reasoning, generative UI, multimodal). - **Pippin Live** for [Pippin](https://github.com/yoheinakajima/pippin) (Yohei Nakajima; the live repo is private) - animations, stats tracking, livestream toggle and reply display. - **[Infinite Bookshelf](https://github.com/Bklieger/infinite-bookshelf)** (Groq) - custom book-generation instructions and setup improvements. - **[StockBot on Groq](https://github.com/bklieger-groq/stockbot-on-groq)** - ETF heatmap and trending-stocks widgets. - **[Turboseek](https://github.com/Nutlope/turboseek)** and **[Financial Agent UI](https://github.com/virattt/financial-agent-ui)** - search and UI fixes. ### Florida International University - Graduate Research Assistant Energy Systems Research Lab. - Co-authored [Comparative Study-Based Data-Driven Models for Lithium-Ion Battery State-of-Charge Estimation](https://doi.org/10.3390/batteries10030089) (*Batteries*, MDPI, 2024) - Transformers, LSTMs, autoencoders and random forests compared on the lab's battery pack. - Built ML models to improve energy management in the lab's internal microgrid systems. - Built API endpoints and backend infrastructure for cross-team research. - Alongside: MS in Computer Science (GPA 3.71) and contributions to FIU's TechConnect STEM-resources app. ### Team Pumpkin - Senior Software Engineer - Delivered a 3D Tesla model demo at MWC Barcelona for a law-enforcement vehicle data platform. - Built the reporting system for an employee advocacy platform, removing hours of manual report work each week. - Improved the content-management backend's asset upload path. ### Elite Infosoft - Software Engineer - Built a computer-vision golf ball tracking system that automated shot analysis and player position tracking. ## Built at Agno ### Agents where people already work Slack, Telegram and WhatsApp interfaces - streaming replies, media, live progress - so agents live where teams already talk. Links: [Telegram docs](https://docs.agno.com/agent-os/interfaces/telegram/introduction) · [Slack docs](https://docs.agno.com/agent-os/interfaces/slack/introduction) · [WhatsApp docs](https://docs.agno.com/agent-os/interfaces/whatsapp/introduction) Diagram: People (Slack thread, Telegram chat, WhatsApp number, Web app (AG-UI)) -> Interface: What I built (Webhook auth, Session routing, Streaming replies, Media in and out) -> AgentOS: Runtime (Agent, Team, Workflow) -> Your database (Sessions, Memory, Runs) Loop: Replies stream back into the same thread, with live progress cards while tools run. Caption: One agent, many surfaces - each interface handles its platform, the agent stays the same. - **Telegram:** built the interface from scratch - media in and out, live-updating streamed replies with tool and reasoning status, and a Telegram toolkit. - **WhatsApp:** rebuilt it with media I/O, webhook signature validation, encrypted identities and support for teams and workflows. - **Slack:** rewrote streaming so replies appear immediately, added file handling, workspace search, channel summaries, agent-to-agent messaging and channel-scoped sessions. - **The details that make it usable:** fixed Slack's blank reply bubble while streaming, kept approval cards within Slack's limits so a paused agent always shows a button, and added typing and status indicators in Telegram. ### Human-in-the-loop approvals Agents pause, people approve. Approval flows in Slack and in web frontends, for single agents and teams. Links: [Slack approvals docs](https://docs.agno.com/agent-os/interfaces/slack/hitl) Diagram: Agent run (Calls a sensitive tool) -> Pause: Run waits (Confirmation, User input, External result) -> Person decides (Approve / Deny card in Slack, Form in the web app) -> Resume (Same run continues, Nothing lost) Loop: Works for single agents and teams - if a member agent pauses, the whole team waits for the answer. Caption: Agents pause, people approve. - Slack approval cards for every pause type: confirm, ask for input, collect feedback, or run a step outside the agent. - The same flows over AG-UI for browser frontends. - Pause state that survives across multiple rounds for teams of agents. ### AG-UI frontend integration Started Agno's integration with the AG-UI protocol, connecting agents to live frontends with frontend tools. Links: [AG-UI docs](https://docs.agno.com/agent-os/interfaces/ag-ui/introduction) - Built the original Agno to AG-UI bridge. - Added frontend tools that run in the browser - the agent pauses, the frontend runs the tool, and the run resumes. - Mapped reasoning to AG-UI events and fixed protocol-ordering issues. - Contributed Agno feature pages upstream to the AG-UI project. ### Google Workspace integration Gmail, Calendar and Drive toolkits on one shared auth layer - user sign-in or service accounts, with encrypted token storage. Links: [Gmail docs](https://docs.agno.com/tools/toolkits/social/gmail) - Rebuilt Gmail, Calendar and Drive toolkits, with OAuth and service-account (domain-wide delegation) support. - A shared Google auth base for Gmail, Calendar, Drive, Sheets and Slides. - Encrypted, database-backed token storage, with headless sign-in for server and bot deployments. ### Access control and isolation Every user only sees their own sessions, memories and traces, permissions follow the resource, and agents only get the tools their role needs. Diagram: Caller (User (JWT), Service account, Another agent (A2A)) -> Authorization (Verify token, Check scopes, Roles) -> Isolation (User ID from the token, Own sessions only, Own memories only) -> Allowed (Agents they may run, Tools they may call) Caption: Identity comes from the verified token, never from what the client claims. - **Ownership:** user identity from the JWT now drives session, memory and trace reads and writes across all 17 database backends - callers can't pass someone else's ID. - **Role-based scopes:** fixed an authorization bypass where an agent-read token could reach knowledge endpoints, and brought agent-to-agent (A2A) run, stream and cancel under the same scope checks. - **Security reports:** took four external reports from triage to verified fixes in a release, including per-tool scope checks on the MCP server. - **File safety:** hardened path handling for agent file tools - no escaping the workspace, no reserved or control-character names. - **Tool-level least privilege:** read-only agents get read-only tools (for example, Coda's explorer can't create or delete git worktrees). - **Guardrails:** fixed a case where guardrails were skipped when hooks ran in the background. ### Context engineering and efficient tool calling Keeping long-running agents fast and on-task: compressed tool results, selective tool history, token counting and context providers. Links: [Compression docs](https://docs.agno.com/compression/overview) Diagram: Long-running agent (Many tool calls, Large tool outputs, Long conversations) -> Context engine: What I built (Compress tool results, Keep last N tool calls, Count tokens, Context providers) -> Model sees (Compact context, Only the tools it needs) Loop: The full history stays in the database - only what the model sees gets smaller. Caption: Compression kicks in at a count or token threshold, whichever comes first. **Efficient tool calling** - Tool-result compression: once outputs pile up, agents summarize them instead of re-sending raw tool output every turn. - Selective tool history: keep only the last few tool exchanges across runs. - Token counting that works across OpenAI, Anthropic, Bedrock, Gemini and LiteLLM, wired into compression. - Prototyped "code mode", where an agent batches many tool calls into one generated Python step - a large cut in tokens per task. **Context providers** - Gmail and Calendar providers with separate read and write sub-agents and minimal scopes. - Live streaming of sub-agent tool calls to the parent, so frontends can show what's being looked up. - Hardened context providers: injectable write tools, query timeouts, and Git access that keeps tokens off disk. ### Learning machines and memory Agents that get better every run: learning stores for users, sessions, entities and shared knowledge - for single agents and teams. Links: [Learning docs](https://docs.agno.com/learning/overview) Diagram: Run (Agent, Team) -> Learning stores (User profile, User memory, Session context, Entity memory, Learned knowledge, Decision log) -> Next run (Recalled into context, Gets better each time) Loop: Learning modes: Always (extracts in the background), Agentic (the agent decides what to save), Propose (asks first). Caption: Learning machine = agent + learning stores. A learning machine is a set of stores an agent writes to while it works - user profile, user memory, session context, entity memory, learned knowledge and a decision log - and reads from next time. Pal is built on it. - Built the learning-machine primitives, including full support for teams: learning context, async learning tools and automatic history. - Kept system prompts and tool scaffolding out of what gets learned, so memories are about the user, not the plumbing. - Added per-run limits on memory updates across every learning store. - Kept user identity intact through memory updates, deletes and topic queries. ### Excel knowledge bases A dedicated Excel reader so agents can answer questions over spreadsheets - right sheets, right rows, with context intact. Links: [Knowledge docs](https://docs.agno.com/knowledge/overview) - Split Excel out of the CSV reader into its own reader for `.xlsx` and `.xls`, with automatic routing by file type. - Choose sheets by name or index, skip hidden sheets, and ingest row-by-row or sheet-by-sheet. - Every chunk keeps its workbook, sheet and row metadata, so answers can point back to where they came from. - Part of a wider knowledge-hardening pass: deterministic chunk IDs, crawl de-duplication and an embedder memory fix. ### MCP and docs for coding agents Making agents and coding tools work together: reliable MCP results in Claude Code, docs that agents can read, and MCP-backed web research. Links: [Agno for coding agents](https://docs.agno.com/coding-agents) · [llms.txt tools docs](https://docs.agno.com/tools/toolkits/others/llms-txt) · [Claude Code MCP issue](https://github.com/agno-agi/agno/issues/9764) - **MCP results in Claude Code:** found and fixed why Claude Code showed no answer from AgentOS MCP tools (structured results without a text body), plus automatic exposure of whole toolkits as MCP tools. The fix shipped in Agno. - **Docs agents can read:** built llms.txt support - an agent reads a documentation index and fetches only the pages it needs, or loads the docs into a knowledge base. This is how an internal docs agent stays accurate for coding agents. - **Schemas that survive:** fixed nested tool schemas so MCP tools with complex inputs work with Claude. - **Keyless web research over MCP**, and authenticated Exa MCP in the deployment templates. - Toolkits for GitHub, Parallel's Task and Monitor APIs, Daytona, Serper, Crawl4AI and more, plus consistent tool naming across dozens of toolkits. ### Model providers Kept agents working across OpenAI, Anthropic, Gemini, Bedrock, vLLM and more - including the hard concurrency bugs. - Added providers (vLLM, DashScope, Portkey) and native tool calling and file inputs. - Fixed a Gemini client race under concurrency and expiring AWS credentials for Bedrock. ### AI code review and CI An automated AI code-review system for every pull request, and a faster, more trustworthy test suite. - Sharded the test suite to roughly halve CI time, with combined coverage reports. - Added a guard that fails CI when a test file isn't assigned to any job - it caught tests that had silently stopped running. - Audited the runnable cookbook examples and fixed stale APIs, async database patterns and knowledge loading. - Rewrote authorization tests to exercise the real request path. - **Automated code review:** a Claude Code system with specialized reviewer agents that reviewed every pull request; later tuned to run on request (`@claude review`) to cut noise. ## Projects ### Agent platform for a Fortune 10 company Helped a Fortune 10 company adopt Agno - onboarding, custom workflows, and a better Excel reader and data access that made their internal chatbots give better answers. Enterprise engagement. I worked with their team on onboarding, workflows and the fixes they needed. **What I did** - **Onboarding:** helped their engineers get productive on Agno and AgentOS, from first agent to running in their environment. - **Custom workflows:** designed workflows that automate internal processes end to end. - **Reliability and memory:** shipped reliability and memory improvements they needed for production, back into Agno so every user benefits. - **Better answers for internal chatbots:** built an improved Excel reader and improved how agents access their data, so internal chatbots answer accurately from spreadsheets and policy documents. See [Excel knowledge bases](/work/excel-knowledge). ### Open Dots An open-source personal agent you text. It never goes silent, asks before it acts, and runs on your own machine with your own model. Personal project - sole author of the code, product spec and architecture. Open Dots is a personal agent you talk to over chat. It's built on Vercel's eve runtime, with my own layer for safety, memory and scheduling on top. **How it works** - **One approval policy** sits in front of every tool and connection - each action runs automatically, asks first, or is never allowed. - **Taint tracking:** once a session reads untrusted content (an email, a web page), it can't take side-effecting actions without approval. - **An activity ledger** in SQLite records every action, approval and cost. - **Recurring tasks** run on a durable scheduler with atomic leasing, so nothing double-fires. - **Learning memory** captures facts, preferences and rules from your corrections. - **Channels:** Telegram, iMessage (locked to the owner), and an MCP channel so Claude Code or Cursor can drive it. Peers let it hand work to other agents. - **Bring your own model:** OpenAI, Anthropic or OpenRouter. **Status:** chat, rules and approvals, the activity log, memory, web search and a sandbox are working locally. Task heartbeats and a watchdog, iMessage delivery and a browser are in progress. ### Internal knowledge assistant for professional-services firms A multi-agent RAG system that answers employees' questions from the firm's own handbooks - HR, leave, travel, expenses and tax - scaled to large document sets with better reranking, and deployed for a global asset manager, a top-10 accounting firm and an AmLaw 50 law firm. Client project, deployed for three firms. I improved retrieval at scale, reranking and database support. Diagram: Employee asks (How many leave days do I have?, Can I book this flight?, Which hotels are allowed?) -> Coordinator: Routes the question (Plans the search, Picks the right specialist) -> Specialist agents (Handbooks and HR, Travel and expenses, Tax, Notion and wikis, PDFs and documents, SQL for structured data) -> Answer (Grounded in the policy, Points to the source) **The problem:** every large firm has the answers in its handbooks - leave, travel, expenses, tax, HR rules - but nobody can find them, so the same questions land in HR's inbox again and again. **What it does** - Employees ask in plain English: *"How many leave days do I have?"*, *"I'm flying from New York to Chicago next week - can I book this flight, and which hotels can I use?"* - A multi-agent system: a coordinator routes each question to specialized agents, each running on its own slice of company knowledge - handbooks, HR guidelines, travel and expense policy, tax documents, Notion pages and PDFs. - Each specialist retrieves with Agno's knowledge features - agentic search and full RAG over the document embeddings - and a reasoning SQL agent handles structured data like leave balances. - Answers stay grounded in the firm's own policy and point back to the source, instead of guessing. **What I improved** - **RAG at scale:** made retrieval hold up across large, growing document sets, so answers stay precise as each firm adds more policies. - **Reranking:** better reranking of what search pulls back, so the most relevant passage reaches the agent first. - **More databases:** added support for more vector databases and regular databases, so each firm could run it on the infrastructure it already had. **Where it ran:** a global asset manager, a top-10 accounting firm and an AmLaw 50 law firm. ### Scout An open-source company-intelligence agent that navigates Slack, Drive, wiki and CRM instead of chunk-and-embed. I designed Scout's architecture, built its first eval suite, and moved it onto Agno's shared context-provider library. Links: [Repository](https://github.com/agno-agi/scout) · [Docs](https://docs.agno.com/deploy/templates/scout/overview) Diagram: Question (From Slack, From the web) -> Scout: One agent (query_ tools) -> Context providers: A sub-agent per source (Slack, Drive, Wiki, CRM, MCP servers) -> Answer (Grounded in sources, Wiki and CRM kept up to date) Caption: Scout navigates sources instead of chunking and embedding everything up front. Scout is a company-intelligence agent. Instead of chunking and embedding everything up front, it **navigates** a company's sources - Slack, Google Drive, a wiki, a CRM and MCP servers - and keeps its own wiki and CRM up to date as it learns. **Built to run in your cloud.** Any model, Postgres for its wiki and CRM, JWT auth in production, and Slack as its home - each thread is a session. CRM writes are locked to Scout's own schema by the database, not by a prompt. **What I built** - The architecture: one agent, one `query_` tool per source, each backed by its own sub-agent. - Context providers in Agno - including Slack, Gmail and Calendar - with live streaming of sub-agent work. - Scout's first evaluation suite, and the migration onto Agno's shared context-provider library - which also fixed a user-ID leak into CRM rows. ### Dash A self-learning SQL data agent that grounds answers in schema, business rules and past queries. I designed Dash's architecture and set up how it runs in production in a team's Slack. Links: [Repository](https://github.com/agno-agi/dash) · [Docs](https://docs.agno.com/deploy/templates/dash/overview) Diagram: Question (Plain English, From Slack) -> Context layers (Table schemas, Validated queries, Business rules, What it has learned) -> Dash (Analyst (read-only), Engineer (read-write)) -> Answer (Grounded SQL, Result explained) Loop: Every answer feeds back into what Dash has learned, so the next question is easier. Caption: Grounded answers, not guessed SQL. Dash answers business questions in plain English with grounded SQL. Every answer is grounded in layered context - table schemas, validated queries, business rules and what it has learned - and it runs as an analyst/engineer pair with read-only and read-write access. **Built to run in your cloud.** Any model, Postgres for data and learnings, JWT auth, Slack and an eval suite for accuracy, routing and safety. **What I built** - The architecture: layered context, the analyst/engineer split and the learning loop. - The production setup for running Dash in a team's Slack workspace. ### Open Glass An open-source take on a company-wide AI workspace - agents that share memory people can inspect, correct and trust. Personal project, in the design phase. Open Glass is my open-source take on a company-wide AI workspace, where every employee works with agents that share what the company knows. **What I'm designing** - **Layered memory** - personal, project, team and company - so each agent sees the right context. - **Provenance:** every fact keeps its source, and revoking a source removes what was learned from it. - **Review states**, so people can correct what agents believe instead of fighting it. - **Periodic synthesis** that keeps shared knowledge current without anyone curating it. It's in the design phase - architecture and memory-design docs, no app yet. ### Procurement intelligence agents Seven research agents that analyze a spend category the way a sourcing team would, write the report from the team's own template and email it out - on their own, with stronger reasoning, better search and a faster runtime. Client project for a beverage importer's category-management team. I designed and built the whole system, from a single-agent first version to the seven-agent platform. Diagram: Input (Spend category, Supplier) -> Seven research agents (Company overview, Switching barriers, PESTLE, Porter's Five Forces, Kraljic matrix, Cost drivers, Alternative suppliers) -> Output (Report from the team's template, Emailed to the team, Dashboard) Caption: The analysis a sourcing team does by hand, run by agents in parallel and delivered to their inbox. **The problem** Sourcing teams decide how to buy each category with frameworks like the **Kraljic matrix**: plot the category by *supply risk* and *profit impact*, and it lands in one of four quadrants - **routine**, **bottleneck**, **leverage** or **strategic** - each with its own sourcing strategy. Doing that properly means researching suppliers, markets and costs by hand. **The seven agents** A company-overview agent researches the buyer and the category, then six specialists each produce a typed analysis: 1. **Company overview** - who the buyer is and what the category looks like. 2. **Switching barriers** - scored 1-9 for staying versus moving to a new supplier. 3. **PESTLE** - political, economic, social, technological, legal and environmental factors, with impact scores. 4. **Porter's Five Forces** - how much power suppliers and buyers really have. 5. **Kraljic matrix** - the category's position and a recommended sourcing strategy. 6. **Cost drivers** - what actually moves the price. 7. **Alternative suppliers** - ranked options to consider. **What I improved** - **Reasoning:** agents work through each framework step by step, and every analysis has its own structured output, so the conclusions hold up and stay consistent run to run. - **Search:** better web search and source gathering, so the research lands on the right suppliers, markets and prices. - **Reports on their own:** agents fill in the team's report template themselves - from raw research to a finished supplier report, with no one stitching it together. - **Autonomous emailing:** finished reports go straight to the category team by email, so results arrive without anyone running the tool. - **Runtime:** analyses run in parallel as background jobs, keep partial results if one step fails, and land in a review dashboard with an interactive Kraljic matrix and charts. **My part:** designed and built all of it, from a single-agent first version to the seven-agent system - the agents, their output models, search, report generation, emailing, the API and the dashboard. For the same client I also moved their finance and supplier platform onto Agno 2.0 and added MySQL support (see [Finance and supplier agents](/projects/beverage-finance-agents)). ### Logistics document agents Document intelligence for shipping paperwork - a mixture-of-experts setup of specialist agents that reads invoices, bills of lading and packing lists far more accurately, and automates the tedious internal processes around them. Client project for a customs and logistics software company. I improved document intelligence with a multi-agent, mixture-of-experts approach, and built the extraction, processing APIs, records and review screens. Diagram: Shipment PDF (Invoice, Bill of lading, Packing list) -> Agents (Classify and split, Extract fields, Cross-check documents) -> People (Review screen) -> Next step (Internal workflow, Email the right people) Caption: A coordinating agent fans each document out to a specialist sub-agent. **The project** A customs and logistics software company wanted its document handling to run on agents. A shipment arrives as one long PDF; the system works out which pages are the invoice, the bill of lading and the packing list, splits them, extracts every field into a typed record, checks the documents against each other, and kicks off the next step of the internal workflow - including emailing the right people. Under the hood it's agents and workflows working together: a coordinating agent that fans work out to specialist sub-agents per document type, with each step's state tracked so nothing gets lost. The longer-term architecture aimed at running thousands of these agents side by side on shared servers. **My part** - Improved document intelligence with a mixture-of-experts approach - a specialist agent for each document type, with a coordinator routing every page to the right expert - which made results much more accurate. - Helped automate a range of tedious internal business processes around that paperwork. - Built invoice extraction and validation, background processing with status endpoints, and the database models and automatic migrations. - Built the review screens where operations staff check extracted fields. - Contributed to the pipeline that classifies and splits multi-document shipment PDFs. ### AgentOS templates Production agent platforms you run in your own cloud - Railway, AWS or Docker - with the AgentOS runtime, Postgres, auth, Slack and evals included. Main contributor to the AWS and Docker templates, and built Scout and the context-provider agents into the Railway one: code structure, integrations and how they run in the cloud. Links: [AWS template](https://github.com/agno-agi/agentos-aws-template) · [Docker template](https://github.com/agno-agi/agentos-docker-template) Diagram: You (One command) -> Your cloud (Railway, AWS, Docker) -> Out of the box: Production agent platform (AgentOS runtime, Postgres, Auth, Slack) -> Your agents (Any model, Your data, your database) Caption: From an empty account to a running agent platform. AgentOS templates are the starting point for running Agno in your own cloud: one repo that runs the same way on a laptop and in production - a deploy script for **Railway**, Agno's infrastructure tooling for **AWS** (ECS, RDS, load balancer, optional EFS), and Docker Compose anywhere else. **Out of the box** - The AgentOS runtime: one FastAPI app with a REST API for agents, teams and workflows. - PostgreSQL for sessions, memory, knowledge, eval results and traces. - JWT auth in production, and a Slack interface that switches on when its tokens are set. - Reference agents (Pal, Scout, context-provider agents), an eval runner, and workflow docs for building agents with coding agents. **What I built** - The AWS and Docker templates: ported the reference agents, structured the code and kept both in step with Railway. - Persistent storage on AWS with EFS and access points, so an agent's local data survives deploys - plus the infrastructure support for it in Agno. - Scout and the context-provider agents in the Railway template, and the evals and docs synced across all three. ### Finance and supplier agents A finance and compliance agent platform for a beverage importer - finance, SQL-reasoning and research agents, plus browser agents that log into old government websites, download the PDFs and summarize them. Client project. I migrated it to Agno 2.0 and AgentOS, added browser agents for government websites, improved the supplier-profile workflow and added MySQL support. **The project** An agent platform for a beverage-industry company: a finance agent that answers questions over the company's data, a supplier-profile workflow that researches and profiles suppliers, and browser agents that handle the government websites compliance depends on. **My part** - Moved the platform onto Agno 2.0 and AgentOS. - Added browser-use toolkits so agents can work on old, unreliable government websites on their own - log in, find the right records, download the PDFs, read them and summarize what matters. - Improved the finance agent and the supplier-profile workflow. - Added MySQL support so it could run on the company's existing database. ### Pal A personal second-brain agent that learns every run - your notes, people and research in one agent, with what it learns kept separate from your data. I designed Pal and built the learning-machine primitives it runs on, and made it deployable on Docker, AWS and Railway. Pal is a personal agent that learns how you work. It researches the web, keeps your notes, bookmarks, people and meetings in tables it creates as needed, and gets better every run through a learning machine - with a strict line between your data and what it learns about doing the job. **What I built** - The design and the learning-machine primitives: learning stores, team support, and guards that stop agents looping when they update memory. - Deployment on Docker, AWS (with EFS so its database survives deploys) and Railway, with authenticated Exa MCP for research. ### Coda A code companion that lives in Slack - answers questions about your repos with file-and-line evidence, plans and triages issues, and opens PRs from isolated branches. Core contributor: nine merged changes across its tools, memory and Slack integration. Links: [Repository](https://github.com/agno-agi/coda) · [Docs](https://docs.agno.com/deploy/templates/coda/overview) Coda is a team of agents that works from Slack. A leader with no code tools of its own hands each request to a specialist - Explorer, Planner, Triager, Researcher or Coder. Only the Coder can change code, and it works on its own git branch and never merges. **What I built** - Read-only git for the Explorer, so investigating code can never change it. - A shared learning store for the whole team, so a repo's conventions learned in one thread help every specialist. - Slack identity resolution and the leader's Slack tools, fixed through end-to-end Slack scenarios. - Each specialist exposed as its own AgentOS agent. - Prototyped approval gates before the Coder runs shell commands or pushes. ### Plex Search A deep-research app that streams its answer and organizes sources as it searches. Personal full-stack project. Links: [Repository](https://github.com/Mustafa-Esoofally/plex-search) A research assistant with a streaming answer view, organized source panels and Markdown output. LangChain research backend, Next.js frontend. ### Invoice Payment Agent Watches an inbox for invoices, extracts the details and moves them toward payment, with a status UI. Personal full-stack project. Links: [Repository](https://github.com/Mustafa-Esoofally/Invoice-payment-agent) Gmail OAuth intake, attachment processing and invoice extraction on a FastAPI backend, with a Next.js interface for transaction status. ### AI Podcast Generator Turns the day's news into a narrated podcast: scrape, script, voice. Extended from a Groq template. Links: [Repository](https://github.com/Mustafa-Esoofally/podcast-engine-groq) Collects web content with Firecrawl, writes a script with Groq and produces audio with ElevenLabs, with generation progress shown in the UI.