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
- Navegue até a aba Chat na interface do Gradio
- Envie seu arquivo de calendário (.ics) para fornecer compromissos existentes (opcional)
- 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" - Receba respostas inteligentes que combinam IA conversacional com recursos de agendamento de tarefas
- Visualize cronogramas formatados com saída de tabela rica e indicadores de status
Uso da Ferramenta MCP
- Em qualquer chatbot ou plataforma de agentes compatível com MCP:
use yuga-planner mcp tool Task Description: [Your task description] - Anexe seu arquivo de calendário (.ics) para fornecer compromissos existentes
- 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
| Recurso | Descrição | Status |
|---|---|---|
| Análise de Projetos em Markdown | Extração automática de tarefas de documentos Markdown | ✅ |
| Análise de Tarefas com LLM | LLamaIndex + Nebius AI para decomposição e estimativa de tarefas | ✅ |
| Agendamento Baseado em Restrições | Motor de otimização Timefold para atribuições de cronograma | ✅ |
| Correspondência de Habilidades | Detecção de habilidades necessárias para cada tarefa | ✅ |
| Dependências de Tarefas | Modelagem de fluxo de trabalho sequencial | ✅ |
| Suporte a Múltiplos Projetos | Carregar e agendar vários projetos simultaneamente | ✅ |
| Streaming de Logs ao Vivo | Progresso do solver em tempo real e atualizações de status na interface | ✅ |
| Parâmetros Configuráveis | Número de funcionários e duração do cronograma ajustáveis | ✅ |
| Carregamento de Projetos de Exemplo | Projetos de amostra pré-configurados para testes rápidos | ✅ |
| Análise e Fixação de Calendário | Extrai e preserva eventos de calendário de arquivos .ics nos horários originais | ✅ |
| Aplicação de Horário Comercial | Respeita 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 Semana | Restrição rígida que impede atribuições de tarefas nos fins de semana | ✅ |
| Endpoint MCP | Endpoint de API para integração de ferramentas MCP com suporte a calendário | ✅ |
| Interface de Chat com MCP | Interface unificada de IA conversacional + agendamento de tarefas | ✅ |
| Chamadas de Ferramentas em Streaming | Processamento em tempo real de chamadas de ferramentas da API Nebius | ✅ |
| Detecção Inteligente de Ferramentas | Detecção baseada em palavras-chave para solicitações de agendamento | ✅ |
| Reparo e Recuperação JSON | Tratamento robusto de dados de streaming malformados | ✅ |
| Sistema de Resposta Dupla | API 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
.icsopcionais - 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
- Clone o repositório:
git clone https://github.com/blackopsrepl/yuga-planner.git cd yuga-planner - Crie um ambiente virtual:
make venv - Instale as dependências:
make install - Configure as variáveis de ambiente / segredos:
make setup-secrets # Then edit tests/secrets/cred.py to add your API credentials - Execute o aplicativo:
make run
Docker (Local/GitHub)
- Construa a imagem:
docker build -t yuga-planner . - 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.