DeepTask Sandbox ドキュメント

AIアシスタントを環境に接続する、セキュアでローカルファーストのサンドボックスです。
4 min read
Updated

DeepTask Sandboxは、安全で隔離された環境でオートメーションツールを実行するためのクロスプラットフォームデスクトップアプリケーションです。Electronで構築され、GoベースのMCP(Model Context Protocol)サーバーと統合され、AIアシスタントがマシン上で安全でツール可能な環境を提供します。自然な会話を通じて(MCP経由)、アシスタントはツールを実行し、承認されたローカル機能にアクセスし、タスクで実際のページが必要な場合はオプションのブラウザベース実行(Puppeteer)で、信頼性高くワークフローをオーケストレーションできます。

: DeepTask Sandboxは個人および教育目的の使用は無料です。商用利用にはユーザー数に基づく月額サブスクリプションの有料ライセンスが必要です。

基本原則

  • プライバシー第一: すべてのオートメーションはローカルで実行されます。データはマシンから一切送信されません。
  • アシスタント対応: Model Context Protocol(MCP)用にネイティブ構築。Claude、Cursorなどとシームレスに連携します。
  • ツール可能なサンドボックス: バックエンドオートメーション用のNodeツールと、ブラウザオートメーションおよびWebスクレイピング用のPuppeteerツールを、それぞれ隔離されたワーカープロセスで実行します。
  • 組み込みガードレール: スケジューリング(cron)、タスク履歴、リソース制限(メモリ64〜2048MB、CPU閾値)、ドメイン許可リスト、暗号化された設定/認証情報。

01. クイックスタート

5分以内に起動できます。

ステップ1: デスクトップアプリをインストール

お使いのOS用のインストーラーをダウンロードして実行してください。

DeepTask Sandboxをダウンロード

ステップ2: アシスタントを接続

DeepTaskはAIとの通信に**Model Context Protocol(MCP)**を使用します。お使いの環境に合わせた手順に従ってください:

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を使って、https://example.comのタイトルを取得して構造化された出力として返す小さなnodeツールを書いてください。"


02. ツールガイド

DeepTaskのツールは強力で、型安全で、構築が簡単です。AIが生成することも、自分で書くこともできます。

ツールの構造

すべてのツールはメタデータ(設定)とメイン関数(ロジック)の2つの部分で構成されます。ツール名は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
    };
}

高度な機能

ファイルアップロード

JSON Schemaを使用して、ファイル(PDF、画像など)を受け入れる入力を定義できます: 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 MB; Nodeデフォルト256 MB、Puppeteer 512 MB)とCPU閾値(50〜100%、デフォルト95%)。制限を超えるツールは自動終了します。
  • タイムアウト保護: defaultTimeoutでツールごとに設定可能(デフォルト5分)。
  • ファイルシステム: /Temp/Documents/Images/Videos/Audios/Downloadsのフォルダを持つ仮想ファイルシステム(ルート/)へのオプションの読み書きアクセス。ホストファイルシステムへのアクセスなし;パスはルートを脱出できません。fsEnabledfsWriteEnabledを使用。fs/promisesを使用 — readFileSyncなどの同期メソッドはブロックされています。ファイルはツール呼び出し間で保持されます;/Tempはアプリ起動時および24時間ごとにクリーンアップされます(最大48時間)。

04. Pro機能

スマートスケジューリング

組み込みCronサポートでワークフローを自動化します。

  • 日次レポート: 0 9 * * *(毎朝9時)
  • 週次クリーンアップ: 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。fs/promisesを使用 — 同期メソッドはブロックされています。

Puppeteer: page.goto()はhttp/httpsのみ受け付けます。try/catchでラップしてください。応答バイトにはresponse.buffer()を使用(body()ではない)。

document

import { document } from "@deeptask/sandbox"

ドキュメント変換、PDF操作、全文検索。すべてのメソッドは{ files, data, isError, message }を返します。filesまたはdataを使用する前に常にisErrorを確認してください。

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を1つにマージ。
splitPdfPDFをページに分割。ページあたり1ファイル: pagesを省略。出力は/Temp/へ。
compressPdfPDF圧縮。オプション: quality (screen, ebook, printer, prepress)。
fillPdfFormPDFフォームフィールドを入力。キーは生のPDFフィールド名(大文字小文字を区別)。
getPdfInfoページ数、タイトル、著者などを取得。
getPdfFormPDF内のフォームフィールド一覧。
extractArticle主要記事テキストを抽出(Readability)。md、pdf、docx、pptx、epub、htmlに対応。data.textを返します;空文字列を確認してください。
extractPagesPDFからページ範囲を抽出(1ベースの包括)。
searchFilesインデックスされたファイルの全文検索。/Documentsのみインデックスされます。 data.hitsdata.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メタデータのみ削除。
cropImagelefttopwidthheightでクロップ。
rotateImage角度で回転。
flipImage / flopImage水平または垂直にミラー。
convertImage形式変換。png、jpeg、gif、tiff、webp、ico、icnsに対応;ソースとしてSVG。
removeBackgroundシンプルなカラーマッチ(AIではない)。PNG出力。threshold 0〜255(デフォルト10)。
compositeImagelefttopに画像をオーバーレイ、オプションopacity
mergeImages画像を結合。オプション: layout (horizontal, vertical, grid)、gapcolumnsmaxWidthmaxHeight
getImageInfodata: { 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に対応。
trimAudiostartendまたはduration(秒)でトリム。
concatAudioオーディオファイルを連結。
setAudioVolumeボリューム設定(数値)。
setAudioTempoテンポ0.5〜2.0(FFmpeg制限)。
fadeAudioフェードイン/アウト。オプション: typestartduration
normalizeAudioラウドネス正規化。target LUFS(デフォルト-16)。
removeAudioSilence無音を削除。threshold dB(デフォルト-50)、duration秒(デフォルト0.5)。
mixAudio複数オーディオファイルをミックス。オプションvolumes
getAudioInfodata: { 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)、maxWidthmaxHeightvideoBitrateaudioBitrate
trimVideostartendまたはdurationでトリム。
concatVideosビデオファイルを連結。
extractAudioTrackオーディオをmp3、wav、aac、m4a、ogg、flacに抽出。
extractFrametimestampで単一フレームを抽出。
screenshotVideo複数のtimestampsでフレームを抽出。順番に各タイムスタンプごとに1画像を返します。
videoToGifビデオをGIFに変換。オプション: startdurationfpswidthheight
generateGif画像シーケンスからGIFを生成。オプション: fpswidthheightloop
burnSubtitles字幕ファイルをビデオに焼き付け。
extractSubtitles字幕をsrtまたはvttに抽出。
cropVideo, rotateVideoクロップまたは回転(90、180、270)。
setVideoSpeed, setVideoVolume, fadeVideo速度、ボリューム、フェード効果。
getVideoInfodata: { duration, width, height, fps, videoBitrate, audioBitrate, format, ... }を返します。

model

import { model } from "@deeptask/sandbox"

LLMテキスト生成、画像生成、ビデオ生成。networkEnabledとAPIキーが必要。format: "password"settingsSchemaapiKeyを保存;tool.self.settings.apiKeyでアクセス。キーをハードコードしないでください。

Method説明
generateTextチャット補完。messages、オプションsystemoptions: { provider, apiKey, baseURL }。プロバイダー: openai、anthropic、google、cohere、mistral、openrouter、grok、deepseek、groq。デフォルト: openai (gpt-4o-mini)。
generateImage画像生成。prompt、オプションimage(画像→画像)。プロバイダー: openai、stability、replicate、fal、together、nano-banana、ideogram。fal、nano-bananaでのみ画像→画像。
generateVideoビデオ生成。prompt、オプションimage。プロバイダー: runway、replicate、luma、kling、minimax、seedance、veo3。解像度はプロバイダー固有(例: ratioresolution)。

archive

import { archive } from "@deeptask/sandbox"

ファイルのZIP圧縮と解凍。すべてのメソッドは{ files, data, isError, message }を返します。

Method説明
zipFilesファイルを1つのアーカイブにZIP。出力: /Temp/archive-{timestamp}.zip。ZIPルートのファイル(ディレクトリ構造は保持されません)。
unzipFile解凍。filter: 含めるファイル名の部分文字列。files[]は抽出されたファイルの仮想パスを含む;ディレクトリ構造は保持。

アシスタント用MCPツール

AIアシスタントはこれらのMCPツールを通じてDeepTaskとやり取りします:

  • install_tool — 再利用のためツールをインストール。その後call_toolで実行。
  • uninstall_tool — インストール済みツールを削除。
  • call_tool — インストール済みツールを実行。ツールのdefaultTimeoutに応じて同期/非同期(>60秒=非同期)。
  • get_call_tool_result — 非同期call_toolの結果をポーリング(taskIdで)。
  • eval_tool_script — インストールせずに1回だけツールを実行(1回限り)。パラメータ: typecontent、オプションsandboxId
  • batch_call_tools — 1つのリクエストで複数ツールを呼び出し。
  • list_more_tools — インストール済みツールの一覧。ツール構文にはget_tool_script_syntaxを使用(セクション: documentimageaudiovideomodelarchive)。

サポートとリソース

  • ウェブサイト: deeptask.ai
  • メール: [email protected]
  • 問題: アプリのフィードバックメニューからバグ報告や機能リクエストをお送りください。