Инструменты и toolsets
Инструменты — функции, которые расширяют агента. Они собраны в логические toolsets, которые можно включать и выключать per-platform.
Доступные инструменты
У VibeOS большой встроенный реестр: веб-поиск, браузер, терминал, файлы, память, делегирование, RL, доставка сообщений, Home Assistant и многое другое.
Межсессионная память Honcho — плагин memory-провайдера (plugins/memory/honcho/), не встроенный toolset. Установка: Плагины.
Категории верхнего уровня:
| Категория | Примеры | Описание |
|---|---|---|
| Веб | web_search, web_extract | Поиск в интернете и извлечение содержимого страницы. |
| X Search | x_search | Поиск постов и тем в X (Twitter) через встроенный xAI tool x_search (SuperGrok OAuth или XAI_API_KEY); по умолчанию выключен — включите в vibeos tools → 🐦 X (Twitter) Search. |
| Терминал и файлы | terminal, process, read_file, patch | Команды и работа с файлами. |
| Браузер | browser_navigate, browser_snapshot, browser_vision | Интерактивная автоматизация браузера (текст + vision). |
| Медиа | vision_analyze, image_generate, text_to_speech | Мультимодальный анализ и генерация. |
| Оркестровка | todo, clarify, execute_code, delegate_task | Планирование, уточнения, код и субагенты. |
| Память | memory, session_search | Долговременная память и поиск по сессиям. |
| Автоматизация | cronjob, send_message | Cron (create/list/update/pause/resume/run/remove) и исходящие сообщения. |
| Интеграции | ha_*, MCP | Home Assistant, MCP и прочее. |
Авторитетный реестр — в справочнике инструментов и справочнике toolsets.
Платные подписчики Nous Portal получают веб-поиск, image gen, TTS и браузер через Tool Gateway — отдельные API-ключи не нужны. Включить: vibeos model, точечная настройка: vibeos tools.
Использование наборов инструментов
# Use specific toolsets
vibeos chat --toolsets "web,terminal"
# See all available tools
vibeos tools
# Configure tools per platform (interactive)
vibeos tools
Общие наборы инструментов включают web, search, terminal, file, browser, vision, image_gen, skills, tts, todo, memory, session_search, cronjob, code_execution, delegation, clarify, homeassistant, messaging, spotify, discord, discord_admin, debugging и safe.
Полный набор инструментов см. в Справочнике по наборам инструментов, включая предустановки платформ, такие как vibeos-cli, vibeos-telegram, и динамические наборы инструментов MCP, такие как mcp-<server>`.
Серверные части терминала
Инструмент терминала может выполнять команды в различных средах:
| Бэкэнд | Описание | Вариант использования |
|---|---|---|
local | Запустить на своем компьютере (по умолчанию) | Разработка, доверенные задачи |
docker | Изолированные контейнеры | Безопасность, воспроизводимость |
ssh | Удаленный сервер | Песочница: держите агента подальше от собственного кода |
singularity | HPC контейнеры | Кластерные вычисления, без корней |
modal | Облачное исполнение | Бессерверное масштабирование |
daytona | Рабочая среда облачной песочницы | Постоянные удаленные среды разработки |
Конфигурация
# In ~/.vibeos/config.yaml
terminal:
backend: local # or: docker, ssh, singularity, modal, daytona
cwd: "." # Working directory
timeout: 180 # Command timeout in seconds
Серверная часть Docker
terminal:
backend: docker
docker_image: python:3.11-slim
Один постоянный контейнер, общий для всего процесса. VibeOS запускает один долгоживущий контейнер при первом использовании (docker run -d ... sleep 2h) и направляет каждый терминал, файл и вызов execute_code через docker exec в этот же контейнер. Изменения рабочего каталога, установленные пакеты, настройки среды и файлы, записанные в /workspace, переносятся от одного вызова инструмента к другому через субагенты /new, /reset и delegate_task в течение всего срока существования процесса VibeOS. Контейнер останавливается и удаляется при выключении.
Это означает, что серверная часть Docker ведет себя как постоянная виртуальная машина в песочнице, а не как новый контейнер для каждой команды. Если вы используете pip install foo один раз, он будет действовать до конца сеанса. Если вы используете cd /workspace/project, последующие вызовы ls увидят этот каталог. См. Конфигурация → Docker Backend для получения полной информации о жизненном цикле и флага container_persistent, который контролирует, будут ли /workspace и /root сохраняться после перезапуска VibeOS.
SSH Бэкэнд
Рекомендуется в целях безопасности — агент не может изменять собственный код:
terminal:
backend: ssh
# Set credentials in ~/.vibeos/.env
TERMINAL_SSH_HOST=my-server.example.com
TERMINAL_SSH_USER=myuser
TERMINAL_SSH_KEY=~/.ssh/id_rsa
Сингулярность/Apptainer
# Pre-build SIF for parallel workers
apptainer build ~/python.sif docker://python:3.11-slim
# Configure
vibeos config set terminal.backend singularity
vibeos config set terminal.singularity_image ~/python.sif
Модальное (бессерверное облако)
uv pip install modal
modal setup
vibeos config set terminal.backend modal
Ресурсы контейнера
Настройте CPU, память, диск и постоянство для всех серверных частей контейнера:
terminal:
backend: docker # or singularity, modal, daytona
container_cpu: 1 # CPU cores (default: 1)
container_memory: 5120 # Memory in MB (default: 5GB)
container_disk: 51200 # Disk in MB (default: 50GB)
container_persistent: true # Persist filesystem across sessions (default: true)
При container_persistent: true установленные пакеты, файлы и конфигурации сохраняются в течение сеансов.
Безопасность контейнера
Все серверные части контейнеров работают с усилением безопасности:
- Корневая файловая система только для чтения (Docker)
- Все возможности Linux отключены
- Никакого повышения привилегий
- Ограничения PID (256 процессов)
- Полная изоляция пространства имен.
- Постоянное рабочее пространство через тома, недоступный для записи корневой слой.
Docker может дополнительно получить явный список разрешений env через terminal.docker_forward_env, но пересылаемые переменные видны командам внутри контейнера и должны рассматриваться как открытые для этого сеанса.
Управление фоновыми процессами
Запускайте фоновые процессы и управляйте ими:
terminal(command="pytest -v tests/", background=true)
# Returns: {"session_id": "proc_abc123", "pid": 12345}
# Then manage with the process tool:
process(action="list") # Show all running processes
process(action="poll", session_id="proc_abc123") # Check status
process(action="wait", session_id="proc_abc123") # Block until done
process(action="log", session_id="proc_abc123") # Full output
process(action="kill", session_id="proc_abc123") # Terminate
process(action="write", session_id="proc_abc123", data="y") # Send input
Режим PTY (pty=true) позволяет использовать интерактивные инструменты CLI, такие как Codex и Claude Code.
Поддержка Судо
Если для команды требуется sudo, вам будет предложено ввести пароль (кэшированный для сеанса). Или установите SUDO_PASSWORD в ~/.vibeos/.env.
На платформах обмена сообщениями, если sudo завершается неудачно, выходные данные включают подсказку о добавлении SUDO_PASSWORD к ~/.vibeos/.env.