Перейти к основному содержимому

Deliverable Mode

Когда VibeOS работает внутри мессенджер-шлюза (Slack, Discord, Telegram, WhatsApp, Signal и т.д.), он может доставлять сгенерированные файлы непосредственно в чат — не как пути, которые пользователь должен копировать, а как нативные вложения.

Диаграмма отображается как встроенное изображение. PDF-отчёт — как файл для скачивания. Электронная таблица загружается как .xlsx. Агенту не нужно писать тег MEDIA: или делать что-то особенное — он просто генерирует файл и упоминает его абсолютный путь в ответе. Шлюз извлекает путь из текста, удаляет его из видимого сообщения и загружает файл нативно.

Как это работает​

Всё складывается из трёх частей:

  1. У агента есть инструменты, создающие файлы. execute_code для диаграмм через matplotlib, навык latex-pdf-report для PDF-файлов, навык powerpoint для презентаций, image_generate для изображений, text_to_speech для аудио и так далее.

  2. Шлюз сканирует ответы агента на наличие путей к файлам. Любой абсолютный путь (/tmp/...) или путь относительно домашней директории (~/...), заканчивающийся поддерживаемым расширением, извлекается. Пути внутри блоков кода и инлайн-кода игнорируются, чтобы примеры кода никогда не искажались.

  3. Шлюз обрабатывает файлы по типу. Изображения встраиваются инлайн, где это поддерживается платформой; видео встраиваются инлайн; аудио направляется в голосовые/аудио-вложения; всё остальное загружается как файловое вложение.

Поддерживаемые расширения файлов​

КатегорияРасширенияДоставка
Изображения.png .jpg .jpeg .gif .webp .bmp .tiff .svgВстроенное отображение
Видео.mp4 .mov .avi .mkv .webmВстроенное отображение (где поддерживается)
Аудио.mp3 .wav .ogg .m4a .flacГолосовое / аудио-вложение
Документы.pdf .docx .doc .odt .rtf .txt .mdЗагрузка файла
Данные.xlsx .xls .csv .tsv .json .xml .yaml .ymlЗагрузка файла
Презентации.pptx .ppt .odpЗагрузка файла
Архивы.zip .tar .gz .tgz .bz2 .7zЗагрузка файла
Веб.html .htmЗагрузка файла

.py, .log и другие расширения исходных файлов намеренно исключены, чтобы агент не отправлял произвольные исходные файлы; если нужно передать код пользователю, используйте блок кода.

Как побудить агента создавать артефакты​

Агент не создаёт артефакты по умолчанию — он должен знать, что это нужно. Два способа подсказать ему:

На уровне сессии: попросите явно («отправь мне сравнение в виде диаграммы», «верни данные в CSV») или добавьте в свои собственные инструкции / описание личности запись, которая склоняет к ответам с артефактами на платформах мессенджеров.

На уровне проекта: добавьте склонность в AGENTS.md / CLAUDE.md / .cursorrules в проекте, с которым работает агент, в вашу глобальную персону в ~/.vibeos/SOUL.md или как именованный пресет в agent.personalities в ~/.vibeos/config.yaml (переключаемый для каждой сессии через /personality).

Механика, которую должен использовать агент, проста: сохранить файл по абсолютному пути (например, /tmp/q3-revenue.png) и упомянуть этот путь как обычный текст в ответе. Всё остальное сделает шлюз. Пути внутри блоков кода или обратных кавычек игнорируются, чтобы примеры кода никогда не искажались.

Канбан: артефакты в уведомлениях о завершении​

Если вы используете многозадачный канбан-воркфлоу VibeOS, воркеры могут прикреплять файлы-артефакты к своему вызову kanban_complete:

kanban_complete(
summary="создана диаграмма продаж за Q3 и отчёт",
artifacts=[
"/tmp/q3-revenue.png",
"/tmp/q3-report.pdf",
],
)

Когда шлюз-нотификатор доставляет сообщение «задача выполнена» тому, кто подписан на задачу в Slack/Telegram и т.д., он также загружает каждый артефакт как нативное вложение в этот чат. Человек получает результат и сводку в одном месте.

Файлы, которых нет на диске в момент срабатывания нотификатора, молча пропускаются.

Подключение других сервисов через MCP​

Помимо конвейера доставки артефактов, агент может обращаться к другим сервисам через MCP (Model Context Protocol). Экосистема MCP включает сообщественные серверы для большинства популярных инструментов — установите те, которые вам нужны:

СервисЧто открывает
NotionЧтение/запись страниц Notion, базы данных, поиск по рабочему пространству
GitHubIssues, PR, комментарии, поиск по репозиториям за пределами gh CLI
LinearТикеты, проекты, циклы
SlackПоиск по всему рабочему пространству, чтение других каналов
GmailРабота с входящими, отправка писем, управление метками
SalesforceЛиды, возможности, данные об аккаунтах
Snowflake / BigQuerySQL-запросы к хранилищам данных
Google DriveПоиск файлов, содержимое, управление доступом

Установите MCP-серверы через ~/.vibeos/config.yaml в разделе mcp_servers. См. Интеграция MCP для полного руководства по настройке.

Сравнение с Perplexity Computer в Slack​

Интеграция Perplexity Computer со Slack построена на той же идее: агент генерирует артефакт (диаграмму, PDF, слайд-шоу) и публикует его обратно в тред как нативное вложение. Deliverable Mode VibeOS предоставляет тот же пользовательский паттерн локально:

  • Генерация происходит в собственном venv / песочнице пользователя (без удалённого тенанта).
  • Файлы попадают в чат через тот же Slack API files.uploadV2.
  • Широта коннекторов обеспечивается через MCP, а не через курируемый каталог из 400 хостированных интеграций — устанавливайте только те, которые реально используете.

OAuth-токены остаются на машине пользователя в auth.json / .env. Никакого хостированного хранения токенов. Никаких мультитенантных microVM. Тот же конечный результат.