Deliverable Mode
Когда VibeOS работает внутри мессенджер-шлюза (Slack, Discord, Telegram, WhatsApp, Signal и т.д.), он может доставлять сгенерированные файлы непосредственно в чат — не как пути, которые пользователь должен копировать, а как нативные вложения.
Диаграмма отображается как встроенное изображение. PDF-отчёт — как
файл для скачивания. Электронная таблица загружается как .xlsx. Агенту
не нужно писать тег MEDIA: или делать что-то особенное — он просто
генерирует файл и упоминает его абсолютный путь в ответе. Шлюз извлекает
путь из текста, удаляет его из видимого сообщения и загружает файл
нативно.
Как это работает
Всё складывается из трёх частей:
-
У агента есть инструменты, создающие файлы.
execute_codeдля диаграмм через matplotlib, навыкlatex-pdf-reportдля PDF-файлов, навыкpowerpointдля презентаций,image_generateдля изображений,text_to_speechдля аудио и так далее. -
Шлюз сканирует ответы агента на наличие путей к файлам. Любой абсолютный путь (
/tmp/...) или путь относительно домашней директории (~/...), заканчивающийся поддерживаемым расширением, извлекается. Пути внутри блоков кода и инлайн-кода игнорируются, чтобы примеры кода никогда не искажались. -
Шлюз обрабатывает файлы по типу. Изображения встраиваются инлайн, где это поддерживается платформой; видео встраиваются инлайн; аудио направляется в голосовые/аудио-вложения; всё остальное загружается как файловое вложение.
Поддерживаемые расширения файлов
| Категория | Расширения | Доставка |
|---|---|---|
| Изображения | .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, базы данных, поиск по рабочему пространству |
| GitHub | Issues, PR, комментарии, поиск по репозиториям за пределами gh CLI |
| Linear | Тикеты, проекты, циклы |
| Slack | Поиск по всему рабочему пространству, чтение других каналов |
| Gmail | Работа с входящими, отправка писем, управление метками |
| Salesforce | Лиды, возможности, данные об аккаунтах |
| Snowflake / BigQuery | SQL-запросы к хранилищам данных |
| 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. Тот же
конечный результат.