Библиотека · Ассистенты и боты в мессенджерах

AI Executive Assistant — проект-ассистент

Строитель120 минОбновлено: октябрь 2026
55 из 105 в библиотеке

Модуль: 9. Продвинутые возможности | Время: ~30 мин теории + 90 мин практики

Суть урока

Представь личного помощника который никогда не спит, читает все входящие письма, готовится к встречам раньше тебя, и каждое утро кладёт тебе на стол уже переваренную сводку дня. Это не фантастика — это AI Executive Assistant которого ты построишь за этот урок. Подход универсальный: ту же логику можно собрать и на Trigger.dev, как в примерах ниже, и на готовых средствах Claude (см. блок «Готовые пути» ниже).

Термины урока: workflow (воркфлоу — рабочий процесс), agent (агент — автономный исполнитель), API (эй-пи-ай — интерфейс программирования), MCP (эм-си-пи — протокол контекста модели), prompt (промпт — запрос к AI), scheduled task (запланированная задача), cron (крон — планировщик задач по расписанию), token (токен — единица текста для AI).

Ключевые концепции

  • Архитектура многофункционального AI-ассистента
  • Email Monitor, Meeting Prep, Daily Brief, Task Manager как отдельные воркфлоу
  • Интеграция с реальными инструментами через MCPs
  • Деплой с расписанием и нотификациями в Telegram

Теория

Зачем Executive Assistant как проект для всего пройденного

🎨 Образ: Финальный экзамен в кулинарной школе — ты не готовишь отдельные блюда, ты готовишь полноценный ужин из пяти блюд. Нарезка, соусы, тайминг, подача — всё одновременно. Executive Assistant — это твой выпускной ужин из кода.

К этому моменту ты знаешь: воркфлоу, суб-агенты, деплой на Trigger.dev, безопасность, управление контекстом, GitHub. Executive Assistant — это проект который объединяет всё это вместе в нечто реально полезное для себя.

Это не игрушка. Это система которую ты сможешь использовать каждый день. Её можно показать как пример своей работы: "Вот что я собрал для себя".


Что умеет Executive Assistant

🎨 Образ: Дежурный диспетчер на пульте — сортирует все входящие звонки 24 часа в сутки, передаёт срочное сразу боссу, рутинное обрабатывает сам, несущественное откладывает до утра. Ты никогда не пропустишь важное — даже ночью.

Мониторинг email:

  • Проверяет почту каждые 15-30 минут
  • Классифицирует: срочное / важное / можно подождать / спам
  • На простые автоматические запросы отвечает сам (подтверждение встречи, стандартные вопросы)
  • Важное — помечает и отправляет тебе уведомление в Telegram

Подготовка к встречам (Meeting Prep):

  • Читает твой Google Calendar
  • За час до встречи: кто участники? Что компания делает? О чём мы говорили в прошлый раз?
  • Генерирует бриф: контекст, ключевые вопросы, цели встречи
  • Отправляет тебе в Telegram

Daily Brief:

  • Каждое утро в 8:00
  • Собирает: важные письма за ночь, встречи на сегодня, незакрытые задачи
  • Пишет сводку в одном сообщении — 5 минут чтения вместо часа разгребания

Task Manager:

  • Ведёт список задач в Notion или Google Docs
  • Напоминает о дедлайнах
  • Автоматически закрывает задачи когда видит подтверждение в email

Архитектура системы

🎨 Образ: Ресторанная кухня с отдельными цехами — горячий, холодный, кондитерский. Каждый цех работает по своему расписанию, со своим оборудованием. Шеф-повар (Trigger.dev) координирует всех. Гость (ты) получает готовое блюдо — не знает про цеха.

Код
┌─────────────────────────────────────────────────┐
│              Executive Assistant                  │
├──────────────┬──────────────┬────────────────────┤
│ Email Monitor│ Meeting Prep │   Daily Brief       │
│              │              │                     │
│ Trigger:     │ Trigger:     │ Trigger:            │
│ каждые 30мин │ -1 час до    │ ежедневно 08:00     │
│              │ встречи      │                     │
│ Инструменты: │ Инструменты: │ Инструменты:        │
│ Gmail MCP    │ Calendar MCP │ Gmail + Calendar    │
│              │ Research API │ Notion MCP          │
├──────────────┴──────────────┴────────────────────┤
│              Task Manager                         │
│ Trigger: ручной или по email-триггеру             │
│ Инструменты: Notion MCP                           │
├─────────────────────────────────────────────────┤
│           Notifications Layer                     │
│           Telegram Bot                            │
└─────────────────────────────────────────────────┘

Каждый блок — отдельный воркфлоу на Trigger.dev. Они не мешают друг другу и могут запускаться параллельно.


Готовые пути: расписание без своего сервера

Прежде чем писать воркфлоу с нуля, посмотри, что уже умеют готовые средства Claude (по состоянию на октябрь 2026; актуальное: Актуальное сейчас):

  • Routines в Claude Code — задачи в облаке по расписанию, по вызову API или по событиям GitHub; работают при выключенном компьютере. Создаются через /schedule или на claude.ai/code/routines. Доступны на платных тарифах, статус research preview.
  • Задачи по расписанию в приложении для компьютера — запуск на твоём компьютере с доступом к локальным файлам.
  • /loop — повтор промпта внутри открытой сессии.
  • Claude Cowork — режим для работы со знаниями (не с кодом): умеет запускать задачи по расписанию (ежедневно, еженедельно, ежемесячно), например утренние брифинги и сводки.
  • Коннекторы к Gmail, Google Calendar, Google Drive и другим сервисам подключаются как MCP.

Свой воркфлоу на Trigger.dev нужен, когда требуется полный контроль: свой сервер, свои интеграции, нестандартная логика. Подробнее о расписаниях: Loop и scheduled tasks.


Интеграции и MCPs

Gmail через MCP:

Вместо прямой работы с Gmail API (которая требует OAuth-настройки), используешь MCP который уже это реализовал:

javascript
// В воркфлоу на Trigger.dev:
const emails = await gmail.listMessages({
  query: "is:unread after:" + yesterday,
  maxResults: 50
});

Google Calendar через MCP:

javascript
const meetings = await calendar.listEvents({
  timeMin: new Date().toISOString(),
  timeMax: endOfDay.toISOString(),
});

Notion через MCP:

javascript
// Создать задачу:
await notion.createPage({
  parent: { database_id: TASKS_DB_ID },
  properties: {
    Name: { title: [{ text: { content: taskName } }] },
    Status: { select: { name: "Todo" } },
    Due: { date: { start: dueDate } }
  }
});

Telegram для нотификаций:

javascript
await fetch(`https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`, {
  method: "POST",
  body: JSON.stringify({
    chat_id: CHAT_ID,
    text: briefText,
    parse_mode: "Markdown"
  })
});

Daily Brief — подробная архитектура

🎨 Образ: Адъютант который каждое утро кладёт на стол генерала одну страницу: «Вот три пожара, вот встречи дня, вот три задачи». Генерал пьёт кофе и уже в курсе — без часа разгребания докладов. Daily Brief — это та самая страница.

Это самый простой для понимания воркфлоу и хорошая точка входа для практики.

javascript
// src/trigger/daily-brief.ts (задачи лежат в папке /trigger)
import { schedules } from "@trigger.dev/sdk";

export const dailyBrief = schedules.task({
  id: "daily-brief",
  cron: {
    pattern: "0 8 * * 1-5",  // Пн-Пт в 08:00
    timezone: "America/Toronto"  // укажи свой часовой пояс (по умолчанию cron считается по UTC)
  },
  
  run: async (payload, { ctx }) => {
    
    // 1. Собрать данные параллельно
    const [emails, meetings, tasks] = await Promise.all([
      getUnreadEmails({ since: "24h", maxCount: 20 }),
      getTodayMeetings(),
      getOpenTasks({ priority: "high" })
    ]);
    
    // 2. Отдать агенту для анализа
    const result = await generateText({
      model: anthropic("claude-sonnet-5-5"),  // Sonnet 5.5 на октябрь 2026, актуальные ID моделей: Актуальное сейчас
      prompt: `
        Ты личный ассистент. Создай краткий Daily Brief.
        
        ВХОДЯЩИЕ ПИСЬМА (${emails.length}):
        ${emails.map(e => `- От: ${e.from}, Тема: ${e.subject}`).join('\n')}
        
        ВСТРЕЧИ СЕГОДНЯ:
        ${meetings.map(m => `- ${m.time}: ${m.title} с ${m.attendees}`).join('\n')}
        
        ОТКРЫТЫЕ ЗАДАЧИ (высокий приоритет):
        ${tasks.map(t => `- ${t.name} (дедлайн: ${t.due})`).join('\n')}
        
        Формат: 
        1. 🔴 Срочно (требует внимания сегодня)
        2. 📅 Встречи дня
        3. ✅ Фокус задачи
        Максимум 200 слов.
      `
    });
    
    // 3. Отправить в Telegram
    await sendTelegram(result.text);
    
    return { sent: true, timestamp: new Date().toISOString() };
  }
});

Безопасность ассистента

🎨 Образ: Нотариус с ограниченной доверенностью — может читать документы и заверять стандартные, но не может продавать квартиры и снимать деньги со счёта. Даёшь ровно те права, которые нужны для задачи — не больше.

Ассистент имеет доступ к личным данным: письмам, встречам, задачам. Это требует особого внимания:

  1. Минимальные разрешения: Gmail MCP только с разрешением "read", не "full access", если ассистент не должен отправлять письма
  2. Изолированный Telegram bot: отдельный бот только для этого ассистента, не тот что используешь для чего-то ещё
  3. Логи: записывай что агент делал — на случай если что-то пошло не так
  4. Фильтрация PII: перед отправкой данных в LLM — убедись что там нет паспортных данных, банковских реквизитов клиентов
  5. Тест на sandbox-данных: первый раз запускай на тестовом почтовом ящике
  6. Письма — недоверенный текст: во входящем письме может быть спрятана инструкция для ассистента (prompt injection). Не давай ассистенту отправлять письма и удалять данные без твоего подтверждения. Подробнее: защита от prompt injection

Практика

Задание: Создать воркфлоу Daily Brief

  1. Настрой проект:

    bash
    mkdir executive-assistant && cd executive-assistant
    npx trigger.dev@latest init
  2. Создай базовый Daily Brief без реальных интеграций (используй mock-данные):

    javascript
    // src/trigger/daily-brief.ts
    const mockEmails = [
      { from: "[email protected]", subject: "Вопрос по проекту" },
      { from: "[email protected]", subject: "Статус апдейт" }
    ];
    const mockMeetings = [
      { time: "10:00", title: "Созвон с командой", attendees: "3 человека" }
    ];
  3. Напиши промпт для Daily Brief — используй шаблон из урока

  4. Запусти локально:

    bash
    npx trigger.dev@latest dev
  5. Вызови воркфлоу вручную через Trigger.dev dashboard и посмотри результат в логах

  6. Bonus: Подключи реальный Telegram bot (создай через @BotFather) и получи первый Daily Brief в мессенджер


Шаблон: Daily Routine промпт для Executive Assistant

Используй этот промпт как основу для ежедневного ассистента. Адаптируй под свои задачи:

Напиши в чат
Ты мой персональный Executive Assistant. Каждое утро ты готовишь Daily Brief.

ПРОЦЕСС:
1. Проверь непрочитанные email за последние 12 часов
2. Прочитай календарь на сегодня
3. Проверь открытые задачи с высоким приоритетом

ФОРМАТ DAILY BRIEF:

🔴 СРОЧНО (требует ответа до 12:00):
- [список срочных писем/задач с контекстом]

📅 ВСТРЕЧИ СЕГОДНЯ:
- [время] — [название] — [кто участвует] — [о чём (1 строка)]

✅ ФОКУС НА СЕГОДНЯ (топ-3 задачи):
1. [задача] — [почему важна] — [дедлайн]
2. ...
3. ...

📬 ОСТАЛЬНЫЕ ПИСЬМА (можно после обеда):
- [краткое содержание каждого]

💡 РЕКОМЕНДАЦИЯ:
[Один совет на основе расписания: "У тебя 3 встречи подряд с 14 до 17 — 
заблокируй 13:30-14:00 для подготовки"]

Максимум 250 слов. Без воды. Только actionable информация.

Инструменты и ресурсы

  • Trigger.dev — платформа для воркфлоу и расписаний
  • Gmail API — программный доступ к почте — developers.google.com/gmail/api
  • Google Calendar API — программный доступ к календарю — developers.google.com/calendar
  • Gmail MCP — интеграция с почтой через MCP (упрощает OAuth)
  • Google Calendar MCP — интеграция с календарём через MCP
  • Notion — база задач и заметок — notion.com
  • Notion MCP — интеграция с Notion через MCP
  • @BotFather в Telegram — создание Telegram бота для нотификаций
  • Anthropic SDK — для AI-генерации текста внутри воркфлоу

Ключевые выводы

Executive Assistant — это не один агент, это система из четырёх воркфлоу которые работают независимо и делают разные вещи. Daily Brief — лучшая точка входа: простой, полезный прямо сейчас, и хорошо объясняет клиентам что такое AI-автоматизация. Доступ к личным данным = усиленная ответственность за безопасность. Минимальные разрешения, изолированные токены, логи.


Связанные уроки

  • Loop и scheduled tasks: как настроить расписание для Daily Brief и Meeting Prep
  • MCP глубже: подключение Gmail, Calendar, Notion через MCP-серверы

Что дальше

→ Loop и scheduled tasks: когда что использовать

Отметка хранится только в этом браузере и никуда не отправляется. Мой прогресс