DeepTask Sandbox Dokumentation

Eine sichere, local-first Sandbox, die Ihren KI-Assistenten mit Ihrer Umgebung verbindet.
9 min read
Updated

DeepTask Sandbox ist eine plattformübergreifende Desktop-Anwendung zur Ausführung von Automatisierungswerkzeugen in sicheren, isolierten Umgebungen. Mit Electron entwickelt und in einen Go-basierten MCP (Model Context Protocol)-Server integriert, bietet sie Ihrem KI-Assistenten eine sichere, werkzeugfähige Umgebung auf Ihrer Maschine. Durch natürliche Konversation (über MCP) kann Ihr Assistent Werkzeuge ausführen, auf genehmigte lokale Funktionen zugreifen und Workflows zuverlässig orchestrieren — mit optionaler browserbasierter Ausführung (Puppeteer), wenn eine Aufgabe eine echte Seite benötigt.

Hinweis: DeepTask Sandbox ist für den privaten und Bildungsgebrauch kostenlos. Kommerzielle Nutzung erfordert eine kostenpflichtige Lizenz mit monatlicher Abonnementpreisgestaltung basierend auf der Anzahl der Benutzer.

Grundprinzipien

  • Datenschutz zuerst: Die gesamte Automatisierung läuft lokal. Ihre Daten verlassen niemals Ihre Maschine.
  • Assistentenbereit: Natürlich für das Model Context Protocol (MCP) gebaut. Funktioniert nahtlos mit Claude, Cursor und mehr.
  • Werkzeugfähige Sandbox: Führen Sie Node-Werkzeuge für Backend-Automatisierung und Puppeteer-Werkzeuge für Browser-Automatisierung und Web-Scraping aus — jeweils in isolierten Worker-Prozessen.
  • Integrierte Schranken: Planung (cron), Aufgabenverlauf, Ressourcenlimits (Speicher 64–2048 MB, CPU-Schwellen), Domain-Whitelists und verschlüsselte Einstellungen/Credentials.

01. Schnellstart

Der Einstieg dauert weniger als fünf Minuten.

Schritt 1: Desktop-App installieren

Laden Sie den Installer für Ihr Betriebssystem herunter und führen Sie ihn aus.

DeepTask Sandbox herunterladen

Schritt 2: Assistenten verbinden

DeepTask nutzt das Model Context Protocol (MCP) zur Kommunikation mit Ihrer KI. Befolgen Sie die Anweisungen für Ihre Umgebung:

OSInstallationstypBefehlsweg
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

Beispiel-Konfigurationsblock (Claude Desktop):

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

Schritt 3: Ihr erstes Werkzeug

Sobald verbunden, bitten Sie Ihren Assistenten einfach, ein kleines Werkzeug in der Sandbox zu erstellen und auszuführen.

Probieren Sie diese Eingabeaufforderung:

"Mit DeepTask schreibe ein kleines node-Werkzeug, das den Titel von https://example.com abruft und ihn als strukturierte Ausgabe zurückgibt."


02. Werkzeug-Anleitung

DeepTask-Werkzeuge sind leistungsstark, typsicher und einfach zu erstellen. Ihre KI kann sie für Sie generieren, oder Sie können sie selbst schreiben.

Anatomie eines Werkzeugs

Jedes Werkzeug besteht aus zwei Teilen: Metadata (die Konfiguration) und der Hauptfunktion (die Logik). Werkzeugnamen müssen snake_case verwenden (Kleinbuchstaben, Zahlen, Unterstriche nur; z.B. web_scraper). Werkzeuge müssen ESM (.mjs)-Module sein; Node.js 24+ wird unterstützt.

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
    };
}

Erweiterte Funktionen

Datei-Uploads

Sie können Eingaben definieren, die Dateien (PDFs, Bilder usw.) akzeptieren, über JSON Schema: contentEncoding: "base64", contentMediaType (z.B. application/pdf) und maxLength für Größenlimits (base64 ist ca. 33 % größer; z.B. ~5 MB → maxLength: 6990506).

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

In Ihrem Werkzeug mit atob(input.document) dekodieren (oder new Uint8Array(atob(input.document).split('').map(c=>c.charCodeAt(0))) für Binärdaten) und nach Bedarf verarbeiten. Für Größenlimits: maxLength = Math.ceil(bytes/3)*4 (z.B. 1 MB → 1398101, 5 MB → 6990506).

Verschlüsselte Einstellungen

Speichern Sie sensible Konfiguration sicher. Benutzer werden in der UI zur Eingabe dieser Werte aufgefordert, und sie werden im Ruhezustand verschlüsselt. Verwenden Sie format: "password" für Passwortfelder.

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

03. Sicherheit und Isolierung

Alle Pläne umfassen diese Schutzmaßnahmen. DeepTask ist für Zuverlässigkeit und Sicherheit konzipiert:

  • Domain-Whitelists: Werkzeuge können nicht auf das Netzwerk zugreifen, außer Sie setzen networkEnabled: true und legen domainsAllowed fest (nutzen Sie ["*"] für alle Hosts). Wenn eine URL blockiert ist, wirft fetch() vor jeder Anforderung — wickeln Sie fetch() in try/catch.
  • Ressourcenlimits: Konfigurierbarer Speicher (64–2048 MB; Standard 256 MB für Node, 512 MB für Puppeteer) und CPU-Schwelle (50–100 %, Standard 95 %). Werkzeuge, die die Limits überschreiten, werden automatisch beendet.
  • Timeout-Schutz: Pro Werkzeug über defaultTimeout konfigurierbar (Standard 5 Minuten).
  • Dateisystem: Optioneller Lese-/Schreibzugriff auf ein virtuelles Dateisystem (Root /) mit Ordnern /Temp, /Documents, /Images, /Videos, /Audios, /Downloads. Kein Host-Dateisystemzugriff; Pfade können den Root nicht verlassen. Verwenden Sie fsEnabled und fsWriteEnabled. Verwenden Sie fs/promises — synchrone Methoden wie readFileSync sind blockiert. Dateien bleiben über Werkzeugaufrufe erhalten; /Temp wird beim App-Start und alle 24 h bereinigt (max. Alter 48 h).

04. Pro-Funktionen

Intelligente Planung

Automatisieren Sie Ihre Workflows mit integrierter Cron-Unterstützung.

  • Tägliche Berichte: 0 9 * * * (Jeden Morgen um 9 Uhr)
  • Wöchentliche Bereinigung: 0 0 * * 0 (Jeden Sonntag um Mitternacht)

05. API & Werkzeug-Referenz

Sandbox API

Aus @deeptask/sandbox importieren:

APIBeschreibung
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, archiveIntegrierte APIs (siehe Abschnitte unten). Alle geben { files, data, isError, message } zurück.
language, timeZoneSandbox-Locale und Zeitzone.
fs / fs/promises(bei fsEnabled) Virtuelles FS unter / mit /Temp, /Documents, /Images usw. Verwenden Sie fs/promises — synchrone Methoden sind blockiert.

Puppeteer: page.goto() akzeptiert nur http/https. In try/catch wickeln. Für Antwort-Bytes response.buffer() verwenden (nicht body()).

document

import { document } from "@deeptask/sandbox"

Dokumentkonvertierung, PDF-Bearbeitung und Volltextsuche. Alle Methoden geben { files, data, isError, message } zurück. Vor der Nutzung von files oder data immer isError prüfen.

MethodBeschreibung
convertDocumentZwischen Formaten konvertieren. Paare: md↔html, pdf↔html, docx/pptx/epub↔html, html→docx/pdf/pptx/epub, csv↔xlsx. Optionen variieren je Paar (z.B. html→pdf: format, printBackground; pdf→html: startPage, endPage).
mergePdfMehrere PDFs zu einem zusammenführen.
splitPdfPDF in Seiten aufteilen. pages weglassen für eine Datei pro Seite. Ausgaben gehen nach /Temp/.
compressPdfPDF komprimieren. Optionen: quality (screen, ebook, printer, prepress).
fillPdfFormPDF-Formularfelder ausfüllen. Schlüssel sind rohe PDF-Feldnamen (groß-/kleinschreibungsabhängig).
getPdfInfoSeitenzahl, Titel, Autor usw. abrufen.
getPdfFormFormularfelder in einem PDF auflisten.
extractArticleHauptartikeltext extrahieren (Readability). Unterstützt md, pdf, docx, pptx, epub, html. Gibt data.text zurück; Leerstring prüfen.
extractPagesSeitenbereich aus PDF extrahieren (1-basiert inklusiv).
searchFilesVolltextsuche in indizierten Dateien. Nur /Documents ist indiziert. Gibt data.hits, data.total zurück. limit verwenden (Standard 20).
searchInFileIn einer einzelnen Datei suchen. Unterstützt Text und Office-Typen. offset/limit paginieren Treffer.

Hinweis: protectPdf ist nicht implementiert — nicht verwenden.

image

import { image } from "@deeptask/sandbox"

Bildverarbeitung mit Sharp/libvips. Alle Methoden geben { files, data, isError, message } zurück.

MethodBeschreibung
resizeImageGröße ändern. Optionen: fit (cover, contain, fill, inside, outside), withoutEnlargement.
compressImageZur Größenreduzierung neu encodieren; behält Metadaten.
minifyImageNur Metadaten entfernen.
cropImageMit left, top, width, height zuschneiden.
rotateImageNach Winkel drehen.
flipImage / flopImageHorizontal oder vertikal spiegeln.
convertImageFormat konvertieren. Unterstützt png, jpeg, gif, tiff, webp, ico, icns; SVG als Quelle.
removeBackgroundEinfache Farbübereinstimmung (keine KI). PNG-Ausgabe. threshold 0–255 (Standard 10).
compositeImageBilder bei left, top überlagern, optional opacity.
mergeImagesBilder kombinieren. Optionen: layout (horizontal, vertical, grid), gap, columns, maxWidth, maxHeight.
getImageInfoGibt data: { width, height, format, channels, hasAlpha, space } zurück.
blurImage, sharpenImageWeichzeichnen oder schärfen; sigma steuert Stärke.
grayscaleImage, trimImage, normalizeImage, extendImage, modulateImage, negateImage, tintImageFarb- und Layout-Operationen.

audio

import { audio } from "@deeptask/sandbox"

Audiokonvertierung und -verarbeitung. Alle Methoden geben { files, data, isError, message } zurück.

MethodBeschreibung
convertAudioFormat konvertieren. Unterstützt mp3, wav, aac, ogg, flac, m4a, wma, opus.
trimAudioMit start, end oder duration (Sekunden) zuschneiden.
concatAudioAudiodateien verketten.
setAudioVolumeLautstärke setzen (Zahl).
setAudioTempoTempo 0,5–2,0 (FFmpeg-Limit).
fadeAudioEin-/Ausblenden. Optionen: type, start, duration.
normalizeAudioLautheitsnormierung. target LUFS (Standard -16).
removeAudioSilenceStille entfernen. threshold dB (Standard -50), duration Sekunden (Standard 0,5).
mixAudioMehrere Audiodateien mischen. Optional volumes.
getAudioInfoGibt data: { duration, sampleRate, channels, bitrate, format, codec } zurück.
textToSpeechText-zu-Sprache. Nur macOS/Windows. format: mp3, wav, ogg.

Hinweis: voiceToText ist nicht implementiert — nicht verwenden.

video

import { video } from "@deeptask/sandbox"

Videokonvertierung, -zuschnitt und -effekte. Alle Methoden geben { files, data, isError, message } zurück.

MethodBeschreibung
convertVideoFormat konvertieren. Unterstützt mp4, webm, avi, mov, mkv, m4v, flv, wmv.
compressVideoKomprimieren. Optionen: crf (18–28, Standard 23), maxWidth, maxHeight, videoBitrate, audioBitrate.
trimVideoMit start, end oder duration zuschneiden.
concatVideosVideodateien verketten.
extractAudioTrackAudio in mp3, wav, aac, m4a, ogg, flac extrahieren.
extractFrameEinzelbild bei timestamp extrahieren.
screenshotVideoBilder bei mehreren timestamps extrahieren. Gibt ein Bild pro Timestamp in Reihenfolge zurück.
videoToGifVideo in GIF konvertieren. Optionen: start, duration, fps, width, height.
generateGifGIF aus Bildsequenz erstellen. Optionen: fps, width, height, loop.
burnSubtitlesUntertiteldatei in Video einbrennen.
extractSubtitlesUntertitel in srt oder vtt extrahieren.
cropVideo, rotateVideoZuschneiden oder drehen (90, 180, 270).
setVideoSpeed, setVideoVolume, fadeVideoGeschwindigkeits-, Lautstärke- und Einblend-Effekte.
getVideoInfoGibt data: { duration, width, height, fps, videoBitrate, audioBitrate, format, ... } zurück.

model

import { model } from "@deeptask/sandbox"

LLM-Textgenerierung, Bild- und Videogenerierung. Erfordert networkEnabled und API-Schlüssel. apiKey in settingsSchema mit format: "password" speichern; Zugriff über tool.self.settings.apiKey. Schlüssel nie hart codieren.

MethodBeschreibung
generateTextChat-Vervollständigung. messages, optional system, options: { provider, apiKey, baseURL }. Anbieter: openai, anthropic, google, cohere, mistral, openrouter, grok, deepseek, groq. Standard: openai (gpt-4o-mini).
generateImageBildgenerierung. prompt, optional image (image-to-image). Anbieter: openai, stability, replicate, fal, together, nano-banana, ideogram. Image-to-image nur mit fal, nano-banana.
generateVideoVideogenerierung. prompt, optional image. Anbieter: runway, replicate, luma, kling, minimax, seedance, veo3. Auflösung anbieterspezifisch (z.B. ratio, resolution).

archive

import { archive } from "@deeptask/sandbox"

Dateien zippen und entzippen. Alle Methoden geben { files, data, isError, message } zurück.

MethodBeschreibung
zipFilesDateien in ein Archiv zippen. Ausgabe: archive-{timestamp}.zip in /Temp/. Dateien im Zip-Root (Verzeichnisstruktur nicht erhalten).
unzipFileEntzippen. filter: einzubeziehende Dateinamen-Teilstücke. files[] enthält virtuelle Pfade extrahierter Dateien; Verzeichnisstruktur erhalten.

MCP-Werkzeuge für Assistenten

Ihr KI-Assistent interagiert mit DeepTask über diese MCP-Werkzeuge:

  • install_tool — Werkzeug zur Wiederverwendung installieren. Danach mit call_tool ausführen.
  • uninstall_tool — Installiertes Werkzeug entfernen.
  • call_tool — Installiertes Werkzeug ausführen. Sync/async basierend auf Werkzeug-defaultTimeout (>60 s = async).
  • get_call_tool_result — Ergebnis von async call_tool abfragen (per taskId).
  • eval_tool_script — Werkzeug einmal ohne Installation ausführen (Einmalausführung). Parameter: type, content, optional sandboxId.
  • batch_call_tools — Mehrere Werkzeuge in einer Anforderung aufrufen.
  • list_more_tools — Installierte Werkzeuge auflisten. get_tool_script_syntax für Werkzeugsyntax verwenden (Abschnitte: document, image, audio, video, model, archive).

Support & Ressourcen