hr-ai-agent

0

Описание

Proactive HR AI Agent for Sber Hackathon URFU 2025

Языки

  • Python100%
README.md

🤖 HR AI Агент для Сбера

Проактивный AI-агент для мониторинга и анализа HR-данных

Python GigaChat Streamlit


📋 Содержание

  1. Какую проблему решает агент
  2. Почему это AI-агент, а не чат-бот
  3. Почему нельзя заменить Perplexity или промптом
  4. Архитектура проактивного поведения
  5. Использование GigaChat
  6. Запуск проекта
  7. Структура проекта
  8. Ограничения и планы развития

🎯 Какую проблему решает агент

Проблема

HR-аналитики ежедневно сталкиваются с информационной перегрузкой:

  • Десятки источников новостей о рынке труда
  • Англоязычные источники требуют перевода
  • Нет времени на постоянный мониторинг
  • Важные тренды и риски остаются незамеченными
  • Реактивная работа вместо проактивной аналитики

Решение

HR AI Агент автоматически:

ФункцияОписание
🔄 МониторингНепрерывно отслеживает RSS-ленты и источники данных
🌐 ПереводПереводит англоязычный контент на русский через GigaChat
🏷️ КлассификацияКатегоризирует контент по HR-тематикам
📊 Анализ трендовВыявляет изменения и аномалии
💡 Генерация инсайтовСоздаёт рекомендации БЕЗ запроса пользователя
🚨 АлертыУведомляет о рисках в зависимости от роли пользователя

🤖 Почему это AI-агент, а не чат-бот

Определение AI-агента

AI-агент — это автономная система, которая:

  1. Имеет состояние (State) — помнит предыдущие наблюдения
  2. Следует правилам (Rules) — применяет доменную логику
  3. Выполняет действия (Actions) — инициативно генерирует выводы

Сравнение

ХарактеристикаЧат-ботПоисковикHR AI Агент
Инициатива❌ Ждёт запроса❌ Ждёт запроса✅ Проактивен
Память❌ Сессионная❌ Нет✅ Персистентная
Контекст времени❌ Нет❌ Нет✅ Историческое сравнение
Персонализация📝 Через промпты❌ Нет⚙️ Через конфигурацию
Выходные данные💬 Ответы🔗 Ссылки💡 Инсайты + 🚨 Алерты
Доменная логика❌ Общая❌ Общая✅ HR-специфичная

Ключевые компоненты агента в коде


🚫 Почему нельзя заменить Perplexity или промптом

Критические отличия

ВозможностьPerplexity/ChatGPTHR AI Агент
Запомнить, что вчера было 10 новостей о сокращениях, а сегодня — 50❌ Нет памяти✅ Персистентное состояние
Автоматически проверить источники каждые 15 минут❌ Только по запросу✅ Фоновый мониторинг
Применить правила "если риск > 0.7 и тема = увольнения, то алерт"❌ Нет правил✅ Конфигурируемые правила
Адаптировать выходные данные под роль HR-аналитика vs HR-руководителя❌ Промпты✅ Профили ролей
Выявить аномалию: "В январе упоминаний burnout было 5%, сейчас — 25%"❌ Нет временного контекста✅ Анализ трендов

Почему промпт недостаточен

# ЧТО МОЖЕТ ПРОМПТ: "Проанализируй эти 5 статей о HR и выдели ключевые тренды" # ЧЕГО ПРОМПТ НЕ МОЖЕТ: 1. Запустить себя каждые 15 минут без участия пользователя 2. Сравнить текущие данные с данными недельной давности 3. Принять решение о создании алерта на основе конфигурации пользователя 4. Накопить статистику для выявления аномалий 5. Адаптировать поведение под роль без изменения промпта

Формула отличия

AI Agent = State + Rules + Autonomous Actions Chatbot = Stateless + Generic + Reactive

⚙️ Архитектура проактивного поведения

Цикл работы агента

┌─────────────────────────────────────────────────────────────┐ │ ЦИКЛ АГЕНТА (каждые N минут) │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 1. МОНИТОРИНГ 2. ОБРАБОТКА │ │ ┌──────────────┐ ┌──────────────┐ │ │ │ RSS-ленты │───────▶│ Перевод │ │ │ │ Mock-данные │ │ (GigaChat) │ │ │ └──────────────┘ └──────┬───────┘ │ │ │ │ │ 3. КЛАССИФИКАЦИЯ 4. АНАЛИЗ │ │ ┌──────────────┐ ┌──────────────┐ │ │ │ HR-тематика │◀───────│ Сравнение с │ │ │ │ (GigaChat) │───────▶│ историей │ │ │ └──────────────┘ └──────┬───────┘ │ │ │ │ │ 5. РЕШЕНИЕ 6. ДЕЙСТВИЕ │ │ ┌──────────────┐ ┌──────────────┐ │ │ │ Применение │───────▶│ Инсайт или │ │ │ │ правил │ │ Алерт │ │ │ └──────────────┘ └──────────────┘ │ │ │ └─────────────────────────────────────────────────────────────┘

Инициативное поведение

Агент генерирует инсайты по трём триггерам:

Формат инсайта

Каждый инсайт отвечает на три вопроса:

  1. Что изменилось? — факт или наблюдение
  2. Почему это важно для HR? — бизнес-контекст
  3. Что рекомендуется сделать? — конкретное действие

⏰ Фильтрация по времени

Агент поддерживает анализ данных в заданных временных рамках:

  • последний час
  • последние 6 часов
  • последние 24 часа
  • последняя неделя
  • последний месяц
  • всё время

🔄 Состояние агента

Агент хранит состояние между циклами:

  • наблюдения;
  • инсайты;
  • тренды;
  • активные алерты;
  • обработанные источники.

Предусмотрен ручной сброс состояния через интерфейс, что позволяет:

  • очистить кэш;
  • повторно обработать данные;
  • использовать проект для демонстрации.

📊 Источники данных

В демо-версии используются:

  • RSS-ленты (HBR, SHRM, Reddit, Hacker News и др.)
  • Mock-данные для демонстрации работы агента

Mock-данные:

  • используются только для демонстрации;
  • могут быть включены или отключены;
  • не влияют на архитектуру агента.

Важно:
Новости используются исключительно как внешний сигнал.
HR-аналитика в production-версии работает с внутренними HR-системами.


📈 Метрики

В интерфейсе отображаются:

  • количество выполненных циклов мониторинга;
  • общее число наблюдений;
  • количество инсайтов;
  • количество активных алертов.

Метрика «Циклов мониторинга» отражает число запусков агента, а не количество RSS-источников.


🖥 Интерфейс

Проект включает web-интерфейс на Streamlit:

  • настройка роли пользователя;
  • выбор приоритетных тем;
  • установка чувствительности к рискам;
  • выбор временного диапазона;
  • запуск цикла анализа;
  • просмотр инсайтов, алертов и трендов.

🔮 Использование GigaChat

Интеграция

GigaChat используется для четырёх задач:

ЗадачаМетодОписание
Перевод
translate_to_russian()
Перевод англоязычного контента
Классификация
classify_hr_topic()
Определение HR-тематики
Генерация инсайтов
generate_insight()
Создание рекомендаций
Анализ трендов
analyze_trend()
Сравнение с историей

Пример использования


🚀 Запуск проекта

Требования

  • Python 3.10+
  • GigaChat API credentials

Установка

Переменные окружения


📁 Структура проекта

hr_agent/ ├── README.md # Документация (этот файл) ├── requirements.txt # Зависимости Python ├── .env.example # Пример переменных окружения │ ├── config/ │ └── settings.py # Конфигурация приложения │ ├── src/ │ ├── agent/ │ │ ├── core.py # Ядро агента │ │ ├── state.py # Управление состоянием │ │ └── rules.py # HR-правила и логика │ │ │ ├── sources/ │ │ ├── rss_fetcher.py # Получение RSS-лент │ │ └── mock_data.py # Генератор тестовых данных │ │ │ ├── processing/ │ │ ├── translator.py # Перевод через GigaChat │ │ ├── classifier.py # Классификация контента │ │ └── analyzer.py # Анализ трендов │ │ │ ├── insights/ │ │ └── generator.py # Генерация инсайтов │ │ │ └── api/ │ └── gigachat.py # Обёртка над GigaChat API │ ├── dashboard/ │ └── app.py # Streamlit-дашборд │ └── data/ └── state.json # Персистентное состояние агента

⚠️ Ограничения и планы развития

Текущие ограничения

ОграничениеОписаниеПланируемое решение
Mock-данныеЧасть данных генерируется для демоПодключение реальных HR API
Один пользовательНет многопользовательского режимаДобавление авторизации
Локальное хранилищеJSON-файл для состоянияPostgreSQL / Redis
Ручной запуск цикловТребуется нажатие кнопкиCelery / cron-задачи

Mock-данные в проекте

Для демонстрации используются сгенерированные данные:

В production эти данные заменяются реальными источниками:

  • HeadHunter API
  • LinkedIn Job Postings
  • Корпоративные HR-системы

План развития

  1. v1.1 — Интеграция с реальными HR API
  2. v1.2 — Многопользовательский режим с ролями
  3. v1.3 — Прогнозирование трендов (ML-модели)
  4. v1.4 — Интеграция с корпоративными мессенджерами (Telegram, Slack)
  5. v2.0 — RAG-модуль для работы с внутренними HR-документами

👥 Команда

Проект создан для хакатона Сбер 2024


📄 Лицензия

MIT License