Skip to content

Project: Enterprise Agents - ReportMind #54

@jcrmovired

Description

@jcrmovired

Track

Enterprise Agents (M365 Agents Toolkit)

Project Name

ReportMind

GitHub Username

@jcrmovired

Repository URL

https://github.com/jcrmovired/reportmind-agents-league

Project Description

ReportMind is an enterprise AI agent that makes complex Excel reports instantly queryable through natural language. Instead of requiring SQL, dashboards, or manual data exploration, the agent ingests real multi-sheet spreadsheets, transforms them into structured semantic datasets, and uses retrieval-augmented generation (RAG) to deliver accurate, grounded answers directly from company data.

The solution addresses one of the biggest unsolved challenges in enterprise AI: understanding tabular data at scale. Large, messy spreadsheets are automatically split, chunked, embedded, and indexed in a vector knowledge base, enabling the agent to locate KPIs, explain results, and generate visualizations in a single conversational turn. Answers are always based on retrieved data — never on model hallucinations.

Built with the Microsoft 365 Agents Toolkit and designed for Microsoft Teams, ReportMind allows users to upload Excel files in chat, ask business questions in plain language, and receive trustworthy insights and on-demand charts without leaving the conversation.

By turning static reports into a conversational analytical experience, ReportMind dramatically reduces the time spent searching for numbers, eliminates fragile data pipelines for ad-hoc analysis, and brings LLM-powered intelligence to the real source of truth in most enterprises: spreadsheets.

Demo Video or Screenshots

Demo Video: https://youtu.be/ZjXh1TUnp78
Screenshots: https://github.com/jcrmovired/reportmind-agents-league/tree/main/Images

Primary Programming Language

TypeScript/JavaScript

Key Technologies Used

  • Microsoft 365 Agents Toolkit (Node.js) for the agent runtime and orchestration
  • Azure OpenAI (GPT-4o) for reasoning, tool calling, and grounded response generation
  • Azure OpenAI Embeddings for semantic search
  • ChromaDB as the vector store for RAG over tabular data
  • Python for the data processing and tool layer
  • openpyxl + LangChain for Excel ingestion, transformation, and chunking
  • Model Context Protocol (MCP) with a custom matplotlib server for on-demand chart generation
  • Azure Bot Service + Azure App Service for deployment and hosting
  • Microsoft Teams as the primary conversational interface

Submission Type

Team (2-4 members)

Team Members

Submission Requirements

  • My project meets the track-specific challenge requirements
  • My repository includes a comprehensive README.md with setup instructions
  • My code does not contain hardcoded API keys or secrets
  • I have included demo materials (video or screenshots)
  • My project is my own work with proper attribution for any third-party code
  • I agree to the Code of Conduct
  • I have read and agree to the Disclaimer
  • My submission does NOT contain any confidential, proprietary, or sensitive information
  • I confirm I have the rights to submit this content and grant the necessary licenses

Quick Setup Summary

Setup for Microsoft Teams (from VS Code)

  • Install prerequisites (node.js, Python, Microsoft 365 Agents Toolkit VS Code extensión
  • Configure environment variables:
    • env/.env.playground.user
    • env/.env.local.user
  • Install dependencies:
    • npm install
    • pip install -r Python-api/requirements.txt
  • Open the project in VS Code
  • Press F5
  • Select “Debug in Teams”
  • Sign in to Microsoft 365 when prompted
  • Wait for the toolkit to set up everything
  • Start chatting with the agent in Teams
  • Upload an .xlsx file in the conversation to trigger ingestion and enable queries and chart generation

Technical Highlights

  • RAG for complex Excel
    Multi-sheet ingestion with semantic chunking for accurate retrieval.
  • Tabular → semantic transformation
    Preserves business context instead of flattening tables.
  • Two-phase tool reasoning loop
    Tool decision → execution → grounded response in one turn.
  • In-chat Excel ingestion
    Upload, process, and query files directly in Teams.
  • On-demand charts via MCP
    LLM-generated specs converted into ready-to-use visualizations.
  • Auto-summarizing conversational memory
    Long sessions without token overflow or context loss.
  • Microsoft 365 native architecture
    Built for Teams with Azure-hosted, enterprise-ready deployment.
  • Modular polyglot design
    Node.js orchestration + Python data and visualization tools.

Challenges & Learnings

  • Rapidly adopting the Microsoft 365 Agents Toolkit
    Built a production-ready agent while learning a new SDK, its architecture, and its cloud deployment model.

  • Deep integration with Microsoft Teams
    Enabled file upload, conversational workflows, and in-chat visualization as a native user experience.

  • Overcoming LLM context window limits for tabular data
    Implemented a preprocessing, chunking, and RAG pipeline to make large Excel reports queryable.

  • Working with unstructured, real-world spreadsheets
    Designed a strategy to extract and reconstruct business meaning from messy and layout-driven Excel files.

  • Orchestrating a polyglot agent architecture
    Seamlessly combined Node.js for agent orchestration with Python for data processing, retrieval, and chart generation.

Contact Information

johanna.capote@movired.com

Country/Region

Spain

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions