DeepTask Sandbox ドキュメント
AIアシスタントを環境に接続する、セキュアでローカルファーストのサンドボックスです。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用のインストーラーをダウンロードして実行してください。
ステップ2: アシスタントを接続
DeepTaskはAIとの通信に**Model Context Protocol(MCP)**を使用します。お使いの環境に合わせた手順に従ってください:
| 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を使って、
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のフォルダを持つ仮想ファイルシステム(ルート/)へのオプションの読み書きアクセス。ホストファイルシステムへのアクセスなし;パスはルートを脱出できません。fsEnabledとfsWriteEnabledを使用。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"; |
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。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つにマージ。 |
splitPdf | PDFをページに分割。ページあたり1ファイル: 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ベースの包括)。 |
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でフレームを抽出。順番に各タイムスタンプごとに1画像を返します。 |
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キーが必要。format: "password"でsettingsSchemaにapiKeyを保存;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(画像→画像)。プロバイダー: openai、stability、replicate、fal、together、nano-banana、ideogram。fal、nano-bananaでのみ画像→画像。 |
generateVideo | ビデオ生成。prompt、オプションimage。プロバイダー: runway、replicate、luma、kling、minimax、seedance、veo3。解像度はプロバイダー固有(例: ratio、resolution)。 |
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回限り)。パラメータ:type、content、オプションsandboxId。batch_call_tools— 1つのリクエストで複数ツールを呼び出し。list_more_tools— インストール済みツールの一覧。ツール構文にはget_tool_script_syntaxを使用(セクション:document、image、audio、video、model、archive)。
サポートとリソース
- ウェブサイト: deeptask.ai
- メール: [email protected]
- 問題: アプリのフィードバックメニューからバグ報告や機能リクエストをお送りください。