Документация DeepTask Sandbox
Безопасная среда с приоритетом локального выполнения, подключающая вашего AI-ассистента к вашему окружению.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-приложение
Скачайте и запустите установщик для вашей операционной системы.
Шаг 2: Подключите ассистента
DeepTask использует Model Context Protocol (MCP) для связи с вашим AI. Следуйте инструкциям для вашей среды:
| OS | Тип установки | Путь к команде |
|---|---|---|
| Windows | System (Default) | C:\Program Files\deeptask-sandbox\resources\mcp\deeptask-mcp.exe |
| Windows | User | C:\Users\<user>\AppData\Local\Programs\deeptask-sandbox\resources\mcp\deeptask-mcp.exe |
| macOS | Standard | /Applications/DeepTask Sandbox.app/Contents/Resources/mcp/deeptask-mcp |
| Linux | Standard | /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(используйте["*"]для всех хостов). При блокировке URLfetch()выбрасывает исключение до запроса — оборачивайте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"; |
tool | tool.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]
- Инциденты: Сообщайте об ошибках и запрашивайте функции через меню обратной связи приложения.