diff --git a/apps/docs/content/docs/de/blocks/guardrails.mdx b/apps/docs/content/docs/de/blocks/guardrails.mdx
new file mode 100644
index 0000000000..f2d6a95f8f
--- /dev/null
+++ b/apps/docs/content/docs/de/blocks/guardrails.mdx
@@ -0,0 +1,251 @@
+---
+title: Guardrails
+---
+
+import { Callout } from 'fumadocs-ui/components/callout'
+import { Step, Steps } from 'fumadocs-ui/components/steps'
+import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
+import { Image } from '@/components/ui/image'
+import { Video } from '@/components/ui/video'
+
+The Guardrails block validates and protects your AI workflows by checking content against multiple validation types. Ensure data quality, prevent hallucinations, detect PII, and enforce format requirements before content moves through your workflow.
+
+
+
+
+
+## Overview
+
+The Guardrails block enables you to:
+
+
+
+ Validate JSON Structure: Ensure LLM outputs are valid JSON before parsing
+
+
+ Match Regex Patterns: Verify content matches specific formats (emails, phone numbers, URLs, etc.)
+
+
+ Detect Hallucinations: Use RAG + LLM scoring to validate AI outputs against knowledge base content
+
+
+ Detect PII: Identify and optionally mask personally identifiable information across 40+ entity types
+
+
+
+## Validation Types
+
+### JSON Validation
+
+Validates that content is properly formatted JSON. Perfect for ensuring structured LLM outputs can be safely parsed.
+
+**Use Cases:**
+- Validate JSON responses from Agent blocks before parsing
+- Ensure API payloads are properly formatted
+- Check structured data integrity
+
+**Output:**
+- `passed`: `true` if valid JSON, `false` otherwise
+- `error`: Error message if validation fails (e.g., "Invalid JSON: Unexpected token...")
+
+### Regex Validation
+
+Checks if content matches a specified regular expression pattern.
+
+**Use Cases:**
+- Validate email addresses
+- Check phone number formats
+- Verify URLs or custom identifiers
+- Enforce specific text patterns
+
+**Configuration:**
+- **Regex Pattern**: The regular expression to match against (e.g., `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$` for emails)
+
+**Output:**
+- `passed`: `true` if content matches pattern, `false` otherwise
+- `error`: Error message if validation fails
+
+### Hallucination Detection
+
+Uses Retrieval-Augmented Generation (RAG) with LLM scoring to detect when AI-generated content contradicts or isn't grounded in your knowledge base.
+
+**How It Works:**
+1. Queries your knowledge base for relevant context
+2. Sends both the AI output and retrieved context to an LLM
+3. LLM assigns a confidence score (0-10 scale)
+ - **0** = Full hallucination (completely ungrounded)
+ - **10** = Fully grounded (completely supported by knowledge base)
+4. Validation passes if score ≥ threshold (default: 3)
+
+**Configuration:**
+- **Knowledge Base**: Select from your existing knowledge bases
+- **Model**: Choose LLM for scoring (requires strong reasoning - GPT-4o, Claude 3.7 Sonnet recommended)
+- **API Key**: Authentication for selected LLM provider (auto-hidden for hosted/Ollama models)
+- **Confidence Threshold**: Minimum score to pass (0-10, default: 3)
+- **Top K** (Advanced): Number of knowledge base chunks to retrieve (default: 10)
+
+**Output:**
+- `passed`: `true` if confidence score ≥ threshold
+- `score`: Confidence score (0-10)
+- `reasoning`: LLM's explanation for the score
+- `error`: Error message if validation fails
+
+**Use Cases:**
+- Validate Agent responses against documentation
+- Ensure customer support answers are factually accurate
+- Verify generated content matches source material
+- Quality control for RAG applications
+
+### PII Detection
+
+Detects personally identifiable information using Microsoft Presidio. Supports 40+ entity types across multiple countries and languages.
+
+
+
+
+
+**How It Works:**
+1. Scans content for PII entities using pattern matching and NLP
+2. Returns detected entities with locations and confidence scores
+3. Optionally masks detected PII in the output
+
+**Configuration:**
+- **PII Types to Detect**: Select from grouped categories via modal selector
+ - **Common**: Person name, Email, Phone, Credit card, IP address, etc.
+ - **USA**: SSN, Driver's license, Passport, etc.
+ - **UK**: NHS number, National insurance number
+ - **Spain**: NIF, NIE, CIF
+ - **Italy**: Fiscal code, Driver's license, VAT code
+ - **Poland**: PESEL, NIP, REGON
+ - **Singapore**: NRIC/FIN, UEN
+ - **Australia**: ABN, ACN, TFN, Medicare
+ - **India**: Aadhaar, PAN, Passport, Voter number
+- **Mode**:
+ - **Detect**: Only identify PII (default)
+ - **Mask**: Replace detected PII with masked values
+- **Language**: Detection language (default: English)
+
+**Output:**
+- `passed`: `false` if any selected PII types are detected
+- `detectedEntities`: Array of detected PII with type, location, and confidence
+- `maskedText`: Content with PII masked (only if mode = "Mask")
+- `error`: Error message if validation fails
+
+**Use Cases:**
+- Block content containing sensitive personal information
+- Mask PII before logging or storing data
+- Compliance with GDPR, HIPAA, and other privacy regulations
+- Sanitize user inputs before processing
+
+## Configuration
+
+### Content to Validate
+
+The input content to validate. This typically comes from:
+- Agent block outputs: ``
+- Function block results: ``
+- API responses: ``
+- Any other block output
+
+### Validation Type
+
+Choose from four validation types:
+- **Valid JSON**: Check if content is properly formatted JSON
+- **Regex Match**: Verify content matches a regex pattern
+- **Hallucination Check**: Validate against knowledge base with LLM scoring
+- **PII Detection**: Detect and optionally mask personally identifiable information
+
+## Outputs
+
+All validation types return:
+
+- **``**: Boolean indicating if validation passed
+- **``**: The type of validation performed
+- **``**: The original input that was validated
+- **``**: Error message if validation failed (optional)
+
+Additional outputs by type:
+
+**Hallucination Check:**
+- **``**: Confidence score (0-10)
+- **``**: LLM's explanation
+
+**PII Detection:**
+- **``**: Array of detected PII entities
+- **``**: Content with PII masked (if mode = "Mask")
+
+## Example Use Cases
+
+### Validate JSON Before Parsing
+
+
+
Scenario: Ensure Agent output is valid JSON
+
+
Agent generates structured JSON response
+
Guardrails validates JSON format
+
Condition block checks ``
+
If passed → Parse and use data, If failed → Retry or handle error
+
+
+
+### Prevent Hallucinations
+
+
+
Scenario: Validate customer support responses
+
+
Agent generates response to customer question
+
Guardrails checks against support documentation knowledge base
If PII detected → Reject submission or mask sensitive data
+
If no PII → Process normally
+
+
+
+
+
+
+
+### Validate Email Format
+
+
+
Scenario: Check email address format
+
+
Agent extracts email from text
+
Guardrails validates with regex pattern
+
If valid → Use email for notification
+
If invalid → Request correction
+
+
+
+## Best Practices
+
+- **Chain with Condition blocks**: Use `` to branch workflow logic based on validation results
+- **Use JSON validation before parsing**: Always validate JSON structure before attempting to parse LLM outputs
+- **Choose appropriate PII types**: Only select the PII entity types relevant to your use case for better performance
+- **Set reasonable confidence thresholds**: For hallucination detection, adjust threshold based on your accuracy requirements (higher = stricter)
+- **Use strong models for hallucination detection**: GPT-4o or Claude 3.7 Sonnet provide more accurate confidence scoring
+- **Mask PII for logging**: Use "Mask" mode when you need to log or store content that may contain PII
+- **Test regex patterns**: Validate your regex patterns thoroughly before deploying to production
+- **Monitor validation failures**: Track `` messages to identify common validation issues
+
+
+ Guardrails validation happens synchronously in your workflow. For hallucination detection, choose faster models (like GPT-4o-mini) if latency is critical.
+
+
diff --git a/apps/docs/content/docs/de/execution/costs.mdx b/apps/docs/content/docs/de/execution/costs.mdx
index 385ebd6699..376ad8aa66 100644
--- a/apps/docs/content/docs/de/execution/costs.mdx
+++ b/apps/docs/content/docs/de/execution/costs.mdx
@@ -183,4 +183,39 @@ Verschiedene Abonnementpläne haben unterschiedliche Nutzungslimits:
- Überprüfen Sie Ihre aktuelle Nutzung unter [Einstellungen → Abonnement](https://sim.ai/settings/subscription)
- Erfahren Sie mehr über [Logging](/execution/logging), um Ausführungsdetails zu verfolgen
- Erkunden Sie die [Externe API](/execution/api) für programmatische Kostenüberwachung
-- Sehen Sie sich [Workflow-Optimierungstechniken](/blocks) an, um Kosten zu reduzieren
\ No newline at end of file
+- Sehen Sie sich [Workflow-Optimierungstechniken](/blocks) an, um Kosten zu reduzieren
+
+**Team-Plan (40 $/Sitz/Monat):**
+- Gemeinsame Nutzung für alle Teammitglieder
+- Überschreitung wird anhand der Gesamtnutzung des Teams berechnet
+- Organisationsinhaber erhält eine Rechnung
+
+**Enterprise-Pläne:**
+- Fester monatlicher Preis, keine Überschreitungen
+- Benutzerdefinierte Nutzungslimits gemäß Vereinbarung
+
+### Schwellenwertabrechnung
+
+Wenn die nicht abgerechnete Überschreitung 50 $ erreicht, berechnet Sim automatisch den gesamten nicht abgerechneten Betrag.
+
+**Beispiel:**
+- Tag 10: 70 $ Überschreitung → Sofortige Abrechnung von 70 $
+- Tag 15: Zusätzliche Nutzung von 35 $ (insgesamt 105 $) → Bereits abgerechnet, keine Aktion
+- Tag 20: Weitere Nutzung von 50 $ (insgesamt 155 $, 85 $ nicht abgerechnet) → Sofortige Abrechnung von 85 $
+
+Dies verteilt hohe Überschreitungsgebühren über den Monat, anstatt eine große Rechnung am Ende des Abrechnungszeitraums zu stellen.
+
+## Best Practices für Kostenmanagement
+
+1. **Regelmäßige Überwachung**: Überprüfen Sie Ihr Nutzungs-Dashboard häufig, um Überraschungen zu vermeiden
+2. **Budgets festlegen**: Nutzen Sie Planlimits als Leitplanken für Ihre Ausgaben
+3. **Workflows optimieren**: Überprüfen Sie kostenintensive Ausführungen und optimieren Sie Prompts oder Modellauswahl
+4. **Geeignete Modelle verwenden**: Passen Sie die Modellkomplexität an die Aufgabenanforderungen an
+5. **Ähnliche Aufgaben bündeln**: Kombinieren Sie wenn möglich mehrere Anfragen, um den Overhead zu reduzieren
+
+## Nächste Schritte
+
+- Überprüfen Sie Ihre aktuelle Nutzung unter [Einstellungen → Abonnement](https://sim.ai/settings/subscription)
+- Erfahren Sie mehr über [Protokollierung](/execution/logging), um Ausführungsdetails zu verfolgen
+- Erkunden Sie die [externe API](/execution/api) für programmatische Kostenüberwachung
+- Sehen Sie sich [Workflow-Optimierungstechniken](/blocks) zur Kostenreduzierung an
\ No newline at end of file
diff --git a/apps/docs/content/docs/de/sdks/typescript.mdx b/apps/docs/content/docs/de/sdks/typescript.mdx
index 55e36ce7e2..6cd1cafbfd 100644
--- a/apps/docs/content/docs/de/sdks/typescript.mdx
+++ b/apps/docs/content/docs/de/sdks/typescript.mdx
@@ -957,34 +957,6 @@ function StreamingWorkflow() {
- Node.js 16+
- TypeScript 5.0+ (for TypeScript projects)
-## TypeScript Support
-
-The SDK is written in TypeScript and provides full type safety:
-
-```typescript
-import {
- SimStudioClient,
- WorkflowExecutionResult,
- WorkflowStatus,
- SimStudioError
-} from 'simstudio-ts-sdk';
-
-// Typsichere Client-Initialisierung
-const client: SimStudioClient = new SimStudioClient({
- apiKey: process.env.SIM_API_KEY!
-});
-
-// Typsichere Workflow-Ausführung
-const result: WorkflowExecutionResult = await client.executeWorkflow('workflow-id', {
- input: {
- message: 'Hello, TypeScript!'
- }
-});
-
-// Typsichere Statusprüfung
-const status: WorkflowStatus = await client.getWorkflowStatus('workflow-id');
-```
-
## License
Apache-2.0
\ No newline at end of file
diff --git a/apps/docs/content/docs/de/tools/clay.mdx b/apps/docs/content/docs/de/tools/clay.mdx
new file mode 100644
index 0000000000..def872aa52
--- /dev/null
+++ b/apps/docs/content/docs/de/tools/clay.mdx
@@ -0,0 +1,226 @@
+---
+title: Clay
+description: Populate Clay workbook
+---
+
+import { BlockInfoCard } from "@/components/ui/block-info-card"
+
+
+
+
+
+ `}
+/>
+
+{/* MANUAL-CONTENT-START:intro */}
+[Clay](https://www.clay.com/) is a data enrichment and workflow automation platform that helps teams streamline lead generation, research, and data operations through powerful integrations and flexible inputs.
+
+Learn how to use the Clay Tool in Sim to seamlessly insert data into a Clay workbook through webhook triggers. This tutorial walks you through setting up a webhook, configuring data mapping, and automating real-time updates to your Clay workbooks. Perfect for streamlining lead generation and data enrichment directly from your workflow!
+
+
+
+With Clay, you can:
+
+- **Enrich agent outputs**: Automatically feed your Sim agent data into Clay tables for structured tracking and analysis
+- **Trigger workflows via webhooks**: Use Clay’s webhook support to initiate Sim agent tasks from within Clay
+- **Leverage data loops**: Seamlessly iterate over enriched data rows with agents that operate across dynamic datasets
+
+In Sim, the Clay integration allows your agents to push structured data into Clay tables via webhooks. This makes it easy to collect, enrich, and manage dynamic outputs such as leads, research summaries, or action items—all in a collaborative, spreadsheet-like interface. Your agents can populate rows in real time, enabling asynchronous workflows where AI-generated insights are captured, reviewed, and used by your team. Whether you're automating research, enriching CRM data, or tracking operational outcomes, Clay becomes a living data layer that interacts intelligently with your agents. By connecting Sim with Clay, you gain a powerful way to operationalize agent results, loop over datasets with precision, and maintain a clean, auditable record of AI-driven work.
+{/* MANUAL-CONTENT-END */}
+
+## Usage Instructions
+
+Integrate Clay into the workflow. Can populate a table with data.
+
+## Tools
+
+### `clay_populate`
+
+Populate Clay with data from a JSON file. Enables direct communication and notifications with timestamp tracking and channel confirmation.
+
+#### Input
+
+| Parameter | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `webhookURL` | string | Yes | The webhook URL to populate |
+| `data` | json | Yes | The data to populate |
+| `authToken` | string | Yes | Auth token for Clay webhook authentication |
+
+#### Output
+
+| Parameter | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Operation success status |
+| `output` | json | Clay populate operation results including response data from Clay webhook |
+
+## Notes
+
+- Category: `tools`
+- Type: `clay`
diff --git a/apps/docs/content/docs/de/tools/huggingface.mdx b/apps/docs/content/docs/de/tools/huggingface.mdx
new file mode 100644
index 0000000000..ec1558de05
--- /dev/null
+++ b/apps/docs/content/docs/de/tools/huggingface.mdx
@@ -0,0 +1,98 @@
+---
+title: Hugging Face
+description: Use Hugging Face Inference API
+---
+
+import { BlockInfoCard } from "@/components/ui/block-info-card"
+
+
+
+
+
+
+
+
+ `}
+/>
+
+{/* MANUAL-CONTENT-START:intro */}
+[HuggingFace](https://huggingface.co/) is a leading AI platform that provides access to thousands of pre-trained machine learning models and powerful inference capabilities. With its extensive model hub and robust API, HuggingFace offers comprehensive tools for both research and production AI applications.
+With HuggingFace, you can:
+
+Access pre-trained models: Utilize models for text generation, translation, image processing, and more
+Generate AI completions: Create content using state-of-the-art language models through the Inference API
+Natural language processing: Process and analyze text with specialized NLP models
+Deploy at scale: Host and serve models for production applications
+Customize models: Fine-tune existing models for specific use cases
+
+In Sim, the HuggingFace integration enables your agents to programmatically generate completions using the HuggingFace Inference API. This allows for powerful automation scenarios such as content generation, text analysis, code completion, and creative writing. Your agents can generate completions with natural language prompts, access specialized models for different tasks, and integrate AI-generated content into workflows. This integration bridges the gap between your AI workflows and machine learning capabilities, enabling seamless AI-powered automation with one of the world's most comprehensive ML platforms.
+{/* MANUAL-CONTENT-END */}
+
+## Usage Instructions
+
+Integrate Hugging Face into the workflow. Can generate completions using the Hugging Face Inference API.
+
+## Tools
+
+### `huggingface_chat`
+
+Generate completions using Hugging Face Inference API
+
+#### Input
+
+| Parameter | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `systemPrompt` | string | No | System prompt to guide the model behavior |
+| `content` | string | Yes | The user message content to send to the model |
+| `provider` | string | Yes | The provider to use for the API request \(e.g., novita, cerebras, etc.\) |
+| `model` | string | Yes | Model to use for chat completions \(e.g., deepseek/deepseek-v3-0324\) |
+| `maxTokens` | number | No | Maximum number of tokens to generate |
+| `temperature` | number | No | Sampling temperature \(0-2\). Higher values make output more random |
+| `apiKey` | string | Yes | Hugging Face API token |
+
+#### Output
+
+| Parameter | Type | Description |
+| --------- | ---- | ----------- |
+| `success` | boolean | Operation success status |
+| `output` | object | Chat completion results |
+
+## Notes
+
+- Category: `tools`
+- Type: `huggingface`
diff --git a/apps/docs/content/docs/de/tools/knowledge.mdx b/apps/docs/content/docs/de/tools/knowledge.mdx
index 3a9e9b0dd5..2a882953d4 100644
--- a/apps/docs/content/docs/de/tools/knowledge.mdx
+++ b/apps/docs/content/docs/de/tools/knowledge.mdx
@@ -60,10 +60,10 @@ Suche nach ähnlichen Inhalten in einer Wissensdatenbank mittels Vektorähnlichk
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
-| `knowledgeBaseId` | string | Ja | ID der zu durchsuchenden Wissensdatenbank |
+| `knowledgeBaseId` | string | Ja | ID der Wissensdatenbank, in der gesucht werden soll |
| `query` | string | Nein | Suchanfragentext \(optional bei Verwendung von Tag-Filtern\) |
| `topK` | number | Nein | Anzahl der ähnlichsten Ergebnisse, die zurückgegeben werden sollen \(1-100\) |
-| `tagFilters` | any | Nein | Array von Tag-Filtern mit tagName- und tagValue-Eigenschaften |
+| `tagFilters` | array | Nein | Array von Tag-Filtern mit tagName- und tagValue-Eigenschaften |
#### Ausgabe
diff --git a/apps/docs/content/docs/de/tools/stagehand.mdx b/apps/docs/content/docs/de/tools/stagehand.mdx
new file mode 100644
index 0000000000..07684b3069
--- /dev/null
+++ b/apps/docs/content/docs/de/tools/stagehand.mdx
@@ -0,0 +1,219 @@
+---
+title: Stagehand Extract
+description: Extract data from websites
+---
+
+import { BlockInfoCard } from "@/components/ui/block-info-card"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `}
+/>
+
+{/* MANUAL-CONTENT-START:intro */}
+[Stagehand](https://stagehand.com) is a tool that allows you to extract structured data from webpages using Browserbase and OpenAI.
+
+With Stagehand, you can:
+
+- **Extract structured data**: Extract structured data from webpages using Browserbase and OpenAI
+- **Save data to a database**: Save the extracted data to a database
+- **Automate workflows**: Automate workflows to extract data from webpages
+
+In Sim, the Stagehand integration enables your agents to extract structured data from webpages using Browserbase and OpenAI. This allows for powerful automation scenarios such as data extraction, data analysis, and data integration. Your agents can extract structured data from webpages, save the extracted data to a database, and automate workflows to extract data from webpages. This integration bridges the gap between your AI workflows and your data management system, enabling seamless data extraction and integration. By connecting Sim with Stagehand, you can automate data extraction processes, maintain up-to-date information repositories, generate reports, and organize information intelligently - all through your intelligent agents.
+{/* MANUAL-CONTENT-END */}
+
+## Usage Instructions
+
+Integrate Stagehand into the workflow. Can extract structured data from webpages.
+
+## Tools
+
+### `stagehand_extract`
+
+Extract structured data from a webpage using Stagehand
+
+#### Input
+
+| Parameter | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `url` | string | Yes | URL of the webpage to extract data from |
+| `instruction` | string | Yes | Instructions for extraction |
+| `apiKey` | string | Yes | OpenAI API key for extraction \(required by Stagehand\) |
+| `schema` | json | Yes | JSON schema defining the structure of the data to extract |
+
+#### Output
+
+| Parameter | Type | Description |
+| --------- | ---- | ----------- |
+| `data` | object | Extracted structured data matching the provided schema |
+
+## Notes
+
+- Category: `tools`
+- Type: `stagehand`
diff --git a/apps/docs/content/docs/de/tools/stagehand_agent.mdx b/apps/docs/content/docs/de/tools/stagehand_agent.mdx
new file mode 100644
index 0000000000..e5f659f819
--- /dev/null
+++ b/apps/docs/content/docs/de/tools/stagehand_agent.mdx
@@ -0,0 +1,225 @@
+---
+title: Stagehand Agent
+description: Autonomous web browsing agent
+---
+
+import { BlockInfoCard } from "@/components/ui/block-info-card"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ `}
+/>
+
+{/* MANUAL-CONTENT-START:intro */}
+[Stagehand](https://www.stagehand.dev/) is an autonomous web agent platform that enables AI systems to navigate and interact with websites just like a human would. It provides a powerful solution for automating complex web tasks without requiring custom code or browser automation scripts.
+
+With Stagehand, you can:
+
+- **Automate web navigation**: Enable AI to browse websites, click links, fill forms, and interact with web elements
+- **Extract structured data**: Collect specific information from websites in a structured, usable format
+- **Complete complex workflows**: Perform multi-step tasks across different websites and web applications
+- **Handle authentication**: Navigate login processes and maintain sessions across websites
+- **Process dynamic content**: Interact with JavaScript-heavy sites and single-page applications
+- **Maintain context awareness**: Keep track of the current state and history while navigating
+- **Generate detailed reports**: Receive comprehensive logs of actions taken and data collected
+
+In Sim, the Stagehand integration enables your agents to seamlessly interact with web-based systems as part of their workflows. This allows for sophisticated automation scenarios that bridge the gap between your AI agents and the vast information and functionality available on the web. Your agents can search for information, interact with web applications, extract data from websites, and incorporate these capabilities into their decision-making processes. By connecting Sim with Stagehand, you can create agents that extend beyond API-based integrations to navigate the web just as a human would - filling forms, clicking buttons, reading content, and extracting valuable information to complete their tasks more effectively.
+{/* MANUAL-CONTENT-END */}
+
+## Usage Instructions
+
+Integrate Stagehand Agent into the workflow. Can navigate the web and perform tasks.
+
+## Tools
+
+### `stagehand_agent`
+
+Run an autonomous web agent to complete tasks and extract structured data
+
+#### Input
+
+| Parameter | Type | Required | Description |
+| --------- | ---- | -------- | ----------- |
+| `startUrl` | string | Yes | URL of the webpage to start the agent on |
+| `task` | string | Yes | The task to complete or goal to achieve on the website |
+| `variables` | json | No | Optional variables to substitute in the task \(format: \{key: value\}\). Reference in task using %key% |
+| `format` | string | No | No description |
+| `apiKey` | string | Yes | OpenAI API key for agent execution \(required by Stagehand\) |
+| `outputSchema` | json | No | Optional JSON schema defining the structure of data the agent should return |
+
+#### Output
+
+| Parameter | Type | Description |
+| --------- | ---- | ----------- |
+| `agentResult` | object | Result from the Stagehand agent execution |
+
+## Notes
+
+- Category: `tools`
+- Type: `stagehand_agent`
diff --git a/apps/docs/content/docs/de/tools/supabase.mdx b/apps/docs/content/docs/de/tools/supabase.mdx
index a736a8db62..2ff081e036 100644
--- a/apps/docs/content/docs/de/tools/supabase.mdx
+++ b/apps/docs/content/docs/de/tools/supabase.mdx
@@ -109,10 +109,10 @@ Daten in eine Supabase-Tabelle einfügen
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
-| `projectId` | string | Ja | Ihre Supabase-Projekt-ID (z.B. jdrkgepadsdopsntdlom) |
+| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `table` | string | Ja | Der Name der Supabase-Tabelle, in die Daten eingefügt werden sollen |
-| `data` | any | Ja | Die einzufügenden Daten |
-| `apiKey` | string | Ja | Ihr Supabase Service-Role-Secret-Key |
+| `data` | array | Ja | Die einzufügenden Daten \(Array von Objekten oder ein einzelnes Objekt\) |
+| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
@@ -191,8 +191,8 @@ Daten in eine Supabase-Tabelle einfügen oder aktualisieren (Upsert-Operation)
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
-| `table` | string | Ja | Der Name der Supabase-Tabelle, in die Daten eingefügt werden sollen |
-| `data` | any | Ja | Die Daten, die eingefügt oder aktualisiert werden sollen \(Upsert\) |
+| `table` | string | Ja | Der Name der Supabase-Tabelle, in die Daten upsertet werden sollen |
+| `data` | array | Ja | Die zu upsertenden Daten \(einfügen oder aktualisieren\) - Array von Objekten oder ein einzelnes Objekt |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
diff --git a/apps/docs/content/docs/de/tools/telegram.mdx b/apps/docs/content/docs/de/tools/telegram.mdx
index 4a3e7020a2..e57f4c2cc3 100644
--- a/apps/docs/content/docs/de/tools/telegram.mdx
+++ b/apps/docs/content/docs/de/tools/telegram.mdx
@@ -87,12 +87,108 @@ Sendet Nachrichten an Telegram-Kanäle oder Benutzer über die Telegram Bot API.
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
-| `success` | boolean | Erfolgsstatus der Telegram-Nachrichtensendung |
-| `messageId` | number | Eindeutige Telegram-Nachrichtenkennung |
-| `chatId` | string | Ziel-Chat-ID, wohin die Nachricht gesendet wurde |
-| `text` | string | Textinhalt der gesendeten Nachricht |
-| `timestamp` | number | Unix-Zeitstempel, wann die Nachricht gesendet wurde |
-| `from` | object | Informationen über den Bot, der die Nachricht gesendet hat |
+| `message` | string | Erfolgs- oder Fehlermeldung |
+| `data` | object | Telegram-Nachrichtendaten |
+
+## Hinweise
+
+- Kategorie: `tools`
+- Typ: `telegram`
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `botToken` | string | Ja | Ihr Telegram Bot API-Token |
+| `chatId` | string | Ja | Ziel-Telegram-Chat-ID |
+| `messageId` | string | Ja | Nachrichten-ID zum Löschen |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `message` | string | Erfolgs- oder Fehlermeldung |
+| `data` | object | Ergebnis des Löschvorgangs |
+
+### `telegram_send_photo`
+
+Senden Sie Fotos an Telegram-Kanäle oder Benutzer über die Telegram Bot API.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `botToken` | string | Ja | Ihr Telegram Bot API-Token |
+| `chatId` | string | Ja | Ziel-Telegram-Chat-ID |
+| `photo` | string | Ja | Zu sendendes Foto. Übergeben Sie eine file_id oder HTTP-URL |
+| `caption` | string | Nein | Fotobeschreibung (optional) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `message` | string | Erfolgs- oder Fehlermeldung |
+| `data` | object | Telegram-Nachrichtendaten einschließlich optionaler Foto(s) |
+
+### `telegram_send_video`
+
+Senden Sie Videos an Telegram-Kanäle oder Benutzer über die Telegram Bot API.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `botToken` | string | Ja | Ihr Telegram Bot API-Token |
+| `chatId` | string | Ja | Ziel-Telegram-Chat-ID |
+| `video` | string | Ja | Zu sendendes Video. Übergeben Sie eine file_id oder HTTP-URL |
+| `caption` | string | Nein | Videobeschreibung (optional) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `message` | string | Erfolgs- oder Fehlermeldung |
+| `data` | object | Telegram-Nachrichtendaten einschließlich optionaler Medien |
+
+### `telegram_send_audio`
+
+Senden Sie Audiodateien an Telegram-Kanäle oder Benutzer über die Telegram Bot API.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `botToken` | string | Ja | Ihr Telegram Bot API-Token |
+| `chatId` | string | Ja | Ziel-Telegram-Chat-ID |
+| `audio` | string | Ja | Zu sendende Audiodatei. Übergeben Sie eine file_id oder HTTP-URL |
+| `caption` | string | Nein | Audio-Beschriftung \(optional\) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `message` | string | Erfolgs- oder Fehlermeldung |
+| `data` | object | Telegram-Nachrichtendaten einschließlich Sprach-/Audioinformationen |
+
+### `telegram_send_animation`
+
+Senden Sie Animationen (GIFs) an Telegram-Kanäle oder Benutzer über die Telegram Bot API.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `botToken` | string | Ja | Ihr Telegram Bot API-Token |
+| `chatId` | string | Ja | Ziel-Telegram-Chat-ID |
+| `animation` | string | Ja | Zu sendende Animation. Übergeben Sie eine file_id oder HTTP-URL |
+| `caption` | string | Nein | Animations-Beschriftung \(optional\) |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `message` | string | Erfolgs- oder Fehlermeldung |
+| `data` | object | Telegram-Nachrichtendaten einschließlich optionaler Medien |
## Hinweise
diff --git a/apps/docs/content/docs/de/tools/youtube.mdx b/apps/docs/content/docs/de/tools/youtube.mdx
index 9ee05ca3d1..cf7268fe84 100644
--- a/apps/docs/content/docs/de/tools/youtube.mdx
+++ b/apps/docs/content/docs/de/tools/youtube.mdx
@@ -1,6 +1,6 @@
---
title: YouTube
-description: Suche nach Videos auf YouTube
+description: Interagiere mit YouTube-Videos, Kanälen und Playlists
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
@@ -39,7 +39,7 @@ In Sim ermöglicht die YouTube-Integration Ihren Agenten, YouTube-Inhalte progra
## Gebrauchsanweisung
-Integriert YouTube in den Workflow. Kann nach Videos suchen. Benötigt API-Schlüssel.
+Integriere YouTube in den Workflow. Kann nach Videos suchen, Videodetails abrufen, Kanalinformationen abrufen, Playlist-Elemente abrufen und Videokommentare abrufen.
## Tools
@@ -61,6 +61,99 @@ Suche nach Videos auf YouTube mit der YouTube Data API.
| --------- | ---- | ----------- |
| `items` | array | Array von YouTube-Videos, die der Suchanfrage entsprechen |
+### `youtube_video_details`
+
+Erhalte detaillierte Informationen über ein bestimmtes YouTube-Video.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `videoId` | string | Ja | YouTube-Video-ID |
+| `apiKey` | string | Ja | YouTube API-Schlüssel |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `videoId` | string | YouTube-Video-ID |
+| `title` | string | Videotitel |
+| `description` | string | Videobeschreibung |
+| `channelId` | string | Kanal-ID |
+| `channelTitle` | string | Kanalname |
+| `publishedAt` | string | Veröffentlichungsdatum und -uhrzeit |
+| `duration` | string | Videodauer im ISO 8601-Format |
+| `viewCount` | number | Anzahl der Aufrufe |
+| `likeCount` | number | Anzahl der Likes |
+| `commentCount` | number | Anzahl der Kommentare |
+| `thumbnail` | string | Video-Thumbnail-URL |
+| `tags` | array | Video-Tags |
+
+### `youtube_channel_info`
+
+Erhalte detaillierte Informationen über einen YouTube-Kanal.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `channelId` | string | Nein | YouTube-Kanal-ID \(verwende entweder channelId oder username\) |
+| `username` | string | Nein | YouTube-Kanalbenutzername \(verwende entweder channelId oder username\) |
+| `apiKey` | string | Ja | YouTube API-Schlüssel |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `channelId` | string | YouTube-Kanal-ID |
+| `title` | string | Kanalname |
+| `description` | string | Kanalbeschreibung |
+| `subscriberCount` | number | Anzahl der Abonnenten |
+| `videoCount` | number | Anzahl der Videos |
+| `viewCount` | number | Gesamtaufrufe des Kanals |
+| `publishedAt` | string | Erstellungsdatum des Kanals |
+| `thumbnail` | string | URL des Kanal-Thumbnails |
+| `customUrl` | string | Benutzerdefinierte Kanal-URL |
+
+### `youtube_playlist_items`
+
+Videos aus einer YouTube-Playlist abrufen.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `playlistId` | string | Ja | YouTube-Playlist-ID |
+| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Videos |
+| `pageToken` | string | Nein | Page-Token für Paginierung |
+| `apiKey` | string | Ja | YouTube API-Schlüssel |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `items` | array | Array von Videos in der Playlist |
+
+### `youtube_comments`
+
+Kommentare von einem YouTube-Video abrufen.
+
+#### Eingabe
+
+| Parameter | Typ | Erforderlich | Beschreibung |
+| --------- | ---- | -------- | ----------- |
+| `videoId` | string | Ja | YouTube-Video-ID |
+| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Kommentare |
+| `order` | string | Nein | Reihenfolge der Kommentare: time oder relevance |
+| `pageToken` | string | Nein | Page-Token für Paginierung |
+| `apiKey` | string | Ja | YouTube API-Schlüssel |
+
+#### Ausgabe
+
+| Parameter | Typ | Beschreibung |
+| --------- | ---- | ----------- |
+| `items` | array | Array von Kommentaren zum Video |
+
## Hinweise
- Kategorie: `tools`
diff --git a/apps/docs/content/docs/de/triggers/api.mdx b/apps/docs/content/docs/de/triggers/api.mdx
index 8dab4cfb38..a8dbb4f486 100644
--- a/apps/docs/content/docs/de/triggers/api.mdx
+++ b/apps/docs/content/docs/de/triggers/api.mdx
@@ -128,3 +128,60 @@ Wenn kein Eingabeformat definiert ist, stellt der Executor das rohe JSON nur unt
Ein Workflow kann nur einen API-Trigger enthalten. Veröffentlichen Sie nach Änderungen eine neue Bereitstellung, damit der Endpunkt aktuell bleibt.
+
+### Datei-Upload-Format
+
+Die API akzeptiert Dateien in zwei Formaten:
+
+**1. Base64-kodierte Dateien** (empfohlen für SDKs):
+
+```json
+{
+ "documents": [{
+ "type": "file",
+ "data": "data:application/pdf;base64,JVBERi0xLjQK...",
+ "name": "document.pdf",
+ "mime": "application/pdf"
+ }]
+}
+```
+
+- Maximale Dateigröße: 20MB pro Datei
+- Dateien werden in den Cloud-Speicher hochgeladen und in UserFile-Objekte mit allen Eigenschaften umgewandelt
+
+**2. Direkte URL-Referenzen**:
+
+```json
+{
+ "documents": [{
+ "type": "url",
+ "data": "https://example.com/document.pdf",
+ "name": "document.pdf",
+ "mime": "application/pdf"
+ }]
+}
+```
+
+- Die Datei wird nicht hochgeladen, die URL wird direkt weitergegeben
+- Nützlich für die Referenzierung bestehender Dateien
+
+### Dateieigenschaften
+
+Für Dateien können alle Eigenschaften abgerufen werden:
+
+| Eigenschaft | Beschreibung | Typ |
+|----------|-------------|------|
+| `` | Signierte Download-URL | string |
+| `` | Ursprünglicher Dateiname | string |
+| `` | Dateigröße in Bytes | number |
+| `` | MIME-Typ | string |
+| `` | Upload-Zeitstempel (ISO 8601) | string |
+| `` | URL-Ablaufzeitstempel (ISO 8601) | string |
+
+Für URL-referenzierte Dateien sind dieselben Eigenschaften verfügbar, außer `uploadedAt` und `expiresAt`, da die Datei nicht in unseren Speicher hochgeladen wird.
+
+Wenn kein Eingabeformat definiert ist, stellt der Executor das rohe JSON nur unter `` zur Verfügung.
+
+
+Ein Workflow kann nur einen API-Trigger enthalten. Veröffentlichen Sie nach Änderungen eine neue Bereitstellung, damit der Endpunkt aktuell bleibt.
+
diff --git a/apps/docs/content/docs/de/triggers/chat.mdx b/apps/docs/content/docs/de/triggers/chat.mdx
index 129054a819..34ddd0c94a 100644
--- a/apps/docs/content/docs/de/triggers/chat.mdx
+++ b/apps/docs/content/docs/de/triggers/chat.mdx
@@ -41,3 +41,11 @@ Dateien enthalten `name`, `mimeType` und einen signierten Download `url`.
Der Builder blockiert mehrere Chat-Auslöser-Blöcke im selben Workflow.
+
+1. Fügen Sie einen Chat-Trigger-Block pro Workflow hinzu.
+2. Stellen Sie den Workflow im Chat-Modus bereit.
+3. Teilen Sie den Bereitstellungslink – jede Antwort verwendet die Konversations-ID wieder, damit der Workflow den Kontext beibehalten kann.
+
+
+Der Builder blockiert mehrere Chat-Trigger-Blöcke im selben Workflow.
+
diff --git a/apps/docs/content/docs/de/yaml/block-reference.mdx b/apps/docs/content/docs/de/yaml/block-reference.mdx
deleted file mode 100644
index 6d0381c91e..0000000000
--- a/apps/docs/content/docs/de/yaml/block-reference.mdx
+++ /dev/null
@@ -1,242 +0,0 @@
----
-title: Block-Referenz-Syntax
-description: Wie man Daten zwischen Blöcken in YAML-Workflows referenziert
----
-
-import { Callout } from 'fumadocs-ui/components/callout'
-import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
-
-Block-Referenzen sind die Grundlage des Datenflusses in Sim-Workflows. Das Verständnis, wie man Ausgaben von einem Block korrekt als Eingaben für einen anderen referenziert, ist essenziell für den Aufbau funktionaler Workflows.
-
-## Grundlegende Referenzregeln
-
-### 1. Verwende Blocknamen, nicht Block-IDs
-
-
-
-
- ```yaml
- # Block definition
- email-sender:
- type: agent
- name: "Email Generator"
- # ... configuration
-
- # Reference the block
- next-block:
- inputs:
- userPrompt: "Process this: "
- ```
-
-
-
-
- ```yaml
- # Block definition
- email-sender:
- type: agent
- name: "Email Generator"
- # ... configuration
-
- # ❌ Don't reference by block ID
- next-block:
- inputs:
- userPrompt: "Process this: "
- ```
-
-
-
-
-### 2. Namen in Referenzformat umwandeln
-
-Um eine Block-Referenz zu erstellen:
-
-1. **Nimm den Blocknamen**: "Email Generator"
-2. **Konvertiere zu Kleinbuchstaben**: "email generator"
-3. **Entferne Leerzeichen und Sonderzeichen**: "emailgenerator"
-4. **Füge Eigenschaft hinzu**: ``
-
-### 3. Verwende die richtigen Eigenschaften
-
-Verschiedene Blocktypen stellen unterschiedliche Eigenschaften bereit:
-
-- **Agent-Blöcke**: `.content` (die KI-Antwort)
-- **Funktionsblöcke**: `.output` (der Rückgabewert)
-- **API-Blöcke**: `.output` (die Antwortdaten)
-- **Tool-Blöcke**: `.output` (das Tool-Ergebnis)
-
-## Referenzbeispiele
-
-### Häufige Block-Referenzen
-
-```yaml
-# Agent block outputs
- # Primary AI response
- # Token usage information
- # Estimated cost
- # Tool execution details
-
-# Function block outputs
- # Function return value
- # Error information (if any)
-
-# API block outputs
- # Response data
- # HTTP status code
- # Response headers
-
-# Tool block outputs
- # Tool execution result
-```
-
-### Blocknamen mit mehreren Wörtern
-
-```yaml
-# Block name: "Data Processor 2"
-
-
-# Block name: "Email Validation Service"
-
-
-# Block name: "Customer Info Agent"
-
-```
-
-## Spezielle Referenzfälle
-
-### Starter-Block
-
-
- Der Starter-Block wird immer als `` referenziert, unabhängig von seinem tatsächlichen Namen.
-
-
-```yaml
-# Starter block definition
-my-custom-start:
- type: starter
- name: "Custom Workflow Start"
- # ... configuration
-
-# Always reference as 'start'
-agent-1:
- inputs:
- userPrompt: # ✅ Correct
- # userPrompt: # ❌ Wrong
-```
-
-### Schleifenvariablen
-
-Innerhalb von Schleifenblöcken sind spezielle Variablen verfügbar:
-
-```yaml
-# Available in loop child blocks
- # Current iteration (0-based)
- # Current item being processed (forEach loops)
- # Full collection (forEach loops)
-```
-
-### Parallele Variablen
-
-Innerhalb von parallelen Blöcken sind spezielle Variablen verfügbar:
-
-```yaml
-# Available in parallel child blocks
- # Instance number (0-based)
- # Item for this instance
- # Full collection
-```
-
-## Komplexe Referenzbeispiele
-
-### Zugriff auf verschachtelte Daten
-
-Bei der Referenzierung komplexer Objekte wird die Punktnotation verwendet:
-
-```yaml
-# If an agent returns structured data
-data-analyzer:
- type: agent
- name: "Data Analyzer"
- inputs:
- responseFormat: |
- {
- "schema": {
- "type": "object",
- "properties": {
- "analysis": {"type": "object"},
- "summary": {"type": "string"},
- "metrics": {"type": "object"}
- }
- }
- }
-
-# Reference nested properties
-next-step:
- inputs:
- userPrompt: |
- Summary:
- Score:
- Full data:
-```
-
-### Mehrere Referenzen im Text
-
-```yaml
-email-composer:
- type: agent
- inputs:
- userPrompt: |
- Create an email with the following information:
-
- Customer:
- Order Details:
- Support Ticket:
-
- Original request:
-```
-
-### Referenzen in Codeblöcken
-
-Bei der Verwendung von Referenzen in Funktionsblöcken werden diese als JavaScript-Werte ersetzt:
-
-```yaml
-data-processor:
- type: function
- inputs:
- code: |
- // References are replaced with actual values
- const customerData = ;
- const orderInfo = ;
- const originalInput = ;
-
- // Process the data
- return {
- customer: customerData.name,
- orderId: orderInfo.id,
- processed: true
- };
-```
-
-## Referenzvalidierung
-
-Sim validiert alle Referenzen beim Importieren von YAML:
-
-### Gültige Referenzen
-- Block existiert im Workflow
-- Eigenschaft ist für den Blocktyp geeignet
-- Keine zirkulären Abhängigkeiten
-- Korrekte Syntaxformatierung
-
-### Häufige Fehler
-- **Block nicht gefunden**: Referenzierter Block existiert nicht
-- **Falsche Eigenschaft**: Verwendung von `.content` in einem Funktionsblock
-- **Tippfehler**: Falsch geschriebene Blocknamen oder Eigenschaften
-- **Zirkuläre Referenzen**: Block referenziert sich direkt oder indirekt selbst
-
-## Best Practices
-
-1. **Verwende beschreibende Blocknamen**: Macht Referenzen lesbarer
-2. **Sei konsistent**: Verwende die gleiche Namenskonvention durchgängig
-3. **Überprüfe Referenzen**: Stelle sicher, dass alle referenzierten Blöcke existieren
-4. **Vermeide tiefe Verschachtelungen**: Halte Referenzketten überschaubar
-5. **Dokumentiere komplexe Abläufe**: Füge Kommentare hinzu, um Referenzbeziehungen zu erklären
\ No newline at end of file
diff --git a/apps/docs/content/docs/de/yaml/blocks/agent.mdx b/apps/docs/content/docs/de/yaml/blocks/agent.mdx
deleted file mode 100644
index 2c5030d91d..0000000000
--- a/apps/docs/content/docs/de/yaml/blocks/agent.mdx
+++ /dev/null
@@ -1,218 +0,0 @@
----
-title: Agent Block YAML Schema
-description: YAML-Konfigurationsreferenz für Agent-Blöcke
----
-
-## Schema-Definition
-
-```yaml
-type: object
-required:
- - type
- - name
-properties:
- type:
- type: string
- enum: [agent]
- description: Block type identifier
- name:
- type: string
- description: Display name for this agent block
- inputs:
- type: object
- properties:
- systemPrompt:
- type: string
- description: Instructions that define the agent's role and behavior
- userPrompt:
- type: string
- description: Input content to process (can reference other blocks)
- model:
- type: string
- description: AI model identifier (e.g., gpt-4o, gemini-2.5-pro, deepseek-chat)
- temperature:
- type: number
- minimum: 0
- maximum: 2
- description: Response creativity level (varies by model)
- apiKey:
- type: string
- description: API key for the model provider (use {{ENV_VAR}} format)
- azureEndpoint:
- type: string
- description: Azure OpenAI endpoint URL (required for Azure models)
- azureApiVersion:
- type: string
- description: Azure API version (required for Azure models)
- memories:
- type: string
- description: Memory context from memory blocks
- tools:
- type: array
- description: List of external tools the agent can use
- items:
- type: object
- required: [type, title, toolId, operation, usageControl]
- properties:
- type:
- type: string
- description: Tool type identifier
- title:
- type: string
- description: Human-readable display name
- toolId:
- type: string
- description: Internal tool identifier
- operation:
- type: string
- description: Tool operation/method name
- usageControl:
- type: string
- enum: [auto, required, none]
- description: When AI can use the tool
- params:
- type: object
- description: Tool-specific configuration parameters
- isExpanded:
- type: boolean
- description: UI state
- default: false
- responseFormat:
- type: object
- description: JSON Schema to enforce structured output
- required:
- - model
- - apiKey
- connections:
- type: object
- properties:
- success:
- type: string
- description: Target block ID for successful execution
- error:
- type: string
- description: Target block ID for error handling
-```
-
-## Tool-Konfiguration
-
-Tools werden als Array definiert, wobei jedes Tool diese Struktur hat:
-
-```yaml
-tools:
- - type: # Tool type identifier (exa, gmail, slack, etc.)
- title: # Human-readable display name
- toolId: # Internal tool identifier
- operation: # Tool operation/method name
- usageControl: # When AI can use it (auto | required | none)
- params: