Yuga Planner

Planejamento de agendamento de tarefas com IA usando LLamaIndex e Timefold: divide uma descrição de tarefa e a agenda em torno de um calendário existente

Documentação


title: Yuga Planner emoji: 🐍 colorFrom: purple colorTo: gray sdk: docker app_port: 7860 license: apache-2.0 tags: ["agent-demo-track"]

Yuga Planner 🐍

Este projeto foi desenvolvido para o Hackathon de Agentes MCP da Hugging Face!

O Yuga Planner é um protótipo de sistema neuro-simbólico: ele fornece uma plataforma de agendamento de equipes e alocação de tarefas baseada em agentes, construída sobre o Gradio.

Ele recebe uma descrição de projeto, a divide em tarefas acionáveis por meio de um agente LLamaIndex e, em seguida, usa o Timefold para gerar cronogramas ideais de funcionários para projetos complexos.

🚀 Experimente Agora

Demonstração ao Vivo: https://huggingface.co/spaces/blackopsrepl/yuga-planner

Código-Fonte no GitHub: https://github.com/blackopsrepl/yuga-planner

Uso da Interface de Chat MCP

  1. Navegue até a aba Chat na interface do Gradio
  2. Envie seu arquivo de calendário (.ics) para fornecer compromissos existentes (opcional)
  3. Digite sua solicitação de agendamento usando linguagem natural:
    "Create a new EC2 instance on AWS"
    "Create a Svelte UI that allows me to query a postgresql database"
    "Develop a chatbot UI based on Gradio"
    
  4. Receba respostas inteligentes que combinam IA conversacional com recursos de agendamento de tarefas
  5. Visualize cronogramas formatados com saída de tabela rica e indicadores de status

Uso da Ferramenta MCP

  1. Em qualquer chatbot ou plataforma de agentes compatível com MCP:
    use yuga-planner mcp tool
    Task Description: [Your task description]
    
  2. Anexe seu arquivo de calendário (.ics) para fornecer compromissos existentes
  3. Receba um cronograma otimizado que integra sua nova tarefa aos eventos de calendário existentes

Arquitetura

O Yuga Planner segue uma arquitetura orientada a serviços com clara separação de responsabilidades:

Camada de Serviços Principais

  • DataService: Gerencia carregamento, processamento e conversão de formatos de dados de várias fontes (Markdown, calendários)
  • ScheduleService: Orquestra a geração de cronogramas, gerenciamento do solver e consulta de soluções
  • StateService: Gerenciamento centralizado de estado para rastreamento de tarefas e armazenamento de cronogramas
  • LoggingService: Streaming de logs em tempo real para feedback na interface e depuração
  • MockProjectService: Fornece dados de projetos de exemplo para testes e demonstrações
  • MCPClientWrapper: Gerencia a funcionalidade do servidor MCP e as definições de ferramentas

Componentes de Integração MCP

  • ToolCallAssembler: Processa deltas de chamadas de ferramentas em streaming da API Nebius em chamadas de ferramentas completas
  • ToolCallProcessor: Executa chamadas de ferramentas concluídas via backend MCP com funcionalidade de reparo JSON
  • Interface de Chat: IA conversacional unificada + agendamento de tarefas com detecção inteligente de ferramentas
  • Manipulador de Streaming: Processamento de respostas em tempo real com indicadores de progresso e recuperação de erros

Componentes do Sistema

  • Interface Gradio: Interface web moderna com atualizações em tempo real e visualização interativa de cronogramas
  • Agente Compositor de Tarefas: Usa LLamaIndex + Nebius AI para decomposição e estimativa inteligente de tarefas
  • Solver de Restrições: Motor de otimização Timefold para atribuições ideais de tarefas a funcionários
  • Integração MCP: Endpoint do Model Context Protocol para integração com fluxos de trabalho de agentes

🌟 Principais Recursos

RecursoDescriçãoStatus
Análise de Projetos em MarkdownExtração automática de tarefas de documentos Markdown
Análise de Tarefas com LLMLLamaIndex + Nebius AI para decomposição e estimativa de tarefas
Agendamento Baseado em RestriçõesMotor de otimização Timefold para atribuições de cronograma
Correspondência de HabilidadesDetecção de habilidades necessárias para cada tarefa
Dependências de TarefasModelagem de fluxo de trabalho sequencial
Suporte a Múltiplos ProjetosCarregar e agendar vários projetos simultaneamente
Streaming de Logs ao VivoProgresso do solver em tempo real e atualizações de status na interface
Parâmetros ConfiguráveisNúmero de funcionários e duração do cronograma ajustáveis
Carregamento de Projetos de ExemploProjetos de amostra pré-configurados para testes rápidos
Análise e Fixação de CalendárioExtrai e preserva eventos de calendário de arquivos .ics nos horários originais
Aplicação de Horário ComercialRespeita o horário de trabalho das 9:00 às 18:00 com exclusão do intervalo de almoço
Prevenção de Agendamento nos Fins de SemanaRestrição rígida que impede atribuições de tarefas nos fins de semana
Endpoint MCPEndpoint de API para integração de ferramentas MCP com suporte a calendário
Interface de Chat com MCPInterface unificada de IA conversacional + agendamento de tarefas
Chamadas de Ferramentas em StreamingProcessamento em tempo real de chamadas de ferramentas da API Nebius
Detecção Inteligente de FerramentasDetecção baseada em palavras-chave para solicitações de agendamento
Reparo e Recuperação JSONTratamento robusto de dados de streaming malformados
Sistema de Resposta DuplaAPI Nebius com fallback MCP para confiabilidade

🎯 Dois Modos de Uso

O Yuga Planner opera como dois sistemas separados que atendem a diferentes casos de uso:

1. 💬 Interface de Chat MCP

Finalidade: IA conversacional com recursos integrados de agendamento de tarefas

  • Acesso: Aba Chat na interface do Gradio
  • Entrada: Solicitações em linguagem natural + arquivos de calendário .ics opcionais
  • Recursos:
    • Detecção inteligente de ferramentas com base em palavras-chave de agendamento
    • Respostas em streaming com montagem de chamadas de ferramentas em tempo real
    • Formatação de tabela rica para resultados de cronograma
    • Sistema de resposta dupla (API Nebius + fallback MCP)
  • Caso de Uso: Agendamento interativo por meio de conversa natural

2. 🤖 Ferramenta Pessoal MCP

Finalidade: Agendamento de tarefas individuais integrado a calendários pessoais

  • Acesso: Por meio de chatbots e plataformas de agentes compatíveis com MCP
  • Entrada: Anexar arquivos de calendário .ics + descrições de tarefas em linguagem natural
  • Equipe: Agenda com base no seu calendário pessoal e compromissos existentes
  • Caso de Uso: Produtividade pessoal e planejamento de tarefas em torno de compromissos existentes

Exemplo de Uso MCP:

User: use yuga-planner mcp tool
Task Description: Create a new EC2 instance on AWS
[Attaches calendar.ics file]

Tool Response: Optimized schedule created - EC2 setup task assigned to
available time slots around your existing meetings

🧩 Detalhes Técnicos da Interface de Chat MCP

Detecção Inteligente de Ferramentas

A interface de chat detecta automaticamente solicitações de agendamento usando análise de palavras-chave:

scheduling_keywords = [
    'schedule', 'task', 'calendar', 'plan', 'organize',
    'meeting', 'appointment', 'project', 'deadline',
    'create', 'setup', 'implement', 'develop'
]

Processamento de Chamadas de Ferramentas em Streaming

  • Montagem de Deltas: Coleta mais de 200 deltas de streaming em chamadas de ferramentas completas
  • Reparo JSON: Trata JSON malformado de respostas em streaming
  • Indicadores de Progresso: Feedback em tempo real durante o processamento de ferramentas
  • Proteção contra Timeout: Timeout de 60 segundos para operações MCP

Sistema de Resposta Dupla

  • Primário: API Nebius com recursos de chamada de ferramentas
  • Fallback: Invocação direta do backend MCP quando a montagem de ferramentas falha
  • Recuperação de Erros: Tratamento abrangente de erros e degradação graciosa

Recursos:

  • Aceita arquivos de calendário e descrições de tarefas do usuário via interface de chat
  • Analisa eventos de calendário existentes e novos requisitos de tarefas
  • Suporte completo à resolução de cronogramas - gera atribuições de tarefas otimizadas
  • Retorna cronogramas resolvidos completos integrados ao calendário pessoal
  • Projetado para integração perfeita com chatbots e fluxos de trabalho de agentes

Limitações Atuais:

  • Suporte a múltiplos fusos horários: Atualmente opera em um contexto de fuso horário único com conversão UTC para consistência. Eventos de calendário de diferentes fusos horários são normalizados para o mesmo contexto de agendamento.

Consulte o CHANGELOG.md para obter detalhes sobre as alterações recentes relacionadas ao MCP.

Trabalho em Andamento

  • 🔧 Reformulação da interface Gradio: Experiência do usuário aprimorada e melhorias visuais
  • 🔍 Migração para modelos Pydantic: Validação de dados e serialização com segurança de tipos
  • ⚡ Suporte aprimorado a fusos horários: Integração de calendário com múltiplos fusos horários para agendamento internacional

Trabalho Futuro

Roteiro de Integração do Sistema

  • Motor de agendamento unificado que possa lidar tanto com gerenciamento de equipes quanto com produtividade pessoal em uma única interface
  • Fluxos de trabalho híbridos onde tarefas pessoais possam ser coordenadas com projetos de equipe
  • Compartilhamento de dados entre sistemas entre projetos de demonstração web e calendários MCP pessoais
  • Alternância perfeita entre modos de gerenciamento de equipe e planejamento de tarefas individuais

Aprimoramentos de Recursos Principais

  • Suporte a Múltiplas Ferramentas: Estender a interface de chat para suportar ferramentas MCP adicionais além do agendamento
  • Integração de Calendário: Integração direta com serviços de calendário (Google, Outlook)
  • Otimização de Desempenho: Montagem de streaming aprimorada para chamadas de ferramentas grandes
  • RAG: Validação da decomposição e estimativa de tarefas em relação à literatura relevante do setor
  • Dependência de tarefas mais granular: Representação de tarefas em um DAG em vez de uma lista para permitir sobreposição dentro de projetos, quando viável/conveniente
  • Entrada de issues do GitHub: Em vez de processar Markdown diretamente, cria uma lista analisando issues
  • Aprendizado por reforço: Treinar o agente para melhorar a decomposição e estimativa de tarefas a partir do histórico do GitHub (por exemplo, diffs em carimbos de data/hora, comentários em issues etc.)

Pré-requisitos (Local/GitHub)

  • Python 3.10
  • Java 17+
  • Docker (opcional, para implantação em contêiner)
  • Credenciais da API Nebius (para recursos com LLM)

Instalação

  1. Clone o repositório:
    git clone https://github.com/blackopsrepl/yuga-planner.git
    cd yuga-planner
    
  2. Crie um ambiente virtual:
    make venv
    
  3. Instale as dependências:
    make install
    
  4. Configure as variáveis de ambiente / segredos:
    make setup-secrets
    # Then edit tests/secrets/cred.py to add your API credentials
    
  5. Execute o aplicativo:
    make run
    

Docker (Local/GitHub)

  1. Construa a imagem:
    docker build -t yuga-planner .
    
  2. Execute o contêiner:
    docker run -p 7860:7860 yuga-planner
    

Dependências Python

Consulte requirements.txt para a lista completa.


Licença

Este projeto é licenciado sob a Licença Apache 2.0. Consulte LICENSE.txt para obter detalhes.


Agradecimentos