Документация DeepTask Sandbox

Безопасная среда с приоритетом локального выполнения, подключающая вашего AI-ассистента к вашему окружению.
9 min read
Updated

DeepTask Sandbox — это кроссплатформенное desktop-приложение для запуска инструментов автоматизации в безопасных изолированных средах. Создано на Electron и интегрировано с MCP (Model Context Protocol) сервером на Go. Оно даёт вашему AI-ассистенту безопасную среду для инструментов на вашем компьютере. Через естественный диалог (через MCP) ассистент может запускать инструменты, использовать одобренные локальные возможности и координировать рабочие процессы надёжно — с опциональным выполнением в браузере (Puppeteer), когда задаче нужна реальная страница.

Примечание: DeepTask Sandbox бесплатен для личного и образовательного использования. Коммерческое использование требует платной лицензии с ежемесячной подпиской по количеству пользователей.

Основные принципы

  • Приватность прежде всего: Вся автоматизация выполняется локально. Ваши данные никогда не покидают ваш компьютер.
  • Готов к ассистенту: Нативно интегрирован с Model Context Protocol (MCP). Работает с Claude, Cursor и другими.
  • Инструментальная песочница: Запускайте Node-инструменты для backend-автоматизации и Puppeteer-инструменты для браузерной автоматизации и веб-скрапинга — каждый в изолированном рабочем процессе.
  • Встроенные ограничения: Планирование (cron), история задач, лимиты ресурсов (память 64–2048 МБ, пороги CPU), белые списки доменов и зашифрованные настройки/учётные данные.

01. Быстрый старт

На запуск уходит менее пяти минут.

Шаг 1: Установите desktop-приложение

Скачайте и запустите установщик для вашей операционной системы.

Скачать DeepTask Sandbox

Шаг 2: Подключите ассистента

DeepTask использует Model Context Protocol (MCP) для связи с вашим AI. Следуйте инструкциям для вашей среды:

OSТип установкиПуть к команде
WindowsSystem (Default)C:\Program Files\deeptask-sandbox\resources\mcp\deeptask-mcp.exe
WindowsUserC:\Users\<user>\AppData\Local\Programs\deeptask-sandbox\resources\mcp\deeptask-mcp.exe
macOSStandard/Applications/DeepTask Sandbox.app/Contents/Resources/mcp/deeptask-mcp
LinuxStandard/opt/deeptask-sandbox/resources/mcp/deeptask-mcp

Пример конфигурации (Claude Desktop):

{
  "mcpServers": {
    "deeptask": {
      "command": "PASTE_THE_COMMAND_PATH_HERE"
    }
  }
}

Шаг 3: Первый инструмент

После подключения попросите ассистента создать и запустить небольшой инструмент в песочнице.

Попробуйте этот запрос:

"Используя DeepTask, напиши небольшой node инструмент, который получает заголовок страницы https://example.com и возвращает его структурированным выводом."


02. Руководство по инструментам

Инструменты DeepTask мощные, типобезопасные и легко создаются. Ваш AI может сгенерировать их за вас, или вы можете написать самостоятельно.

Структура инструмента

Каждый инструмент состоит из двух частей: Метаданные (конфигурация) и Основная функция (логика). Имена инструментов должны быть в snake_case (строчные буквы, цифры, подчёркивания; напр. web_scraper). Инструменты должны быть ESM (.mjs) модулями; поддерживается Node.js 24+.

import { browser } from "@deeptask/sandbox";

export const metadata = {
    name: "web_scraper",
    type: "puppeteer", // "node" for pure logic, "puppeteer" when you need a real browser
    description: "Extracts basic info from a webpage",
    networkEnabled: true,
    domainsAllowed: ["example.com"],
    inputSchema: {
        type: "object",
        properties: {
            url: {type: "string", format: "uri"}
        },
        required: ["url"]
    }
};

export async function main({url}) {
    const page = browser.getPage();
    await page.goto(url, {waitUntil: "networkidle0"});

    const title = await page.title();
    return {
        content: [{type: "text", text: `Scraped: ${title}`}],
        structuredContent: {title},
        isError: false
    };
}

Расширенные возможности

Загрузка файлов

Можно определить входы, принимающие файлы (PDF, изображения и т.д.) через JSON Schema: contentEncoding: "base64", contentMediaType (напр. application/pdf) и maxLength для ограничения размера (base64 примерно на 33% больше; напр. ~5MB → maxLength: 6990506).

inputSchema: {
    properties: {
        document: {
            type: "string",
            contentEncoding: "base64",
            contentMediaType: "application/pdf",
            maxLength: 6990506,  // ~5MB file
            description: "Upload a PDF for analysis"
        }
    }
}

В инструменте декодируйте через atob(input.document) (или new Uint8Array(atob(input.document).split('').map(c=>c.charCodeAt(0))) для бинарных) и обрабатывайте. Для лимитов размера: maxLength = Math.ceil(bytes/3)*4 (напр. 1MB → 1398101, 5MB → 6990506).

Зашифрованные настройки

Храните конфиденциальные настройки надёжно. Пользователи вводят значения в UI, они шифруются при хранении. Используйте format: "password" для полей пароля.

settingsSchema: {
    properties: {
        apiKey: {
            type: "string",
            format: "password",
            title: "API Key"
        }
    }
}

03. Безопасность и изоляция

Эти меры включены во все планы. DeepTask создан для надёжности и безопасности:

  • Белые списки доменов: Инструменты не могут обращаться к сети, пока вы не зададите networkEnabled: true и domainsAllowed (используйте ["*"] для всех хостов). При блокировке URL fetch() выбрасывает исключение до запроса — оборачивайте fetch() в try/catch.
  • Лимиты ресурсов: Настраиваемая память (64–2048 МБ; по умолчанию 256 МБ для Node, 512 МБ для Puppeteer) и порог CPU (50–100%, по умолчанию 95%). Инструменты сверх лимита автоматически завершаются.
  • Защита таймаутом: Настраивается на инструмент через defaultTimeout (по умолчанию 5 минут).
  • Файловая система: Опциональный доступ чтения/записи к виртуальной ФС (корень /) с папками /Temp, /Documents, /Images, /Videos, /Audios, /Downloads. Доступа к хост-ФС нет; пути не могут выйти за пределы корня. Используйте fsEnabled и fsWriteEnabled. Используйте fs/promises — синхронные методы вроде readFileSync заблокированы. Файлы сохраняются между вызовами инструментов; /Temp очищается при запуске и каждые 24 часа (максимум 48 часов).

04. Pro функции

Умное планирование

Автоматизируйте рабочие процессы встроенной поддержкой Cron.

  • Ежедневные отчёты: 0 9 * * * (каждое утро в 9:00)
  • Еженедельная очистка: 0 0 * * 0 (каждое воскресенье в полночь)

05. API и справочник инструментов

Sandbox API

Импорт из @deeptask/sandbox:

APIОписание
browser(Puppeteer only) browser.getPage() → primary Page; browser.getPages() → all pages. Use import { browser } from "@deeptask/sandbox";
tooltool.self.settings (encrypted at rest), tool.call(name, params, sandboxId?), tool.chain([{name, params, sandboxId?}, ...]). Use import { tool } from "@deeptask/sandbox";
document, image, audio, video, model, archiveВстроенные API (см. разделы ниже). Все возвращают { files, data, isError, message }.
language, timeZoneЛокаль и часовой пояс песочницы.
fs / fs/promises(при fsEnabled) Виртуальная ФС под / с /Temp, /Documents, /Images и т.д. Используйте fs/promises — синхронные методы заблокированы.

Puppeteer: page.goto() принимает только http/https. Оборачивайте в try/catch. Для байтов ответа используйте response.buffer() (не body()).

document

import { document } from "@deeptask/sandbox"

Конвертация документов, работа с PDF и полнотекстовый поиск. Все методы возвращают { files, data, isError, message }. Всегда проверяйте isError перед использованием files или data.

MethodОписание
convertDocumentКонвертация между форматами. Пары: md↔html, pdf↔html, docx/pptx/epub↔html, html→docx/pdf/pptx/epub, csv↔xlsx. Опции зависят от пары (напр. html→pdf: format, printBackground; pdf→html: startPage, endPage).
mergePdfОбъединение нескольких PDF в один.
splitPdfРазбиение PDF по страницам. Пропустите pages для одного файла на страницу. Результаты в /Temp/.
compressPdfСжатие PDF. Опции: quality (screen, ebook, printer, prepress).
fillPdfFormЗаполнение полей формы PDF. Ключи — сырые имена полей PDF (с учётом регистра).
getPdfInfoПолучить количество страниц, заголовок, автора и т.д.
getPdfFormСписок полей формы в PDF.
extractArticleИзвлечение основного текста статьи (Readability). Поддержка md, pdf, docx, pptx, epub, html. Возвращает data.text; проверяйте пустую строку.
extractPagesИзвлечение диапазона страниц из PDF (1-based включительно).
searchFilesПолнотекстовый поиск по индексированным файлам. Индексируется только /Documents. Возвращает data.hits, data.total. Используйте limit (по умолчанию 20).
searchInFileПоиск в одном файле. Поддержка текста и офисных типов. offset/limit для постраничного вывода результатов.

Примечание: protectPdf не реализован — не используйте.

image

import { image } from "@deeptask/sandbox"

Обработка изображений с Sharp/libvips. Все методы возвращают { files, data, isError, message }.

MethodОписание
resizeImageИзменение размера. Опции: fit (cover, contain, fill, inside, outside), withoutEnlargement.
compressImageПерекодирование для уменьшения размера; метаданные сохраняются.
minifyImageУдаление только метаданных.
cropImageОбрезка по left, top, width, height.
rotateImageПоворот на угол.
flipImage / flopImageОтразить по горизонтали или вертикали.
convertImageКонвертация формата. Поддержка png, jpeg, gif, tiff, webp, ico, icns; SVG как источник.
removeBackgroundПростое сопоставление цвета (не AI). PNG на выходе. threshold 0–255 (по умолчанию 10).
compositeImageНаложение изображений в left, top, опционально opacity.
mergeImagesКомбинирование изображений. Опции: layout (horizontal, vertical, grid), gap, columns, maxWidth, maxHeight.
getImageInfoВозвращает data: { width, height, format, channels, hasAlpha, space }.
blurImage, sharpenImageРазмытие или резкость; sigma контролирует силу.
grayscaleImage, trimImage, normalizeImage, extendImage, modulateImage, negateImage, tintImageОперации с цветом и макетом.

audio

import { audio } from "@deeptask/sandbox"

Конвертация и обработка аудио. Все методы возвращают { files, data, isError, message }.

MethodОписание
convertAudioКонвертация формата. Поддержка mp3, wav, aac, ogg, flac, m4a, wma, opus.
trimAudioОбрезка по start, end или duration (секунды).
concatAudioКонкатенация аудиофайлов.
setAudioVolumeУстановка громкости (число).
setAudioTempoТемп 0.5–2.0 (ограничение FFmpeg).
fadeAudioЗатухание входа/выхода. Опции: type, start, duration.
normalizeAudioНормализация громкости. target LUFS (по умолчанию -16).
removeAudioSilenceУдаление тишины. threshold dB (по умолчанию -50), duration секунд (по умолчанию 0.5).
mixAudioСведение нескольких аудиофайлов. Опционально volumes.
getAudioInfoВозвращает data: { duration, sampleRate, channels, bitrate, format, codec }.
textToSpeechТекст-в-речь. Только macOS/Windows. format: mp3, wav, ogg.

Примечание: voiceToText не реализован — не используйте.

video

import { video } from "@deeptask/sandbox"

Конвертация, обрезка и эффекты видео. Все методы возвращают { files, data, isError, message }.

MethodОписание
convertVideoКонвертация формата. Поддержка mp4, webm, avi, mov, mkv, m4v, flv, wmv.
compressVideoСжатие. Опции: crf (18–28, по умолчанию 23), maxWidth, maxHeight, videoBitrate, audioBitrate.
trimVideoОбрезка по start, end или duration.
concatVideosКонкатенация видеофайлов.
extractAudioTrackИзвлечение аудио в mp3, wav, aac, m4a, ogg, flac.
extractFrameИзвлечение одного кадра в timestamp.
screenshotVideoИзвлечение кадров в нескольких timestamps. Возвращает одно изображение на timestamp по порядку.
videoToGifКонвертация видео в GIF. Опции: start, duration, fps, width, height.
generateGifСоздание GIF из последовательности изображений. Опции: fps, width, height, loop.
burnSubtitlesВживление файла субтитров в видео.
extractSubtitlesИзвлечение субтитров в srt или vtt.
cropVideo, rotateVideoОбрезка или поворот (90, 180, 270).
setVideoSpeed, setVideoVolume, fadeVideoЭффекты скорости, громкости и затухания.
getVideoInfoВозвращает data: { duration, width, height, fps, videoBitrate, audioBitrate, format, ... }.

model

import { model } from "@deeptask/sandbox"

Генерация текста LLM, генерация изображений и видео. Требуются networkEnabled и API-ключи. Сохраняйте apiKey в settingsSchema с format: "password"; доступ через tool.self.settings.apiKey. Никогда не хардкодируйте ключи.

MethodОписание
generateTextЗавершение чата. messages, опционально system, options: { provider, apiKey, baseURL }. Провайдеры: openai, anthropic, google, cohere, mistral, openrouter, grok, deepseek, groq. По умолчанию: openai (gpt-4o-mini).
generateImageГенерация изображений. prompt, опционально image (image-to-image). Провайдеры: openai, stability, replicate, fal, together, nano-banana, ideogram. Image-to-image только с fal, nano-banana.
generateVideoГенерация видео. prompt, опционально image. Провайдеры: runway, replicate, luma, kling, minimax, seedance, veo3. Разрешение зависит от провайдера (напр. ratio, resolution).

archive

import { archive } from "@deeptask/sandbox"

Архивирование и распаковка файлов. Все методы возвращают { files, data, isError, message }.

MethodОписание
zipFilesУпаковка файлов в один архив. Выход: archive-{timestamp}.zip в /Temp/. Файлы в корне zip (структура папок не сохраняется).
unzipFileРаспаковка. filter: подстроки имён файлов для включения. files[] содержит виртуальные пути извлечённых файлов; структура папок сохраняется.

MCP-инструменты для ассистентов

Ваш AI-ассистент взаимодействует с DeepTask через эти MCP-инструменты:

  • install_tool — Установить инструмент для повторного использования. Затем запускать через call_tool.
  • uninstall_tool — Удалить установленный инструмент.
  • call_tool — Запустить установленный инструмент. Синхронный/асинхронный по defaultTimeout инструмента (>60s = async).
  • get_call_tool_result — Опрос результата асинхронного call_tool (по taskId).
  • eval_tool_script — Запустить инструмент разово без установки. Параметры: type, content, опционально sandboxId.
  • batch_call_tools — Вызов нескольких инструментов в одном запросе.
  • list_more_tools — Список установленных инструментов. Для синтаксиса инструмента используйте get_tool_script_syntax (разделы: document, image, audio, video, model, archive).

Поддержка и ресурсы

  • Сайт: deeptask.ai
  • Email: [email protected]
  • Инциденты: Сообщайте об ошибках и запрашивайте функции через меню обратной связи приложения.