chore: import upstream snapshot with attribution
CI / Migrate Dev DB (push) Has been skipped
CI / Detect Version (push) Has been cancelled
CI / Migrate DB (push) Has been cancelled
CI / Build Dev ECR (./docker/app.Dockerfile, ECR_APP) (push) Has been cancelled
CI / Build Dev ECR (./docker/db.Dockerfile, ECR_MIGRATIONS) (push) Has been cancelled
CI / Build Dev ECR (./docker/pii.Dockerfile, ECR_PII) (push) Has been cancelled
CI / Build Dev ECR (./docker/realtime.Dockerfile, ECR_REALTIME) (push) Has been cancelled
CI / Deploy Trigger.dev (Dev) (push) Has been cancelled
CI / Build AMD64 (./docker/app.Dockerfile, ECR_APP, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build AMD64 (./docker/db.Dockerfile, ECR_MIGRATIONS, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build AMD64 (./docker/pii.Dockerfile, ECR_PII, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build AMD64 (./docker/realtime.Dockerfile, ECR_REALTIME, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/app.Dockerfile, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/db.Dockerfile, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/pii.Dockerfile, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/realtime.Dockerfile, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Check Docs Changes (push) Has been cancelled
CI / Process Docs (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
CI / Test and Build (push) Has been cancelled
Publish CLI Package / publish-npm (push) Has been cancelled
Publish Python SDK / publish-pypi (push) Has been cancelled
Publish TypeScript SDK / publish-npm (push) Has been cancelled
CI / Migrate Dev DB (push) Has been skipped
CI / Detect Version (push) Has been cancelled
CI / Migrate DB (push) Has been cancelled
CI / Build Dev ECR (./docker/app.Dockerfile, ECR_APP) (push) Has been cancelled
CI / Build Dev ECR (./docker/db.Dockerfile, ECR_MIGRATIONS) (push) Has been cancelled
CI / Build Dev ECR (./docker/pii.Dockerfile, ECR_PII) (push) Has been cancelled
CI / Build Dev ECR (./docker/realtime.Dockerfile, ECR_REALTIME) (push) Has been cancelled
CI / Deploy Trigger.dev (Dev) (push) Has been cancelled
CI / Build AMD64 (./docker/app.Dockerfile, ECR_APP, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build AMD64 (./docker/db.Dockerfile, ECR_MIGRATIONS, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build AMD64 (./docker/pii.Dockerfile, ECR_PII, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build AMD64 (./docker/realtime.Dockerfile, ECR_REALTIME, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/app.Dockerfile, ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/db.Dockerfile, ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/pii.Dockerfile, ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Build ARM64 (GHCR Only) (./docker/realtime.Dockerfile, ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/migrations) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/pii) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/realtime) (push) Has been cancelled
CI / Create GHCR Manifests (ghcr.io/simstudioai/simstudio) (push) Has been cancelled
CI / Check Docs Changes (push) Has been cancelled
CI / Process Docs (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
CI / Test and Build (push) Has been cancelled
Publish CLI Package / publish-npm (push) Has been cancelled
Publish Python SDK / publish-pypi (push) Has been cancelled
Publish TypeScript SDK / publish-npm (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
---
|
||||
title: Authentication
|
||||
description: API key types, generation, and how to authenticate requests
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
|
||||
To access the Sim API, you need an API key. Sim supports two types of API keys — **personal keys** and **workspace keys** — each with different billing and access behaviors.
|
||||
|
||||
## Key Types
|
||||
|
||||
| | **Personal Keys** | **Workspace Keys** |
|
||||
| --- | --- | --- |
|
||||
| **Billed to** | Your individual account | Workspace owner |
|
||||
| **Scope** | Across workspaces you have access to | Shared across the workspace |
|
||||
| **Managed by** | Each user individually | Workspace admins |
|
||||
| **Permissions** | Must be enabled at workspace level | Require admin permissions |
|
||||
|
||||
<Callout type="info">
|
||||
Workspace admins can disable personal API key usage for their workspace. If disabled, only workspace keys can be used.
|
||||
</Callout>
|
||||
|
||||
## Generating API Keys
|
||||
|
||||
To generate a key, open the Sim dashboard and navigate to **Settings**, then go to **Sim Keys** and click **Create**.
|
||||
|
||||
<Callout type="warn">
|
||||
API keys are only shown once when generated. Store your key securely — you will not be able to view it again.
|
||||
</Callout>
|
||||
|
||||
## Using API Keys
|
||||
|
||||
Pass your API key in the `X-API-Key` header with every request:
|
||||
|
||||
<Tabs items={['curl', 'TypeScript', 'Python']}>
|
||||
<Tab value="curl">
|
||||
```bash
|
||||
curl -X POST https://www.sim.ai/api/workflows/{workflowId}/execute \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-API-Key: YOUR_API_KEY" \
|
||||
-d '{"inputs": {}}'
|
||||
```
|
||||
</Tab>
|
||||
<Tab value="TypeScript">
|
||||
```typescript
|
||||
const response = await fetch(
|
||||
'https://www.sim.ai/api/workflows/{workflowId}/execute',
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'X-API-Key': process.env.SIM_API_KEY!,
|
||||
},
|
||||
body: JSON.stringify({ inputs: {} }),
|
||||
}
|
||||
)
|
||||
```
|
||||
</Tab>
|
||||
<Tab value="Python">
|
||||
```python
|
||||
import requests
|
||||
|
||||
response = requests.post(
|
||||
"https://www.sim.ai/api/workflows/{workflowId}/execute",
|
||||
headers={
|
||||
"Content-Type": "application/json",
|
||||
"X-API-Key": os.environ["SIM_API_KEY"],
|
||||
},
|
||||
json={"inputs": {}},
|
||||
)
|
||||
```
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Where Keys Are Used
|
||||
|
||||
API keys authenticate access to:
|
||||
|
||||
- **Workflow execution** — run deployed workflows via the API
|
||||
- **Logs API** — query workflow execution logs and metrics
|
||||
- **MCP servers** — authenticate connections to deployed MCP servers
|
||||
- **SDKs** — the [Python](/api-reference/python) and [TypeScript](/api-reference/typescript) SDKs use API keys for all operations
|
||||
|
||||
## Security
|
||||
|
||||
- Keys use the `sk-sim-` prefix and are encrypted at rest
|
||||
- Keys can be revoked at any time from the dashboard
|
||||
- Use environment variables to store keys — never hardcode them in source code
|
||||
- For browser-based applications, use a backend proxy to avoid exposing keys to the client
|
||||
|
||||
<Callout type="warn">
|
||||
Never expose your API key in client-side code. Use a server-side proxy to make authenticated requests on behalf of your frontend.
|
||||
</Callout>
|
||||
@@ -0,0 +1,212 @@
|
||||
---
|
||||
title: Getting Started
|
||||
description: Base URL, first API call, response format, error handling, and pagination
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps'
|
||||
|
||||
## Base URL
|
||||
|
||||
All API requests are made to:
|
||||
|
||||
```
|
||||
https://www.sim.ai
|
||||
```
|
||||
|
||||
## Quick Start
|
||||
|
||||
<Steps>
|
||||
|
||||
<Step>
|
||||
### Get your API key
|
||||
|
||||
Go to the Sim dashboard and navigate to **Settings → Sim Keys**, then click **Create**. See [Authentication](/api-reference/authentication) for details on key types.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Find your workflow ID
|
||||
|
||||
Open a workflow in the Sim editor. The workflow ID is in the URL:
|
||||
|
||||
```
|
||||
https://www.sim.ai/workspace/{workspaceId}/w/{workflowId}
|
||||
```
|
||||
|
||||
You can also use the [List Workflows](/api-reference/workflows/listWorkflows) endpoint to get all workflow IDs in a workspace.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Deploy your workflow
|
||||
|
||||
A workflow must be deployed before it can be executed via the API. Click the **Deploy** button in the editor toolbar.
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
### Make your first request
|
||||
|
||||
<Tabs items={['curl', 'TypeScript', 'Python']}>
|
||||
<Tab value="curl">
|
||||
```bash
|
||||
curl -X POST https://www.sim.ai/api/workflows/{workflowId}/execute \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-API-Key: YOUR_API_KEY" \
|
||||
-d '{"inputs": {}}'
|
||||
```
|
||||
</Tab>
|
||||
<Tab value="TypeScript">
|
||||
```typescript
|
||||
const response = await fetch(
|
||||
`https://www.sim.ai/api/workflows/${workflowId}/execute`,
|
||||
{
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
'X-API-Key': process.env.SIM_API_KEY!,
|
||||
},
|
||||
body: JSON.stringify({ inputs: {} }),
|
||||
}
|
||||
)
|
||||
|
||||
const data = await response.json()
|
||||
console.log(data.output)
|
||||
```
|
||||
</Tab>
|
||||
<Tab value="Python">
|
||||
```python
|
||||
import requests
|
||||
import os
|
||||
|
||||
response = requests.post(
|
||||
f"https://www.sim.ai/api/workflows/{workflow_id}/execute",
|
||||
headers={
|
||||
"Content-Type": "application/json",
|
||||
"X-API-Key": os.environ["SIM_API_KEY"],
|
||||
},
|
||||
json={"inputs": {}},
|
||||
)
|
||||
|
||||
data = response.json()
|
||||
print(data["output"])
|
||||
```
|
||||
</Tab>
|
||||
</Tabs>
|
||||
</Step>
|
||||
|
||||
</Steps>
|
||||
|
||||
## Sync vs Async Execution
|
||||
|
||||
By default, workflow executions are **synchronous** — the API blocks until the workflow completes and returns the result directly.
|
||||
|
||||
For long-running workflows, use **asynchronous execution** by passing `async: true`:
|
||||
|
||||
```bash
|
||||
curl -X POST https://www.sim.ai/api/workflows/{workflowId}/execute \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "X-API-Key: YOUR_API_KEY" \
|
||||
-d '{"inputs": {}, "async": true}'
|
||||
```
|
||||
|
||||
This returns immediately with a `jobId` and `statusUrl`:
|
||||
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"jobId": "job_abc123",
|
||||
"statusUrl": "https://www.sim.ai/api/jobs/job_abc123",
|
||||
"message": "Workflow execution started",
|
||||
"async": true
|
||||
}
|
||||
```
|
||||
|
||||
Poll the [Get Job Status](/api-reference/workflows/getJobStatus) endpoint until the status is `completed` or `failed`:
|
||||
|
||||
```bash
|
||||
curl https://www.sim.ai/api/jobs/{jobId} \
|
||||
-H "X-API-Key: YOUR_API_KEY"
|
||||
```
|
||||
|
||||
<Callout type="info">
|
||||
Job status transitions follow: `queued` → `processing` → `completed` or `failed`. The `output` field is only present when status is `completed`.
|
||||
</Callout>
|
||||
|
||||
## Response Format
|
||||
|
||||
Successful responses include an `output` object with your workflow results and a `limits` object with your current rate limit and usage status:
|
||||
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"output": {
|
||||
"result": "Hello, world!"
|
||||
},
|
||||
"limits": {
|
||||
"workflowExecutionRateLimit": {
|
||||
"sync": {
|
||||
"requestsPerMinute": 60,
|
||||
"maxBurst": 10,
|
||||
"remaining": 59,
|
||||
"resetAt": "2025-01-01T00:01:00Z"
|
||||
},
|
||||
"async": {
|
||||
"requestsPerMinute": 30,
|
||||
"maxBurst": 5,
|
||||
"remaining": 30,
|
||||
"resetAt": "2025-01-01T00:01:00Z"
|
||||
}
|
||||
},
|
||||
"usage": {
|
||||
"currentPeriodCost": 1.25,
|
||||
"limit": 50.00,
|
||||
"plan": "pro",
|
||||
"isExceeded": false
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Error Handling
|
||||
|
||||
The API uses standard HTTP status codes. Error responses include a human-readable `error` message:
|
||||
|
||||
```json
|
||||
{
|
||||
"error": "Workflow not found"
|
||||
}
|
||||
```
|
||||
|
||||
| Status | Meaning | What to do |
|
||||
| --- | --- | --- |
|
||||
| `400` | Invalid request parameters | Check the `details` array for specific field errors |
|
||||
| `401` | Missing or invalid API key | Verify your `X-API-Key` header |
|
||||
| `403` | Access denied | Check you have permission for this resource |
|
||||
| `404` | Resource not found | Verify the ID exists and belongs to your workspace |
|
||||
| `429` | Rate limit exceeded | Wait for the duration in the `Retry-After` header |
|
||||
|
||||
<Callout type="info">
|
||||
Use the [Get Usage Limits](/api-reference/usage/getUsageLimits) endpoint to check your current rate limit status and billing usage at any time.
|
||||
</Callout>
|
||||
|
||||
## Rate Limits
|
||||
|
||||
Rate limits depend on your subscription plan and apply separately to synchronous and asynchronous executions. Every execution response includes a `limits` object showing your current rate limit status.
|
||||
|
||||
When rate limited, the API returns a `429` response with a `Retry-After` header indicating how many seconds to wait before retrying.
|
||||
|
||||
## Pagination
|
||||
|
||||
List endpoints (workflows, logs, audit logs) use **cursor-based pagination**:
|
||||
|
||||
```bash
|
||||
# First page
|
||||
curl "https://www.sim.ai/api/v1/logs?limit=20" \
|
||||
-H "X-API-Key: YOUR_API_KEY"
|
||||
|
||||
# Next page — use the nextCursor from the previous response
|
||||
curl "https://www.sim.ai/api/v1/logs?limit=20&cursor=abc123" \
|
||||
-H "X-API-Key: YOUR_API_KEY"
|
||||
```
|
||||
|
||||
The response includes a `nextCursor` field. When `nextCursor` is absent or `null`, you have reached the last page.
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"title": "API Reference",
|
||||
"root": true,
|
||||
"pages": [
|
||||
"getting-started",
|
||||
"authentication",
|
||||
"---SDKs---",
|
||||
"python",
|
||||
"typescript",
|
||||
"---Endpoints---",
|
||||
"(generated)/workflows",
|
||||
"(generated)/logs",
|
||||
"(generated)/usage",
|
||||
"(generated)/audit-logs",
|
||||
"(generated)/tables",
|
||||
"(generated)/files"
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,766 @@
|
||||
---
|
||||
title: Python
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Card, Cards } from 'fumadocs-ui/components/card'
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
|
||||
Das offizielle Python SDK für Sim ermöglicht es Ihnen, Workflows programmatisch aus Ihren Python-Anwendungen heraus mit dem offiziellen Python SDK auszuführen.
|
||||
|
||||
<Callout type="info">
|
||||
Das Python SDK unterstützt Python 3.8+ mit Unterstützung für asynchrone Ausführung, automatischer Ratenbegrenzung mit exponentiellem Backoff und Nutzungsverfolgung.
|
||||
</Callout>
|
||||
|
||||
## Installation
|
||||
|
||||
Installieren Sie das SDK mit pip:
|
||||
|
||||
```bash
|
||||
pip install simstudio-sdk
|
||||
```
|
||||
|
||||
## Schnellstart
|
||||
|
||||
Hier ist ein einfaches Beispiel für den Einstieg:
|
||||
|
||||
```python
|
||||
from simstudio import SimStudioClient
|
||||
|
||||
# Initialize the client
|
||||
client = SimStudioClient(
|
||||
api_key="your-api-key-here",
|
||||
base_url="https://sim.ai" # optional, defaults to https://sim.ai
|
||||
)
|
||||
|
||||
# Execute a workflow
|
||||
try:
|
||||
result = client.execute_workflow("workflow-id")
|
||||
print("Workflow executed successfully:", result)
|
||||
except Exception as error:
|
||||
print("Workflow execution failed:", error)
|
||||
```
|
||||
|
||||
## API-Referenz
|
||||
|
||||
### SimStudioClient
|
||||
|
||||
#### Konstruktor
|
||||
|
||||
```python
|
||||
SimStudioClient(api_key: str, base_url: str = "https://sim.ai")
|
||||
```
|
||||
|
||||
**Parameter:**
|
||||
- `api_key` (str): Ihr Sim API-Schlüssel
|
||||
- `base_url` (str, optional): Basis-URL für die Sim API
|
||||
|
||||
#### Methoden
|
||||
|
||||
##### execute_workflow()
|
||||
|
||||
Führt einen Workflow mit optionalen Eingabedaten aus.
|
||||
|
||||
```python
|
||||
result = client.execute_workflow(
|
||||
"workflow-id",
|
||||
input_data={"message": "Hello, world!"},
|
||||
timeout=30.0 # 30 seconds
|
||||
)
|
||||
```
|
||||
|
||||
**Parameter:**
|
||||
- `workflow_id` (str): Die ID des auszuführenden Workflows
|
||||
- `input_data` (dict, optional): Eingabedaten, die an den Workflow übergeben werden
|
||||
- `timeout` (float, optional): Timeout in Sekunden (Standard: 30.0)
|
||||
- `stream` (bool, optional): Streaming-Antworten aktivieren (Standard: False)
|
||||
- `selected_outputs` (list[str], optional): Block-Ausgaben zum Streamen im Format `blockName.attribute` (z. B. `["agent1.content"]`)
|
||||
- `async_execution` (bool, optional): Asynchron ausführen (Standard: False)
|
||||
|
||||
**Rückgabewert:** `WorkflowExecutionResult | AsyncExecutionResult`
|
||||
|
||||
Wenn `async_execution=True`, wird sofort mit einer Task-ID zum Polling zurückgegeben. Andernfalls wird auf die Fertigstellung gewartet.
|
||||
|
||||
##### get_workflow_status()
|
||||
|
||||
Ruft den Status eines Workflows ab (Deployment-Status usw.).
|
||||
|
||||
```python
|
||||
status = client.get_workflow_status("workflow-id")
|
||||
print("Is deployed:", status.is_deployed)
|
||||
```
|
||||
|
||||
**Parameter:**
|
||||
- `workflow_id` (str): Die ID des Workflows
|
||||
|
||||
**Rückgabe:** `WorkflowStatus`
|
||||
|
||||
##### validate_workflow()
|
||||
|
||||
Überprüft, ob ein Workflow zur Ausführung bereit ist.
|
||||
|
||||
```python
|
||||
is_ready = client.validate_workflow("workflow-id")
|
||||
if is_ready:
|
||||
# Workflow is deployed and ready
|
||||
pass
|
||||
```
|
||||
|
||||
**Parameter:**
|
||||
- `workflow_id` (str): Die ID des Workflows
|
||||
|
||||
**Rückgabe:** `bool`
|
||||
|
||||
##### get_job_status()
|
||||
|
||||
Ruft den Status einer asynchronen Job-Ausführung ab.
|
||||
|
||||
```python
|
||||
status = client.get_job_status("task-id-from-async-execution")
|
||||
print("Status:", status["status"]) # 'queued', 'processing', 'completed', 'failed'
|
||||
if status["status"] == "completed":
|
||||
print("Output:", status["output"])
|
||||
```
|
||||
|
||||
**Parameter:**
|
||||
- `task_id` (str): Die Task-ID, die von der asynchronen Ausführung zurückgegeben wurde
|
||||
|
||||
**Rückgabe:** `Dict[str, Any]`
|
||||
|
||||
**Antwortfelder:**
|
||||
- `success` (bool): Ob die Anfrage erfolgreich war
|
||||
- `taskId` (str): Die Task-ID
|
||||
- `status` (str): Einer von `'queued'`, `'processing'`, `'completed'`, `'failed'`, `'cancelled'`
|
||||
- `metadata` (dict): Enthält `startedAt`, `completedAt` und `duration`
|
||||
- `output` (any, optional): Die Workflow-Ausgabe (wenn abgeschlossen)
|
||||
- `error` (any, optional): Fehlerdetails (wenn fehlgeschlagen)
|
||||
- `estimatedDuration` (int, optional): Geschätzte Dauer in Millisekunden (wenn in Bearbeitung/in Warteschlange)
|
||||
|
||||
##### execute_with_retry()
|
||||
|
||||
Führt einen Workflow mit automatischer Wiederholung bei Rate-Limit-Fehlern unter Verwendung von exponentiellem Backoff aus.
|
||||
|
||||
```python
|
||||
result = client.execute_with_retry(
|
||||
"workflow-id",
|
||||
input_data={"message": "Hello"},
|
||||
timeout=30.0,
|
||||
max_retries=3, # Maximum number of retries
|
||||
initial_delay=1.0, # Initial delay in seconds
|
||||
max_delay=30.0, # Maximum delay in seconds
|
||||
backoff_multiplier=2.0 # Exponential backoff multiplier
|
||||
)
|
||||
```
|
||||
|
||||
**Parameter:**
|
||||
- `workflow_id` (str): Die ID des auszuführenden Workflows
|
||||
- `input_data` (dict, optional): Eingabedaten, die an den Workflow übergeben werden
|
||||
- `timeout` (float, optional): Timeout in Sekunden
|
||||
- `stream` (bool, optional): Streaming-Antworten aktivieren
|
||||
- `selected_outputs` (list, optional): Block-Ausgaben zum Streamen
|
||||
- `async_execution` (bool, optional): Asynchron ausführen
|
||||
- `max_retries` (int, optional): Maximale Anzahl von Wiederholungen (Standard: 3)
|
||||
- `initial_delay` (float, optional): Anfangsverzögerung in Sekunden (Standard: 1.0)
|
||||
- `max_delay` (float, optional): Maximale Verzögerung in Sekunden (Standard: 30.0)
|
||||
- `backoff_multiplier` (float, optional): Backoff-Multiplikator (Standard: 2.0)
|
||||
|
||||
**Rückgabe:** `WorkflowExecutionResult | AsyncExecutionResult`
|
||||
|
||||
Die Wiederholungslogik verwendet exponentielles Backoff (1s → 2s → 4s → 8s...) mit ±25% Jitter, um Thundering Herd zu verhindern. Wenn die API einen `retry-after`-Header bereitstellt, wird dieser stattdessen verwendet.
|
||||
|
||||
##### get_rate_limit_info()
|
||||
|
||||
Ruft die aktuellen Rate-Limit-Informationen aus der letzten API-Antwort ab.
|
||||
|
||||
```python
|
||||
rate_limit_info = client.get_rate_limit_info()
|
||||
if rate_limit_info:
|
||||
print("Limit:", rate_limit_info.limit)
|
||||
print("Remaining:", rate_limit_info.remaining)
|
||||
print("Reset:", datetime.fromtimestamp(rate_limit_info.reset))
|
||||
```
|
||||
|
||||
**Rückgabewert:** `RateLimitInfo | None`
|
||||
|
||||
##### get_usage_limits()
|
||||
|
||||
Ruft aktuelle Nutzungslimits und Kontingentinformationen für Ihr Konto ab.
|
||||
|
||||
```python
|
||||
limits = client.get_usage_limits()
|
||||
print("Sync requests remaining:", limits.rate_limit["sync"]["remaining"])
|
||||
print("Async requests remaining:", limits.rate_limit["async"]["remaining"])
|
||||
print("Current period cost:", limits.usage["currentPeriodCost"])
|
||||
print("Plan:", limits.usage["plan"])
|
||||
```
|
||||
|
||||
**Rückgabewert:** `UsageLimits`
|
||||
|
||||
**Antwortstruktur:**
|
||||
|
||||
```python
|
||||
{
|
||||
"success": bool,
|
||||
"rateLimit": {
|
||||
"sync": {
|
||||
"isLimited": bool,
|
||||
"limit": int,
|
||||
"remaining": int,
|
||||
"resetAt": str
|
||||
},
|
||||
"async": {
|
||||
"isLimited": bool,
|
||||
"limit": int,
|
||||
"remaining": int,
|
||||
"resetAt": str
|
||||
},
|
||||
"authType": str # 'api' or 'manual'
|
||||
},
|
||||
"usage": {
|
||||
"currentPeriodCost": float,
|
||||
"limit": float,
|
||||
"plan": str # e.g., 'free', 'pro'
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
##### set_api_key()
|
||||
|
||||
Aktualisiert den API-Schlüssel.
|
||||
|
||||
```python
|
||||
client.set_api_key("new-api-key")
|
||||
```
|
||||
|
||||
##### set_base_url()
|
||||
|
||||
Aktualisiert die Basis-URL.
|
||||
|
||||
```python
|
||||
client.set_base_url("https://my-custom-domain.com")
|
||||
```
|
||||
|
||||
##### close()
|
||||
|
||||
Schließt die zugrunde liegende HTTP-Sitzung.
|
||||
|
||||
```python
|
||||
client.close()
|
||||
```
|
||||
|
||||
## Datenklassen
|
||||
|
||||
### WorkflowExecutionResult
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class WorkflowExecutionResult:
|
||||
success: bool
|
||||
output: Optional[Any] = None
|
||||
error: Optional[str] = None
|
||||
logs: Optional[List[Any]] = None
|
||||
metadata: Optional[Dict[str, Any]] = None
|
||||
trace_spans: Optional[List[Any]] = None
|
||||
total_duration: Optional[float] = None
|
||||
```
|
||||
|
||||
### AsyncExecutionResult
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class AsyncExecutionResult:
|
||||
success: bool
|
||||
task_id: str
|
||||
status: str # 'queued'
|
||||
created_at: str
|
||||
links: Dict[str, str] # e.g., {"status": "/api/jobs/{taskId}"}
|
||||
```
|
||||
|
||||
### WorkflowStatus
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class WorkflowStatus:
|
||||
is_deployed: bool
|
||||
deployed_at: Optional[str] = None
|
||||
needs_redeployment: bool = False
|
||||
```
|
||||
|
||||
### RateLimitInfo
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class RateLimitInfo:
|
||||
limit: int
|
||||
remaining: int
|
||||
reset: int
|
||||
retry_after: Optional[int] = None
|
||||
```
|
||||
|
||||
### UsageLimits
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class UsageLimits:
|
||||
success: bool
|
||||
rate_limit: Dict[str, Any]
|
||||
usage: Dict[str, Any]
|
||||
```
|
||||
|
||||
### SimStudioError
|
||||
|
||||
```python
|
||||
class SimStudioError(Exception):
|
||||
def __init__(self, message: str, code: Optional[str] = None, status: Optional[int] = None):
|
||||
super().__init__(message)
|
||||
self.code = code
|
||||
self.status = status
|
||||
```
|
||||
|
||||
**Häufige Fehlercodes:**
|
||||
- `UNAUTHORIZED`: Ungültiger API-Schlüssel
|
||||
- `TIMEOUT`: Zeitüberschreitung der Anfrage
|
||||
- `RATE_LIMIT_EXCEEDED`: Ratenlimit überschritten
|
||||
- `USAGE_LIMIT_EXCEEDED`: Nutzungslimit überschritten
|
||||
- `EXECUTION_ERROR`: Workflow-Ausführung fehlgeschlagen
|
||||
|
||||
## Beispiele
|
||||
|
||||
### Grundlegende Workflow-Ausführung
|
||||
|
||||
<Steps>
|
||||
<Step title="Client initialisieren">
|
||||
Richten Sie den SimStudioClient mit Ihrem API-Schlüssel ein.
|
||||
</Step>
|
||||
<Step title="Workflow validieren">
|
||||
Prüfen Sie, ob der Workflow bereitgestellt und zur Ausführung bereit ist.
|
||||
</Step>
|
||||
<Step title="Workflow ausführen">
|
||||
Führen Sie den Workflow mit Ihren Eingabedaten aus.
|
||||
</Step>
|
||||
<Step title="Ergebnis verarbeiten">
|
||||
Verarbeiten Sie das Ausführungsergebnis und behandeln Sie eventuelle Fehler.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
```python
|
||||
import os
|
||||
from simstudio import SimStudioClient
|
||||
|
||||
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
|
||||
|
||||
def run_workflow():
|
||||
try:
|
||||
# Check if workflow is ready
|
||||
is_ready = client.validate_workflow("my-workflow-id")
|
||||
if not is_ready:
|
||||
raise Exception("Workflow is not deployed or ready")
|
||||
|
||||
# Execute the workflow
|
||||
result = client.execute_workflow(
|
||||
"my-workflow-id",
|
||||
input_data={
|
||||
"message": "Process this data",
|
||||
"user_id": "12345"
|
||||
}
|
||||
)
|
||||
|
||||
if result.success:
|
||||
print("Output:", result.output)
|
||||
print("Duration:", result.metadata.get("duration") if result.metadata else None)
|
||||
else:
|
||||
print("Workflow failed:", result.error)
|
||||
|
||||
except Exception as error:
|
||||
print("Error:", error)
|
||||
|
||||
run_workflow()
|
||||
```
|
||||
|
||||
### Fehlerbehandlung
|
||||
|
||||
Behandeln Sie verschiedene Fehlertypen, die während der Workflow-Ausführung auftreten können:
|
||||
|
||||
```python
|
||||
from simstudio import SimStudioClient, SimStudioError
|
||||
import os
|
||||
|
||||
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
|
||||
|
||||
def execute_with_error_handling():
|
||||
try:
|
||||
result = client.execute_workflow("workflow-id")
|
||||
return result
|
||||
except SimStudioError as error:
|
||||
if error.code == "UNAUTHORIZED":
|
||||
print("Invalid API key")
|
||||
elif error.code == "TIMEOUT":
|
||||
print("Workflow execution timed out")
|
||||
elif error.code == "USAGE_LIMIT_EXCEEDED":
|
||||
print("Usage limit exceeded")
|
||||
elif error.code == "INVALID_JSON":
|
||||
print("Invalid JSON in request body")
|
||||
else:
|
||||
print(f"Workflow error: {error}")
|
||||
raise
|
||||
except Exception as error:
|
||||
print(f"Unexpected error: {error}")
|
||||
raise
|
||||
```
|
||||
|
||||
### Verwendung des Context-Managers
|
||||
|
||||
Verwenden Sie den Client als Context-Manager, um die Ressourcenbereinigung automatisch zu handhaben:
|
||||
|
||||
```python
|
||||
from simstudio import SimStudioClient
|
||||
import os
|
||||
|
||||
# Using context manager to automatically close the session
|
||||
with SimStudioClient(api_key=os.getenv("SIM_API_KEY")) as client:
|
||||
result = client.execute_workflow("workflow-id")
|
||||
print("Result:", result)
|
||||
# Session is automatically closed here
|
||||
```
|
||||
|
||||
### Batch-Workflow-Ausführung
|
||||
|
||||
Führen Sie mehrere Workflows effizient aus:
|
||||
|
||||
```python
|
||||
from simstudio import SimStudioClient
|
||||
import os
|
||||
|
||||
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
|
||||
|
||||
def execute_workflows_batch(workflow_data_pairs):
|
||||
"""Execute multiple workflows with different input data."""
|
||||
results = []
|
||||
|
||||
for workflow_id, input_data in workflow_data_pairs:
|
||||
try:
|
||||
# Validate workflow before execution
|
||||
if not client.validate_workflow(workflow_id):
|
||||
print(f"Skipping {workflow_id}: not deployed")
|
||||
continue
|
||||
|
||||
result = client.execute_workflow(workflow_id, input_data)
|
||||
results.append({
|
||||
"workflow_id": workflow_id,
|
||||
"success": result.success,
|
||||
"output": result.output,
|
||||
"error": result.error
|
||||
})
|
||||
|
||||
except Exception as error:
|
||||
results.append({
|
||||
"workflow_id": workflow_id,
|
||||
"success": False,
|
||||
"error": str(error)
|
||||
})
|
||||
|
||||
return results
|
||||
|
||||
# Example usage
|
||||
workflows = [
|
||||
("workflow-1", {"type": "analysis", "data": "sample1"}),
|
||||
("workflow-2", {"type": "processing", "data": "sample2"}),
|
||||
]
|
||||
|
||||
results = execute_workflows_batch(workflows)
|
||||
for result in results:
|
||||
print(f"Workflow {result['workflow_id']}: {'Success' if result['success'] else 'Failed'}")
|
||||
```
|
||||
|
||||
### Asynchrone Workflow-Ausführung
|
||||
|
||||
Führen Sie Workflows asynchron für langwierige Aufgaben aus:
|
||||
|
||||
```python
|
||||
import os
|
||||
import time
|
||||
from simstudio import SimStudioClient
|
||||
|
||||
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
|
||||
|
||||
def execute_async():
|
||||
try:
|
||||
# Start async execution
|
||||
result = client.execute_workflow(
|
||||
"workflow-id",
|
||||
input_data={"data": "large dataset"},
|
||||
async_execution=True # Execute asynchronously
|
||||
)
|
||||
|
||||
# Check if result is an async execution
|
||||
if hasattr(result, 'task_id'):
|
||||
print(f"Task ID: {result.task_id}")
|
||||
print(f"Status endpoint: {result.links['status']}")
|
||||
|
||||
# Poll for completion
|
||||
status = client.get_job_status(result.task_id)
|
||||
|
||||
while status["status"] in ["queued", "processing"]:
|
||||
print(f"Current status: {status['status']}")
|
||||
time.sleep(2) # Wait 2 seconds
|
||||
status = client.get_job_status(result.task_id)
|
||||
|
||||
if status["status"] == "completed":
|
||||
print("Workflow completed!")
|
||||
print(f"Output: {status['output']}")
|
||||
print(f"Duration: {status['metadata']['duration']}")
|
||||
else:
|
||||
print(f"Workflow failed: {status['error']}")
|
||||
|
||||
except Exception as error:
|
||||
print(f"Error: {error}")
|
||||
|
||||
execute_async()
|
||||
```
|
||||
|
||||
### Ratenlimitierung und Wiederholung
|
||||
|
||||
Behandeln Sie Ratenbegrenzungen automatisch mit exponentiellem Backoff:
|
||||
|
||||
```python
|
||||
import os
|
||||
from simstudio import SimStudioClient, SimStudioError
|
||||
|
||||
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
|
||||
|
||||
def execute_with_retry_handling():
|
||||
try:
|
||||
# Automatically retries on rate limit
|
||||
result = client.execute_with_retry(
|
||||
"workflow-id",
|
||||
input_data={"message": "Process this"},
|
||||
max_retries=5,
|
||||
initial_delay=1.0,
|
||||
max_delay=60.0,
|
||||
backoff_multiplier=2.0
|
||||
)
|
||||
|
||||
print(f"Success: {result}")
|
||||
except SimStudioError as error:
|
||||
if error.code == "RATE_LIMIT_EXCEEDED":
|
||||
print("Rate limit exceeded after all retries")
|
||||
|
||||
# Check rate limit info
|
||||
rate_limit_info = client.get_rate_limit_info()
|
||||
if rate_limit_info:
|
||||
from datetime import datetime
|
||||
reset_time = datetime.fromtimestamp(rate_limit_info.reset)
|
||||
print(f"Rate limit resets at: {reset_time}")
|
||||
|
||||
execute_with_retry_handling()
|
||||
```
|
||||
|
||||
### Nutzungsüberwachung
|
||||
|
||||
Überwachen Sie die Nutzung und Limits Ihres Kontos:
|
||||
|
||||
```python
|
||||
import os
|
||||
from simstudio import SimStudioClient
|
||||
|
||||
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
|
||||
|
||||
def check_usage():
|
||||
try:
|
||||
limits = client.get_usage_limits()
|
||||
|
||||
print("=== Rate Limits ===")
|
||||
print("Sync requests:")
|
||||
print(f" Limit: {limits.rate_limit['sync']['limit']}")
|
||||
print(f" Remaining: {limits.rate_limit['sync']['remaining']}")
|
||||
print(f" Resets at: {limits.rate_limit['sync']['resetAt']}")
|
||||
print(f" Is limited: {limits.rate_limit['sync']['isLimited']}")
|
||||
|
||||
print("\nAsync requests:")
|
||||
print(f" Limit: {limits.rate_limit['async']['limit']}")
|
||||
print(f" Remaining: {limits.rate_limit['async']['remaining']}")
|
||||
print(f" Resets at: {limits.rate_limit['async']['resetAt']}")
|
||||
print(f" Is limited: {limits.rate_limit['async']['isLimited']}")
|
||||
|
||||
print("\n=== Usage ===")
|
||||
print(f"Current period cost: ${limits.usage['currentPeriodCost']:.2f}")
|
||||
print(f"Limit: ${limits.usage['limit']:.2f}")
|
||||
print(f"Plan: {limits.usage['plan']}")
|
||||
|
||||
percent_used = (limits.usage['currentPeriodCost'] / limits.usage['limit']) * 100
|
||||
print(f"Usage: {percent_used:.1f}%")
|
||||
|
||||
if percent_used > 80:
|
||||
print("⚠️ Warning: You are approaching your usage limit!")
|
||||
|
||||
except Exception as error:
|
||||
print(f"Error checking usage: {error}")
|
||||
|
||||
check_usage()
|
||||
```
|
||||
|
||||
### Streaming-Workflow-Ausführung
|
||||
|
||||
Führen Sie Workflows mit Echtzeit-Streaming-Antworten aus:
|
||||
|
||||
```python
|
||||
from simstudio import SimStudioClient
|
||||
import os
|
||||
|
||||
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
|
||||
|
||||
def execute_with_streaming():
|
||||
"""Execute workflow with streaming enabled."""
|
||||
try:
|
||||
# Enable streaming for specific block outputs
|
||||
result = client.execute_workflow(
|
||||
"workflow-id",
|
||||
input_data={"message": "Count to five"},
|
||||
stream=True,
|
||||
selected_outputs=["agent1.content"] # Use blockName.attribute format
|
||||
)
|
||||
|
||||
print("Workflow result:", result)
|
||||
except Exception as error:
|
||||
print("Error:", error)
|
||||
|
||||
execute_with_streaming()
|
||||
```
|
||||
|
||||
Die Streaming-Antwort folgt dem Server-Sent-Events- (SSE-) Format:
|
||||
|
||||
```
|
||||
data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":"One"}
|
||||
|
||||
data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":", two"}
|
||||
|
||||
data: {"event":"done","success":true,"output":{},"metadata":{"duration":610}}
|
||||
|
||||
data: [DONE]
|
||||
```
|
||||
|
||||
**Flask-Streaming-Beispiel:**
|
||||
|
||||
```python
|
||||
from flask import Flask, Response, stream_with_context
|
||||
import requests
|
||||
import json
|
||||
import os
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
@app.route('/stream-workflow')
|
||||
def stream_workflow():
|
||||
"""Stream workflow execution to the client."""
|
||||
|
||||
def generate():
|
||||
response = requests.post(
|
||||
'https://sim.ai/api/workflows/WORKFLOW_ID/execute',
|
||||
headers={
|
||||
'Content-Type': 'application/json',
|
||||
'X-API-Key': os.getenv('SIM_API_KEY')
|
||||
},
|
||||
json={
|
||||
'message': 'Generate a story',
|
||||
'stream': True,
|
||||
'selectedOutputs': ['agent1.content']
|
||||
},
|
||||
stream=True
|
||||
)
|
||||
|
||||
for line in response.iter_lines():
|
||||
if line:
|
||||
decoded_line = line.decode('utf-8')
|
||||
if decoded_line.startswith('data: '):
|
||||
data = decoded_line[6:] # Remove 'data: ' prefix
|
||||
|
||||
if data == '[DONE]':
|
||||
break
|
||||
|
||||
try:
|
||||
parsed = json.loads(data)
|
||||
if 'chunk' in parsed:
|
||||
yield f"data: {json.dumps(parsed)}\n\n"
|
||||
elif parsed.get('event') == 'done':
|
||||
yield f"data: {json.dumps(parsed)}\n\n"
|
||||
print("Execution complete:", parsed.get('metadata'))
|
||||
except json.JSONDecodeError:
|
||||
pass
|
||||
|
||||
return Response(
|
||||
stream_with_context(generate()),
|
||||
mimetype='text/event-stream'
|
||||
)
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(debug=True)
|
||||
```
|
||||
|
||||
### Umgebungskonfiguration
|
||||
|
||||
Konfigurieren Sie den Client mit Umgebungsvariablen:
|
||||
|
||||
<Tabs items={['Development', 'Production']}>
|
||||
<Tab value="Development">
|
||||
|
||||
```python
|
||||
import os
|
||||
from simstudio import SimStudioClient
|
||||
|
||||
# Development configuration
|
||||
client = SimStudioClient(
|
||||
api_key=os.getenv("SIM_API_KEY")
|
||||
base_url=os.getenv("SIM_BASE_URL", "https://sim.ai")
|
||||
)
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab value="Production">
|
||||
|
||||
```python
|
||||
import os
|
||||
from simstudio import SimStudioClient
|
||||
|
||||
# Production configuration with error handling
|
||||
api_key = os.getenv("SIM_API_KEY")
|
||||
if not api_key:
|
||||
raise ValueError("SIM_API_KEY environment variable is required")
|
||||
|
||||
client = SimStudioClient(
|
||||
api_key=api_key,
|
||||
base_url=os.getenv("SIM_BASE_URL", "https://sim.ai")
|
||||
)
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Ihren API-Schlüssel erhalten
|
||||
|
||||
<Steps>
|
||||
<Step title="Bei Sim anmelden">
|
||||
Navigieren Sie zu [Sim](https://sim.ai) und melden Sie sich in Ihrem Konto an.
|
||||
</Step>
|
||||
<Step title="Workflow öffnen">
|
||||
Navigieren Sie zu dem Workflow, den Sie programmatisch ausführen möchten.
|
||||
</Step>
|
||||
<Step title="Workflow bereitstellen">
|
||||
Klicken Sie auf "Bereitstellen", um Ihren Workflow bereitzustellen, falls dies noch nicht geschehen ist.
|
||||
</Step>
|
||||
<Step title="API-Schlüssel erstellen oder auswählen">
|
||||
Wählen oder erstellen Sie während des Bereitstellungsprozesses einen API-Schlüssel.
|
||||
</Step>
|
||||
<Step title="API-Schlüssel kopieren">
|
||||
Kopieren Sie den API-Schlüssel, um ihn in Ihrer Python-Anwendung zu verwenden.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- Python 3.8+
|
||||
- requests >= 2.25.0
|
||||
|
||||
## Lizenz
|
||||
|
||||
Apache-2.0
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,160 @@
|
||||
---
|
||||
title: Agent
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Der Agent-Block verbindet deinen Workflow mit Large Language Models (LLMs). Er verarbeitet natürlichsprachliche Eingaben, ruft externe Tools auf und generiert strukturierte oder unstrukturierte Ausgaben.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/agent.png"
|
||||
alt="Agent-Block-Konfiguration"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Konfigurationsoptionen
|
||||
|
||||
### System-Prompt
|
||||
|
||||
Der System-Prompt legt die Betriebsparameter und Verhaltenseinschränkungen des Agenten fest. Diese Konfiguration definiert die Rolle des Agenten, die Antwortmethodik und die Verarbeitungsgrenzen für alle eingehenden Anfragen.
|
||||
|
||||
```markdown
|
||||
You are a helpful assistant that specializes in financial analysis.
|
||||
Always provide clear explanations and cite sources when possible.
|
||||
When responding to questions about investments, include risk disclaimers.
|
||||
```
|
||||
|
||||
### Benutzer-Prompt
|
||||
|
||||
Der Benutzer-Prompt stellt die primären Eingabedaten für die Inferenzverarbeitung dar. Dieser Parameter akzeptiert natürlichsprachlichen Text oder strukturierte Daten, die der Agent analysieren und auf die er reagieren wird. Zu den Eingabequellen gehören:
|
||||
|
||||
- **Statische Konfiguration**: Direkte Texteingabe, die in der Block-Konfiguration angegeben ist
|
||||
- **Dynamische Eingabe**: Daten, die von vorgelagerten Blöcken über Verbindungsschnittstellen übergeben werden
|
||||
- **Laufzeitgenerierung**: Programmatisch generierte Inhalte während der Workflow-Ausführung
|
||||
|
||||
### Modellauswahl
|
||||
|
||||
Der Agent-Block unterstützt mehrere LLM-Anbieter über eine einheitliche Inferenzschnittstelle. Verfügbare Modelle umfassen:
|
||||
|
||||
- **OpenAI**: GPT-5.1, GPT-5, GPT-4o, o1, o3, o4-mini, gpt-4.1
|
||||
- **Anthropic**: Claude 4.5 Sonnet, Claude Opus 4.1
|
||||
- **Google**: Gemini 2.5 Pro, Gemini 2.0 Flash
|
||||
- **Andere Anbieter**: Groq, Cerebras, xAI, Azure OpenAI, OpenRouter
|
||||
- **Lokale Modelle**: Ollama oder VLLM-kompatible Modelle
|
||||
|
||||
### Temperatur
|
||||
|
||||
Steuert die Zufälligkeit und Kreativität der Antworten:
|
||||
|
||||
- **Niedrig (0-0,3)**: Deterministisch und fokussiert. Am besten für faktische Aufgaben und Genauigkeit.
|
||||
- **Mittel (0,3-0,7)**: Ausgewogene Kreativität und Fokus. Gut für allgemeine Verwendung.
|
||||
- **Hoch (0,7-2,0)**: Kreativ und abwechslungsreich. Ideal für Brainstorming und Content-Generierung.
|
||||
|
||||
### API-Schlüssel
|
||||
|
||||
Ihr API-Schlüssel für den ausgewählten LLM-Anbieter. Dieser wird sicher gespeichert und für die Authentifizierung verwendet.
|
||||
|
||||
### Tools
|
||||
|
||||
Erweitern Sie die Fähigkeiten des Agenten mit externen Integrationen. Wählen Sie aus über 60 vorgefertigten Tools oder definieren Sie benutzerdefinierte Funktionen.
|
||||
|
||||
**Verfügbare Kategorien:**
|
||||
- **Kommunikation**: Gmail, Slack, Telegram, WhatsApp, Microsoft Teams
|
||||
- **Datenquellen**: Notion, Google Sheets, Airtable, Supabase, Pinecone
|
||||
- **Webdienste**: Firecrawl, Google Search, Exa AI, Browser-Automatisierung
|
||||
- **Entwicklung**: GitHub, Jira, Linear
|
||||
- **KI-Dienste**: OpenAI, Perplexity, Hugging Face, ElevenLabs
|
||||
|
||||
**Ausführungsmodi:**
|
||||
- **Auto**: Modell entscheidet kontextbasiert, wann Tools verwendet werden
|
||||
- **Erforderlich**: Tool muss bei jeder Anfrage aufgerufen werden
|
||||
- **Keine**: Tool verfügbar, aber dem Modell nicht vorgeschlagen
|
||||
|
||||
### Antwortformat
|
||||
|
||||
Der Parameter für das Antwortformat erzwingt die Generierung strukturierter Ausgaben durch JSON-Schema-Validierung. Dies gewährleistet konsistente, maschinenlesbare Antworten, die vordefinierten Datenstrukturen entsprechen:
|
||||
|
||||
```json
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"sentiment": {
|
||||
"type": "string",
|
||||
"enum": ["positive", "neutral", "negative"]
|
||||
},
|
||||
"summary": {
|
||||
"type": "string",
|
||||
"description": "Brief summary of the content"
|
||||
}
|
||||
},
|
||||
"required": ["sentiment", "summary"]
|
||||
}
|
||||
```
|
||||
|
||||
Diese Konfiguration beschränkt die Ausgabe des Modells auf die Einhaltung des angegebenen Schemas, verhindert Freitextantworten und stellt die Generierung strukturierter Daten sicher.
|
||||
|
||||
### Zugriff auf Ergebnisse
|
||||
|
||||
Nach Abschluss eines Agenten können Sie auf seine Ausgaben zugreifen:
|
||||
|
||||
- **response**: Der Antworttext oder die strukturierten Daten des Agenten
|
||||
- **usage**: Token-Nutzungsstatistiken (Prompt, Completion, Gesamt)
|
||||
- **toolExecutions**: Details zu allen Tools, die der Agent während der Ausführung verwendet hat
|
||||
- **estimatedCost**: Geschätzte Kosten des API-Aufrufs (falls verfügbar)
|
||||
|
||||
## Erweiterte Funktionen
|
||||
|
||||
### Memory + Agent: Gesprächsverlauf
|
||||
|
||||
Verwenden Sie einen memory Block mit einer konsistenten memoryId (zum Beispiel, conversationHistory), um Nachrichten zwischen Durchläufen zu speichern und diesen Verlauf in den Prompt des Agenten einzubeziehen.
|
||||
|
||||
- Fügen Sie die Nachricht des Benutzers vor dem Agenten hinzu
|
||||
- Lesen Sie den Gesprächsverlauf für den Kontext
|
||||
- Hängen Sie die Antwort des Agenten nach dessen Ausführung an
|
||||
|
||||
Siehe den [`Memory`](/tools/memory) Blockverweis für Details.
|
||||
|
||||
## Ausgaben
|
||||
|
||||
- **`<agent.content>`**: Antworttext des Agenten
|
||||
- **`<agent.tokens>`**: Token-Nutzungsstatistiken
|
||||
- **`<agent.tool_calls>`**: Details zur Tool-Ausführung
|
||||
- **`<agent.cost>`**: Geschätzte Kosten des API-Aufrufs
|
||||
|
||||
## Beispielanwendungsfälle
|
||||
|
||||
**Automatisierung des Kundenservice** - Bearbeitung von Anfragen mit Datenbank- und Tool-Zugriff
|
||||
|
||||
```
|
||||
API (Ticket) → Agent (Postgres, KB, Linear) → Gmail (Reply) → Memory (Save)
|
||||
```
|
||||
|
||||
**Multi-Modell-Inhaltsanalyse** - Analyse von Inhalten mit verschiedenen KI-Modellen
|
||||
|
||||
```
|
||||
Function (Process) → Agent (GPT-4o Technical) → Agent (Claude Sentiment) → Function (Report)
|
||||
```
|
||||
|
||||
**Tool-gestützter Rechercheassistent** - Recherche mit Websuche und Dokumentenzugriff
|
||||
|
||||
```
|
||||
Input → Agent (Google Search, Notion) → Function (Compile Report)
|
||||
```
|
||||
|
||||
## Bewährte Praktiken
|
||||
|
||||
- **Sei spezifisch in System-Prompts**: Definiere die Rolle, den Ton und die Einschränkungen des Agenten klar. Je spezifischer deine Anweisungen sind, desto besser kann der Agent seinen vorgesehenen Zweck erfüllen.
|
||||
- **Wähle die richtige Temperatureinstellung**: Verwende niedrigere Temperatureinstellungen (0-0,3), wenn Genauigkeit wichtig ist, oder erhöhe die Temperatur (0,7-2,0) für kreativere oder vielfältigere Antworten
|
||||
- **Nutze Tools effektiv**: Integriere Tools, die den Zweck des Agenten ergänzen und seine Fähigkeiten erweitern. Sei selektiv bei der Auswahl der Tools, um den Agenten nicht zu überfordern. Für Aufgaben mit wenig Überschneidung verwende einen anderen Agent-Block für die besten Ergebnisse.
|
||||
|
||||
## Best Practices
|
||||
|
||||
- **Seien Sie spezifisch in System-Prompts**: Definieren Sie die Rolle, den Ton und die Grenzen des Agenten klar. Je spezifischer Ihre Anweisungen sind, desto besser kann der Agent seinen beabsichtigten Zweck erfüllen.
|
||||
- **Wählen Sie die richtige Temperatureinstellung**: Verwenden Sie niedrigere Temperatureinstellungen (0–0,3), wenn Genauigkeit wichtig ist, oder erhöhen Sie die Temperatur (0,7–2,0) für kreativere oder vielfältigere Antworten
|
||||
- **Nutzen Sie Tools effektiv**: Integrieren Sie Tools, die den Zweck des Agenten ergänzen und seine Fähigkeiten erweitern. Seien Sie selektiv bei der Auswahl der Tools, um den Agenten nicht zu überfordern. Verwenden Sie für Aufgaben mit geringer Überschneidung einen weiteren Agent-Block für die besten Ergebnisse.
|
||||
@@ -0,0 +1,145 @@
|
||||
---
|
||||
title: API
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Der API-Block verbindet Ihren Workflow mit externen Diensten durch HTTP-Anfragen. Unterstützt GET, POST, PUT, DELETE und PATCH Methoden für die Interaktion mit REST-APIs.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/api.png"
|
||||
alt="API-Block"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Konfigurationsoptionen
|
||||
|
||||
### URL
|
||||
|
||||
Die Endpunkt-URL für die API-Anfrage. Diese kann sein:
|
||||
|
||||
- Eine statische URL, die direkt im Block eingegeben wird
|
||||
- Eine dynamische URL, die mit der Ausgabe eines anderen Blocks verbunden ist
|
||||
- Eine URL mit Pfadparametern
|
||||
|
||||
### Methode
|
||||
|
||||
Wählen Sie die HTTP-Methode für Ihre Anfrage:
|
||||
|
||||
- **GET**: Daten vom Server abrufen
|
||||
- **POST**: Daten an den Server senden, um eine Ressource zu erstellen
|
||||
- **PUT**: Eine bestehende Ressource auf dem Server aktualisieren
|
||||
- **DELETE**: Eine Ressource vom Server entfernen
|
||||
- **PATCH**: Eine bestehende Ressource teilweise aktualisieren
|
||||
|
||||
### Abfrageparameter
|
||||
|
||||
Definieren Sie Schlüssel-Wert-Paare, die als Abfrageparameter an die URL angehängt werden. Zum Beispiel:
|
||||
|
||||
```
|
||||
Key: apiKey
|
||||
Value: your_api_key_here
|
||||
|
||||
Key: limit
|
||||
Value: 10
|
||||
```
|
||||
|
||||
Diese würden der URL als `?apiKey=your_api_key_here&limit=10` hinzugefügt.
|
||||
|
||||
### Header
|
||||
|
||||
Konfigurieren Sie HTTP-Header für Ihre Anfrage. Häufige Header sind:
|
||||
|
||||
```
|
||||
Key: Content-Type
|
||||
Value: application/json
|
||||
|
||||
Key: Authorization
|
||||
Value: Bearer your_token_here
|
||||
```
|
||||
|
||||
### Anfragekörper
|
||||
|
||||
Für Methoden, die einen Anfragekörper unterstützen (POST, PUT, PATCH), können Sie die zu sendenden Daten definieren. Der Körper kann sein:
|
||||
|
||||
- JSON-Daten, die direkt im Block eingegeben werden
|
||||
- Daten, die mit der Ausgabe eines anderen Blocks verbunden sind
|
||||
- Dynamisch während der Workflow-Ausführung generiert
|
||||
|
||||
### Zugriff auf Ergebnisse
|
||||
|
||||
Nach Abschluss einer API-Anfrage können Sie auf folgende Ausgaben zugreifen:
|
||||
|
||||
- **`<api.data>`**: Die Antwortdaten vom API
|
||||
- **`<api.status>`**: HTTP-Statuscode (200, 404, 500, usw.)
|
||||
- **`<api.headers>`**: Antwort-Header vom Server
|
||||
- **`<api.error>`**: Fehlerdetails, falls die Anfrage fehlgeschlagen ist
|
||||
|
||||
## Erweiterte Funktionen
|
||||
|
||||
### Dynamische URL-Konstruktion
|
||||
|
||||
Erstellen Sie URLs dynamisch mit Variablen aus vorherigen Blöcken:
|
||||
|
||||
```javascript
|
||||
// In a Function block before the API
|
||||
const userId = <start.userId>;
|
||||
const apiUrl = `https://api.example.com/users/${userId}/profile`;
|
||||
```
|
||||
|
||||
### Anfrage-Wiederholungen
|
||||
|
||||
Der API-Block verarbeitet automatisch:
|
||||
- Netzwerk-Timeouts mit exponentiellem Backoff
|
||||
- Antworten bei Ratenbegrenzung (429-Statuscodes)
|
||||
- Serverfehler (5xx-Statuscodes) mit Wiederholungslogik
|
||||
- Verbindungsfehler mit Wiederverbindungsversuchen
|
||||
|
||||
### Antwortvalidierung
|
||||
|
||||
Validieren Sie API-Antworten vor der Verarbeitung:
|
||||
|
||||
```javascript
|
||||
// In a Function block after the API
|
||||
if (<api.status> === 200) {
|
||||
const data = <api.data>;
|
||||
// Process successful response
|
||||
} else {
|
||||
// Handle error response
|
||||
console.error(`API Error: ${<api.status>}`);
|
||||
}
|
||||
```
|
||||
|
||||
## Ausgaben
|
||||
|
||||
- **`<api.data>`**: Antwortdaten vom API
|
||||
- **`<api.status>`**: HTTP-Statuscode
|
||||
- **`<api.headers>`**: Antwort-Header
|
||||
- **`<api.error>`**: Fehlerdetails bei fehlgeschlagener Anfrage
|
||||
|
||||
## Anwendungsbeispiele
|
||||
|
||||
**Benutzerprofildaten abrufen** - Benutzerinformationen von externem Dienst abrufen
|
||||
|
||||
```
|
||||
Function (Build ID) → API (GET /users/{id}) → Function (Format) → Response
|
||||
```
|
||||
|
||||
**Zahlungsabwicklung** - Zahlung über die Stripe-API verarbeiten
|
||||
|
||||
```
|
||||
Function (Validate) → API (Stripe) → Condition (Success) → Supabase (Update)
|
||||
```
|
||||
|
||||
## Bewährte Praktiken
|
||||
|
||||
- **Umgebungsvariablen für sensible Daten verwenden**: Keine API-Schlüssel oder Anmeldedaten im Code festlegen
|
||||
- **Fehler elegant behandeln**: Fehlerbehandlungslogik für fehlgeschlagene Anfragen einbinden
|
||||
- **Antworten validieren**: Statuscode und Antwortformate vor der Datenverarbeitung prüfen
|
||||
- **Ratenbegrenzungen respektieren**: Achten Sie auf API-Ratenbegrenzungen und implementieren Sie angemessene Drosselung
|
||||
@@ -0,0 +1,149 @@
|
||||
---
|
||||
title: Bedingung
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Der Bedingungsblock verzweigt die Workflow-Ausführung basierend auf booleschen Ausdrücken. Bewerten Sie Bedingungen anhand vorheriger Block-Ausgaben und leiten Sie zu verschiedenen Pfaden weiter, ohne dass ein LLM erforderlich ist.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/condition.png"
|
||||
alt="Bedingungsblock"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Konfigurationsoptionen
|
||||
|
||||
### Bedingungen
|
||||
|
||||
Definieren Sie eine oder mehrere Bedingungen, die ausgewertet werden. Jede Bedingung umfasst:
|
||||
|
||||
- **Ausdruck**: Ein JavaScript/TypeScript-Ausdruck, der zu wahr oder falsch ausgewertet wird
|
||||
- **Pfad**: Der Zielblock, zu dem weitergeleitet werden soll, wenn die Bedingung wahr ist
|
||||
- **Beschreibung**: Optionale Erklärung, was die Bedingung prüft
|
||||
|
||||
Sie können mehrere Bedingungen erstellen, die der Reihe nach ausgewertet werden, wobei die erste übereinstimmende Bedingung den Ausführungspfad bestimmt.
|
||||
|
||||
### Format für Bedingungsausdrücke
|
||||
|
||||
Bedingungen verwenden JavaScript-Syntax und können auf Eingabewerte aus vorherigen Blöcken verweisen.
|
||||
|
||||
<Tabs items={['Schwellenwert', 'Textanalyse', 'Mehrere Bedingungen']}>
|
||||
<Tab>
|
||||
|
||||
```javascript
|
||||
// Check if a score is above a threshold
|
||||
<agent.score> > 75
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab>
|
||||
|
||||
```javascript
|
||||
// Check if a text contains specific keywords
|
||||
<agent.text>.includes('urgent') || <agent.text>.includes('emergency')
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab>
|
||||
|
||||
```javascript
|
||||
// Check multiple conditions
|
||||
<agent.age> >= 18 && <agent.country> === 'US'
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### Zugriff auf Ergebnisse
|
||||
|
||||
Nach der Auswertung einer Bedingung können Sie auf folgende Ausgaben zugreifen:
|
||||
|
||||
- **condition.result**: Boolesches Ergebnis der Bedingungsauswertung
|
||||
- **condition.matched_condition**: ID der übereinstimmenden Bedingung
|
||||
- **condition.content**: Beschreibung des Auswertungsergebnisses
|
||||
- **condition.path**: Details zum gewählten Routing-Ziel
|
||||
|
||||
## Erweiterte Funktionen
|
||||
|
||||
### Komplexe Ausdrücke
|
||||
|
||||
Verwenden Sie JavaScript-Operatoren und -Funktionen in Bedingungen:
|
||||
|
||||
```javascript
|
||||
// String operations
|
||||
<user.email>.endsWith('@company.com')
|
||||
|
||||
// Array operations
|
||||
<api.tags>.includes('urgent')
|
||||
|
||||
// Mathematical operations
|
||||
<agent.confidence> * 100 > 85
|
||||
|
||||
// Date comparisons
|
||||
new Date(<api.created_at>) > new Date('2024-01-01')
|
||||
```
|
||||
|
||||
### Auswertung mehrerer Bedingungen
|
||||
|
||||
Bedingungen werden der Reihe nach ausgewertet, bis eine übereinstimmt:
|
||||
|
||||
```javascript
|
||||
// Condition 1: Check for high priority
|
||||
<ticket.priority> === 'high'
|
||||
|
||||
// Condition 2: Check for urgent keywords
|
||||
<ticket.subject>.toLowerCase().includes('urgent')
|
||||
|
||||
// Condition 3: Default fallback
|
||||
true
|
||||
```
|
||||
|
||||
### Fehlerbehandlung
|
||||
|
||||
Bedingungen behandeln automatisch:
|
||||
- Undefinierte oder Null-Werte mit sicherer Auswertung
|
||||
- Typabweichungen mit geeigneten Fallbacks
|
||||
- Ungültige Ausdrücke mit Fehlerprotokollierung
|
||||
- Fehlende Variablen mit Standardwerten
|
||||
|
||||
## Ausgaben
|
||||
|
||||
- **`<condition.result>`**: Boolesches Ergebnis der Auswertung
|
||||
- **`<condition.matched_condition>`**: ID der übereinstimmenden Bedingung
|
||||
- **`<condition.content>`**: Beschreibung des Auswertungsergebnisses
|
||||
- **`<condition.path>`**: Details zum gewählten Routing-Ziel
|
||||
|
||||
## Beispielanwendungsfälle
|
||||
|
||||
**Kundenservice-Routing** - Tickets basierend auf Priorität weiterleiten
|
||||
|
||||
```
|
||||
API (Ticket) → Condition (priority === 'high') → Agent (Escalation) or Agent (Standard)
|
||||
```
|
||||
|
||||
**Inhaltsmoderation** - Inhalte basierend auf Analysen filtern
|
||||
|
||||
```
|
||||
Agent (Analyze) → Condition (toxicity > 0.7) → Moderation or Publish
|
||||
```
|
||||
|
||||
**Benutzer-Onboarding-Ablauf** - Onboarding basierend auf Benutzertyp personalisieren
|
||||
|
||||
```
|
||||
Function (Process) → Condition (account_type === 'enterprise') → Advanced or Simple
|
||||
```
|
||||
|
||||
## Bewährte Praktiken
|
||||
|
||||
- **Bedingungen korrekt anordnen**: Platzieren Sie spezifischere Bedingungen vor allgemeinen, um sicherzustellen, dass spezifische Logik Vorrang vor Fallbacks hat
|
||||
- **Verwenden Sie den Else-Zweig bei Bedarf**: Wenn keine Bedingungen übereinstimmen und der Else-Zweig nicht verbunden ist, endet der Workflow-Zweig ordnungsgemäß. Verbinden Sie den Else-Zweig, wenn Sie einen Fallback-Pfad für nicht übereinstimmende Fälle benötigen
|
||||
- **Halten Sie Ausdrücke einfach**: Verwenden Sie klare, unkomplizierte boolesche Ausdrücke für bessere Lesbarkeit und einfachere Fehlersuche
|
||||
- **Dokumentieren Sie Ihre Bedingungen**: Fügen Sie Beschreibungen hinzu, um den Zweck jeder Bedingung für bessere Teamzusammenarbeit und Wartung zu erklären
|
||||
- **Testen Sie Grenzfälle**: Überprüfen Sie, ob Bedingungen Grenzwerte korrekt behandeln, indem Sie mit Werten an den Grenzen Ihrer Bedingungsbereiche testen
|
||||
@@ -0,0 +1,96 @@
|
||||
---
|
||||
title: Evaluator
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Der Evaluator-Block nutzt KI, um die Inhaltsqualität anhand benutzerdefinierter Metriken zu bewerten. Perfekt für Qualitätskontrolle, A/B-Tests und um sicherzustellen, dass KI-Ausgaben bestimmte Standards erfüllen.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/evaluator.png"
|
||||
alt="Evaluator-Block-Konfiguration"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Konfigurationsoptionen
|
||||
|
||||
### Bewertungsmetriken
|
||||
|
||||
Definieren Sie benutzerdefinierte Metriken, anhand derer Inhalte bewertet werden. Jede Metrik umfasst:
|
||||
|
||||
- **Name**: Eine kurze Bezeichnung für die Metrik
|
||||
- **Beschreibung**: Eine detaillierte Erklärung, was die Metrik misst
|
||||
- **Bereich**: Der numerische Bereich für die Bewertung (z.B. 1-5, 0-10)
|
||||
|
||||
Beispielmetriken:
|
||||
|
||||
```
|
||||
Accuracy (1-5): How factually accurate is the content?
|
||||
Clarity (1-5): How clear and understandable is the content?
|
||||
Relevance (1-5): How relevant is the content to the original query?
|
||||
```
|
||||
|
||||
### Inhalt
|
||||
|
||||
Der zu bewertende Inhalt. Dies kann sein:
|
||||
|
||||
- Direkt in der Blockkonfiguration bereitgestellt
|
||||
- Verbunden mit der Ausgabe eines anderen Blocks (typischerweise ein Agent-Block)
|
||||
- Dynamisch während der Workflow-Ausführung generiert
|
||||
|
||||
### Modellauswahl
|
||||
|
||||
Wählen Sie ein KI-Modell für die Durchführung der Bewertung:
|
||||
|
||||
- **OpenAI**: GPT-4o, o1, o3, o4-mini, gpt-4.1
|
||||
- **Anthropic**: Claude 3.7 Sonnet
|
||||
- **Google**: Gemini 2.5 Pro, Gemini 2.0 Flash
|
||||
- **Andere Anbieter**: Groq, Cerebras, xAI, DeepSeek
|
||||
- **Lokale Modelle**: Ollama oder VLLM-kompatible Modelle
|
||||
|
||||
Verwenden Sie Modelle mit starken Argumentationsfähigkeiten wie GPT-4o oder Claude 3.7 Sonnet für beste Ergebnisse.
|
||||
|
||||
### API-Schlüssel
|
||||
|
||||
Ihr API-Schlüssel für den ausgewählten LLM-Anbieter. Dieser wird sicher gespeichert und für die Authentifizierung verwendet.
|
||||
|
||||
## Beispielanwendungsfälle
|
||||
|
||||
**Bewertung der Inhaltsqualität** - Inhalte vor der Veröffentlichung bewerten
|
||||
|
||||
```
|
||||
Agent (Generate) → Evaluator (Score) → Condition (Check threshold) → Publish or Revise
|
||||
```
|
||||
|
||||
**A/B-Tests von Inhalten** - Vergleich mehrerer KI-generierter Antworten
|
||||
|
||||
```
|
||||
Parallel (Variations) → Evaluator (Score Each) → Function (Select Best) → Response
|
||||
```
|
||||
|
||||
**Qualitätskontrolle im Kundenservice** - Sicherstellen, dass Antworten Qualitätsstandards erfüllen
|
||||
|
||||
```
|
||||
Agent (Support Response) → Evaluator (Score) → Function (Log) → Condition (Review if Low)
|
||||
```
|
||||
|
||||
## Ausgaben
|
||||
|
||||
- **`<evaluator.content>`**: Zusammenfassung der Bewertung mit Punktzahlen
|
||||
- **`<evaluator.model>`**: Für die Bewertung verwendetes Modell
|
||||
- **`<evaluator.tokens>`**: Statistik zur Token-Nutzung
|
||||
- **`<evaluator.cost>`**: Geschätzte Bewertungskosten
|
||||
|
||||
## Best Practices
|
||||
|
||||
- **Verwenden Sie spezifische Metrikbeschreibungen**: Definieren Sie klar, was jede Metrik misst, um genauere Bewertungen zu erhalten
|
||||
- **Wählen Sie geeignete Bereiche**: Wählen Sie Bewertungsbereiche, die ausreichend Granularität bieten, ohne zu komplex zu sein
|
||||
- **Verbinden Sie mit Agent-Blöcken**: Verwenden Sie Evaluator-Blöcke, um die Ausgaben von Agent-Blöcken zu bewerten und Feedback-Schleifen zu erstellen
|
||||
- **Verwenden Sie konsistente Metriken**: Für vergleichende Analysen sollten Sie konsistente Metriken über ähnliche Bewertungen hinweg beibehalten
|
||||
- **Kombinieren Sie mehrere Metriken**: Verwenden Sie verschiedene Metriken, um eine umfassende Bewertung zu erhalten
|
||||
@@ -0,0 +1,76 @@
|
||||
---
|
||||
title: Funktion
|
||||
---
|
||||
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Der Funktionsblock führt benutzerdefinierten JavaScript- oder TypeScript-Code in Ihren Workflows aus. Transformieren Sie Daten, führen Sie Berechnungen durch oder implementieren Sie benutzerdefinierte Logik.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/function.png"
|
||||
alt="Funktionsblock mit Code-Editor"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Ausgaben
|
||||
|
||||
- **`<function.result>`**: Der von Ihrer Funktion zurückgegebene Wert
|
||||
- **`<function.stdout>`**: Console.log()-Ausgabe Ihres Codes
|
||||
|
||||
## Beispielanwendungsfälle
|
||||
|
||||
**Datenverarbeitungspipeline** - Transformation von API-Antworten in strukturierte Daten
|
||||
|
||||
```
|
||||
API (Fetch) → Function (Process & Validate) → Function (Calculate Metrics) → Response
|
||||
```
|
||||
|
||||
**Implementierung von Geschäftslogik** - Berechnung von Treuepunkten und Stufen
|
||||
|
||||
```
|
||||
Agent (Get History) → Function (Calculate Score) → Function (Determine Tier) → Condition (Route)
|
||||
```
|
||||
|
||||
**Datenvalidierung und -bereinigung** - Validierung und Bereinigung von Benutzereingaben
|
||||
|
||||
```
|
||||
Input → Function (Validate & Sanitize) → API (Save to Database)
|
||||
```
|
||||
|
||||
### Beispiel: Treuepunkte-Rechner
|
||||
|
||||
```javascript title="loyalty-calculator.js"
|
||||
// Process customer data and calculate loyalty score
|
||||
const { purchaseHistory, accountAge, supportTickets } = <agent>;
|
||||
|
||||
// Calculate metrics
|
||||
const totalSpent = purchaseHistory.reduce((sum, purchase) => sum + purchase.amount, 0);
|
||||
const purchaseFrequency = purchaseHistory.length / (accountAge / 365);
|
||||
const ticketRatio = supportTickets.resolved / supportTickets.total;
|
||||
|
||||
// Calculate loyalty score (0-100)
|
||||
const spendScore = Math.min(totalSpent / 1000 * 30, 30);
|
||||
const frequencyScore = Math.min(purchaseFrequency * 20, 40);
|
||||
const supportScore = ticketRatio * 30;
|
||||
|
||||
const loyaltyScore = Math.round(spendScore + frequencyScore + supportScore);
|
||||
|
||||
return {
|
||||
customer: <agent.name>,
|
||||
loyaltyScore,
|
||||
loyaltyTier: loyaltyScore >= 80 ? "Platinum" : loyaltyScore >= 60 ? "Gold" : "Silver",
|
||||
metrics: { spendScore, frequencyScore, supportScore }
|
||||
};
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
- **Funktionen fokussiert halten**: Schreiben Sie Funktionen, die eine Sache gut erledigen, um die Wartbarkeit und Fehlersuche zu verbessern
|
||||
- **Fehler elegant behandeln**: Verwenden Sie try/catch-Blöcke, um potenzielle Fehler zu behandeln und aussagekräftige Fehlermeldungen bereitzustellen
|
||||
- **Grenzfälle testen**: Stellen Sie sicher, dass Ihr Code ungewöhnliche Eingaben, Null-Werte und Grenzbedingungen korrekt behandelt
|
||||
- **Für Leistung optimieren**: Achten Sie bei großen Datensätzen auf die Berechnungskomplexität und den Speicherverbrauch
|
||||
- **Console.log() zum Debuggen verwenden**: Nutzen Sie die Stdout-Ausgabe zum Debuggen und Überwachen der Funktionsausführung
|
||||
@@ -0,0 +1,207 @@
|
||||
---
|
||||
title: Guardrails
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Image } from '@/components/ui/image'
|
||||
import { Video } from '@/components/ui/video'
|
||||
|
||||
Der Guardrails-Block validiert und schützt Ihre KI-Workflows, indem er Inhalte anhand mehrerer Validierungstypen überprüft. Stellen Sie die Datenqualität sicher, verhindern Sie Halluzinationen, erkennen Sie personenbezogene Daten und erzwingen Sie Formatanforderungen, bevor Inhalte durch Ihren Workflow fließen.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/guardrails.png"
|
||||
alt="Guardrails-Block"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Validierungstypen
|
||||
|
||||
### JSON-Validierung
|
||||
|
||||
Überprüft, ob der Inhalt korrekt formatiertes JSON ist. Perfekt, um sicherzustellen, dass strukturierte LLM-Ausgaben sicher geparst werden können.
|
||||
|
||||
**Anwendungsfälle:**
|
||||
- Validierung von JSON-Antworten aus Agent-Blöcken vor dem Parsen
|
||||
- Sicherstellen, dass API-Payloads korrekt formatiert sind
|
||||
- Überprüfung der Integrität strukturierter Daten
|
||||
|
||||
**Ausgabe:**
|
||||
- `passed`: `true` bei gültigem JSON, sonst `false`
|
||||
- `error`: Fehlermeldung bei fehlgeschlagener Validierung (z.B. "Ungültiges JSON: Unerwartetes Token...")
|
||||
|
||||
### Regex-Validierung
|
||||
|
||||
Prüft, ob der Inhalt einem bestimmten regulären Ausdrucksmuster entspricht.
|
||||
|
||||
**Anwendungsfälle:**
|
||||
- Validierung von E-Mail-Adressen
|
||||
- Überprüfung von Telefonnummernformaten
|
||||
- Verifizierung von URLs oder benutzerdefinierten Kennungen
|
||||
- Durchsetzung spezifischer Textmuster
|
||||
|
||||
**Konfiguration:**
|
||||
- **Regex-Muster**: Der reguläre Ausdruck, gegen den geprüft wird (z.B. `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$` für E-Mails)
|
||||
|
||||
**Ausgabe:**
|
||||
- `passed`: `true` wenn der Inhalt dem Muster entspricht, sonst `false`
|
||||
- `error`: Fehlermeldung bei fehlgeschlagener Validierung
|
||||
|
||||
### Halluzinationserkennung
|
||||
|
||||
Verwendet Retrieval-Augmented Generation (RAG) mit LLM-Bewertung, um zu erkennen, wann KI-generierte Inhalte im Widerspruch zu Ihrer Wissensdatenbank stehen oder nicht darin begründet sind.
|
||||
|
||||
**Funktionsweise:**
|
||||
1. Abfrage Ihrer Wissensdatenbank nach relevantem Kontext
|
||||
2. Übermittlung sowohl der KI-Ausgabe als auch des abgerufenen Kontexts an ein LLM
|
||||
3. LLM weist einen Konfidenzwert zu (Skala 0-10)
|
||||
- **0** = Vollständige Halluzination (völlig unbegründet)
|
||||
- **10** = Vollständig begründet (komplett durch die Wissensdatenbank gestützt)
|
||||
4. Validierung besteht, wenn der Wert ≥ Schwellenwert ist (Standard: 3)
|
||||
|
||||
**Konfiguration:**
|
||||
- **Wissensdatenbank**: Wählen Sie aus Ihren vorhandenen Wissensdatenbanken
|
||||
- **Modell**: Wählen Sie LLM für die Bewertung (erfordert starkes Denkvermögen - GPT-4o, Claude 3.7 Sonnet empfohlen)
|
||||
- **API-Schlüssel**: Authentifizierung für den ausgewählten LLM-Anbieter (automatisch ausgeblendet für gehostete/Ollama oder VLLM-kompatible Modelle)
|
||||
- **Vertrauensschwelle**: Mindestpunktzahl zum Bestehen (0-10, Standard: 3)
|
||||
- **Top K** (Erweitert): Anzahl der abzurufenden Wissensdatenbank-Chunks (Standard: 10)
|
||||
|
||||
**Ausgabe:**
|
||||
- `passed`: `true` wenn Konfidenzwert ≥ Schwellenwert
|
||||
- `score`: Konfidenzwert (0-10)
|
||||
- `reasoning`: Erklärung des LLM für den Wert
|
||||
- `error`: Fehlermeldung bei fehlgeschlagener Validierung
|
||||
|
||||
**Anwendungsfälle:**
|
||||
- Validierung von Agent-Antworten anhand der Dokumentation
|
||||
- Sicherstellung der faktischen Richtigkeit von Kundendienstantworten
|
||||
- Überprüfung, ob generierte Inhalte mit dem Quellmaterial übereinstimmen
|
||||
- Qualitätskontrolle für RAG-Anwendungen
|
||||
|
||||
### PII-Erkennung
|
||||
|
||||
Erkennt personenbezogene Daten mithilfe von Microsoft Presidio. Unterstützt über 40 Entitätstypen in mehreren Ländern und Sprachen.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/guardrails-2.png"
|
||||
alt="PII-Erkennungskonfiguration"
|
||||
width={700}
|
||||
height={450}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
**Funktionsweise:**
|
||||
1. Übergabe des zu validierenden Inhalts (z.B. `<agent1.content>`)
|
||||
2. Auswahl der zu erkennenden PII-Typen über den Modal-Selektor
|
||||
3. Auswahl des Erkennungsmodus (Erkennen oder Maskieren)
|
||||
4. Inhalt wird auf übereinstimmende PII-Entitäten gescannt
|
||||
5. Gibt Erkennungsergebnisse und optional maskierten Text zurück
|
||||
|
||||
<div className="mx-auto w-3/5 overflow-hidden rounded-lg">
|
||||
<Video src="guardrails.mp4" width={500} height={350} />
|
||||
</div>
|
||||
|
||||
**Konfiguration:**
|
||||
- **Zu erkennende PII-Typen**: Auswahl aus gruppierten Kategorien über Modal-Selektor
|
||||
- **Allgemein**: Personenname, E-Mail, Telefon, Kreditkarte, IP-Adresse usw.
|
||||
- **USA**: Sozialversicherungsnummer, Führerschein, Reisepass usw.
|
||||
- **UK**: NHS-Nummer, Sozialversicherungsnummer
|
||||
- **Spanien**: NIF, NIE, CIF
|
||||
- **Italien**: Steuernummer, Führerschein, Umsatzsteuer-ID
|
||||
- **Polen**: PESEL, NIP, REGON
|
||||
- **Singapur**: NRIC/FIN, UEN
|
||||
- **Australien**: ABN, ACN, TFN, Medicare
|
||||
- **Indien**: Aadhaar, PAN, Reisepass, Wählernummer
|
||||
- **Modus**:
|
||||
- **Erkennen**: Nur PII identifizieren (Standard)
|
||||
- **Maskieren**: Erkannte PII durch maskierte Werte ersetzen
|
||||
- **Sprache**: Erkennungssprache (Standard: Englisch)
|
||||
|
||||
**Ausgabe:**
|
||||
- `passed`: `false` wenn ausgewählte PII-Typen erkannt werden
|
||||
- `detectedEntities`: Array erkannter PII mit Typ, Position und Konfidenz
|
||||
- `maskedText`: Inhalt mit maskierter PII (nur wenn Modus = "Mask")
|
||||
- `error`: Fehlermeldung bei fehlgeschlagener Validierung
|
||||
|
||||
**Anwendungsfälle:**
|
||||
- Blockieren von Inhalten mit sensiblen persönlichen Informationen
|
||||
- Maskieren von personenbezogenen Daten vor der Protokollierung oder Speicherung
|
||||
- Einhaltung der DSGVO und anderer Datenschutzbestimmungen
|
||||
- Bereinigung von Benutzereingaben vor der Verarbeitung
|
||||
|
||||
## Konfiguration
|
||||
|
||||
### Zu validierende Inhalte
|
||||
|
||||
Der zu validierende Eingabeinhalt. Dieser stammt typischerweise aus:
|
||||
- Ausgaben von Agent-Blöcken: `<agent.content>`
|
||||
- Ergebnisse von Funktionsblöcken: `<function.output>`
|
||||
- API-Antworten: `<api.output>`
|
||||
- Jede andere Blockausgabe
|
||||
|
||||
### Validierungstyp
|
||||
|
||||
Wählen Sie aus vier Validierungstypen:
|
||||
- **Gültiges JSON**: Prüfen, ob der Inhalt korrekt formatiertes JSON ist
|
||||
- **Regex-Übereinstimmung**: Überprüfen, ob der Inhalt einem Regex-Muster entspricht
|
||||
- **Halluzinationsprüfung**: Validierung gegen Wissensdatenbank mit LLM-Bewertung
|
||||
- **PII-Erkennung**: Erkennung und optional Maskierung personenbezogener Daten
|
||||
|
||||
## Ausgaben
|
||||
|
||||
Alle Validierungstypen geben zurück:
|
||||
|
||||
- **`<guardrails.passed>`**: Boolescher Wert, der angibt, ob die Validierung bestanden wurde
|
||||
- **`<guardrails.validationType>`**: Der durchgeführte Validierungstyp
|
||||
- **`<guardrails.input>`**: Die ursprüngliche Eingabe, die validiert wurde
|
||||
- **`<guardrails.error>`**: Fehlermeldung, wenn die Validierung fehlgeschlagen ist (optional)
|
||||
|
||||
Zusätzliche Ausgaben nach Typ:
|
||||
|
||||
**Halluzinationsprüfung:**
|
||||
- **`<guardrails.score>`**: Konfidenzwert (0-10)
|
||||
- **`<guardrails.reasoning>`**: Erklärung des LLM
|
||||
|
||||
**PII-Erkennung:**
|
||||
- **`<guardrails.detectedEntities>`**: Array erkannter PII-Entitäten
|
||||
- **`<guardrails.maskedText>`**: Inhalt mit maskierten PII (wenn Modus = "Mask")
|
||||
|
||||
## Beispielanwendungsfälle
|
||||
|
||||
**JSON vor dem Parsen validieren** - Stellen Sie sicher, dass die Agent-Ausgabe gültiges JSON ist
|
||||
|
||||
```
|
||||
Agent (Generate) → Guardrails (Validate) → Condition (Check passed) → Function (Parse)
|
||||
```
|
||||
|
||||
**Halluzinationen verhindern** - Validieren Sie Kundendienstantworten anhand der Wissensdatenbank
|
||||
|
||||
```
|
||||
Agent (Response) → Guardrails (Check KB) → Condition (Score ≥ 3) → Send or Flag
|
||||
```
|
||||
|
||||
**PII in Benutzereingaben blockieren** - Bereinigen Sie von Benutzern übermittelte Inhalte
|
||||
|
||||
```
|
||||
Input → Guardrails (Detect PII) → Condition (No PII) → Process or Reject
|
||||
```
|
||||
|
||||
## Bewährte Praktiken
|
||||
|
||||
- **Verkettung mit Bedingungsblöcken**: Verwenden Sie `<guardrails.passed>`, um die Workflow-Logik basierend auf Validierungsergebnissen zu verzweigen
|
||||
- **JSON-Validierung vor dem Parsen verwenden**: Validieren Sie immer die JSON-Struktur, bevor Sie versuchen, LLM-Ausgaben zu parsen
|
||||
- **Geeignete PII-Typen auswählen**: Wählen Sie nur die für Ihren Anwendungsfall relevanten PII-Entitätstypen für bessere Leistung
|
||||
- **Angemessene Konfidenzgrenzwerte festlegen**: Passen Sie für die Halluzinationserkennung den Grenzwert an Ihre Genauigkeitsanforderungen an (höher = strenger)
|
||||
- **Starke Modelle für die Halluzinationserkennung verwenden**: GPT-4o oder Claude 3.7 Sonnet bieten genauere Konfidenzwerte
|
||||
- **PII für die Protokollierung maskieren**: Verwenden Sie den Modus "Mask", wenn Sie Inhalte protokollieren oder speichern müssen, die PII enthalten könnten
|
||||
- **Regex-Muster testen**: Validieren Sie Ihre Regex-Muster gründlich, bevor Sie sie in der Produktion einsetzen
|
||||
- **Validierungsfehler überwachen**: Verfolgen Sie `<guardrails.error>`Nachrichten, um häufige Validierungsprobleme zu identifizieren
|
||||
|
||||
<Callout type="info">
|
||||
Die Validierung von Guardrails erfolgt synchron in Ihrem Workflow. Für die Erkennung von Halluzinationen sollten Sie schnellere Modelle (wie GPT-4o-mini) wählen, wenn die Latenz kritisch ist.
|
||||
</Callout>
|
||||
@@ -0,0 +1,188 @@
|
||||
---
|
||||
title: Human in the Loop
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Image } from '@/components/ui/image'
|
||||
import { Video } from '@/components/ui/video'
|
||||
|
||||
Der Human in the Loop Block pausiert die Workflow-Ausführung und wartet auf menschliches Eingreifen, bevor er fortfährt. Verwenden Sie ihn, um Genehmigungspunkte hinzuzufügen, Feedback zu sammeln oder zusätzliche Eingaben an kritischen Entscheidungspunkten einzuholen.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/hitl-1.png"
|
||||
alt="Human in the Loop Block Konfiguration"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
Wenn die Ausführung diesen Block erreicht, pausiert der Workflow auf unbestimmte Zeit, bis ein Mensch über das Genehmigungsportal, die API oder den Webhook eine Eingabe macht.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/hitl-2.png"
|
||||
alt="Human in the Loop Genehmigungsportal"
|
||||
width={700}
|
||||
height={500}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Konfigurationsoptionen
|
||||
|
||||
### Pausierte Ausgabe
|
||||
|
||||
Definiert, welche Daten dem Genehmigenden angezeigt werden. Dies ist der Kontext, der im Genehmigungsportal angezeigt wird, um eine fundierte Entscheidung zu ermöglichen.
|
||||
|
||||
Verwenden Sie den visuellen Builder oder den JSON-Editor, um die Daten zu strukturieren. Referenzieren Sie Workflow-Variablen mit der `<blockName.output>` Syntax.
|
||||
|
||||
```json
|
||||
{
|
||||
"customerName": "<agent1.content.name>",
|
||||
"proposedAction": "<router1.selectedPath>",
|
||||
"confidenceScore": "<evaluator1.score>",
|
||||
"generatedEmail": "<agent2.content>"
|
||||
}
|
||||
```
|
||||
|
||||
### Benachrichtigung
|
||||
|
||||
Konfiguriert, wie Genehmigende benachrichtigt werden, wenn eine Genehmigung erforderlich ist. Unterstützte Kanäle sind:
|
||||
|
||||
- **Slack** - Nachrichten an Kanäle oder DMs
|
||||
- **Gmail** - E-Mail mit Genehmigungslink
|
||||
- **Microsoft Teams** - Team-Kanal-Benachrichtigungen
|
||||
- **SMS** - Textwarnungen über Twilio
|
||||
- **Webhooks** - Benutzerdefinierte Benachrichtigungssysteme
|
||||
|
||||
Fügen Sie die Genehmigungs-URL (`<blockId.url>`) in Ihre Benachrichtigungsnachrichten ein, damit Genehmigende auf das Portal zugreifen können.
|
||||
|
||||
### Fortsetzungseingabe
|
||||
|
||||
Definiert die Felder, die Genehmigende bei der Antwort ausfüllen. Diese Daten werden nach der Fortsetzung des Workflows für nachfolgende Blöcke verfügbar.
|
||||
|
||||
```json
|
||||
{
|
||||
"approved": {
|
||||
"type": "boolean",
|
||||
"description": "Approve or reject this request"
|
||||
},
|
||||
"comments": {
|
||||
"type": "string",
|
||||
"description": "Optional feedback or explanation"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Greifen Sie in nachgelagerten Blöcken auf Wiederaufnahmedaten mit `<blockId.resumeInput.fieldName>` zu.
|
||||
|
||||
## Genehmigungsmethoden
|
||||
|
||||
<Tabs items={['Genehmigungsportal', 'API', 'Webhook']}>
|
||||
<Tab>
|
||||
### Genehmigungsportal
|
||||
|
||||
Jeder Block generiert eine eindeutige Portal-URL (`<blockId.url>`) mit einer visuellen Oberfläche, die alle pausierten Ausgabedaten und Formularfelder für die Fortsetzungseingabe anzeigt. Mobilgerätekompatibel und sicher.
|
||||
|
||||
Teilen Sie diese URL in Benachrichtigungen, damit Genehmiger die Anfragen prüfen und beantworten können.
|
||||
</Tab>
|
||||
<Tab>
|
||||
### REST API
|
||||
|
||||
Workflows programmatisch fortsetzen:
|
||||
|
||||
|
||||
```bash
|
||||
POST /api/workflows/{workflowId}/executions/{executionId}/resume/{blockId}
|
||||
|
||||
{
|
||||
"approved": true,
|
||||
"comments": "Looks good to proceed"
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
Erstellen Sie benutzerdefinierte Genehmigungs-UIs oder integrieren Sie bestehende Systeme.
|
||||
</Tab>
|
||||
<Tab>
|
||||
### Webhook
|
||||
|
||||
Fügen Sie ein Webhook-Tool im Benachrichtigungsbereich hinzu, um Genehmigungsanfragen an externe Systeme zu senden. Integration mit Ticketing-Systemen wie Jira oder ServiceNow.
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Häufige Anwendungsfälle
|
||||
|
||||
**Inhaltsgenehmigung** - Überprüfung von KI-generierten Inhalten vor der Veröffentlichung
|
||||
|
||||
```
|
||||
Agent → Human in the Loop → API (Publish)
|
||||
```
|
||||
|
||||
**Mehrstufige Genehmigungen** - Verkettung mehrerer Genehmigungsschritte für wichtige Entscheidungen
|
||||
|
||||
```
|
||||
Agent → Human in the Loop (Manager) → Human in the Loop (Director) → Execute
|
||||
```
|
||||
|
||||
**Datenvalidierung** - Überprüfung extrahierter Daten vor der Verarbeitung
|
||||
|
||||
```
|
||||
Agent (Extract) → Human in the Loop (Validate) → Function (Process)
|
||||
```
|
||||
|
||||
**Qualitätskontrolle** - Überprüfung von KI-Ausgaben vor dem Versand an Kunden
|
||||
|
||||
```
|
||||
Agent (Generate) → Human in the Loop (QA) → Gmail (Send)
|
||||
```
|
||||
|
||||
## Block-Ausgaben
|
||||
|
||||
**`url`** - Eindeutige URL für das Genehmigungsportal
|
||||
**`resumeInput.*`** - Alle in der Fortsetzungseingabe definierten Felder werden verfügbar, nachdem der Workflow fortgesetzt wird
|
||||
|
||||
Zugriff über `<blockId.resumeInput.fieldName>`.
|
||||
|
||||
## Beispiel
|
||||
|
||||
**Pausierte Ausgabe:**
|
||||
|
||||
```json
|
||||
{
|
||||
"title": "<agent1.content.title>",
|
||||
"body": "<agent1.content.body>",
|
||||
"qualityScore": "<evaluator1.score>"
|
||||
}
|
||||
```
|
||||
|
||||
**Fortsetzungseingabe:**
|
||||
|
||||
```json
|
||||
{
|
||||
"approved": { "type": "boolean" },
|
||||
"feedback": { "type": "string" }
|
||||
}
|
||||
```
|
||||
|
||||
**Nachgelagerte Verwendung:**
|
||||
|
||||
```javascript
|
||||
// Condition block
|
||||
<approval1.resumeInput.approved> === true
|
||||
```
|
||||
|
||||
Das Beispiel unten zeigt ein Genehmigungsportal, wie es von einem Genehmiger gesehen wird, nachdem der Workflow angehalten wurde. Genehmiger können die Daten überprüfen und Eingaben als Teil der Workflow-Wiederaufnahme bereitstellen. Auf das Genehmigungsportal kann direkt über die eindeutige URL, `<blockId.url>`, zugegriffen werden.
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
|
||||
<Video src="hitl-resume.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
## Verwandte Blöcke
|
||||
|
||||
- **[Bedingung](/blocks/condition)** - Verzweigung basierend auf Genehmigungsentscheidungen
|
||||
- **[Variablen](/blocks/variables)** - Speichern von Genehmigungsverlauf und Metadaten
|
||||
- **[Antwort](/blocks/response)** - Rückgabe von Workflow-Ergebnissen an API-Aufrufer
|
||||
@@ -0,0 +1,143 @@
|
||||
---
|
||||
title: Übersicht
|
||||
description: Die Bausteine deiner KI-Workflows
|
||||
---
|
||||
|
||||
import { Card, Cards } from 'fumadocs-ui/components/card'
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Video } from '@/components/ui/video'
|
||||
|
||||
Blöcke sind die Bausteine, die du miteinander verbindest, um KI-Workflows zu erstellen. Betrachte sie als spezialisierte Module, die jeweils eine bestimmte Aufgabe übernehmen – vom Chatten mit KI-Modellen über API-Aufrufe bis hin zur Datenverarbeitung.
|
||||
|
||||
<div className="w-full max-w-2xl mx-auto overflow-hidden rounded-lg">
|
||||
<Video src="connections.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
## Grundlegende Blocktypen
|
||||
|
||||
Sim bietet wesentliche Blocktypen, die die Kernfunktionen von KI-Workflows abdecken:
|
||||
|
||||
### Verarbeitungsblöcke
|
||||
- **[Agent](/blocks/agent)** - Chatte mit KI-Modellen (OpenAI, Anthropic, Google, lokale Modelle)
|
||||
- **[Function](/blocks/function)** - Führe benutzerdefinierten JavaScript/TypeScript-Code aus
|
||||
- **[API](/blocks/api)** - Verbinde dich mit externen Diensten über HTTP-Anfragen
|
||||
|
||||
### Logikblöcke
|
||||
- **[Condition](/blocks/condition)** - Verzweige Workflow-Pfade basierend auf booleschen Ausdrücken
|
||||
- **[Router](/blocks/router)** - Nutze KI, um Anfragen intelligent auf verschiedene Pfade zu leiten
|
||||
- **[Evaluator](/blocks/evaluator)** - Bewerte und beurteile die Inhaltsqualität mit KI
|
||||
|
||||
### Ablaufsteuerungsblöcke
|
||||
- **[Variablen](/blocks/variables)** - Workflow-bezogene Variablen setzen und verwalten
|
||||
- **[Warten](/blocks/wait)** - Workflow-Ausführung für eine bestimmte Zeitverzögerung pausieren
|
||||
- **[Mensch in der Schleife](/blocks/human-in-the-loop)** - Pausieren für menschliche Genehmigung und Feedback vor dem Fortfahren
|
||||
|
||||
### Ausgabeblöcke
|
||||
- **[Antwort](/blocks/response)** - Formatieren und Zurückgeben der endgültigen Ergebnisse aus Ihrem Workflow
|
||||
|
||||
## Wie Blöcke funktionieren
|
||||
|
||||
Jeder Block hat drei Hauptkomponenten:
|
||||
|
||||
**Eingaben**: Daten, die in den Block von anderen Blöcken oder Benutzereingaben kommen
|
||||
**Konfiguration**: Einstellungen, die steuern, wie der Block sich verhält
|
||||
**Ausgaben**: Daten, die der Block für andere Blöcke zur Verwendung erzeugt
|
||||
|
||||
<Steps>
|
||||
<Step>
|
||||
<strong>Eingabe empfangen</strong>: Block erhält Daten von verbundenen Blöcken oder Benutzereingaben
|
||||
</Step>
|
||||
<Step>
|
||||
<strong>Verarbeiten</strong>: Block verarbeitet die Eingabe gemäß seiner Konfiguration
|
||||
</Step>
|
||||
<Step>
|
||||
<strong>Ergebnisse ausgeben</strong>: Block erzeugt Ausgabedaten für die nächsten Blöcke im Workflow
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Blöcke verbinden
|
||||
|
||||
Sie erstellen Workflows, indem Sie Blöcke miteinander verbinden. Die Ausgabe eines Blocks wird zur Eingabe eines anderen:
|
||||
|
||||
- **Ziehen zum Verbinden**: Ziehen Sie von einem Ausgabeport zu einem Eingabeport
|
||||
- **Mehrfachverbindungen**: Eine Ausgabe kann mit mehreren Eingaben verbunden werden
|
||||
- **Verzweigende Pfade**: Einige Blöcke können basierend auf Bedingungen zu verschiedenen Pfaden weiterleiten
|
||||
|
||||
<div className="w-full max-w-2xl mx-auto overflow-hidden rounded-lg">
|
||||
<Video src="connections.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
## Häufige Muster
|
||||
|
||||
### Sequentielle Verarbeitung
|
||||
Verbinden Sie Blöcke in einer Kette, wobei jeder Block die Ausgabe des vorherigen verarbeitet:
|
||||
|
||||
```
|
||||
User Input → Agent → Function → Response
|
||||
```
|
||||
|
||||
### Bedingte Verzweigung
|
||||
Verwenden Sie Bedingung- oder Router-Blöcke, um verschiedene Pfade zu erstellen:
|
||||
|
||||
```
|
||||
User Input → Router → Agent A (for questions)
|
||||
→ Agent B (for commands)
|
||||
```
|
||||
|
||||
### Qualitätskontrolle
|
||||
Verwenden Sie Evaluator-Blöcke, um Ausgaben zu bewerten und zu filtern:
|
||||
|
||||
```
|
||||
Agent → Evaluator → Condition → Response (if good)
|
||||
→ Agent (retry if bad)
|
||||
```
|
||||
|
||||
## Block-Konfiguration
|
||||
|
||||
Jeder Blocktyp hat spezifische Konfigurationsoptionen:
|
||||
|
||||
**Alle Blöcke**:
|
||||
- Eingabe-/Ausgabeverbindungen
|
||||
- Fehlerbehandlungsverhalten
|
||||
- Einstellungen für Ausführungs-Timeout
|
||||
|
||||
**KI-Blöcke** (Agent, Router, Evaluator):
|
||||
- Modellauswahl (OpenAI, Anthropic, Google, lokal)
|
||||
- API-Schlüssel und Authentifizierung
|
||||
- Temperatur und andere Modellparameter
|
||||
- Systemaufforderungen und Anweisungen
|
||||
|
||||
**Logik-Blöcke** (Bedingung, Funktion):
|
||||
- Benutzerdefinierte Ausdrücke oder Code
|
||||
- Variablenreferenzen
|
||||
- Einstellungen für Ausführungsumgebung
|
||||
|
||||
**Integrations-Blöcke** (API, Response):
|
||||
- Endpunktkonfiguration
|
||||
- Header und Authentifizierung
|
||||
- Anfrage-/Antwortformatierung
|
||||
|
||||
<Cards>
|
||||
<Card title="Agent-Block" href="/blocks/agent">
|
||||
Verbindung zu KI-Modellen herstellen und intelligente Antworten erstellen
|
||||
</Card>
|
||||
<Card title="Funktionsblock" href="/blocks/function">
|
||||
Benutzerdefinierten Code ausführen, um Daten zu verarbeiten und zu transformieren
|
||||
</Card>
|
||||
<Card title="API-Block" href="/blocks/api">
|
||||
Integration mit externen Diensten und APIs
|
||||
</Card>
|
||||
<Card title="Bedingungsblock" href="/blocks/condition">
|
||||
Verzweigende Logik basierend auf Datenbewertung erstellen
|
||||
</Card>
|
||||
<Card title="Mensch-in-der-Schleife-Block" href="/blocks/human-in-the-loop">
|
||||
Pausieren für menschliche Genehmigung und Feedback vor dem Fortfahren
|
||||
</Card>
|
||||
<Card title="Variablenblock" href="/blocks/variables">
|
||||
Workflow-bezogene Variablen setzen und verwalten
|
||||
</Card>
|
||||
<Card title="Warteblock" href="/blocks/wait">
|
||||
Workflow-Ausführung für bestimmte Zeitverzögerungen pausieren
|
||||
</Card>
|
||||
</Cards>
|
||||
@@ -0,0 +1,306 @@
|
||||
---
|
||||
title: Loop
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Der Schleifenblock ist ein Container, der Blöcke wiederholt ausführt. Iteriere über Sammlungen, wiederhole Operationen eine festgelegte Anzahl von Malen oder fahre fort, solange eine Bedingung erfüllt ist.
|
||||
|
||||
<Callout type="info">
|
||||
Schleifenblöcke sind Container-Knoten, die andere Blöcke in sich enthalten. Die enthaltenen Blöcke werden mehrfach ausgeführt, basierend auf deiner Konfiguration.
|
||||
</Callout>
|
||||
|
||||
## Konfigurationsoptionen
|
||||
|
||||
### Schleifentyp
|
||||
|
||||
Wähle zwischen vier Arten von Schleifen:
|
||||
|
||||
<Tabs items={['For-Schleife', 'ForEach-Schleife', 'While-Schleife', 'Do-While-Schleife']}>
|
||||
<Tab>
|
||||
**For-Schleife (Iterationen)** - Eine numerische Schleife, die eine festgelegte Anzahl von Malen ausgeführt wird:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/loop-1.png"
|
||||
alt="For-Schleife mit Iterationen"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
Verwende diese, wenn du eine Operation eine bestimmte Anzahl von Malen wiederholen musst.
|
||||
|
||||
|
||||
```
|
||||
Example: Run 5 times
|
||||
- Iteration 1
|
||||
- Iteration 2
|
||||
- Iteration 3
|
||||
- Iteration 4
|
||||
- Iteration 5
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab>
|
||||
**ForEach-Schleife (Sammlung)** - Eine sammlungsbasierte Schleife, die über jedes Element in einem Array oder Objekt iteriert:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/loop-2.png"
|
||||
alt="ForEach-Schleife mit Sammlung"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
Verwende diese, wenn du eine Sammlung von Elementen verarbeiten musst.
|
||||
|
||||
|
||||
```
|
||||
Example: Process ["apple", "banana", "orange"]
|
||||
- Iteration 1: Process "apple"
|
||||
- Iteration 2: Process "banana"
|
||||
- Iteration 3: Process "orange"
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab>
|
||||
**While-Schleife (Bedingungsbasiert)** - Wird ausgeführt, solange eine Bedingung als wahr ausgewertet wird:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/loop-3.png"
|
||||
alt="While-Schleife mit Bedingung"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
Verwende diese, wenn du eine Schleife benötigst, die läuft, bis eine bestimmte Bedingung erfüllt ist. Die Bedingung wird **vor** jeder Iteration überprüft.
|
||||
|
||||
```
|
||||
Example: While {"<variable.i>"} < 10
|
||||
- Check condition → Execute if true
|
||||
- Inside loop: Increment {"<variable.i>"}
|
||||
- Inside loop: Variables assigns i = {"<variable.i>"} + 1
|
||||
- Check condition → Execute if true
|
||||
- Check condition → Exit if false
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab>
|
||||
**Do-While-Schleife (Bedingungsbasiert)** - Wird mindestens einmal ausgeführt und dann fortgesetzt, solange eine Bedingung wahr ist:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/loop-4.png"
|
||||
alt="Do-While-Schleife mit Bedingung"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
Verwende diese, wenn du eine Operation mindestens einmal ausführen musst und dann die Schleife fortsetzen willst, bis eine Bedingung erfüllt ist. Die Bedingung wird **nach** jeder Iteration überprüft.
|
||||
|
||||
```
|
||||
Example: Do-while {"<variable.i>"} < 10
|
||||
- Execute blocks
|
||||
- Inside loop: Increment {"<variable.i>"}
|
||||
- Inside loop: Variables assigns i = {"<variable.i>"} + 1
|
||||
- Check condition → Continue if true
|
||||
- Check condition → Exit if false
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Wie man Schleifen verwendet
|
||||
|
||||
### Eine Schleife erstellen
|
||||
|
||||
1. Ziehe einen Schleifenblock aus der Werkzeugleiste auf deine Leinwand
|
||||
2. Konfiguriere den Schleifentyp und die Parameter
|
||||
3. Ziehe andere Blöcke in den Schleifencontainer
|
||||
4. Verbinde die Blöcke nach Bedarf
|
||||
|
||||
### Auf Ergebnisse zugreifen
|
||||
|
||||
Nach Abschluss einer Schleife kannst du auf aggregierte Ergebnisse zugreifen:
|
||||
|
||||
- **loop.results**: Array mit Ergebnissen aller Schleifendurchläufe
|
||||
|
||||
## Beispielanwendungsfälle
|
||||
|
||||
**Verarbeitung von API-Ergebnissen** - ForEach-Schleife verarbeitet Kundendatensätze aus einer API
|
||||
|
||||
```javascript
|
||||
// Beispiel: ForEach-Schleife für API-Ergebnisse
|
||||
const customers = await api.getCustomers();
|
||||
|
||||
loop.forEach(customers, (customer) => {
|
||||
// Verarbeite jeden Kunden
|
||||
if (customer.status === 'active') {
|
||||
sendEmail(customer.email, 'Sonderangebot');
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
**Iterative Inhaltsgenerierung** - For-Schleife generiert mehrere Inhaltsvariationen
|
||||
|
||||
```javascript
|
||||
// Beispiel: For-Schleife für Inhaltsgenerierung
|
||||
const variations = [];
|
||||
|
||||
loop.for(5, (i) => {
|
||||
// Generiere 5 verschiedene Variationen
|
||||
const content = ai.generateContent({
|
||||
prompt: `Variation ${i+1} für Produktbeschreibung`,
|
||||
temperature: 0.7 + (i * 0.1)
|
||||
});
|
||||
variations.push(content);
|
||||
});
|
||||
```
|
||||
|
||||
**Zähler mit While-Schleife** - While-Schleife verarbeitet Elemente mit Zähler
|
||||
|
||||
```javascript
|
||||
// Beispiel: While-Schleife mit Zähler
|
||||
let counter = 0;
|
||||
let processedItems = 0;
|
||||
|
||||
loop.while(() => counter < items.length, () => {
|
||||
if (items[counter].isValid) {
|
||||
processItem(items[counter]);
|
||||
processedItems++;
|
||||
}
|
||||
counter++;
|
||||
});
|
||||
|
||||
console.log(`${processedItems} gültige Elemente verarbeitet`);
|
||||
```
|
||||
|
||||
## Erweiterte Funktionen
|
||||
|
||||
### Einschränkungen
|
||||
|
||||
<Callout type="info">
|
||||
Container-Blöcke (Schleifen und Parallele) unterstützen Verschachtelung. Du kannst Schleifen in Schleifen, Parallele in Schleifen und jede Kombination von Container-Blöcken platzieren, um komplexe mehrdimensionale Workflows zu erstellen.
|
||||
</Callout>
|
||||
|
||||
<Callout type="info">
|
||||
Schleifen werden sequentiell ausgeführt, nicht parallel. Wenn du eine gleichzeitige Ausführung benötigst, verwende stattdessen den Parallel-Block.
|
||||
</Callout>
|
||||
|
||||
## Eingaben und Ausgaben
|
||||
|
||||
<Tabs items={['Configuration', 'Variables', 'Results']}>
|
||||
<Tab>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>Schleifentyp</strong>: Wähle zwischen 'for', 'forEach', 'while' oder 'doWhile'
|
||||
</li>
|
||||
<li>
|
||||
<strong>Iterationen</strong>: Anzahl der Ausführungen (für for-Schleifen)
|
||||
</li>
|
||||
<li>
|
||||
<strong>Sammlung</strong>: Array oder Objekt zum Durchlaufen (für forEach-Schleifen)
|
||||
</li>
|
||||
<li>
|
||||
<strong>Bedingung</strong>: Boolescher Ausdruck zur Auswertung (für while/do-while-Schleifen)
|
||||
</li>
|
||||
</ul>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>loop.currentItem</strong>: Aktuell verarbeitetes Element
|
||||
</li>
|
||||
<li>
|
||||
<strong>loop.index</strong>: Aktuelle Iterationsnummer (0-basiert)
|
||||
</li>
|
||||
<li>
|
||||
<strong>loop.items</strong>: Vollständige Sammlung (für forEach-Schleifen)
|
||||
</li>
|
||||
</ul>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>loop.results</strong>: Array aller Iterationsergebnisse
|
||||
</li>
|
||||
<li>
|
||||
<strong>Struktur</strong>: Ergebnisse behalten die Iterationsreihenfolge bei
|
||||
</li>
|
||||
<li>
|
||||
<strong>Zugriff</strong>: Verfügbar in Blöcken nach der Schleife
|
||||
</li>
|
||||
</ul>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Bewährte Praktiken
|
||||
|
||||
- **Setzen Sie vernünftige Grenzen**: Halten Sie die Anzahl der Iterationen in einem vernünftigen Rahmen, um lange Ausführungszeiten zu vermeiden
|
||||
- **Verwenden Sie ForEach für Sammlungen**: Verwenden Sie beim Verarbeiten von Arrays oder Objekten ForEach anstelle von For-Schleifen
|
||||
- **Behandeln Sie Fehler elegant**: Erwägen Sie, Fehlerbehandlung innerhalb von Schleifen hinzuzufügen, um robuste Workflows zu gewährleisten
|
||||
|
||||
## Eingaben und Ausgaben
|
||||
|
||||
<Tabs items={['Configuration', 'Variables', 'Results']}>
|
||||
<Tab>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>Schleifentyp</strong>: Wählen Sie zwischen 'for', 'forEach', 'while' oder 'doWhile'
|
||||
</li>
|
||||
<li>
|
||||
<strong>Iterationen</strong>: Anzahl der Ausführungen (für for-Schleifen)
|
||||
</li>
|
||||
<li>
|
||||
<strong>Sammlung</strong>: Array oder Objekt zum Durchlaufen (für forEach-Schleifen)
|
||||
</li>
|
||||
<li>
|
||||
<strong>Bedingung</strong>: Boolescher Ausdruck zur Auswertung (für while/do-while-Schleifen)
|
||||
</li>
|
||||
</ul>
|
||||
</Tab>
|
||||
<Tab>
|
||||
Verfügbar **innerhalb** der Schleife:
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>{"<loop.index>"}</strong>: Aktuelle Iterationsnummer (0-basiert)
|
||||
</li>
|
||||
<li>
|
||||
<strong>{"<loop.currentItem>"}</strong>: Aktuell verarbeitetes Element (nur forEach)
|
||||
</li>
|
||||
<li>
|
||||
<strong>{"<loop.items>"}</strong>: Vollständige Sammlung (nur forEach)
|
||||
</li>
|
||||
</ul>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>{"<blockname.results>"}</strong>: Array aller Iterationsergebnisse (Zugriff über Blocknamen)
|
||||
</li>
|
||||
<li>
|
||||
<strong>Struktur</strong>: Ergebnisse behalten die Iterationsreihenfolge bei
|
||||
</li>
|
||||
<li>
|
||||
<strong>Zugriff</strong>: Verfügbar in Blöcken nach Abschluss der Schleife
|
||||
</li>
|
||||
</ul>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Best Practices
|
||||
|
||||
- **Setzen Sie vernünftige Grenzen**: Halten Sie die Iterationsanzahl angemessen, um lange Ausführungszeiten zu vermeiden
|
||||
- **Verwenden Sie ForEach für Sammlungen**: Verwenden Sie beim Verarbeiten von Arrays oder Objekten ForEach anstelle von For-Schleifen
|
||||
- **Behandeln Sie Fehler elegant**: Erwägen Sie, Fehlerbehandlung innerhalb von Schleifen hinzuzufügen, um robuste Workflows zu gewährleisten
|
||||
@@ -0,0 +1,261 @@
|
||||
---
|
||||
title: Parallel
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Der Parallel-Block ist ein Container, der mehrere Instanzen gleichzeitig ausführt, um Workflows schneller zu verarbeiten. Verarbeiten Sie Elemente simultan statt sequentiell.
|
||||
|
||||
<Callout type="info">
|
||||
Parallel-Blöcke sind Container-Knoten, die ihre Inhalte mehrfach gleichzeitig ausführen, im Gegensatz zu Schleifen, die sequentiell ausgeführt werden.
|
||||
</Callout>
|
||||
|
||||
## Konfigurationsoptionen
|
||||
|
||||
### Parallel-Typ
|
||||
|
||||
Wählen Sie zwischen zwei Arten der parallelen Ausführung:
|
||||
|
||||
<Tabs items={['Count-based', 'Collection-based']}>
|
||||
<Tab>
|
||||
**Anzahlbasierte Parallelisierung** - Führen Sie eine feste Anzahl paralleler Instanzen aus:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/parallel-1.png"
|
||||
alt="Anzahlbasierte parallele Ausführung"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
Verwenden Sie diese Option, wenn Sie dieselbe Operation mehrmals gleichzeitig ausführen müssen.
|
||||
|
||||
|
||||
```javascript
|
||||
// Beispiel: 3 parallele Instanzen ausführen
|
||||
const results = await blocks.parallel({
|
||||
type: 'count',
|
||||
count: 3,
|
||||
async process(index) {
|
||||
// Jede Instanz erhält einen eindeutigen Index (0, 1, 2)
|
||||
return `Ergebnis von Instanz ${index}`;
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab>
|
||||
**Sammlungsbasierte Parallelisierung** - Verteilen Sie eine Sammlung auf parallele Instanzen:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/parallel-2.png"
|
||||
alt="Sammlungsbasierte parallele Ausführung"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
Jede Instanz verarbeitet gleichzeitig ein Element aus der Sammlung.
|
||||
|
||||
|
||||
```javascript
|
||||
// Beispiel: Eine Liste von URLs parallel verarbeiten
|
||||
const urls = [
|
||||
'https://example.com/api/1',
|
||||
'https://example.com/api/2',
|
||||
'https://example.com/api/3'
|
||||
];
|
||||
|
||||
const results = await blocks.parallel({
|
||||
type: 'collection',
|
||||
items: urls,
|
||||
async process(url, index) {
|
||||
// Jede Instanz verarbeitet eine URL
|
||||
const response = await fetch(url);
|
||||
return response.json();
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Verwendung von Parallel-Blöcken
|
||||
|
||||
### Erstellen eines Parallel-Blocks
|
||||
|
||||
1. Ziehen Sie einen Parallel-Block aus der Symbolleiste auf Ihre Leinwand
|
||||
2. Konfigurieren Sie den Parallel-Typ und die Parameter
|
||||
3. Ziehen Sie einen einzelnen Block in den Parallel-Container
|
||||
4. Verbinden Sie den Block nach Bedarf
|
||||
|
||||
### Zugriff auf Ergebnisse
|
||||
|
||||
Nach Abschluss eines Parallel-Blocks können Sie auf aggregierte Ergebnisse zugreifen:
|
||||
|
||||
- **`results`**: Array von Ergebnissen aus allen parallelen Instanzen
|
||||
|
||||
## Beispielanwendungsfälle
|
||||
|
||||
**Batch-API-Verarbeitung** - Verarbeiten Sie mehrere API-Aufrufe gleichzeitig
|
||||
|
||||
<div className="mb-4 rounded-md border p-4">
|
||||
<h4 className="font-medium">Szenario: Mehrere API-Endpunkte abfragen</h4>
|
||||
<ol className="list-decimal pl-5 text-sm">
|
||||
<li>Sammlungsbasierte Parallelisierung über eine Liste von API-Endpunkten</li>
|
||||
<li>Jede Instanz führt einen API-Aufruf durch und verarbeitet die Antwort</li>
|
||||
<li>Ergebnisse werden in einem Array gesammelt und können weiterverarbeitet werden</li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
**Multi-Modell-KI-Verarbeitung** - Erhalten Sie Antworten von mehreren KI-Modellen gleichzeitig
|
||||
|
||||
<div className="mb-4 rounded-md border p-4">
|
||||
<h4 className="font-medium">Szenario: Antworten von mehreren KI-Modellen erhalten</h4>
|
||||
<ol className="list-decimal pl-5 text-sm">
|
||||
<li>Sammlungsbasierte Parallelverarbeitung über eine Liste von Modell-IDs (z.B. ["gpt-4o", "claude-3.7-sonnet", "gemini-2.5-pro"])</li>
|
||||
<li>Innerhalb des parallelen Blocks: Das Modell des Agenten wird auf das aktuelle Element aus der Sammlung gesetzt</li>
|
||||
<li>Nach dem parallelen Block: Vergleichen und Auswählen der besten Antwort</li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
## Erweiterte Funktionen
|
||||
|
||||
### Ergebnisaggregation
|
||||
|
||||
Ergebnisse aus allen parallelen Instanzen werden automatisch gesammelt:
|
||||
|
||||
### Anwendungsbeispiele
|
||||
|
||||
### Instanzisolierung
|
||||
|
||||
Jede parallele Instanz läuft unabhängig:
|
||||
- Separate Variablenbereiche
|
||||
- Kein gemeinsamer Zustand zwischen Instanzen
|
||||
- Fehler in einer Instanz beeinflussen andere nicht
|
||||
|
||||
### Einschränkungen
|
||||
|
||||
<Callout type="info">
|
||||
Container-Blöcke (Schleifen und Parallele) unterstützen Verschachtelung. Sie können Parallele in Parallele, Schleifen in Parallele und jede Kombination von Container-Blöcken platzieren, um komplexe mehrdimensionale Workflows zu erstellen.
|
||||
</Callout>
|
||||
|
||||
<Callout type="info">
|
||||
Während die parallele Ausführung schneller ist, beachten Sie bitte:
|
||||
- API-Ratenbegrenzungen bei gleichzeitigen Anfragen
|
||||
- Speicherverbrauch bei großen Datensätzen
|
||||
- Maximum von 20 gleichzeitigen Instanzen, um Ressourcenerschöpfung zu vermeiden
|
||||
</Callout>
|
||||
|
||||
## Parallel vs. Schleife
|
||||
|
||||
Wann Sie welche Methode verwenden sollten:
|
||||
|
||||
| Funktion | Parallel | Schleife |
|
||||
|---------|----------|------|
|
||||
| Ausführung | Gleichzeitig | Sequentiell |
|
||||
| Geschwindigkeit | Schneller für unabhängige Operationen | Langsamer, aber geordnet |
|
||||
| Reihenfolge | Keine garantierte Reihenfolge | Behält Reihenfolge bei |
|
||||
| Anwendungsfall | Unabhängige Operationen | Abhängige Operationen |
|
||||
| Ressourcennutzung | Höher | Niedriger |
|
||||
|
||||
## Eingaben und Ausgaben
|
||||
|
||||
<Tabs items={['Configuration', 'Variables', 'Results']}>
|
||||
<Tab>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>Parallel-Typ</strong>: Wählen Sie zwischen 'count' oder 'collection'
|
||||
</li>
|
||||
<li>
|
||||
<strong>Anzahl</strong>: Anzahl der auszuführenden Instanzen (anzahlbasiert)
|
||||
</li>
|
||||
<li>
|
||||
<strong>Sammlung</strong>: Array oder Objekt zur Verteilung (sammlungsbasiert)
|
||||
</li>
|
||||
</ul>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>parallel.currentItem</strong>: Element für diese Instanz
|
||||
</li>
|
||||
<li>
|
||||
<strong>parallel.index</strong>: Instanznummer (0-basiert)
|
||||
</li>
|
||||
<li>
|
||||
<strong>parallel.items</strong>: Vollständige Sammlung (sammlungsbasiert)
|
||||
</li>
|
||||
</ul>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>parallel.results</strong>: Array aller Instanzergebnisse
|
||||
</li>
|
||||
<li>
|
||||
<strong>Zugriff</strong>: Verfügbar in Blöcken nach der Parallelausführung
|
||||
</li>
|
||||
</ul>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Best Practices
|
||||
|
||||
- **Nur unabhängige Operationen**: Stellen Sie sicher, dass Operationen nicht voneinander abhängen
|
||||
- **Ratenbegrenzungen berücksichtigen**: Fügen Sie Verzögerungen oder Drosselungen für API-intensive Workflows hinzu
|
||||
- **Fehlerbehandlung**: Jede Instanz sollte ihre eigenen Fehler angemessen behandeln
|
||||
|
||||
## Eingaben und Ausgaben
|
||||
|
||||
<Tabs items={['Konfiguration', 'Variablen', 'Ergebnisse']}>
|
||||
<Tab>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>Parallel-Typ</strong>: Wählen Sie zwischen „count" oder „collection"
|
||||
</li>
|
||||
<li>
|
||||
<strong>Anzahl</strong>: Anzahl der auszuführenden Instanzen (anzahlbasiert)
|
||||
</li>
|
||||
<li>
|
||||
<strong>Collection</strong>: Array oder Objekt zur Verteilung (sammlungsbasiert)
|
||||
</li>
|
||||
</ul>
|
||||
</Tab>
|
||||
<Tab>
|
||||
Verfügbar **innerhalb** der Parallelverarbeitung:
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>{"<parallel.index>"}</strong>: Instanznummer (0-basiert)
|
||||
</li>
|
||||
<li>
|
||||
<strong>{"<parallel.currentItem>"}</strong>: Element für diese Instanz (nur sammlungsbasiert)
|
||||
</li>
|
||||
<li>
|
||||
<strong>{"<parallel.items>"}</strong>: Vollständige Sammlung (nur sammlungsbasiert)
|
||||
</li>
|
||||
</ul>
|
||||
</Tab>
|
||||
<Tab>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>{"<blockname.results>"}</strong>: Array aller Instanzergebnisse (Zugriff über Blockname)
|
||||
</li>
|
||||
<li>
|
||||
<strong>Zugriff</strong>: Verfügbar in Blöcken nach Abschluss der Parallelverarbeitung
|
||||
</li>
|
||||
</ul>
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Best Practices
|
||||
|
||||
- **Nur unabhängige Operationen**: Stellen Sie sicher, dass Operationen nicht voneinander abhängen
|
||||
- **Rate Limits beachten**: Fügen Sie Verzögerungen oder Drosselung für API-intensive Workflows hinzu
|
||||
- **Fehlerbehandlung**: Jede Instanz sollte ihre eigenen Fehler ordnungsgemäß behandeln
|
||||
@@ -0,0 +1,120 @@
|
||||
---
|
||||
title: Antwort
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Der Response-Block formatiert und sendet strukturierte HTTP-Antworten zurück an API-Aufrufer. Verwenden Sie ihn, um Workflow-Ergebnisse mit korrekten Statuscodes und Headern zurückzugeben.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/response.png"
|
||||
alt="Konfiguration des Antwort-Blocks"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<Callout type="info">
|
||||
Response-Blöcke sind terminale Blöcke - sie beenden die Workflow-Ausführung und können nicht mit anderen Blöcken verbunden werden.
|
||||
</Callout>
|
||||
|
||||
## Konfigurationsoptionen
|
||||
|
||||
### Antwortdaten
|
||||
|
||||
Die Antwortdaten sind der Hauptinhalt, der an den API-Aufrufer zurückgesendet wird. Diese sollten als JSON formatiert sein und können Folgendes enthalten:
|
||||
|
||||
- Statische Werte
|
||||
- Dynamische Verweise auf Workflow-Variablen mit der `<variable.name>` Syntax
|
||||
- Verschachtelte Objekte und Arrays
|
||||
- Jede gültige JSON-Struktur
|
||||
|
||||
### Statuscode
|
||||
|
||||
Legen Sie den HTTP-Statuscode für die Antwort fest (standardmäßig 200):
|
||||
|
||||
**Erfolg (2xx):**
|
||||
- **200**: OK - Standard-Erfolgsantwort
|
||||
- **201**: Erstellt - Ressource erfolgreich erstellt
|
||||
- **204**: Kein Inhalt - Erfolg ohne Antworttext
|
||||
|
||||
**Client-Fehler (4xx):**
|
||||
- **400**: Ungültige Anfrage - Ungültige Anfrageparameter
|
||||
- **401**: Nicht autorisiert - Authentifizierung erforderlich
|
||||
- **404**: Nicht gefunden - Ressource existiert nicht
|
||||
- **422**: Nicht verarbeitbare Entität - Validierungsfehler
|
||||
|
||||
**Server-Fehler (5xx):**
|
||||
- **500**: Interner Serverfehler - Serverseitiger Fehler
|
||||
- **502**: Bad Gateway - Fehler eines externen Dienstes
|
||||
- **503**: Dienst nicht verfügbar - Dienst vorübergehend nicht erreichbar
|
||||
|
||||
### Antwort-Header
|
||||
|
||||
Konfigurieren Sie zusätzliche HTTP-Header, die in die Antwort aufgenommen werden sollen.
|
||||
|
||||
Header werden als Schlüssel-Wert-Paare konfiguriert:
|
||||
|
||||
| Schlüssel | Wert |
|
||||
|-----|-------|
|
||||
| Content-Type | application/json |
|
||||
| Cache-Control | no-cache |
|
||||
| X-API-Version | 1.0 |
|
||||
|
||||
## Beispielanwendungsfälle
|
||||
|
||||
**API-Endpunkt-Antwort** - Strukturierte Daten von einer Such-API zurückgeben
|
||||
|
||||
```
|
||||
Agent (Search) → Function (Format & Paginate) → Response (200, JSON)
|
||||
```
|
||||
|
||||
**Webhook-Bestätigung** - Bestätigung des Webhook-Empfangs und der Verarbeitung
|
||||
|
||||
```
|
||||
Webhook Trigger → Function (Process) → Response (200, Confirmation)
|
||||
```
|
||||
|
||||
**Fehlerantwort-Behandlung** - Angemessene Fehlerantworten zurückgeben
|
||||
|
||||
```
|
||||
Condition (Error Detected) → Router → Response (400/500, Error Details)
|
||||
```
|
||||
|
||||
## Ausgaben
|
||||
|
||||
Antwortblöcke sind endgültig - sie beenden die Workflow-Ausführung und senden die HTTP-Antwort an den API-Aufrufer. Es stehen keine Ausgaben für nachgelagerte Blöcke zur Verfügung.
|
||||
|
||||
## Variablenreferenzen
|
||||
|
||||
Verwenden Sie die `<variable.name>` Syntax, um Workflow-Variablen dynamisch in Ihre Antwort einzufügen:
|
||||
|
||||
```json
|
||||
{
|
||||
"user": {
|
||||
"id": "<variable.userId>",
|
||||
"name": "<variable.userName>",
|
||||
"email": "<variable.userEmail>"
|
||||
},
|
||||
"query": "<variable.searchQuery>",
|
||||
"results": "<variable.searchResults>",
|
||||
"totalFound": "<variable.resultCount>",
|
||||
"processingTime": "<variable.executionTime>ms"
|
||||
}
|
||||
```
|
||||
|
||||
<Callout type="warning">
|
||||
Variablennamen sind Groß- und Kleinschreibung sensitiv und müssen exakt mit den in Ihrem Workflow verfügbaren Variablen übereinstimmen.
|
||||
</Callout>
|
||||
|
||||
## Best Practices
|
||||
|
||||
- **Verwenden Sie aussagekräftige Statuscodes**: Wählen Sie passende HTTP-Statuscodes, die das Ergebnis des Workflows genau widerspiegeln
|
||||
- **Strukturieren Sie Ihre Antworten einheitlich**: Behalten Sie eine konsistente JSON-Struktur über alle Ihre API-Endpunkte bei, um eine bessere Entwicklererfahrung zu gewährleisten
|
||||
- **Fügen Sie relevante Metadaten hinzu**: Fügen Sie Zeitstempel und Versionsinformationen hinzu, um bei der Fehlerbehebung und Überwachung zu helfen
|
||||
- **Behandeln Sie Fehler elegant**: Verwenden Sie bedingte Logik in Ihrem Workflow, um angemessene Fehlerantworten mit aussagekräftigen Meldungen zu setzen
|
||||
- **Validieren Sie Variablenreferenzen**: Stellen Sie sicher, dass alle referenzierten Variablen existieren und die erwarteten Datentypen enthalten, bevor der Antwortblock ausgeführt wird
|
||||
@@ -0,0 +1,117 @@
|
||||
---
|
||||
title: Router
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Der Router-Block verwendet KI, um Workflows basierend auf Inhaltsanalysen intelligent zu leiten. Im Gegensatz zu Bedingungsblöcken, die einfache Regeln verwenden, verstehen Router Kontext und Absicht.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/router.png"
|
||||
alt="Router-Block mit mehreren Pfaden"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Router vs. Bedingung
|
||||
|
||||
**Verwende Router, wenn:**
|
||||
- KI-gestützte Inhaltsanalyse benötigt wird
|
||||
- Mit unstrukturierten oder variierenden Inhalten gearbeitet wird
|
||||
- Absichtsbasierte Weiterleitung erforderlich ist (z.B. "Support-Tickets an Abteilungen weiterleiten")
|
||||
|
||||
**Verwende Bedingung, wenn:**
|
||||
- Einfache regelbasierte Entscheidungen ausreichen
|
||||
- Mit strukturierten Daten oder numerischen Vergleichen gearbeitet wird
|
||||
- Schnelle, deterministische Weiterleitung benötigt wird
|
||||
|
||||
## Konfigurationsoptionen
|
||||
|
||||
### Inhalt/Prompt
|
||||
|
||||
Der Inhalt oder Prompt, den der Router analysieren wird, um Weiterleitungsentscheidungen zu treffen. Dies kann sein:
|
||||
|
||||
- Eine direkte Benutzeranfrage oder -eingabe
|
||||
- Ausgabe eines vorherigen Blocks
|
||||
- Eine systemgenerierte Nachricht
|
||||
|
||||
### Zielblöcke
|
||||
|
||||
Die möglichen Zielblöcke, aus denen der Router auswählen kann. Der Router erkennt automatisch verbundene Blöcke, aber du kannst auch:
|
||||
|
||||
- Die Beschreibungen von Zielblöcken anpassen, um die Weiterleitungsgenauigkeit zu verbessern
|
||||
- Weiterleitungskriterien für jeden Zielblock festlegen
|
||||
- Bestimmte Blöcke von der Berücksichtigung als Weiterleitungsziele ausschließen
|
||||
|
||||
### Modellauswahl
|
||||
|
||||
Wähle ein KI-Modell für die Weiterleitungsentscheidung:
|
||||
|
||||
- **OpenAI**: GPT-4o, o1, o3, o4-mini, gpt-4.1
|
||||
- **Anthropic**: Claude 3.7 Sonnet
|
||||
- **Google**: Gemini 2.5 Pro, Gemini 2.0 Flash
|
||||
- **Andere Anbieter**: Groq, Cerebras, xAI, DeepSeek
|
||||
- **Lokale Modelle**: Ollama oder VLLM-kompatible Modelle
|
||||
|
||||
Verwende Modelle mit starken Argumentationsfähigkeiten wie GPT-4o oder Claude 3.7 Sonnet für beste Ergebnisse.
|
||||
|
||||
### API-Schlüssel
|
||||
|
||||
Ihr API-Schlüssel für den ausgewählten LLM-Anbieter. Dieser wird sicher gespeichert und für die Authentifizierung verwendet.
|
||||
|
||||
## Ausgaben
|
||||
|
||||
- **`<router.prompt>`**: Zusammenfassung des Routing-Prompts
|
||||
- **`<router.selected_path>`**: Ausgewählter Zielblock
|
||||
- **`<router.tokens>`**: Token-Nutzungsstatistiken
|
||||
- **`<router.cost>`**: Geschätzte Routing-Kosten
|
||||
- **`<router.model>`**: Für die Entscheidungsfindung verwendetes Modell
|
||||
|
||||
## Beispielanwendungsfälle
|
||||
|
||||
**Kundensupport-Triage** - Tickets an spezialisierte Abteilungen weiterleiten
|
||||
|
||||
```
|
||||
Input (Ticket) → Router → Agent (Engineering) or Agent (Finance)
|
||||
```
|
||||
|
||||
**Inhaltsklassifizierung** - Nutzergenerierte Inhalte klassifizieren und weiterleiten
|
||||
|
||||
```
|
||||
Input (Feedback) → Router → Workflow (Product) or Workflow (Technical)
|
||||
```
|
||||
|
||||
**Lead-Qualifizierung** - Leads basierend auf Qualifizierungskriterien weiterleiten
|
||||
|
||||
```
|
||||
Input (Lead) → Router → Agent (Enterprise Sales) or Workflow (Self-serve)
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
- **Klare Zielbeschreibungen bereitstellen**: Helfen Sie dem Router zu verstehen, wann jedes Ziel ausgewählt werden soll, mit spezifischen, detaillierten Beschreibungen
|
||||
- **Spezifische Routing-Kriterien verwenden**: Definieren Sie klare Bedingungen und Beispiele für jeden Pfad, um die Genauigkeit zu verbessern
|
||||
- **Fallback-Pfade implementieren**: Verbinden Sie ein Standardziel für Fälle, in denen kein spezifischer Pfad geeignet ist
|
||||
- **Mit verschiedenen Eingaben testen**: Stellen Sie sicher, dass der Router verschiedene Eingabetypen, Grenzfälle und unerwartete Inhalte verarbeiten kann
|
||||
- **Routing-Leistung überwachen**: Überprüfen Sie Routing-Entscheidungen regelmäßig und verfeinern Sie Kriterien basierend auf tatsächlichen Nutzungsmustern
|
||||
- **Geeignete Modelle auswählen**: Verwenden Sie Modelle mit starken Argumentationsfähigkeiten für komplexe Routing-Entscheidungen
|
||||
|
||||
Wenn der Router keine geeignete Route für den gegebenen Kontext ermitteln kann, leitet er stattdessen zum **Fehlerpfad** weiter, anstatt willkürlich eine Route auszuwählen. Dies geschieht, wenn:
|
||||
|
||||
- Der Kontext keiner der definierten Routenbeschreibungen eindeutig entspricht
|
||||
- Die KI feststellt, dass keine der verfügbaren Routen geeignet ist
|
||||
|
||||
## Best Practices
|
||||
|
||||
- **Klare Routenbeschreibungen verfassen**: Jede Routenbeschreibung sollte klar erklären, wann diese Route ausgewählt werden sollte. Seien Sie spezifisch bezüglich der Kriterien.
|
||||
- **Routen gegenseitig ausschließend gestalten**: Stellen Sie nach Möglichkeit sicher, dass sich Routenbeschreibungen nicht überschneiden, um mehrdeutige Routing-Entscheidungen zu vermeiden.
|
||||
- **Einen Fehlerpfad verbinden**: Behandeln Sie Fälle, in denen keine Route passt, indem Sie einen Fehlerbehandler für ein elegantes Fallback-Verhalten verbinden.
|
||||
- **Aussagekräftige Routentitel verwenden**: Routentitel erscheinen im Workflow-Canvas, machen Sie sie daher für bessere Lesbarkeit aussagekräftig.
|
||||
- **Mit verschiedenen Eingaben testen**: Stellen Sie sicher, dass der Router verschiedene Eingabetypen, Grenzfälle und unerwartete Inhalte verarbeitet.
|
||||
- **Routing-Performance überwachen**: Überprüfen Sie Routing-Entscheidungen regelmäßig und verfeinern Sie Routenbeschreibungen basierend auf tatsächlichen Nutzungsmustern.
|
||||
- **Geeignete Modelle wählen**: Verwenden Sie Modelle mit starken Reasoning-Fähigkeiten für komplexe Routing-Entscheidungen.
|
||||
@@ -0,0 +1,86 @@
|
||||
---
|
||||
title: Variablen
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Der Variablen-Block aktualisiert Workflow-Variablen während der Ausführung. Variablen müssen zuerst im Variablen-Bereich deines Workflows initialisiert werden, dann kannst du diesen Block verwenden, um ihre Werte während der Ausführung deines Workflows zu aktualisieren.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/variables.png"
|
||||
alt="Variablen-Block"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<Callout>
|
||||
Greife überall in deinem Workflow auf Variablen zu, indem du die `<variable.variableName>` Syntax verwendest.
|
||||
</Callout>
|
||||
|
||||
## Wie man Variablen verwendet
|
||||
|
||||
### 1. Initialisierung in Workflow-Variablen
|
||||
|
||||
Erstellen Sie zunächst Ihre Variablen im Variablenbereich des Workflows (zugänglich über die Workflow-Einstellungen):
|
||||
|
||||
```
|
||||
customerEmail = ""
|
||||
retryCount = 0
|
||||
currentStatus = "pending"
|
||||
```
|
||||
|
||||
### 2. Aktualisierung mit dem Variablen-Block
|
||||
|
||||
Verwenden Sie den Variablen-Block, um diese Werte während der Ausführung zu aktualisieren:
|
||||
|
||||
```
|
||||
customerEmail = <api.email>
|
||||
retryCount = <variable.retryCount> + 1
|
||||
currentStatus = "processing"
|
||||
```
|
||||
|
||||
### 3. Überall zugreifen
|
||||
|
||||
Referenzieren Sie Variablen in jedem Block:
|
||||
|
||||
```
|
||||
Agent prompt: "Send email to <variable.customerEmail>"
|
||||
Condition: <variable.retryCount> < 5
|
||||
API body: {"status": "<variable.currentStatus>"}
|
||||
```
|
||||
|
||||
## Beispielanwendungsfälle
|
||||
|
||||
**Schleifenzähler und Status** - Fortschritt durch Iterationen verfolgen
|
||||
|
||||
```
|
||||
Loop → Agent (Process) → Variables (itemsProcessed + 1) → Variables (Store lastResult)
|
||||
```
|
||||
|
||||
**Wiederholungslogik** - API-Wiederholungsversuche verfolgen
|
||||
|
||||
```
|
||||
API (Try) → Variables (retryCount + 1) → Condition (retryCount < 3)
|
||||
```
|
||||
|
||||
**Dynamische Konfiguration** - Benutzerkontext für Workflow speichern
|
||||
|
||||
```
|
||||
API (Fetch Profile) → Variables (userId, userTier) → Agent (Personalize)
|
||||
```
|
||||
|
||||
## Ausgaben
|
||||
|
||||
- **`<variables.assignments>`**: JSON-Objekt mit allen Variablenzuweisungen aus diesem Block
|
||||
|
||||
## Bewährte Praktiken
|
||||
|
||||
- **In Workflow-Einstellungen initialisieren**: Erstellen Sie Variablen immer im Variablenbereich des Workflows, bevor Sie sie verwenden
|
||||
- **Dynamisch aktualisieren**: Verwenden Sie Variablen-Blöcke, um Werte basierend auf Block-Ausgaben oder Berechnungen zu aktualisieren
|
||||
- **In Schleifen verwenden**: Perfekt für die Verfolgung des Status über Iterationen hinweg
|
||||
- **Beschreibend benennen**: Verwenden Sie klare Namen wie `currentIndex`, `totalProcessed` oder `lastError`
|
||||
@@ -0,0 +1,67 @@
|
||||
---
|
||||
title: Warten
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Der Warten-Block pausiert deinen Workflow für eine bestimmte Zeit, bevor er mit dem nächsten Block fortfährt. Verwende ihn, um Verzögerungen zwischen Aktionen einzufügen, API-Ratenbegrenzungen einzuhalten oder Operationen zeitlich zu verteilen.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/wait.png"
|
||||
alt="Warte-Block"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Konfiguration
|
||||
|
||||
### Wartezeit
|
||||
|
||||
Geben Sie die Dauer für die Ausführungspause ein:
|
||||
- **Eingabe**: Positive Zahl
|
||||
- **Maximum**: 600 Sekunden (10 Minuten) oder 10 Minuten
|
||||
|
||||
### Einheit
|
||||
|
||||
Wählen Sie die Zeiteinheit:
|
||||
- **Sekunden**: Für kurze, präzise Verzögerungen
|
||||
- **Minuten**: Für längere Pausen
|
||||
|
||||
<Callout type="info">
|
||||
Warteblöcke können durch Stoppen des Workflows abgebrochen werden. Die maximale Wartezeit beträgt 10 Minuten.
|
||||
</Callout>
|
||||
|
||||
## Ausgaben
|
||||
|
||||
- **`<wait.waitDuration>`**: Die Wartezeit in Millisekunden
|
||||
- **`<wait.status>`**: Status der Wartezeit ('waiting', 'completed' oder 'cancelled')
|
||||
|
||||
## Beispielanwendungsfälle
|
||||
|
||||
**API-Ratenbegrenzung** - Bleiben Sie zwischen Anfragen innerhalb der API-Ratenlimits
|
||||
|
||||
```
|
||||
API (Request 1) → Wait (2s) → API (Request 2)
|
||||
```
|
||||
|
||||
**Zeitgesteuerte Benachrichtigungen** - Senden Sie Folgenachrichten nach einer Verzögerung
|
||||
|
||||
```
|
||||
Function (Send Email) → Wait (5min) → Function (Follow-up)
|
||||
```
|
||||
|
||||
**Verarbeitungsverzögerungen** - Warten Sie, bis das externe System die Verarbeitung abgeschlossen hat
|
||||
|
||||
```
|
||||
API (Trigger Job) → Wait (30s) → API (Check Status)
|
||||
```
|
||||
|
||||
## Bewährte Praktiken
|
||||
|
||||
- **Halten Sie Wartezeiten angemessen**: Verwenden Sie Wait für Verzögerungen bis zu 10 Minuten. Für längere Verzögerungen sollten Sie geplante Workflows in Betracht ziehen
|
||||
- **Überwachen Sie die Ausführungszeit**: Denken Sie daran, dass Wartezeiten die Gesamtdauer des Workflows verlängern
|
||||
@@ -0,0 +1,89 @@
|
||||
---
|
||||
title: Webhook
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Der Webhook-Block sendet HTTP-POST-Anfragen an externe Webhook-Endpunkte mit automatischen Webhook-Headern und optionaler HMAC-Signierung.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/webhook.png"
|
||||
alt="Webhook-Block"
|
||||
width={500}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Konfiguration
|
||||
|
||||
### Webhook-URL
|
||||
|
||||
Der Ziel-Endpunkt für Ihre Webhook-Anfrage. Unterstützt sowohl statische URLs als auch dynamische Werte aus anderen Blöcken.
|
||||
|
||||
### Payload
|
||||
|
||||
JSON-Daten, die im Anfrage-Body gesendet werden. Verwenden Sie den KI-Zauberstab, um Payloads zu generieren oder auf Workflow-Variablen zu verweisen:
|
||||
|
||||
```json
|
||||
{
|
||||
"event": "workflow.completed",
|
||||
"data": {
|
||||
"result": "<agent.content>",
|
||||
"timestamp": "<function.result>"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Signierungsgeheimnis
|
||||
|
||||
Optionales Geheimnis für die HMAC-SHA256-Payload-Signierung. Wenn angegeben, wird ein `X-Webhook-Signature`Header hinzugefügt:
|
||||
|
||||
```
|
||||
X-Webhook-Signature: t=1704067200000,v1=5d41402abc4b2a76b9719d911017c592...
|
||||
```
|
||||
|
||||
Um Signaturen zu verifizieren, berechnen Sie `HMAC-SHA256(secret, "${timestamp}.${body}")` und vergleichen Sie mit dem `v1`Wert.
|
||||
|
||||
### Zusätzliche Header
|
||||
|
||||
Benutzerdefinierte Schlüssel-Wert-Header, die in die Anfrage aufgenommen werden. Diese überschreiben alle automatischen Header mit demselben Namen.
|
||||
|
||||
## Automatische Header
|
||||
|
||||
Jede Anfrage enthält automatisch diese Header:
|
||||
|
||||
| Header | Beschreibung |
|
||||
|--------|-------------|
|
||||
| `Content-Type` | `application/json` |
|
||||
| `X-Webhook-Timestamp` | Unix-Zeitstempel in Millisekunden |
|
||||
| `X-Delivery-ID` | Eindeutige UUID für diese Zustellung |
|
||||
| `Idempotency-Key` | Identisch mit `X-Delivery-ID` zur Deduplizierung |
|
||||
|
||||
## Ausgaben
|
||||
|
||||
| Ausgabe | Typ | Beschreibung |
|
||||
|--------|------|-------------|
|
||||
| `data` | json | Antwort-Body vom Endpunkt |
|
||||
| `status` | number | HTTP-Statuscode |
|
||||
| `headers` | object | Antwort-Header |
|
||||
|
||||
## Beispiel-Anwendungsfälle
|
||||
|
||||
**Externe Dienste benachrichtigen** - Workflow-Ergebnisse an Slack, Discord oder benutzerdefinierte Endpunkte senden
|
||||
|
||||
```
|
||||
Agent → Function (format) → Webhook (notify)
|
||||
```
|
||||
|
||||
**Externe Workflows auslösen** - Prozesse in anderen Systemen starten, wenn Bedingungen erfüllt sind
|
||||
|
||||
```
|
||||
Condition (check) → Webhook (trigger) → Response
|
||||
```
|
||||
|
||||
<Callout>
|
||||
Der Webhook-Block verwendet immer POST. Für andere HTTP-Methoden oder mehr Kontrolle verwenden Sie den [API-Block](/blocks/api).
|
||||
</Callout>
|
||||
@@ -0,0 +1,63 @@
|
||||
---
|
||||
title: Workflow-Block
|
||||
description: Führe einen anderen Workflow innerhalb des aktuellen Ablaufs aus
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
## Was er macht
|
||||
|
||||
<div className='flex justify-center my-6'>
|
||||
<Image
|
||||
src='/static/blocks/workflow.png'
|
||||
alt='Workflow-Block-Konfiguration'
|
||||
width={500}
|
||||
height={400}
|
||||
className='rounded-xl border border-border shadow-sm'
|
||||
/>
|
||||
</div>
|
||||
|
||||
Füge einen Workflow-Block hinzu, wenn du einen untergeordneten Workflow als Teil eines größeren Ablaufs aufrufen möchtest. Der Block führt die neueste bereitgestellte Version dieses Workflows aus, wartet auf dessen Abschluss und setzt dann mit dem übergeordneten Workflow fort.
|
||||
|
||||
## Konfiguration
|
||||
|
||||
1. **Wähle einen Workflow** aus dem Dropdown-Menü (Selbstreferenzen sind blockiert, um Schleifen zu verhindern).
|
||||
2. **Eingaben zuordnen**: Wenn der untergeordnete Workflow einen Eingabeformular-Trigger hat, siehst du jedes Feld und kannst übergeordnete Variablen verbinden. Die zugeordneten Werte sind das, was der untergeordnete Workflow erhält.
|
||||
|
||||
<div className='flex justify-center my-6'>
|
||||
<Image
|
||||
src='/static/blocks/workflow-2.png'
|
||||
alt='Workflow-Block mit Beispiel für Eingabezuordnung'
|
||||
width={700}
|
||||
height={400}
|
||||
className='rounded-xl border border-border shadow-sm'
|
||||
/>
|
||||
</div>
|
||||
|
||||
3. **Ausgaben**: Nachdem der untergeordnete Workflow abgeschlossen ist, stellt der Block folgendes bereit:
|
||||
- `result` – die endgültige Antwort des untergeordneten Workflows
|
||||
- `success` – ob er ohne Fehler ausgeführt wurde
|
||||
- `error` – Nachricht, wenn die Ausführung fehlschlägt
|
||||
|
||||
## Bereitstellungsstatus-Badge
|
||||
|
||||
Der Workflow-Block zeigt ein Bereitstellungsstatus-Badge an, das dir hilft zu verfolgen, ob der untergeordnete Workflow ausführungsbereit ist:
|
||||
|
||||
- **Bereitgestellt** – Der untergeordnete Workflow wurde bereitgestellt und ist einsatzbereit. Der Block führt die aktuell bereitgestellte Version aus.
|
||||
- **Nicht bereitgestellt** – Der untergeordnete Workflow wurde noch nie bereitgestellt. Du musst ihn bereitstellen, bevor der Workflow-Block ihn ausführen kann.
|
||||
- **Erneut bereitstellen** – Seit der letzten Bereitstellung wurden Änderungen im untergeordneten Workflow erkannt. Klicke auf das Badge, um den untergeordneten Workflow mit den neuesten Änderungen erneut bereitzustellen.
|
||||
|
||||
<Callout type="warn">
|
||||
Der Workflow-Block führt immer die zuletzt bereitgestellte Version des untergeordneten Workflows aus, nicht die Editor-Version. Stelle sicher, dass du nach Änderungen eine erneute Bereitstellung durchführst, damit der Block die neueste Logik verwendet.
|
||||
</Callout>
|
||||
|
||||
## Hinweise zur Ausführung
|
||||
|
||||
- Untergeordnete Workflows laufen im gleichen Workspace-Kontext, sodass Umgebungsvariablen und Tools übernommen werden.
|
||||
- Der Block verwendet Bereitstellungsversionierung: Jede API-, Zeitplan-, Webhook-, manuelle oder Chat-Ausführung ruft den bereitgestellten Snapshot auf. Stelle den untergeordneten Workflow nach Änderungen erneut bereit.
|
||||
- Wenn der untergeordnete Workflow fehlschlägt, löst der Block einen Fehler aus, es sei denn, du behandelst ihn nachgelagert.
|
||||
|
||||
<Callout>
|
||||
Halte untergeordnete Workflows fokussiert. Kleine, wiederverwendbare Abläufe machen es einfacher, sie zu kombinieren, ohne tiefe Verschachtelungen zu erzeugen.
|
||||
</Callout>
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
title: Grundlagen
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps'
|
||||
import { Video } from '@/components/ui/video'
|
||||
|
||||
## Wie Verbindungen funktionieren
|
||||
|
||||
Verbindungen sind die Pfade, die den Datenfluss zwischen Blöcken in Ihrem Workflow ermöglichen. In Sim definieren Verbindungen, wie Informationen von einem Block zum anderen übertragen werden und ermöglichen so den Datenfluss durch Ihren gesamten Workflow.
|
||||
|
||||
<Callout type="info">
|
||||
Jede Verbindung stellt eine gerichtete Beziehung dar, bei der Daten vom Ausgang eines Quellblocks
|
||||
zum Eingang eines Zielblocks fließen.
|
||||
</Callout>
|
||||
|
||||
### Verbindungen erstellen
|
||||
|
||||
<Steps>
|
||||
<Step>
|
||||
<strong>Quellblock auswählen</strong>: Klicken Sie auf den Ausgangsport des Blocks, von dem aus Sie verbinden möchten
|
||||
</Step>
|
||||
<Step>
|
||||
<strong>Verbindung ziehen</strong>: Ziehen Sie zum Eingangsport des Zielblocks
|
||||
</Step>
|
||||
<Step>
|
||||
<strong>Verbindung bestätigen</strong>: Loslassen, um die Verbindung zu erstellen
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
|
||||
<Video src="connections-build.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
### Verbindungsablauf
|
||||
|
||||
Der Datenfluss durch Verbindungen folgt diesen Prinzipien:
|
||||
|
||||
1. **Gerichteter Fluss**: Daten fließen immer von Ausgängen zu Eingängen
|
||||
2. **Ausführungsreihenfolge**: Blöcke werden basierend auf ihren Verbindungen der Reihe nach ausgeführt
|
||||
3. **Datentransformation**: Daten können beim Übergang zwischen Blöcken transformiert werden
|
||||
4. **Bedingte Pfade**: Einige Blöcke (wie Router und Bedingung) können den Fluss auf verschiedene Pfade leiten
|
||||
|
||||
<Callout type="warning">
|
||||
Das Löschen einer Verbindung stoppt sofort den Datenfluss zwischen den Blöcken. Stellen Sie sicher, dass dies beabsichtigt ist, bevor Sie Verbindungen entfernen.
|
||||
</Callout>
|
||||
@@ -0,0 +1,192 @@
|
||||
---
|
||||
title: Datenstruktur
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
|
||||
Wenn Sie Blöcke verbinden, ist das Verständnis der Datenstruktur verschiedener Block-Ausgaben wichtig, da die Ausgabedatenstruktur des Quellblocks bestimmt, welche Werte im Zielblock verfügbar sind. Jeder Blocktyp erzeugt eine spezifische Ausgabestruktur, auf die Sie in nachgelagerten Blöcken verweisen können.
|
||||
|
||||
<Callout type="info">
|
||||
Das Verständnis dieser Datenstrukturen ist wesentlich für die effektive Nutzung von Verbindungs-Tags und
|
||||
den Zugriff auf die richtigen Daten in Ihren Workflows.
|
||||
</Callout>
|
||||
|
||||
## Block-Ausgabestrukturen
|
||||
|
||||
Verschiedene Blocktypen erzeugen unterschiedliche Ausgabestrukturen. Hier ist, was Sie von jedem Blocktyp erwarten können:
|
||||
|
||||
<Tabs items={['Agent Output', 'API Output', 'Function Output', 'Evaluator Output', 'Condition Output', 'Router Output']}>
|
||||
<Tab>
|
||||
|
||||
```json
|
||||
{
|
||||
"content": "The generated text response",
|
||||
"model": "gpt-4o",
|
||||
"tokens": {
|
||||
"prompt": 120,
|
||||
"completion": 85,
|
||||
"total": 205
|
||||
},
|
||||
"toolCalls": [...],
|
||||
"cost": [...],
|
||||
"usage": [...]
|
||||
}
|
||||
```
|
||||
|
||||
### Ausgabefelder des Agent-Blocks
|
||||
|
||||
- **content**: Die vom Agenten generierte Haupttextantwort
|
||||
- **model**: Das verwendete KI-Modell (z.B. "gpt-4o", "claude-3-opus")
|
||||
- **tokens**: Token-Nutzungsstatistiken
|
||||
- **prompt**: Anzahl der Token in der Eingabeaufforderung
|
||||
- **completion**: Anzahl der Token in der Vervollständigung
|
||||
- **total**: Insgesamt verwendete Token
|
||||
- **toolCalls**: Array von Werkzeugaufrufen des Agenten (falls vorhanden)
|
||||
- **cost**: Array von Kostenobjekten für jeden Werkzeugaufruf (falls vorhanden)
|
||||
- **usage**: Token-Nutzungsstatistiken für die gesamte Antwort
|
||||
|
||||
</Tab>
|
||||
<Tab>
|
||||
|
||||
```json
|
||||
{
|
||||
"data": "Response data",
|
||||
"status": 200,
|
||||
"headers": {
|
||||
"content-type": "application/json",
|
||||
"cache-control": "no-cache"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Ausgabefelder des API-Blocks
|
||||
|
||||
- **data**: Die Antwortdaten von der API (kann jeden Typ haben)
|
||||
- **status**: HTTP-Statuscode der Antwort
|
||||
- **headers**: Von der API zurückgegebene HTTP-Header
|
||||
|
||||
</Tab>
|
||||
<Tab>
|
||||
|
||||
```json
|
||||
{
|
||||
"result": "Function return value",
|
||||
"stdout": "Console output",
|
||||
}
|
||||
```
|
||||
|
||||
### Ausgabefelder des Funktionsblocks
|
||||
|
||||
- **result**: Der Rückgabewert der Funktion (kann jeden Typ haben)
|
||||
- **stdout**: Während der Funktionsausführung erfasste Konsolenausgabe
|
||||
|
||||
</Tab>
|
||||
<Tab>
|
||||
|
||||
```json
|
||||
{
|
||||
"content": "Evaluation summary",
|
||||
"model": "gpt-5",
|
||||
"tokens": {
|
||||
"prompt": 120,
|
||||
"completion": 85,
|
||||
"total": 205
|
||||
},
|
||||
"metric1": 8.5,
|
||||
"metric2": 7.2,
|
||||
"metric3": 9.0
|
||||
}
|
||||
```
|
||||
|
||||
### Ausgabefelder des Evaluator-Blocks
|
||||
|
||||
- **content**: Zusammenfassung der Auswertung
|
||||
- **model**: Das für die Auswertung verwendete KI-Modell
|
||||
- **tokens**: Statistiken zur Token-Nutzung
|
||||
- **[metricName]**: Bewertung für jede im Evaluator definierte Metrik (dynamische Felder)
|
||||
|
||||
</Tab>
|
||||
<Tab>
|
||||
|
||||
```json
|
||||
{
|
||||
"conditionResult": true,
|
||||
"selectedPath": {
|
||||
"blockId": "2acd9007-27e8-4510-a487-73d3b825e7c1",
|
||||
"blockType": "agent",
|
||||
"blockTitle": "Follow-up Agent"
|
||||
},
|
||||
"selectedOption": "condition-1"
|
||||
}
|
||||
```
|
||||
|
||||
### Ausgabefelder des Condition-Blocks
|
||||
|
||||
- **conditionResult**: Boolesches Ergebnis der Bedingungsauswertung
|
||||
- **selectedPath**: Informationen über den ausgewählten Pfad
|
||||
- **blockId**: ID des nächsten Blocks im ausgewählten Pfad
|
||||
- **blockType**: Typ des nächsten Blocks
|
||||
- **blockTitle**: Titel des nächsten Blocks
|
||||
- **selectedOption**: ID der ausgewählten Bedingung
|
||||
|
||||
</Tab>
|
||||
<Tab>
|
||||
|
||||
```json
|
||||
{
|
||||
"content": "Routing decision",
|
||||
"model": "gpt-4o",
|
||||
"tokens": {
|
||||
"prompt": 120,
|
||||
"completion": 85,
|
||||
"total": 205
|
||||
},
|
||||
"selectedPath": {
|
||||
"blockId": "2acd9007-27e8-4510-a487-73d3b825e7c1",
|
||||
"blockType": "agent",
|
||||
"blockTitle": "Customer Service Agent"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Ausgabefelder des Router-Blocks
|
||||
|
||||
- **content**: Der Routing-Entscheidungstext
|
||||
- **model**: Das für das Routing verwendete KI-Modell
|
||||
- **tokens**: Statistiken zur Token-Nutzung
|
||||
- **selectedPath**: Informationen über den ausgewählten Pfad
|
||||
- **blockId**: ID des ausgewählten Zielblocks
|
||||
- **blockType**: Typ des ausgewählten Blocks
|
||||
- **blockTitle**: Titel des ausgewählten Blocks
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Benutzerdefinierte Ausgabestrukturen
|
||||
|
||||
Einige Blöcke können basierend auf ihrer Konfiguration benutzerdefinierte Ausgabestrukturen erzeugen:
|
||||
|
||||
1. **Agent-Blöcke mit Antwortformat**: Bei Verwendung eines Antwortformats in einem Agent-Block entspricht die Ausgabestruktur dem definierten Schema anstelle der Standardstruktur.
|
||||
|
||||
2. **Function-Blöcke**: Das Feld `result` kann jede Datenstruktur enthalten, die von Ihrem Funktionscode zurückgegeben wird.
|
||||
|
||||
3. **API-Blöcke**: Das Feld `data` enthält die Rückgabe der API, die jede gültige JSON-Struktur sein kann.
|
||||
|
||||
<Callout type="warning">
|
||||
Überprüfen Sie während der Entwicklung immer die tatsächliche Ausgabestruktur Ihrer Blöcke, um sicherzustellen, dass Sie in Ihren Verbindungen auf die richtigen Felder verweisen.
|
||||
</Callout>
|
||||
|
||||
## Verschachtelte Datenstrukturen
|
||||
|
||||
Viele Block-Ausgaben enthalten verschachtelte Datenstrukturen. Du kannst auf diese mit Punktnotation in Verbindungs-Tags zugreifen:
|
||||
|
||||
```
|
||||
<blockName.path.to.nested.data>
|
||||
```
|
||||
|
||||
Zum Beispiel:
|
||||
|
||||
- `<agent1.tokens.total>` - Greife auf die Gesamtzahl der Tokens aus einem Agent-Block zu
|
||||
- `<api1.data.results[0].id>` - Greife auf die ID des ersten Ergebnisses einer API-Antwort zu
|
||||
- `<function1.result.calculations.total>` - Greife auf ein verschachteltes Feld im Ergebnis eines Funktionsblocks zu
|
||||
@@ -0,0 +1,42 @@
|
||||
---
|
||||
title: Übersicht
|
||||
description: Verbinde deine Blöcke miteinander.
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Card, Cards } from 'fumadocs-ui/components/card'
|
||||
import { ConnectIcon } from '@/components/icons'
|
||||
import { Video } from '@/components/ui/video'
|
||||
|
||||
Verbindungen sind die Pfade, die den Datenfluss zwischen Blöcken in deinem Workflow ermöglichen. Sie definieren, wie Informationen von einem Block zum anderen weitergegeben werden und ermöglichen dir, komplexe, mehrstufige Prozesse zu erstellen.
|
||||
|
||||
<Callout type="info">
|
||||
Richtig konfigurierte Verbindungen sind entscheidend für die Erstellung effektiver Workflows. Sie bestimmen, wie
|
||||
Daten durch dein System fließen und wie Blöcke miteinander interagieren.
|
||||
</Callout>
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="connections.mp4" />
|
||||
</div>
|
||||
|
||||
## Verbindungstypen
|
||||
|
||||
Sim unterstützt verschiedene Arten von Verbindungen, die verschiedene Workflow-Muster ermöglichen:
|
||||
|
||||
<Cards>
|
||||
<Card title="Grundlagen der Verbindungen" href="/connections/basics">
|
||||
Lerne, wie Verbindungen funktionieren und wie du sie in deinen Workflows erstellst
|
||||
</Card>
|
||||
<Card title="Verbindungs-Tags" href="/connections/tags">
|
||||
Verstehe, wie du Verbindungs-Tags verwendest, um auf Daten zwischen Blöcken zu verweisen
|
||||
</Card>
|
||||
<Card title="Datenstruktur" href="/connections/data-structure">
|
||||
Erkunde die Ausgabedatenstrukturen verschiedener Blocktypen
|
||||
</Card>
|
||||
<Card title="Datenzugriff" href="/connections/accessing-data">
|
||||
Lerne Techniken für den Zugriff und die Manipulation verbundener Daten
|
||||
</Card>
|
||||
<Card title="Best Practices" href="/connections/best-practices">
|
||||
Folge empfohlenen Mustern für effektives Verbindungsmanagement
|
||||
</Card>
|
||||
</Cards>
|
||||
@@ -0,0 +1,109 @@
|
||||
---
|
||||
title: Tags
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Video } from '@/components/ui/video'
|
||||
|
||||
Verbindungs-Tags sind visuelle Darstellungen der verfügbaren Daten aus verbundenen Blöcken und bieten eine einfache Möglichkeit, auf Daten zwischen Blöcken und Ausgaben aus vorherigen Blöcken in Ihrem Workflow zu verweisen.
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="connections.mp4" />
|
||||
</div>
|
||||
|
||||
### Was sind Verbindungs-Tags?
|
||||
|
||||
Verbindungs-Tags sind interaktive Elemente, die erscheinen, wenn Blöcke verbunden werden. Sie repräsentieren die Daten, die von einem Block zum anderen fließen können und ermöglichen es Ihnen:
|
||||
|
||||
- Verfügbare Daten aus Quellblöcken zu visualisieren
|
||||
- Auf bestimmte Datenfelder in Zielblöcken zu verweisen
|
||||
- Dynamische Datenflüsse zwischen Blöcken zu erstellen
|
||||
|
||||
<Callout type="info">
|
||||
Verbindungs-Tags machen es einfach zu sehen, welche Daten aus vorherigen Blöcken verfügbar sind und diese in Ihrem
|
||||
aktuellen Block zu verwenden, ohne sich komplexe Datenstrukturen merken zu müssen.
|
||||
</Callout>
|
||||
|
||||
## Verwendung von Verbindungs-Tags
|
||||
|
||||
Es gibt zwei Hauptmethoden, um Verbindungs-Tags in Ihren Workflows zu verwenden:
|
||||
|
||||
<div className="my-6 grid grid-cols-1 gap-4 md:grid-cols-2">
|
||||
<div className="rounded-lg border border-gray-200 p-4 dark:border-gray-800">
|
||||
<h3 className="mb-2 text-lg font-medium">Drag and Drop</h3>
|
||||
<div className="text-sm text-gray-600 dark:text-gray-400">
|
||||
Klicken Sie auf einen Verbindungs-Tag und ziehen Sie ihn in Eingabefelder von Zielblöcken. Ein Dropdown-Menü wird
|
||||
angezeigt, das verfügbare Werte zeigt.
|
||||
</div>
|
||||
<ol className="mt-2 list-decimal pl-5 text-sm text-gray-600 dark:text-gray-400">
|
||||
<li>Fahren Sie mit dem Mauszeiger über einen Verbindungs-Tag, um verfügbare Daten zu sehen</li>
|
||||
<li>Klicken und ziehen Sie den Tag in ein Eingabefeld</li>
|
||||
<li>Wählen Sie das spezifische Datenfeld aus dem Dropdown-Menü</li>
|
||||
<li>Die Referenz wird automatisch eingefügt</li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
<div className="rounded-lg border border-gray-200 p-4 dark:border-gray-800">
|
||||
<h3 className="mb-2 text-lg font-medium">Spitze-Klammer-Syntax</h3>
|
||||
<div className="text-sm text-gray-600 dark:text-gray-400">
|
||||
Geben Sie <code><></code> in Eingabefeldern ein, um ein Dropdown-Menü mit verfügbaren Verbindungswerten
|
||||
aus vorherigen Blöcken zu sehen.
|
||||
</div>
|
||||
<ol className="mt-2 list-decimal pl-5 text-sm text-gray-600 dark:text-gray-400">
|
||||
<li>Klicken Sie in ein beliebiges Eingabefeld, in dem Sie verbundene Daten verwenden möchten</li>
|
||||
<li>
|
||||
Geben Sie <code><></code> ein, um das Verbindungs-Dropdown-Menü aufzurufen
|
||||
</li>
|
||||
<li>Durchsuchen und wählen Sie die Daten aus, auf die Sie verweisen möchten</li>
|
||||
<li>Tippen Sie weiter oder wählen Sie aus dem Dropdown-Menü, um die Referenz zu vervollständigen</li>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
## Tag-Syntax
|
||||
|
||||
Verbindungs-Tags verwenden eine einfache Syntax, um auf Daten zu verweisen:
|
||||
|
||||
```
|
||||
<blockName.path.to.data>
|
||||
```
|
||||
|
||||
Wobei:
|
||||
|
||||
- `blockName` ist der Name des Quellblocks
|
||||
- `path.to.data` ist der Pfad zum spezifischen Datenfeld
|
||||
|
||||
Zum Beispiel:
|
||||
|
||||
- `<agent1.content>` - Verweist auf das Inhaltsfeld eines Blocks mit der ID "agent1"
|
||||
- `<api2.data.users[0].name>` - Verweist auf den Namen des ersten Benutzers im Benutzer-Array aus dem Datenfeld eines Blocks mit der ID "api2"
|
||||
|
||||
## Dynamische Tag-Referenzen
|
||||
|
||||
Verbindungs-Tags werden zur Laufzeit ausgewertet, was bedeutet:
|
||||
|
||||
1. Sie verweisen immer auf die aktuellsten Daten
|
||||
2. Sie können in Ausdrücken verwendet und mit statischem Text kombiniert werden
|
||||
3. Sie können in andere Datenstrukturen eingebettet werden
|
||||
|
||||
### Beispiele
|
||||
|
||||
```javascript
|
||||
// Reference in text
|
||||
"The user's name is <userBlock.name>"
|
||||
|
||||
// Reference in JSON
|
||||
{
|
||||
"userName": "<userBlock.name>",
|
||||
"orderTotal": <apiBlock.data.total>
|
||||
}
|
||||
|
||||
// Reference in code
|
||||
const greeting = "Hello, <userBlock.name>!";
|
||||
const total = <apiBlock.data.total> * 1.1; // Add 10% tax
|
||||
```
|
||||
|
||||
<Callout type="warning">
|
||||
Wenn Sie Verbindungs-Tags in numerischen Kontexten verwenden, stellen Sie sicher, dass die referenzierten Daten tatsächlich eine Zahl sind,
|
||||
um Typkonvertierungsprobleme zu vermeiden.
|
||||
</Callout>
|
||||
@@ -0,0 +1,248 @@
|
||||
---
|
||||
title: Copilot
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Card, Cards } from 'fumadocs-ui/components/card'
|
||||
import { Image } from '@/components/ui/image'
|
||||
import { MessageCircle, Package, Zap, Infinity as InfinityIcon, Brain, BrainCircuit } from 'lucide-react'
|
||||
|
||||
Copilot ist dein Assistent im Editor, der dir hilft, Workflows mit Sim Copilot zu erstellen und zu bearbeiten sowie diese zu verstehen und zu verbessern. Er kann:
|
||||
|
||||
- **Erklären**: Beantwortet Fragen zu Sim und deinem aktuellen Workflow
|
||||
- **Anleiten**: Schlägt Bearbeitungen und Best Practices vor
|
||||
- **Bearbeiten**: Nimmt Änderungen an Blöcken, Verbindungen und Einstellungen vor, wenn du zustimmst
|
||||
|
||||
<Callout type="info">
|
||||
Copilot ist ein von Sim verwalteter Dienst. Für selbst gehostete Installationen generiere einen Copilot API-Schlüssel in der gehosteten App (sim.ai → Einstellungen → Copilot)
|
||||
1. Gehe zu [sim.ai](https://sim.ai) → Einstellungen → Copilot und generiere einen Copilot API-Schlüssel
|
||||
2. Setze `COPILOT_API_KEY` in deiner selbst gehosteten Umgebung auf diesen Wert
|
||||
</Callout>
|
||||
|
||||
## Kontextmenü (@)
|
||||
|
||||
Verwende das `@` Symbol, um auf verschiedene Ressourcen zu verweisen und Copilot mehr Kontext über deinen Arbeitsbereich zu geben:
|
||||
|
||||
<Image
|
||||
src="/static/copilot/copilot-menu.png"
|
||||
alt="Copilot-Kontextmenü mit verfügbaren Referenzoptionen"
|
||||
width={600}
|
||||
height={400}
|
||||
/>
|
||||
|
||||
Das `@` Menü bietet Zugriff auf:
|
||||
- **Chats**: Verweise auf vorherige Copilot-Gespräche
|
||||
- **Alle Workflows**: Verweise auf beliebige Workflows in deinem Arbeitsbereich
|
||||
- **Workflow-Blöcke**: Verweise auf bestimmte Blöcke aus Workflows
|
||||
- **Blöcke**: Verweise auf Blocktypen und Vorlagen
|
||||
- **Wissen**: Verweise auf deine hochgeladenen Dokumente und Wissensdatenbank
|
||||
- **Dokumentation**: Verweise auf Sim-Dokumentation
|
||||
- **Vorlagen**: Verweise auf Workflow-Vorlagen
|
||||
- **Logs**: Verweise auf Ausführungsprotokolle und Ergebnisse
|
||||
|
||||
Diese kontextbezogenen Informationen helfen Copilot, genauere und relevantere Unterstützung für deinen spezifischen Anwendungsfall zu bieten.
|
||||
|
||||
## Modi
|
||||
|
||||
<Cards>
|
||||
<Card
|
||||
title={
|
||||
<span className="inline-flex items-center gap-2">
|
||||
<MessageCircle className="h-4 w-4 text-muted-foreground" />
|
||||
Fragen
|
||||
</span>
|
||||
}
|
||||
>
|
||||
<div className="m-0 text-sm">
|
||||
Frage-Antwort-Modus für Erklärungen, Anleitungen und Vorschläge ohne Änderungen an deinem Workflow vorzunehmen.
|
||||
</div>
|
||||
</Card>
|
||||
<Card
|
||||
title={
|
||||
<span className="inline-flex items-center gap-2">
|
||||
<Package className="h-4 w-4 text-muted-foreground" />
|
||||
Agent
|
||||
</span>
|
||||
}
|
||||
>
|
||||
<div className="m-0 text-sm">
|
||||
Erstellen-und-Bearbeiten-Modus. Copilot schlägt spezifische Änderungen vor (Blöcke hinzufügen, Variablen verbinden, Einstellungen anpassen) und wendet sie an, wenn du zustimmst.
|
||||
</div>
|
||||
</Card>
|
||||
</Cards>
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/copilot/copilot-mode.png"
|
||||
alt="Copilot-Modusauswahl-Oberfläche"
|
||||
width={600}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Tiefenebenen
|
||||
|
||||
<Cards>
|
||||
<Card
|
||||
title={
|
||||
<span className="inline-flex items-center gap-2">
|
||||
<Zap className="h-4 w-4 text-muted-foreground" />
|
||||
Schnell
|
||||
</span>
|
||||
}
|
||||
>
|
||||
<div className="m-0 text-sm">Am schnellsten und günstigsten. Ideal für kleine Änderungen, einfache Arbeitsabläufe und geringfügige Anpassungen.</div>
|
||||
</Card>
|
||||
<Card
|
||||
title={
|
||||
<span className="inline-flex items-center gap-2">
|
||||
<InfinityIcon className="h-4 w-4 text-muted-foreground" />
|
||||
Auto
|
||||
</span>
|
||||
}
|
||||
>
|
||||
<div className="m-0 text-sm">Ausgewogene Geschwindigkeit und Denkleistung. Empfohlene Standardeinstellung für die meisten Aufgaben.</div>
|
||||
</Card>
|
||||
<Card
|
||||
title={
|
||||
<span className="inline-flex items-center gap-2">
|
||||
<Brain className="h-4 w-4 text-muted-foreground" />
|
||||
Erweitert
|
||||
</span>
|
||||
}
|
||||
>
|
||||
<div className="m-0 text-sm">Mehr Denkleistung für umfangreichere Arbeitsabläufe und komplexe Änderungen bei gleichzeitiger Leistungsfähigkeit.</div>
|
||||
</Card>
|
||||
<Card
|
||||
title={
|
||||
<span className="inline-flex items-center gap-2">
|
||||
<BrainCircuit className="h-4 w-4 text-muted-foreground" />
|
||||
Behemoth
|
||||
</span>
|
||||
}
|
||||
>
|
||||
<div className="m-0 text-sm">Maximale Denkleistung für tiefgreifende Planung, Fehlerbehebung und komplexe architektonische Änderungen.</div>
|
||||
</Card>
|
||||
</Cards>
|
||||
|
||||
### Modusauswahl-Oberfläche
|
||||
|
||||
Du kannst einfach zwischen verschiedenen Denkmodi über die Modusauswahl in der Copilot-Oberfläche wechseln:
|
||||
|
||||
<Image
|
||||
src="/static/copilot/copilot-models.png"
|
||||
alt="Copilot-Modusauswahl zeigt den erweiterten Modus mit MAX-Umschalter"
|
||||
width={600}
|
||||
height={300}
|
||||
/>
|
||||
|
||||
Die Oberfläche ermöglicht dir:
|
||||
- **Denkebene auswählen**: Wähle zwischen Schnell, Auto, Erweitert oder Behemoth
|
||||
- **MAX-Modus aktivieren**: Umschalten für maximale Denkfähigkeiten, wenn du die gründlichste Analyse benötigst
|
||||
- **Modusbeschreibungen anzeigen**: Verstehe, wofür jeder Modus optimiert ist
|
||||
|
||||
Wähle deinen Modus basierend auf der Komplexität deiner Aufgabe - verwende Schnell für einfache Fragen und Behemoth für komplexe architektonische Änderungen.
|
||||
|
||||
## Abrechnung und Kostenberechnung
|
||||
|
||||
### Wie Kosten berechnet werden
|
||||
|
||||
Die Copilot-Nutzung wird pro Token vom zugrundeliegenden LLM abgerechnet:
|
||||
|
||||
- **Eingabe-Tokens**: werden zum Basispreis des Anbieters berechnet (**zum Selbstkostenpreis**)
|
||||
- **Ausgabe-Tokens**: werden mit dem **1,5-fachen** des Basis-Ausgabepreises des Anbieters berechnet
|
||||
|
||||
```javascript
|
||||
copilotCost = (inputTokens × inputPrice + outputTokens × (outputPrice × 1.5)) / 1,000,000
|
||||
```
|
||||
|
||||
| Komponente | Angewendeter Tarif |
|
||||
|------------|------------------------|
|
||||
| Eingabe | inputPrice |
|
||||
| Ausgabe | outputPrice × 1,5 |
|
||||
|
||||
<Callout type="warning">
|
||||
Die angezeigten Preise spiegeln die Tarife vom 4. September 2025 wider. Überprüfen Sie die Anbieter-Dokumentation für aktuelle Preise.
|
||||
</Callout>
|
||||
|
||||
<Callout type="info">
|
||||
Modellpreise werden pro Million Tokens angegeben. Die Berechnung teilt durch 1.000.000, um die tatsächlichen Kosten zu ermitteln. Siehe <a href="/execution/costs">die Seite zur Kostenberechnung</a> für Hintergründe und Beispiele.
|
||||
</Callout>
|
||||
|
||||
Fahre mit der Maus über eine deiner Nachrichten und klicke auf **Bearbeiten**, um sie zu ändern und erneut zu senden. Dies ist nützlich, um deine Eingaben zu verfeinern.
|
||||
|
||||
### Nachrichtenwarteschlange
|
||||
|
||||
Wenn du eine Nachricht sendest, während Copilot noch antwortet, wird sie in die Warteschlange gestellt. Du kannst:
|
||||
- Warteschlangennachrichten im erweiterbaren Warteschlangenpanel anzeigen
|
||||
- Eine Nachricht aus der Warteschlange sofort senden (bricht die aktuelle Antwort ab)
|
||||
- Nachrichten aus der Warteschlange entfernen
|
||||
|
||||
## Dateianhänge
|
||||
|
||||
Klicke auf das Anhang-Symbol, um Dateien mit deiner Nachricht hochzuladen. Unterstützte Dateitypen umfassen:
|
||||
- Bilder (Vorschau-Thumbnails werden angezeigt)
|
||||
- PDFs
|
||||
- Textdateien, JSON, XML
|
||||
- Andere Dokumentformate
|
||||
|
||||
Dateien werden als anklickbare Thumbnails angezeigt, die in einem neuen Tab geöffnet werden.
|
||||
|
||||
## Checkpoints & Änderungen
|
||||
|
||||
Wenn Copilot Änderungen an deinem Workflow vornimmt, speichert es Checkpoints, damit du bei Bedarf zurückkehren kannst.
|
||||
|
||||
### Checkpoints anzeigen
|
||||
|
||||
Fahre mit der Maus über eine Copilot-Nachricht und klicke auf das Checkpoints-Symbol, um gespeicherte Workflow-Zustände für diese Nachricht anzuzeigen.
|
||||
|
||||
### Änderungen rückgängig machen
|
||||
|
||||
Klicke bei jedem Checkpoint auf **Rückgängig machen**, um deinen Workflow auf diesen Zustand zurückzusetzen. Ein Bestätigungsdialog warnt dich, dass diese Aktion nicht rückgängig gemacht werden kann.
|
||||
|
||||
### Änderungen akzeptieren
|
||||
|
||||
Wenn Copilot Änderungen vorschlägt, kannst du:
|
||||
- **Akzeptieren**: Die vorgeschlagenen Änderungen anwenden (`Mod+Shift+Enter`)
|
||||
- **Ablehnen**: Die Änderungen verwerfen und deinen aktuellen Workflow beibehalten
|
||||
|
||||
## Denkblöcke
|
||||
|
||||
Bei komplexen Anfragen kann Copilot seinen Denkprozess in erweiterbaren Denkblöcken anzeigen:
|
||||
|
||||
- Blöcke werden automatisch erweitert, während Copilot denkt
|
||||
- Klicken zum manuellen Erweitern/Reduzieren
|
||||
- Zeigt die Dauer des Denkprozesses an
|
||||
- Hilft dir zu verstehen, wie Copilot zu seiner Lösung gekommen ist
|
||||
|
||||
## Optionsauswahl
|
||||
|
||||
Wenn Copilot mehrere Optionen präsentiert, kannst du auswählen mit:
|
||||
|
||||
| Steuerung | Aktion |
|
||||
|---------|--------|
|
||||
| **1-9** | Option nach Nummer auswählen |
|
||||
| **Pfeiltaste auf/ab** | Zwischen Optionen navigieren |
|
||||
| **Eingabetaste** | Hervorgehobene Option auswählen |
|
||||
|
||||
Ausgewählte Optionen sind hervorgehoben; nicht ausgewählte Optionen erscheinen durchgestrichen.
|
||||
|
||||
## Tastenkombinationen
|
||||
|
||||
| Tastenkombination | Aktion |
|
||||
|----------|--------|
|
||||
| `@` | Kontextmenü öffnen |
|
||||
| `/` | Slash-Befehle öffnen |
|
||||
| `Arrow Up/Down` | Menüelemente navigieren |
|
||||
| `Enter` | Menüelement auswählen |
|
||||
| `Esc` | Menüs schließen |
|
||||
| `Mod+Shift+Enter` | Copilot-Änderungen akzeptieren |
|
||||
|
||||
## Nutzungslimits
|
||||
|
||||
Die Copilot-Nutzung wird pro Token des zugrunde liegenden LLM abgerechnet. Wenn Sie Ihr Nutzungslimit erreichen, fordert Copilot Sie auf, Ihr Limit zu erhöhen. Sie können die Nutzung in Schritten (50 $, 100 $) von Ihrer aktuellen Basis aus hinzufügen.
|
||||
|
||||
<Callout type="info">
|
||||
Siehe die [Seite zur Kostenberechnung](/execution/costs) für Abrechnungsdetails.
|
||||
</Callout>
|
||||
@@ -0,0 +1,123 @@
|
||||
---
|
||||
title: Enterprise
|
||||
description: Enterprise-Funktionen für Organisationen mit erweiterten
|
||||
Sicherheits- und Compliance-Anforderungen
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Sim Enterprise bietet erweiterte Funktionen für Organisationen mit erhöhten Sicherheits-, Compliance- und Verwaltungsanforderungen.
|
||||
|
||||
---
|
||||
|
||||
## Bring Your Own Key (BYOK)
|
||||
|
||||
Verwenden Sie Ihre eigenen API-Schlüssel für KI-Modellanbieter anstelle der gehosteten Schlüssel von Sim.
|
||||
|
||||
### Unterstützte Anbieter
|
||||
|
||||
| Anbieter | Verwendung |
|
||||
|----------|-------|
|
||||
| OpenAI | Knowledge Base-Embeddings, Agent-Block |
|
||||
| Anthropic | Agent-Block |
|
||||
| Google | Agent-Block |
|
||||
| Mistral | Knowledge Base OCR, Agent-Block |
|
||||
| Fireworks | Agent-Block |
|
||||
| Firecrawl | Web-Scraping, Crawling, Suche und Extraktion |
|
||||
| Exa | KI-gestützte Suche und Recherche |
|
||||
| Serper | Google-Such-API |
|
||||
| Linkup | Websuche und Inhaltsabruf |
|
||||
| Parallel AI | Websuche, Extraktion und tiefgehende Recherche |
|
||||
| Perplexity | KI-gestützter Chat und Websuche |
|
||||
| Jina AI | Web-Lesen und Suche |
|
||||
| Google Cloud | Translate, Maps, PageSpeed und Books APIs |
|
||||
| Brandfetch | Marken-Assets, Logos, Farben und Unternehmensinformationen |
|
||||
|
||||
### Einrichtung
|
||||
|
||||
1. Navigieren Sie zu **Einstellungen** → **BYOK** in Ihrem Workspace
|
||||
2. Klicken Sie auf **Schlüssel hinzufügen** für Ihren Anbieter
|
||||
3. Geben Sie Ihren API-Schlüssel ein und speichern Sie
|
||||
|
||||
<Callout type="warn">
|
||||
BYOK-Schlüssel werden verschlüsselt gespeichert. Nur Organisationsadministratoren und -inhaber können Schlüssel verwalten.
|
||||
</Callout>
|
||||
|
||||
Wenn konfiguriert, verwenden Workflows Ihren Schlüssel anstelle der gehosteten Schlüssel von Sim. Bei Entfernung wechseln Workflows automatisch zu den gehosteten Schlüsseln zurück.
|
||||
|
||||
---
|
||||
|
||||
## Single Sign-On (SSO)
|
||||
|
||||
Enterprise-Authentifizierung mit SAML 2.0- und OIDC-Unterstützung für zentralisiertes Identitätsmanagement.
|
||||
|
||||
### Unterstützte Anbieter
|
||||
|
||||
- Okta
|
||||
- Azure AD / Entra ID
|
||||
- Google Workspace
|
||||
- OneLogin
|
||||
- Jeder SAML 2.0- oder OIDC-Anbieter
|
||||
|
||||
### Einrichtung
|
||||
|
||||
1. Navigieren Sie zu **Einstellungen** → **SSO** in Ihrem Workspace
|
||||
2. Wählen Sie Ihren Identitätsanbieter
|
||||
3. Konfigurieren Sie die Verbindung mithilfe der Metadaten Ihres IdP
|
||||
4. Aktivieren Sie SSO für Ihre Organisation
|
||||
|
||||
<Callout type="info">
|
||||
Sobald SSO aktiviert ist, authentifizieren sich Teammitglieder über Ihren Identitätsanbieter anstelle von E-Mail/Passwort.
|
||||
</Callout>
|
||||
|
||||
---
|
||||
|
||||
## Self-Hosted
|
||||
|
||||
Für selbst gehostete Bereitstellungen können Enterprise-Funktionen über Umgebungsvariablen aktiviert werden:
|
||||
|
||||
| Variable | Beschreibung |
|
||||
|----------|-------------|
|
||||
| `SSO_ENABLED`, `NEXT_PUBLIC_SSO_ENABLED` | Single Sign-On mit SAML/OIDC |
|
||||
| `DISABLE_INVITATIONS`, `NEXT_PUBLIC_DISABLE_INVITATIONS` | Workspace-/Organisations-Einladungen global deaktivieren |
|
||||
|
||||
<Callout type="warn">
|
||||
BYOK ist nur im gehosteten Sim verfügbar. Selbst gehostete Deployments konfigurieren AI-Provider-Schlüssel direkt über Umgebungsvariablen.
|
||||
</Callout>
|
||||
|
||||
Wenn die Abrechnung deaktiviert ist, verwenden Sie die Admin-API zur Verwaltung von Organisationen:
|
||||
|
||||
```bash
|
||||
# Create an organization
|
||||
curl -X POST https://your-instance/api/v1/admin/organizations \
|
||||
-H "x-admin-key: YOUR_ADMIN_API_KEY" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"name": "My Organization", "ownerId": "user-id-here"}'
|
||||
|
||||
# Add a member
|
||||
curl -X POST https://your-instance/api/v1/admin/organizations/{orgId}/members \
|
||||
-H "x-admin-key: YOUR_ADMIN_API_KEY" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"userId": "user-id-here", "role": "admin"}'
|
||||
```
|
||||
|
||||
### Workspace-Mitglieder
|
||||
|
||||
Wenn Einladungen deaktiviert sind, verwenden Sie die Admin-API zur direkten Verwaltung von Workspace-Mitgliedschaften:
|
||||
|
||||
```bash
|
||||
# Add a user to a workspace
|
||||
curl -X POST https://your-instance/api/v1/admin/workspaces/{workspaceId}/members \
|
||||
-H "x-admin-key: YOUR_ADMIN_API_KEY" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"userId": "user-id-here", "permissions": "write"}'
|
||||
|
||||
# Remove a user from a workspace
|
||||
curl -X DELETE "https://your-instance/api/v1/admin/workspaces/{workspaceId}/members?userId=user-id-here" \
|
||||
-H "x-admin-key: YOUR_ADMIN_API_KEY"
|
||||
```
|
||||
|
||||
### Hinweise
|
||||
|
||||
- Die Aktivierung von `ACCESS_CONTROL_ENABLED` aktiviert automatisch Organisationen, da die Zugriffskontrolle eine Organisationsmitgliedschaft erfordert.
|
||||
- Wenn `DISABLE_INVITATIONS` gesetzt ist, können Benutzer keine Einladungen versenden. Verwenden Sie stattdessen die Admin-API zur Verwaltung von Workspace- und Organisationsmitgliedschaften.
|
||||
@@ -0,0 +1,609 @@
|
||||
---
|
||||
title: Externe API
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Video } from '@/components/ui/video'
|
||||
|
||||
Sim bietet eine umfassende externe API zum Abfragen von Workflow-Ausführungsprotokollen und zum Einrichten von Webhooks für Echtzeit-Benachrichtigungen, wenn Workflows abgeschlossen werden.
|
||||
|
||||
## Authentifizierung
|
||||
|
||||
Alle API-Anfragen erfordern einen API-Schlüssel, der im Header `x-api-key` übergeben wird:
|
||||
|
||||
```bash
|
||||
curl -H "x-api-key: YOUR_API_KEY" \
|
||||
https://sim.ai/api/v1/logs?workspaceId=YOUR_WORKSPACE_ID
|
||||
```
|
||||
|
||||
Sie können API-Schlüssel in Ihren Benutzereinstellungen im Sim-Dashboard generieren.
|
||||
|
||||
## Logs-API
|
||||
|
||||
Alle API-Antworten enthalten Informationen über Ihre Workflow-Ausführungslimits und -nutzung:
|
||||
|
||||
```json
|
||||
"limits": {
|
||||
"workflowExecutionRateLimit": {
|
||||
"sync": {
|
||||
"requestsPerMinute": 60, // Sustained rate limit per minute
|
||||
"maxBurst": 120, // Maximum burst capacity
|
||||
"remaining": 118, // Current tokens available (up to maxBurst)
|
||||
"resetAt": "..." // When tokens next refill
|
||||
},
|
||||
"async": {
|
||||
"requestsPerMinute": 200, // Sustained rate limit per minute
|
||||
"maxBurst": 400, // Maximum burst capacity
|
||||
"remaining": 398, // Current tokens available
|
||||
"resetAt": "..." // When tokens next refill
|
||||
}
|
||||
},
|
||||
"usage": {
|
||||
"currentPeriodCost": 1.234, // Current billing period usage in USD
|
||||
"limit": 10, // Usage limit in USD
|
||||
"plan": "pro", // Current subscription plan
|
||||
"isExceeded": false // Whether limit is exceeded
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Hinweis:** Ratenbegrenzungen verwenden einen Token-Bucket-Algorithmus. `remaining` kann `requestsPerMinute` bis zu `maxBurst` überschreiten, wenn du dein volles Kontingent in letzter Zeit nicht genutzt hast, was Burst-Traffic ermöglicht. Die Ratenbegrenzungen im Antworttext gelten für Workflow-Ausführungen. Die Ratenbegrenzungen für den Aufruf dieses API-Endpunkts befinden sich in den Antwort-Headern (`X-RateLimit-*`).
|
||||
|
||||
### Logs abfragen
|
||||
|
||||
Fragen Sie Workflow-Ausführungsprotokolle mit umfangreichen Filteroptionen ab.
|
||||
|
||||
<Tabs items={['Request', 'Response']}>
|
||||
<Tab value="Request">
|
||||
|
||||
```http
|
||||
GET /api/v1/logs
|
||||
```
|
||||
|
||||
**Erforderliche Parameter:**
|
||||
- `workspaceId` - Ihre Workspace-ID
|
||||
|
||||
**Optionale Filter:**
|
||||
- `workflowIds` - Kommagetrennte Workflow-IDs
|
||||
- `folderIds` - Kommagetrennte Ordner-IDs
|
||||
- `triggers` - Kommagetrennte Auslösertypen: `api`, `webhook`, `schedule`, `manual`, `chat`
|
||||
- `level` - Nach Level filtern: `info`, `error`
|
||||
- `startDate` - ISO-Zeitstempel für den Beginn des Datumsbereichs
|
||||
- `endDate` - ISO-Zeitstempel für das Ende des Datumsbereichs
|
||||
- `executionId` - Exakte Übereinstimmung der Ausführungs-ID
|
||||
- `minDurationMs` - Minimale Ausführungsdauer in Millisekunden
|
||||
- `maxDurationMs` - Maximale Ausführungsdauer in Millisekunden
|
||||
- `minCost` - Minimale Ausführungskosten
|
||||
- `maxCost` - Maximale Ausführungskosten
|
||||
- `model` - Nach verwendetem KI-Modell filtern
|
||||
|
||||
**Paginierung:**
|
||||
- `limit` - Ergebnisse pro Seite (Standard: 100)
|
||||
- `cursor` - Cursor für die nächste Seite
|
||||
- `order` - Sortierreihenfolge: `desc`, `asc` (Standard: desc)
|
||||
|
||||
**Detailebene:**
|
||||
- `details` - Detailebene der Antwort: `basic`, `full` (Standard: basic)
|
||||
- `includeTraceSpans` - Trace-Spans einschließen (Standard: false)
|
||||
- `includeFinalOutput` - Endgültige Ausgabe einschließen (Standard: false)
|
||||
</Tab>
|
||||
<Tab value="Response">
|
||||
|
||||
```json
|
||||
{
|
||||
"data": [
|
||||
{
|
||||
"id": "log_abc123",
|
||||
"workflowId": "wf_xyz789",
|
||||
"executionId": "exec_def456",
|
||||
"level": "info",
|
||||
"trigger": "api",
|
||||
"startedAt": "2025-01-01T12:34:56.789Z",
|
||||
"endedAt": "2025-01-01T12:34:57.123Z",
|
||||
"totalDurationMs": 334,
|
||||
"cost": {
|
||||
"total": 0.00234
|
||||
},
|
||||
"files": null
|
||||
}
|
||||
],
|
||||
"nextCursor": "eyJzIjoiMjAyNS0wMS0wMVQxMjozNDo1Ni43ODlaIiwiaWQiOiJsb2dfYWJjMTIzIn0",
|
||||
"limits": {
|
||||
"workflowExecutionRateLimit": {
|
||||
"sync": {
|
||||
"requestsPerMinute": 60,
|
||||
"maxBurst": 120,
|
||||
"remaining": 118,
|
||||
"resetAt": "2025-01-01T12:35:56.789Z"
|
||||
},
|
||||
"async": {
|
||||
"requestsPerMinute": 200,
|
||||
"maxBurst": 400,
|
||||
"remaining": 398,
|
||||
"resetAt": "2025-01-01T12:35:56.789Z"
|
||||
}
|
||||
},
|
||||
"usage": {
|
||||
"currentPeriodCost": 1.234,
|
||||
"limit": 10,
|
||||
"plan": "pro",
|
||||
"isExceeded": false
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### Log-Details abrufen
|
||||
|
||||
Rufen Sie detaillierte Informationen zu einem bestimmten Logeintrag ab.
|
||||
|
||||
<Tabs items={['Request', 'Response']}>
|
||||
<Tab value="Request">
|
||||
|
||||
```http
|
||||
GET /api/v1/logs/{id}
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab value="Response">
|
||||
|
||||
```json
|
||||
{
|
||||
"data": {
|
||||
"id": "log_abc123",
|
||||
"workflowId": "wf_xyz789",
|
||||
"executionId": "exec_def456",
|
||||
"level": "info",
|
||||
"trigger": "api",
|
||||
"startedAt": "2025-01-01T12:34:56.789Z",
|
||||
"endedAt": "2025-01-01T12:34:57.123Z",
|
||||
"totalDurationMs": 334,
|
||||
"workflow": {
|
||||
"id": "wf_xyz789",
|
||||
"name": "My Workflow",
|
||||
"description": "Process customer data"
|
||||
},
|
||||
"executionData": {
|
||||
"traceSpans": [...],
|
||||
"finalOutput": {...}
|
||||
},
|
||||
"cost": {
|
||||
"total": 0.00234,
|
||||
"tokens": {
|
||||
"prompt": 123,
|
||||
"completion": 456,
|
||||
"total": 579
|
||||
},
|
||||
"models": {
|
||||
"gpt-4o": {
|
||||
"input": 0.001,
|
||||
"output": 0.00134,
|
||||
"total": 0.00234,
|
||||
"tokens": {
|
||||
"prompt": 123,
|
||||
"completion": 456,
|
||||
"total": 579
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"limits": {
|
||||
"workflowExecutionRateLimit": {
|
||||
"sync": {
|
||||
"requestsPerMinute": 60,
|
||||
"maxBurst": 120,
|
||||
"remaining": 118,
|
||||
"resetAt": "2025-01-01T12:35:56.789Z"
|
||||
},
|
||||
"async": {
|
||||
"requestsPerMinute": 200,
|
||||
"maxBurst": 400,
|
||||
"remaining": 398,
|
||||
"resetAt": "2025-01-01T12:35:56.789Z"
|
||||
}
|
||||
},
|
||||
"usage": {
|
||||
"currentPeriodCost": 1.234,
|
||||
"limit": 10,
|
||||
"plan": "pro",
|
||||
"isExceeded": false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### Ausführungsdetails abrufen
|
||||
|
||||
Rufen Sie Ausführungsdetails einschließlich des Workflow-Zustandsschnappschusses ab.
|
||||
|
||||
<Tabs items={['Request', 'Response']}>
|
||||
<Tab value="Request">
|
||||
|
||||
```http
|
||||
GET /api/v1/logs/executions/{executionId}
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab value="Response">
|
||||
|
||||
```json
|
||||
{
|
||||
"executionId": "exec_def456",
|
||||
"workflowId": "wf_xyz789",
|
||||
"workflowState": {
|
||||
"blocks": {...},
|
||||
"edges": [...],
|
||||
"loops": {...},
|
||||
"parallels": {...}
|
||||
},
|
||||
"executionMetadata": {
|
||||
"trigger": "api",
|
||||
"startedAt": "2025-01-01T12:34:56.789Z",
|
||||
"endedAt": "2025-01-01T12:34:57.123Z",
|
||||
"totalDurationMs": 334,
|
||||
"cost": {...}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Benachrichtigungen
|
||||
|
||||
Erhalten Sie Echtzeit-Benachrichtigungen, wenn Workflow-Ausführungen abgeschlossen sind, per Webhook, E-Mail oder Slack. Benachrichtigungen werden auf Workspace-Ebene von der Protokollseite aus konfiguriert.
|
||||
|
||||
### Konfiguration
|
||||
|
||||
Konfigurieren Sie Benachrichtigungen von der Protokollseite aus, indem Sie auf die Menütaste klicken und "Benachrichtigungen konfigurieren" auswählen.
|
||||
|
||||
**Benachrichtigungskanäle:**
|
||||
- **Webhook**: Senden Sie HTTP POST-Anfragen an Ihren Endpunkt
|
||||
- **E-Mail**: Erhalten Sie E-Mail-Benachrichtigungen mit Ausführungsdetails
|
||||
- **Slack**: Posten Sie Nachrichten in einen Slack-Kanal
|
||||
|
||||
**Workflow-Auswahl:**
|
||||
- Wählen Sie bestimmte Workflows zur Überwachung aus
|
||||
- Oder wählen Sie "Alle Workflows", um aktuelle und zukünftige Workflows einzubeziehen
|
||||
|
||||
**Filteroptionen:**
|
||||
- `levelFilter`: Zu empfangende Protokollebenen (`info`, `error`)
|
||||
- `triggerFilter`: Zu empfangende Auslösertypen (`api`, `webhook`, `schedule`, `manual`, `chat`)
|
||||
|
||||
**Optionale Daten:**
|
||||
- `includeFinalOutput`: Schließt die endgültige Ausgabe des Workflows ein
|
||||
- `includeTraceSpans`: Schließt detaillierte Ausführungs-Trace-Spans ein
|
||||
- `includeRateLimits`: Schließt Informationen zum Ratenlimit ein (Sync/Async-Limits und verbleibende)
|
||||
- `includeUsageData`: Schließt Abrechnungszeitraum-Nutzung und -Limits ein
|
||||
|
||||
### Alarmregeln
|
||||
|
||||
Anstatt Benachrichtigungen für jede Ausführung zu erhalten, konfigurieren Sie Alarmregeln, um nur bei erkannten Problemen benachrichtigt zu werden:
|
||||
|
||||
**Aufeinanderfolgende Fehler**
|
||||
- Alarm nach X aufeinanderfolgenden fehlgeschlagenen Ausführungen (z.B. 3 Fehler in Folge)
|
||||
- Wird zurückgesetzt, wenn eine Ausführung erfolgreich ist
|
||||
|
||||
**Fehlerrate**
|
||||
- Alarm, wenn die Fehlerrate X% in den letzten Y Stunden überschreitet
|
||||
- Erfordert mindestens 5 Ausführungen im Zeitfenster
|
||||
- Wird erst nach Ablauf des vollständigen Zeitfensters ausgelöst
|
||||
|
||||
**Latenz-Schwellenwert**
|
||||
- Alarm, wenn eine Ausführung länger als X Sekunden dauert
|
||||
- Nützlich zum Erkennen langsamer oder hängender Workflows
|
||||
|
||||
**Latenz-Spitze**
|
||||
- Alarm, wenn die Ausführung X% langsamer als der Durchschnitt ist
|
||||
- Vergleicht mit der durchschnittlichen Dauer über das konfigurierte Zeitfenster
|
||||
- Erfordert mindestens 5 Ausführungen, um eine Baseline zu etablieren
|
||||
|
||||
**Kostenschwelle**
|
||||
- Alarmierung, wenn eine einzelne Ausführung mehr als $X kostet
|
||||
- Nützlich, um teure LLM-Aufrufe zu erkennen
|
||||
|
||||
**Keine Aktivität**
|
||||
- Alarmierung, wenn innerhalb von X Stunden keine Ausführungen stattfinden
|
||||
- Nützlich zur Überwachung geplanter Workflows, die regelmäßig ausgeführt werden sollten
|
||||
|
||||
**Fehlerzählung**
|
||||
- Alarmierung, wenn die Fehleranzahl X innerhalb eines Zeitfensters überschreitet
|
||||
- Erfasst die Gesamtfehler, nicht aufeinanderfolgende
|
||||
|
||||
Alle Alarmtypen beinhalten eine Abklingzeit von 1 Stunde, um Benachrichtigungsspam zu vermeiden.
|
||||
|
||||
### Webhook-Konfiguration
|
||||
|
||||
Für Webhooks stehen zusätzliche Optionen zur Verfügung:
|
||||
- `url`: Ihre Webhook-Endpunkt-URL
|
||||
- `secret`: Optionales Geheimnis für HMAC-Signaturverifizierung
|
||||
|
||||
### Payload-Struktur
|
||||
|
||||
Wenn eine Workflow-Ausführung abgeschlossen ist, sendet Sim die folgende Payload (über Webhook POST, E-Mail oder Slack):
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "evt_123",
|
||||
"type": "workflow.execution.completed",
|
||||
"timestamp": 1735925767890,
|
||||
"data": {
|
||||
"workflowId": "wf_xyz789",
|
||||
"executionId": "exec_def456",
|
||||
"status": "success",
|
||||
"level": "info",
|
||||
"trigger": "api",
|
||||
"startedAt": "2025-01-01T12:34:56.789Z",
|
||||
"endedAt": "2025-01-01T12:34:57.123Z",
|
||||
"totalDurationMs": 334,
|
||||
"cost": {
|
||||
"total": 0.00234,
|
||||
"tokens": {
|
||||
"prompt": 123,
|
||||
"completion": 456,
|
||||
"total": 579
|
||||
},
|
||||
"models": {
|
||||
"gpt-4o": {
|
||||
"input": 0.001,
|
||||
"output": 0.00134,
|
||||
"total": 0.00234,
|
||||
"tokens": {
|
||||
"prompt": 123,
|
||||
"completion": 456,
|
||||
"total": 579
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"files": null,
|
||||
"finalOutput": {...}, // Only if includeFinalOutput=true
|
||||
"traceSpans": [...], // Only if includeTraceSpans=true
|
||||
"rateLimits": {...}, // Only if includeRateLimits=true
|
||||
"usage": {...} // Only if includeUsageData=true
|
||||
},
|
||||
"links": {
|
||||
"log": "/v1/logs/log_abc123",
|
||||
"execution": "/v1/logs/executions/exec_def456"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Webhook-Header
|
||||
|
||||
Jede Webhook-Anfrage enthält diese Header (nur Webhook-Kanal):
|
||||
|
||||
- `sim-event`: Ereignistyp (immer `workflow.execution.completed`)
|
||||
- `sim-timestamp`: Unix-Zeitstempel in Millisekunden
|
||||
- `sim-delivery-id`: Eindeutige Zustell-ID für Idempotenz
|
||||
- `sim-signature`: HMAC-SHA256-Signatur zur Verifizierung (falls Geheimnis konfiguriert)
|
||||
- `Idempotency-Key`: Gleich wie Zustell-ID zur Erkennung von Duplikaten
|
||||
|
||||
### Signaturverifizierung
|
||||
|
||||
Wenn Sie ein Webhook-Geheimnis konfigurieren, überprüfen Sie die Signatur, um sicherzustellen, dass der Webhook von Sim stammt:
|
||||
|
||||
<Tabs items={['Node.js', 'Python']}>
|
||||
<Tab value="Node.js">
|
||||
|
||||
```javascript
|
||||
import crypto from 'crypto';
|
||||
|
||||
function verifyWebhookSignature(body, signature, secret) {
|
||||
const [timestampPart, signaturePart] = signature.split(',');
|
||||
const timestamp = timestampPart.replace('t=', '');
|
||||
const expectedSignature = signaturePart.replace('v1=', '');
|
||||
|
||||
const signatureBase = `${timestamp}.${body}`;
|
||||
const hmac = crypto.createHmac('sha256', secret);
|
||||
hmac.update(signatureBase);
|
||||
const computedSignature = hmac.digest('hex');
|
||||
|
||||
return computedSignature === expectedSignature;
|
||||
}
|
||||
|
||||
// In your webhook handler
|
||||
app.post('/webhook', (req, res) => {
|
||||
const signature = req.headers['sim-signature'];
|
||||
const body = JSON.stringify(req.body);
|
||||
|
||||
if (!verifyWebhookSignature(body, signature, process.env.WEBHOOK_SECRET)) {
|
||||
return res.status(401).send('Invalid signature');
|
||||
}
|
||||
|
||||
// Process the webhook...
|
||||
});
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab value="Python">
|
||||
|
||||
```python
|
||||
import hmac
|
||||
import hashlib
|
||||
import json
|
||||
|
||||
def verify_webhook_signature(body: str, signature: str, secret: str) -> bool:
|
||||
timestamp_part, signature_part = signature.split(',')
|
||||
timestamp = timestamp_part.replace('t=', '')
|
||||
expected_signature = signature_part.replace('v1=', '')
|
||||
|
||||
signature_base = f"{timestamp}.{body}"
|
||||
computed_signature = hmac.new(
|
||||
secret.encode(),
|
||||
signature_base.encode(),
|
||||
hashlib.sha256
|
||||
).hexdigest()
|
||||
|
||||
return hmac.compare_digest(computed_signature, expected_signature)
|
||||
|
||||
# In your webhook handler
|
||||
@app.route('/webhook', methods=['POST'])
|
||||
def webhook():
|
||||
signature = request.headers.get('sim-signature')
|
||||
body = json.dumps(request.json)
|
||||
|
||||
if not verify_webhook_signature(body, signature, os.environ['WEBHOOK_SECRET']):
|
||||
return 'Invalid signature', 401
|
||||
|
||||
# Process the webhook...
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### Wiederholungsrichtlinie
|
||||
|
||||
Fehlgeschlagene Webhook-Zustellungen werden mit exponentiellem Backoff und Jitter wiederholt:
|
||||
|
||||
- Maximale Versuche: 5
|
||||
- Wiederholungsverzögerungen: 5 Sekunden, 15 Sekunden, 1 Minute, 3 Minuten, 10 Minuten
|
||||
- Jitter: Bis zu 10% zusätzliche Verzögerung, um Überlastung zu vermeiden
|
||||
- Nur HTTP 5xx und 429 Antworten lösen Wiederholungen aus
|
||||
- Zustellungen haben ein Timeout nach 30 Sekunden
|
||||
|
||||
<Callout type="info">
|
||||
Webhook-Zustellungen werden asynchron verarbeitet und beeinträchtigen nicht die Leistung der Workflow-Ausführung.
|
||||
</Callout>
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Polling-Strategie**: Verwende bei der Abfrage von Logs eine cursor-basierte Paginierung mit `order=asc` und `startDate`, um neue Logs effizient abzurufen.
|
||||
|
||||
2. **Webhook-Sicherheit**: Konfiguriere immer ein Webhook-Secret und überprüfe Signaturen, um sicherzustellen, dass Anfragen von Sim stammen.
|
||||
|
||||
3. **Idempotenz**: Verwende den `Idempotency-Key`Header, um doppelte Webhook-Zustellungen zu erkennen und zu behandeln.
|
||||
|
||||
4. **Datenschutz**: Standardmäßig werden `finalOutput` und `traceSpans` aus den Antworten ausgeschlossen. Aktiviere diese nur, wenn du die Daten benötigst und die Datenschutzauswirkungen verstehst.
|
||||
|
||||
5. **Rate-Limiting**: Implementiere exponentielles Backoff, wenn du 429-Antworten erhältst. Überprüfe den `Retry-After`Header für die empfohlene Wartezeit.
|
||||
|
||||
## Rate-Limiting
|
||||
|
||||
Die API verwendet einen **Token-Bucket-Algorithmus** für die Ratenbegrenzung, der eine faire Nutzung ermöglicht und gleichzeitig Burst-Traffic zulässt:
|
||||
|
||||
| Plan | Anfragen/Minute | Burst-Kapazität |
|
||||
|------|-----------------|----------------|
|
||||
| Free | 10 | 20 |
|
||||
| Pro | 30 | 60 |
|
||||
| Team | 60 | 120 |
|
||||
| Enterprise | 120 | 240 |
|
||||
|
||||
**Wie es funktioniert:**
|
||||
- Tokens werden mit der Rate `requestsPerMinute` aufgefüllt
|
||||
- Du kannst im Leerlauf bis zu `maxBurst` Tokens ansammeln
|
||||
- Jede Anfrage verbraucht 1 Token
|
||||
- Die Burst-Kapazität ermöglicht die Bewältigung von Verkehrsspitzen
|
||||
|
||||
Informationen zur Ratenbegrenzung sind in den Antwort-Headern enthalten:
|
||||
- `X-RateLimit-Limit`: Anfragen pro Minute (Auffüllrate)
|
||||
- `X-RateLimit-Remaining`: Aktuell verfügbare Tokens
|
||||
- `X-RateLimit-Reset`: ISO-Zeitstempel, wann Tokens als nächstes aufgefüllt werden
|
||||
|
||||
## Beispiel: Abfragen nach neuen Logs
|
||||
|
||||
```javascript
|
||||
let cursor = null;
|
||||
const workspaceId = 'YOUR_WORKSPACE_ID';
|
||||
const startDate = new Date().toISOString();
|
||||
|
||||
async function pollLogs() {
|
||||
const params = new URLSearchParams({
|
||||
workspaceId,
|
||||
startDate,
|
||||
order: 'asc',
|
||||
limit: '100'
|
||||
});
|
||||
|
||||
if (cursor) {
|
||||
params.append('cursor', cursor);
|
||||
}
|
||||
|
||||
const response = await fetch(
|
||||
`https://sim.ai/api/v1/logs?${params}`,
|
||||
{
|
||||
headers: {
|
||||
'x-api-key': 'YOUR_API_KEY'
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
if (response.ok) {
|
||||
const data = await response.json();
|
||||
|
||||
// Process new logs
|
||||
for (const log of data.data) {
|
||||
console.log(`New execution: ${log.executionId}`);
|
||||
}
|
||||
|
||||
// Update cursor for next poll
|
||||
if (data.nextCursor) {
|
||||
cursor = data.nextCursor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Poll every 30 seconds
|
||||
setInterval(pollLogs, 30000);
|
||||
```
|
||||
|
||||
## Beispiel: Verarbeitung von Webhooks
|
||||
|
||||
```javascript
|
||||
import express from 'express';
|
||||
import crypto from 'crypto';
|
||||
|
||||
const app = express();
|
||||
app.use(express.json());
|
||||
|
||||
app.post('/sim-webhook', (req, res) => {
|
||||
// Verify signature
|
||||
const signature = req.headers['sim-signature'];
|
||||
const body = JSON.stringify(req.body);
|
||||
|
||||
if (!verifyWebhookSignature(body, signature, process.env.WEBHOOK_SECRET)) {
|
||||
return res.status(401).send('Invalid signature');
|
||||
}
|
||||
|
||||
// Check timestamp to prevent replay attacks
|
||||
const timestamp = parseInt(req.headers['sim-timestamp']);
|
||||
const fiveMinutesAgo = Date.now() - (5 * 60 * 1000);
|
||||
|
||||
if (timestamp < fiveMinutesAgo) {
|
||||
return res.status(401).send('Timestamp too old');
|
||||
}
|
||||
|
||||
// Process the webhook
|
||||
const event = req.body;
|
||||
|
||||
switch (event.type) {
|
||||
case 'workflow.execution.completed':
|
||||
const { workflowId, executionId, status, cost } = event.data;
|
||||
|
||||
if (status === 'error') {
|
||||
console.error(`Workflow ${workflowId} failed: ${executionId}`);
|
||||
// Handle error...
|
||||
} else {
|
||||
console.log(`Workflow ${workflowId} completed: ${executionId}`);
|
||||
console.log(`Cost: $${cost.total}`);
|
||||
// Process successful execution...
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// Return 200 to acknowledge receipt
|
||||
res.status(200).send('OK');
|
||||
});
|
||||
|
||||
app.listen(3000, () => {
|
||||
console.log('Webhook server listening on port 3000');
|
||||
});
|
||||
```
|
||||
@@ -0,0 +1,107 @@
|
||||
---
|
||||
title: Grundlagen
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Card, Cards } from 'fumadocs-ui/components/card'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Das Verständnis der Workflow-Ausführung in Sim ist entscheidend für die Erstellung effizienter und zuverlässiger Automatisierungen. Die Ausführungs-Engine verwaltet automatisch Abhängigkeiten, Parallelität und Datenfluss, um sicherzustellen, dass Ihre Workflows reibungslos und vorhersehbar ablaufen.
|
||||
|
||||
## Wie Workflows ausgeführt werden
|
||||
|
||||
Die Ausführungs-Engine von Sim verarbeitet Workflows intelligent, indem sie Abhängigkeiten analysiert und Blöcke in der effizientesten Reihenfolge ausführt.
|
||||
|
||||
### Parallele Ausführung als Standard
|
||||
|
||||
Mehrere Blöcke werden gleichzeitig ausgeführt, wenn sie nicht voneinander abhängig sind. Diese parallele Ausführung verbessert die Leistung erheblich, ohne dass eine manuelle Konfiguration erforderlich ist.
|
||||
|
||||
<Image
|
||||
src="/static/execution/concurrency.png"
|
||||
alt="Mehrere Blöcke, die nach dem Start-Block parallel ausgeführt werden"
|
||||
width={800}
|
||||
height={500}
|
||||
/>
|
||||
|
||||
In diesem Beispiel werden sowohl der Kundensupport- als auch der Deep-Researcher-Agentenblock gleichzeitig nach dem Start-Block ausgeführt, was die Effizienz maximiert.
|
||||
|
||||
### Automatische Ausgabekombination
|
||||
|
||||
Wenn Blöcke mehrere Abhängigkeiten haben, wartet die Ausführungs-Engine automatisch auf den Abschluss aller Abhängigkeiten und stellt dann ihre kombinierten Ausgaben dem nächsten Block zur Verfügung. Keine manuelle Kombination erforderlich.
|
||||
|
||||
<Image
|
||||
src="/static/execution/combination.png"
|
||||
alt="Funktionsblock, der automatisch Ausgaben von mehreren vorherigen Blöcken empfängt"
|
||||
width={800}
|
||||
height={500}
|
||||
/>
|
||||
|
||||
Der Funktionsblock erhält Ausgaben von beiden Agentenblöcken, sobald diese abgeschlossen sind, sodass Sie die kombinierten Ergebnisse verarbeiten können.
|
||||
|
||||
### Intelligentes Routing
|
||||
|
||||
Workflows können sich in mehrere Richtungen verzweigen, indem sie Routing-Blöcke verwenden. Die Ausführungs-Engine unterstützt sowohl deterministisches Routing (mit Bedingungsblöcken) als auch KI-gesteuertes Routing (mit Router-Blöcken).
|
||||
|
||||
<Image
|
||||
src="/static/execution/routing.png"
|
||||
alt="Workflow, der sowohl bedingte als auch router-basierte Verzweigungen zeigt"
|
||||
width={800}
|
||||
height={500}
|
||||
/>
|
||||
|
||||
Dieser Workflow zeigt, wie die Ausführung unterschiedlichen Pfaden basierend auf Bedingungen oder KI-Entscheidungen folgen kann, wobei jeder Pfad unabhängig ausgeführt wird.
|
||||
|
||||
## Blocktypen
|
||||
|
||||
Sim bietet verschiedene Arten von Blöcken, die spezifische Zwecke in Ihren Workflows erfüllen:
|
||||
|
||||
<Cards>
|
||||
<Card title="Auslöser" href="/triggers">
|
||||
**Starter-Blöcke** initiieren Workflows und **Webhook-Blöcke** reagieren auf externe Ereignisse. Jeder Workflow benötigt einen Auslöser, um die Ausführung zu beginnen.
|
||||
</Card>
|
||||
|
||||
<Card title="Verarbeitungsblöcke" href="/blocks">
|
||||
**Agent-Blöcke** interagieren mit KI-Modellen, **Funktionsblöcke** führen benutzerdefinierten Code aus und **API-Blöcke** verbinden sich mit externen Diensten. Diese Blöcke transformieren und verarbeiten Ihre Daten.
|
||||
</Card>
|
||||
|
||||
<Card title="Kontrollfluss" href="/blocks">
|
||||
**Router-Blöcke** nutzen KI, um Pfade zu wählen, **Bedingungsblöcke** verzweigen basierend auf Logik und **Schleifen-/Parallelblöcke** handhaben Iterationen und Nebenläufigkeit.
|
||||
</Card>
|
||||
|
||||
<Card title="Ausgabe & Antwort" href="/blocks">
|
||||
**Antwortblöcke** formatieren endgültige Ausgaben für APIs und Chat-Schnittstellen und liefern strukturierte Ergebnisse aus Ihren Workflows.
|
||||
</Card>
|
||||
</Cards>
|
||||
|
||||
Alle Blöcke werden automatisch basierend auf ihren Abhängigkeiten ausgeführt - Sie müssen die Ausführungsreihenfolge oder das Timing nicht manuell verwalten.
|
||||
|
||||
## Ausführungsüberwachung
|
||||
|
||||
Wenn Workflows ausgeführt werden, bietet Sim Echtzeit-Einblick in den Ausführungsprozess:
|
||||
|
||||
- **Live-Block-Status**: Sehen Sie, welche Blöcke gerade ausgeführt werden, abgeschlossen sind oder fehlgeschlagen sind
|
||||
- **Ausführungsprotokolle**: Detaillierte Protokolle erscheinen in Echtzeit und zeigen Eingaben, Ausgaben und eventuelle Fehler
|
||||
- **Leistungskennzahlen**: Verfolgen Sie die Ausführungszeit und Kosten für jeden Block
|
||||
- **Pfadvisualisierung**: Verstehen Sie, welche Ausführungspfade durch Ihren Workflow genommen wurden
|
||||
|
||||
<Callout type="info">
|
||||
Alle Ausführungsdetails werden erfasst und sind auch nach Abschluss der Workflows zur Überprüfung verfügbar, was bei der Fehlerbehebung und Optimierung hilft.
|
||||
</Callout>
|
||||
|
||||
## Wichtige Ausführungsprinzipien
|
||||
|
||||
Das Verständnis dieser Grundprinzipien wird Ihnen helfen, bessere Workflows zu erstellen:
|
||||
|
||||
1. **Abhängigkeitsbasierte Ausführung**: Blöcke werden nur ausgeführt, wenn alle ihre Abhängigkeiten abgeschlossen sind
|
||||
2. **Automatische Parallelisierung**: Unabhängige Blöcke laufen ohne Konfiguration gleichzeitig
|
||||
3. **Intelligenter Datenfluss**: Ausgaben fließen automatisch zu verbundenen Blöcken
|
||||
4. **Fehlerbehandlung**: Fehlgeschlagene Blöcke stoppen ihren Ausführungspfad, beeinflussen aber keine unabhängigen Pfade
|
||||
5. **Zustandspersistenz**: Alle Blockausgaben und Ausführungsdetails werden für die Fehlerbehebung gespeichert
|
||||
|
||||
## Nächste Schritte
|
||||
|
||||
Nachdem Sie die Grundlagen der Ausführung verstanden haben, erkunden Sie:
|
||||
- **[Blocktypen](/blocks)** - Erfahren Sie mehr über spezifische Block-Funktionen
|
||||
- **[Protokollierung](/execution/logging)** - Überwachen Sie Workflow-Ausführungen und beheben Sie Probleme
|
||||
- **[Kostenberechnung](/execution/costs)** - Verstehen und optimieren Sie Workflow-Kosten
|
||||
- **[Trigger](/triggers)** - Richten Sie verschiedene Möglichkeiten ein, Ihre Workflows auszuführen
|
||||
@@ -0,0 +1,384 @@
|
||||
---
|
||||
title: Kostenberechnung
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Sim berechnet automatisch die Kosten für alle Workflow-Ausführungen und bietet transparente Preise basierend auf der Nutzung von KI-Modellen und Ausführungsgebühren. Das Verständnis dieser Kosten hilft Ihnen, Workflows zu optimieren und Ihr Budget effektiv zu verwalten.
|
||||
|
||||
## Wie Kosten berechnet werden
|
||||
|
||||
Jede Workflow-Ausführung umfasst zwei Kostenkomponenten:
|
||||
|
||||
**Basis-Ausführungsgebühr**: 0,001 $ pro Ausführung
|
||||
|
||||
**KI-Modellnutzung**: Variable Kosten basierend auf dem Token-Verbrauch
|
||||
|
||||
```javascript
|
||||
modelCost = (inputTokens × inputPrice + outputTokens × outputPrice) / 1,000,000
|
||||
totalCost = baseExecutionCharge + modelCost
|
||||
```
|
||||
|
||||
<Callout type="info">
|
||||
KI-Modellpreise werden pro Million Token berechnet. Die Berechnung teilt durch 1.000.000, um die tatsächlichen Kosten zu ermitteln. Workflows ohne KI-Blöcke verursachen nur die Basis-Ausführungsgebühr.
|
||||
</Callout>
|
||||
|
||||
## Modellaufschlüsselung in Logs
|
||||
|
||||
Für Workflows mit KI-Blöcken können Sie detaillierte Kosteninformationen in den Logs einsehen:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/logs/logs-cost.png"
|
||||
alt="Modellaufschlüsselung"
|
||||
width={600}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
Die Modellaufschlüsselung zeigt:
|
||||
- **Token-Nutzung**: Eingabe- und Ausgabe-Token-Anzahl für jedes Modell
|
||||
- **Kostenaufschlüsselung**: Einzelkosten pro Modell und Operation
|
||||
- **Modellverteilung**: Welche Modelle verwendet wurden und wie oft
|
||||
- **Gesamtkosten**: Gesamtkosten für die gesamte Workflow-Ausführung
|
||||
|
||||
## Preisoptionen
|
||||
|
||||
<Tabs items={['Hosted Models', 'Bring Your Own API Key']}>
|
||||
<Tab>
|
||||
**Hosted Models** - Sim bietet API-Schlüssel mit einem 1,4-fachen Preismultiplikator für Agent-Blöcke:
|
||||
|
||||
**OpenAI**
|
||||
| Modell | Basispreis (Eingabe/Ausgabe) | Hosted-Preis (Eingabe/Ausgabe) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| GPT-5.1 | $1.25 / $10.00 | $1.75 / $14.00 |
|
||||
| GPT-5 | $1.25 / $10.00 | $1.75 / $14.00 |
|
||||
| GPT-5 Mini | $0.25 / $2.00 | $0.35 / $2.80 |
|
||||
| GPT-5 Nano | $0.05 / $0.40 | $0.07 / $0.56 |
|
||||
| GPT-4o | $2.50 / $10.00 | $3.50 / $14.00 |
|
||||
| GPT-4.1 | $2.00 / $8.00 | $2.80 / $11.20 |
|
||||
| GPT-4.1 Mini | $0.40 / $1.60 | $0.56 / $2.24 |
|
||||
| GPT-4.1 Nano | $0.10 / $0.40 | $0.14 / $0.56 |
|
||||
| o1 | $15.00 / $60.00 | $21.00 / $84.00 |
|
||||
| o3 | $2.00 / $8.00 | $2.80 / $11.20 |
|
||||
| o4 Mini | $1.10 / $4.40 | $1.54 / $6.16 |
|
||||
|
||||
**Anthropic**
|
||||
| Modell | Basispreis (Eingabe/Ausgabe) | Hosted-Preis (Eingabe/Ausgabe) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| Claude Opus 4.5 | $5.00 / $25.00 | $7.00 / $35.00 |
|
||||
| Claude Opus 4.1 | $15.00 / $75.00 | $21.00 / $105.00 |
|
||||
| Claude Sonnet 4.5 | $3.00 / $15.00 | $4.20 / $21.00 |
|
||||
| Claude Sonnet 4.0 | $3.00 / $15.00 | $4.20 / $21.00 |
|
||||
| Claude Haiku 4.5 | $1.00 / $5.00 | $1.40 / $7.00 |
|
||||
|
||||
**Google**
|
||||
| Modell | Basispreis (Eingabe/Ausgabe) | Hosted-Preis (Eingabe/Ausgabe) |
|
||||
|-------|---------------------------|----------------------------|
|
||||
| Gemini 3 Pro Preview | $2.00 / $12.00 | $2.80 / $16.80 |
|
||||
| Gemini 2.5 Pro | $1.25 / $10.00 | $1.75 / $14.00 |
|
||||
| Gemini 2.5 Flash | $0.30 / $2.50 | $0.42 / $3.50 |
|
||||
|
||||
*Der 1,4-fache Multiplikator deckt Infrastruktur- und API-Verwaltungskosten ab.*
|
||||
</Tab>
|
||||
|
||||
<Tab>
|
||||
**Eigene API-Schlüssel** - Nutzen Sie jedes Modell zum Basispreis:
|
||||
|
||||
| Anbieter | Beispielmodelle | Input / Output |
|
||||
|----------|----------------|----------------|
|
||||
| Deepseek | V3, R1 | $0,75 / $1,00 |
|
||||
| xAI | Grok 4 Latest, Grok 3 | $3,00 / $15,00 |
|
||||
| Groq | Llama 4 Scout, Llama 3.3 70B | $0,11 / $0,34 |
|
||||
| Cerebras | Llama 4 Scout, Llama 3.3 70B | $0,11 / $0,34 |
|
||||
| Ollama | Lokale Modelle | Kostenlos |
|
||||
| VLLM | Lokale Modelle | Kostenlos |
|
||||
|
||||
*Bezahlen Sie Anbieter direkt ohne Aufschlag*
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
<Callout type="warning">
|
||||
Die angezeigten Preise entsprechen den Tarifen vom 10. September 2025. Überprüfen Sie die Dokumentation der Anbieter für aktuelle Preise.
|
||||
</Callout>
|
||||
|
||||
## Gehostete Tool-Preise
|
||||
|
||||
Wenn Workflows Tool-Blöcke mit den gehosteten API-Schlüsseln von Sim verwenden, werden die Kosten pro Operation berechnet. Verwenden Sie Ihre eigenen Schlüssel über BYOK, um direkt an die Anbieter zu zahlen.
|
||||
|
||||
<Tabs items={['Firecrawl', 'Exa', 'Serper', 'Perplexity', 'Linkup', 'Parallel AI', 'Jina AI', 'Google Cloud', 'Brandfetch']}>
|
||||
<Tab>
|
||||
**Firecrawl** - Web-Scraping, Crawling, Suche und Extraktion
|
||||
|
||||
| Operation | Cost |
|
||||
|-----------|------|
|
||||
| Scrape | $0.001 per credit used |
|
||||
| Crawl | $0.001 per credit used |
|
||||
| Search | $0.001 per credit used |
|
||||
| Extract | $0.001 per credit used |
|
||||
| Map | $0.001 per credit used |
|
||||
</Tab>
|
||||
|
||||
<Tab>
|
||||
**Exa** - KI-gestützte Suche und Recherche
|
||||
|
||||
| Operation | Cost |
|
||||
|-----------|------|
|
||||
| Search | Dynamic (returned by API) |
|
||||
| Get Contents | Dynamic (returned by API) |
|
||||
| Find Similar Links | Dynamic (returned by API) |
|
||||
| Answer | Dynamic (returned by API) |
|
||||
</Tab>
|
||||
|
||||
<Tab>
|
||||
**Serper** - Google-Such-API
|
||||
|
||||
| Operation | Cost |
|
||||
|-----------|------|
|
||||
| Search (≤10 results) | $0.001 |
|
||||
| Search (>10 results) | $0.002 |
|
||||
</Tab>
|
||||
|
||||
<Tab>
|
||||
**Perplexity** - KI-gestützter Chat und Websuche
|
||||
|
||||
| Operation | Cost |
|
||||
|-----------|------|
|
||||
| Search | $0.005 per request |
|
||||
| Chat | Token-based (varies by model) |
|
||||
</Tab>
|
||||
|
||||
<Tab>
|
||||
**Linkup** - Websuche und Inhaltsabruf
|
||||
|
||||
| Operation | Cost |
|
||||
|-----------|------|
|
||||
| Standard search | ~$0.006 |
|
||||
| Deep search | ~$0.055 |
|
||||
</Tab>
|
||||
|
||||
<Tab>
|
||||
**Parallel AI** - Websuche, Extraktion und tiefgehende Recherche
|
||||
|
||||
| Operation | Cost |
|
||||
|-----------|------|
|
||||
| Search (≤10 results) | $0.005 |
|
||||
| Search (>10 results) | $0.005 + $0.001 per additional result |
|
||||
| Extract | $0.001 per URL |
|
||||
| Deep Research | $0.005–$2.40 (varies by processor tier) |
|
||||
</Tab>
|
||||
|
||||
<Tab>
|
||||
**Jina AI** - Web-Lesen und Suche
|
||||
|
||||
| Operation | Cost |
|
||||
|-----------|------|
|
||||
| Read URL | $0.20 per 1M tokens |
|
||||
| Search | $0.20 per 1M tokens (minimum 10K tokens) |
|
||||
</Tab>
|
||||
|
||||
<Tab>
|
||||
**Google Cloud** - Translate, Maps, PageSpeed und Books APIs
|
||||
|
||||
| Operation | Cost |
|
||||
|-----------|------|
|
||||
| Translate / Detect | $0.00002 per character |
|
||||
| Maps (Geocode, Directions, Distance Matrix, Elevation, Timezone, Reverse Geocode, Geolocate, Validate Address) | $0.005 per request |
|
||||
| Maps (Snap to Roads) | $0.01 per request |
|
||||
| Maps (Place Details) | $0.017 per request |
|
||||
| Maps (Places Search) | $0.032 per request |
|
||||
| PageSpeed | Free |
|
||||
| Books (Search, Details) | Free |
|
||||
</Tab>
|
||||
|
||||
<Tab>
|
||||
**Brandfetch** - Marken-Assets, Logos, Farben und Unternehmensinformationen
|
||||
|
||||
| Operation | Cost |
|
||||
|-----------|------|
|
||||
| Search | Free |
|
||||
| Get Brand | $0.04 per request |
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Bring Your Own Key (BYOK)
|
||||
|
||||
Sie können Ihre eigenen API-Schlüssel für unterstützte Anbieter (OpenAI, Anthropic, Google, Mistral, Fireworks, Firecrawl, Exa, Serper, Linkup, Parallel AI, Perplexity, Jina AI, Google Cloud, Brandfetch) unter **Einstellungen → BYOK** verwenden, um Basispreise zu zahlen. Schlüssel werden verschlüsselt und gelten arbeitsbereichsweit.
|
||||
|
||||
## Strategien zur Kostenoptimierung
|
||||
|
||||
- **Modellauswahl**: Wählen Sie Modelle basierend auf der Aufgabenkomplexität. Einfache Aufgaben können GPT-4.1-nano verwenden, während komplexes Reasoning o1 oder Claude Opus erfordern könnte.
|
||||
- **Prompt Engineering**: Gut strukturierte, prägnante Prompts reduzieren den Token-Verbrauch ohne Qualitätsverlust.
|
||||
- **Lokale Modelle**: Verwenden Sie Ollama oder VLLM für unkritische Aufgaben, um API-Kosten vollständig zu eliminieren.
|
||||
- **Caching und Wiederverwendung**: Speichern Sie häufig verwendete Ergebnisse in Variablen oder Dateien, um wiederholte AI-Modellaufrufe zu vermeiden.
|
||||
- **Batch-Verarbeitung**: Verarbeiten Sie mehrere Elemente in einer einzigen AI-Anfrage, anstatt einzelne Aufrufe zu tätigen.
|
||||
|
||||
## Nutzungsüberwachung
|
||||
|
||||
Überwachen Sie Ihre Nutzung und Abrechnung unter Einstellungen → Abonnement:
|
||||
|
||||
- **Aktuelle Nutzung**: Echtzeit-Nutzung und Kosten für den aktuellen Zeitraum
|
||||
- **Nutzungslimits**: Plan-Limits mit visuellen Fortschrittsindikatoren
|
||||
- **Abrechnungsdetails**: Prognostizierte Gebühren und Mindestverpflichtungen
|
||||
- **Plan-Verwaltung**: Upgrade-Optionen und Abrechnungsverlauf
|
||||
|
||||
### Programmatisches Nutzungs-Tracking
|
||||
|
||||
Sie können Ihre aktuelle Nutzung und Limits programmatisch über die API abfragen:
|
||||
|
||||
**Endpoint:**
|
||||
|
||||
```text
|
||||
GET /api/users/me/usage-limits
|
||||
```
|
||||
|
||||
**Authentifizierung:**
|
||||
- Fügen Sie Ihren API-Schlüssel im `X-API-Key` Header hinzu
|
||||
|
||||
**Beispielanfrage:**
|
||||
|
||||
```bash
|
||||
curl -X GET -H "X-API-Key: YOUR_API_KEY" -H "Content-Type: application/json" https://sim.ai/api/users/me/usage-limits
|
||||
```
|
||||
|
||||
**Beispielantwort:**
|
||||
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"rateLimit": {
|
||||
"sync": {
|
||||
"isLimited": false,
|
||||
"requestsPerMinute": 25,
|
||||
"maxBurst": 50,
|
||||
"remaining": 50,
|
||||
"resetAt": "2025-09-08T22:51:55.999Z"
|
||||
},
|
||||
"async": {
|
||||
"isLimited": false,
|
||||
"requestsPerMinute": 200,
|
||||
"maxBurst": 400,
|
||||
"remaining": 400,
|
||||
"resetAt": "2025-09-08T22:51:56.155Z"
|
||||
},
|
||||
"authType": "api"
|
||||
},
|
||||
"usage": {
|
||||
"currentPeriodCost": 12.34,
|
||||
"limit": 100,
|
||||
"plan": "pro"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Rate-Limit-Felder:**
|
||||
- `requestsPerMinute`: Dauerhaftes Rate-Limit (Tokens werden mit dieser Rate aufgefüllt)
|
||||
- `maxBurst`: Maximale Tokens, die Sie akkumulieren können (Burst-Kapazität)
|
||||
- `remaining`: Aktuell verfügbare Tokens (kann bis zu `maxBurst` betragen)
|
||||
|
||||
**Antwortfelder:**
|
||||
- `currentPeriodCost` spiegelt die Nutzung im aktuellen Abrechnungszeitraum wider
|
||||
- `limit` wird aus individuellen Limits (Free/Pro) oder gepoolten Organisationslimits (Team/Enterprise) abgeleitet
|
||||
- `plan` ist der Plan mit der höchsten Priorität, der Ihrem Benutzer zugeordnet ist
|
||||
|
||||
## Plan-Limits
|
||||
|
||||
Verschiedene Abonnement-Pläne haben unterschiedliche Nutzungslimits:
|
||||
|
||||
| Plan | Monatliches Nutzungslimit | Ratenlimits (pro Minute) |
|
||||
|------|-------------------|-------------------------|
|
||||
| **Free** | 20 $ | 5 sync, 10 async |
|
||||
| **Pro** | 100 $ | 10 sync, 50 async |
|
||||
| **Team** | 500 $ (gemeinsam) | 50 sync, 100 async |
|
||||
| **Enterprise** | Individuell | Individuell |
|
||||
|
||||
## Abrechnungsmodell
|
||||
|
||||
Sim verwendet ein **Basis-Abonnement + Mehrverbrauch**-Abrechnungsmodell:
|
||||
|
||||
### So funktioniert es
|
||||
|
||||
**Pro-Plan (20 $/Monat):**
|
||||
- Monatsabonnement beinhaltet 20 $ Nutzung
|
||||
- Nutzung unter 20 $ → Keine zusätzlichen Gebühren
|
||||
- Nutzung über 20 $ → Mehrverbrauch am Monatsende zahlen
|
||||
- Beispiel: 35 $ Nutzung = 20 $ (Abonnement) + 15 $ (Mehrverbrauch)
|
||||
|
||||
**Team-Plan (40 $/Platz/Monat):**
|
||||
- Gemeinsame Nutzung über alle Teammitglieder
|
||||
- Mehrverbrauch wird aus der gesamten Team-Nutzung berechnet
|
||||
- Organisationsinhaber erhält eine Rechnung
|
||||
|
||||
**Enterprise-Pläne:**
|
||||
- Fester Monatspreis, kein Mehrverbrauch
|
||||
- Individuelle Nutzungslimits gemäß Vereinbarung
|
||||
|
||||
### Schwellenwert-Abrechnung
|
||||
|
||||
Wenn der nicht abgerechnete Mehrverbrauch 50 $ erreicht, rechnet Sim automatisch den gesamten nicht abgerechneten Betrag ab.
|
||||
|
||||
**Beispiel:**
|
||||
- Tag 10: 70 $ Mehrverbrauch → 70 $ sofort abrechnen
|
||||
- Tag 15: Zusätzliche 35 $ Nutzung (105 $ gesamt) → Bereits abgerechnet, keine Aktion
|
||||
- Tag 20: Weitere 50 $ Nutzung (155 $ gesamt, 85 $ nicht abgerechnet) → 85 $ sofort abrechnen
|
||||
|
||||
Dies verteilt große Mehrverbrauchsgebühren über den Monat, anstatt einer großen Rechnung am Periodenende.
|
||||
|
||||
## Best Practices für Kostenmanagement
|
||||
|
||||
1. **Regelmäßig überwachen**: Überprüfen Sie Ihr Nutzungs-Dashboard häufig, um Überraschungen zu vermeiden
|
||||
2. **Budgets festlegen**: Nutzen Sie Plan-Limits als Leitplanken für Ihre Ausgaben
|
||||
3. **Workflows optimieren**: Überprüfen Sie kostenintensive Ausführungen und optimieren Sie Prompts oder Modellauswahl
|
||||
4. **Passende Modelle verwenden**: Passen Sie die Modellkomplexität an die Aufgabenanforderungen an
|
||||
5. **Ähnliche Aufgaben bündeln**: Kombinieren Sie mehrere Anfragen, wenn möglich, um 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
|
||||
- Entdecken Sie die [externe API](/execution/api) für programmatische Kostenüberwachung
|
||||
- Sehen Sie sich [Workflow-Optimierungstechniken](/blocks) an, um Kosten zu reduzieren
|
||||
|
||||
**Pro-Tarif (20 $/Monat):**
|
||||
- Monatliches Abonnement beinhaltet 20 $ Nutzung
|
||||
- Nutzung unter 20 $ → Keine zusätzlichen Gebühren
|
||||
- Nutzung über 20 $ → Mehrverbrauch wird am Monatsende abgerechnet
|
||||
- Beispiel: 35 $ Nutzung = 20 $ (Abonnement) + 15 $ (Mehrverbrauch)
|
||||
|
||||
**Team-Tarif (40 $/Platz/Monat):**
|
||||
- Gemeinsame Nutzung über alle Teammitglieder hinweg
|
||||
- Mehrverbrauch wird aus der gesamten Teamnutzung berechnet
|
||||
- Der Organisationsinhaber erhält eine Rechnung
|
||||
|
||||
**Enterprise-Tarife:**
|
||||
- Fester Monatspreis, keine Mehrverbräuche
|
||||
- Individuelle Nutzungslimits gemäß Vereinbarung
|
||||
|
||||
### Schwellenwertabrechnung
|
||||
|
||||
Wenn der nicht abgerechnete Mehrverbrauch 50 $ erreicht, rechnet Sim automatisch den gesamten nicht abgerechneten Betrag ab.
|
||||
|
||||
**Beispiel:**
|
||||
- Tag 10: 70 $ Mehrverbrauch → 70 $ sofort abrechnen
|
||||
- Tag 15: Weitere 35 $ Nutzung (105 $ gesamt) → Bereits abgerechnet, keine Aktion
|
||||
- Tag 20: Weitere 50 $ Nutzung (155 $ gesamt, 85 $ nicht abgerechnet) → 85 $ sofort abrechnen
|
||||
|
||||
Dies verteilt hohe Mehrverbrauchsgebühren über den Monat hinweg, anstatt einer großen Rechnung am Periodenende.
|
||||
|
||||
## Best Practices für das Kostenmanagement
|
||||
|
||||
1. **Regelmäßig überwachen**: Überprüfen Sie Ihr Nutzungs-Dashboard häufig, um Überraschungen zu vermeiden
|
||||
2. **Budgets festlegen**: Nutzen Sie Tariflimits als Leitplanken für Ihre Ausgaben
|
||||
3. **Workflows optimieren**: Überprüfen Sie kostenintensive Ausführungen und optimieren Sie Prompts oder Modellauswahl
|
||||
4. **Passende Modelle verwenden**: Stimmen Sie die Modellkomplexität auf die Aufgabenanforderungen ab
|
||||
5. **Ähnliche Aufgaben bündeln**: Kombinieren Sie mehrere Anfragen, wenn möglich, 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
|
||||
- Informieren Sie sich über [Workflow-Optimierungstechniken](/blocks), um Kosten zu reduzieren
|
||||
@@ -0,0 +1,172 @@
|
||||
---
|
||||
title: Dateien übergeben
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
|
||||
Sim macht es einfach, mit Dateien in Ihren Workflows zu arbeiten. Blöcke können Dateien empfangen, verarbeiten und nahtlos an andere Blöcke weitergeben.
|
||||
|
||||
## Dateiobjekte
|
||||
|
||||
Wenn Blöcke Dateien ausgeben (wie Gmail-Anhänge, generierte Bilder oder geparste Dokumente), geben sie ein standardisiertes Dateiobjekt zurück:
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "report.pdf",
|
||||
"url": "https://...",
|
||||
"base64": "JVBERi0xLjQK...",
|
||||
"type": "application/pdf",
|
||||
"size": 245678
|
||||
}
|
||||
```
|
||||
|
||||
Sie können auf alle diese Eigenschaften zugreifen, wenn Sie auf Dateien aus vorherigen Blöcken verweisen.
|
||||
|
||||
## Der Datei-Block
|
||||
|
||||
Der **Datei-Block** ist der universelle Einstiegspunkt für Dateien in Ihren Workflows. Er akzeptiert Dateien aus jeder Quelle und gibt standardisierte Dateiobjekte aus, die mit allen Integrationen funktionieren.
|
||||
|
||||
**Eingaben:**
|
||||
- **Hochgeladene Dateien** - Dateien direkt per Drag & Drop oder Auswahl hinzufügen
|
||||
- **Externe URLs** - Jede öffentlich zugängliche Datei-URL
|
||||
- **Dateien von anderen Blöcken** - Dateien von Gmail-Anhängen, Slack-Downloads usw. übergeben
|
||||
|
||||
**Ausgaben:**
|
||||
- Eine Liste von `UserFile`-Objekten mit konsistenter Struktur (`name`, `url`, `base64`, `type`, `size`)
|
||||
- `combinedContent` - Extrahierter Textinhalt aus allen Dateien (für Dokumente)
|
||||
|
||||
**Beispielverwendung:**
|
||||
|
||||
```
|
||||
// Get all files from the File block
|
||||
<file.files>
|
||||
|
||||
// Get the first file
|
||||
<file.files[0]>
|
||||
|
||||
// Get combined text content from parsed documents
|
||||
<file.combinedContent>
|
||||
```
|
||||
|
||||
Der Datei-Block führt automatisch folgende Aktionen aus:
|
||||
- Erkennt Dateitypen aus URLs und Erweiterungen
|
||||
- Extrahiert Text aus PDFs, CSVs und Dokumenten
|
||||
- Generiert Base64-Kodierung für Binärdateien
|
||||
- Erstellt vorsignierte URLs für sicheren Zugriff
|
||||
|
||||
Verwenden Sie den Datei-Block, wenn Sie Dateien aus verschiedenen Quellen normalisieren müssen, bevor Sie sie an andere Blöcke wie Vision, STT oder E-Mail-Integrationen übergeben.
|
||||
|
||||
## Dateien zwischen Blöcken übergeben
|
||||
|
||||
Verweisen Sie auf Dateien aus vorherigen Blöcken über das Tag-Dropdown. Klicken Sie in ein beliebiges Dateieingabefeld und geben Sie `<` ein, um verfügbare Ausgaben anzuzeigen.
|
||||
|
||||
**Häufige Muster:**
|
||||
|
||||
```
|
||||
// Single file from a block
|
||||
<gmail.attachments[0]>
|
||||
|
||||
// Pass the whole file object
|
||||
<file_parser.files[0]>
|
||||
|
||||
// Access specific properties
|
||||
<gmail.attachments[0].name>
|
||||
<gmail.attachments[0].base64>
|
||||
```
|
||||
|
||||
Die meisten Blöcke akzeptieren das vollständige Dateiobjekt und extrahieren automatisch, was sie benötigen. Sie müssen `base64` oder `url` in den meisten Fällen nicht manuell extrahieren.
|
||||
|
||||
## Workflows mit Dateien auslösen
|
||||
|
||||
Wenn Sie einen Workflow über die API aufrufen, der Dateieingaben erwartet, fügen Sie Dateien in Ihre Anfrage ein:
|
||||
|
||||
<Tabs items={['Base64', 'URL']}>
|
||||
<Tab value="Base64">
|
||||
|
||||
```bash
|
||||
curl -X POST "https://sim.ai/api/workflows/YOUR_WORKFLOW_ID/execute" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "x-api-key: YOUR_API_KEY" \
|
||||
-d '{
|
||||
"document": {
|
||||
"name": "report.pdf",
|
||||
"base64": "JVBERi0xLjQK...",
|
||||
"type": "application/pdf"
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab value="URL">
|
||||
|
||||
```bash
|
||||
curl -X POST "https://sim.ai/api/workflows/YOUR_WORKFLOW_ID/execute" \
|
||||
-H "Content-Type: application/json" \
|
||||
-H "x-api-key: YOUR_API_KEY" \
|
||||
-d '{
|
||||
"document": {
|
||||
"name": "report.pdf",
|
||||
"url": "https://example.com/report.pdf",
|
||||
"type": "application/pdf"
|
||||
}
|
||||
}'
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
Der Start-Block des Workflows sollte ein Eingabefeld haben, das für den Empfang des Dateiparameters konfiguriert ist.
|
||||
|
||||
## Dateien in API-Antworten empfangen
|
||||
|
||||
Wenn ein Workflow Dateien ausgibt, sind diese in der Antwort enthalten:
|
||||
|
||||
```json
|
||||
{
|
||||
"success": true,
|
||||
"output": {
|
||||
"generatedFile": {
|
||||
"name": "output.png",
|
||||
"url": "https://...",
|
||||
"base64": "iVBORw0KGgo...",
|
||||
"type": "image/png",
|
||||
"size": 34567
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Verwenden Sie `url` für direkte Downloads oder `base64` für Inline-Verarbeitung.
|
||||
|
||||
## Blöcke, die mit Dateien arbeiten
|
||||
|
||||
**Dateieingaben:**
|
||||
- **File** - Dokumente, Bilder und Textdateien parsen
|
||||
- **Vision** - Bilder mit KI-Modellen analysieren
|
||||
- **Mistral Parser** - Text aus PDFs extrahieren
|
||||
|
||||
**Dateiausgaben:**
|
||||
- **Gmail** - E-Mail-Anhänge
|
||||
- **Slack** - Heruntergeladene Dateien
|
||||
- **TTS** - Generierte Audiodateien
|
||||
- **Video Generator** - Generierte Videos
|
||||
- **Image Generator** - Generierte Bilder
|
||||
|
||||
**Dateispeicherung:**
|
||||
- **Supabase** - Upload/Download aus dem Speicher
|
||||
- **S3** - AWS S3-Operationen
|
||||
- **Google Drive** - Drive-Dateioperationen
|
||||
- **Dropbox** - Dropbox-Dateioperationen
|
||||
|
||||
<Callout type="info">
|
||||
Dateien sind automatisch für nachgelagerte Blöcke verfügbar. Die Ausführungs-Engine übernimmt die gesamte Dateiübertragung und Formatkonvertierung.
|
||||
</Callout>
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Dateiobjekte direkt verwenden** - Übergeben Sie das vollständige Dateiobjekt, anstatt einzelne Eigenschaften zu extrahieren. Blöcke übernehmen die Konvertierung automatisch.
|
||||
|
||||
2. **Dateitypen prüfen** - Stellen Sie sicher, dass der Dateityp mit dem übereinstimmt, was der empfangende Block erwartet. Der Vision-Block benötigt Bilder, der File-Block verarbeitet Dokumente.
|
||||
|
||||
3. **Dateigröße beachten** – Große Dateien erhöhen die Ausführungszeit. Bei sehr großen Dateien sollten Sie Storage-Blöcke (S3, Supabase) für die Zwischenspeicherung verwenden.
|
||||
@@ -0,0 +1,115 @@
|
||||
---
|
||||
title: Übersicht
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Card, Cards } from 'fumadocs-ui/components/card'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Die Ausführungs-Engine von Sim bringt Ihre Workflows zum Leben, indem sie Blöcke in der richtigen Reihenfolge verarbeitet, den Datenfluss verwaltet und Fehler elegant behandelt, sodass Sie genau verstehen können, wie Workflows in Sim ausgeführt werden.
|
||||
|
||||
<Callout type="info">
|
||||
Jede Workflow-Ausführung folgt einem deterministischen Pfad, der auf Ihren Blockverbindungen und Ihrer Logik basiert, um vorhersehbare und zuverlässige Ergebnisse zu gewährleisten.
|
||||
</Callout>
|
||||
|
||||
## Dokumentationsübersicht
|
||||
|
||||
<Cards>
|
||||
<Card title="Grundlagen der Ausführung" href="/execution/basics">
|
||||
Erfahren Sie mehr über den grundlegenden Ausführungsablauf, Blocktypen und wie Daten durch Ihren
|
||||
Workflow fließen
|
||||
</Card>
|
||||
|
||||
<Card title="Protokollierung" href="/execution/logging">
|
||||
Überwachen Sie Workflow-Ausführungen mit umfassender Protokollierung und Echtzeit-Sichtbarkeit
|
||||
</Card>
|
||||
|
||||
<Card title="Kostenberechnung" href="/execution/costs">
|
||||
Verstehen Sie, wie die Kosten für Workflow-Ausführungen berechnet und optimiert werden
|
||||
</Card>
|
||||
|
||||
<Card title="Externe API" href="/execution/api">
|
||||
Greifen Sie programmgesteuert über REST-API auf Ausführungsprotokolle zu und richten Sie Webhooks ein
|
||||
</Card>
|
||||
</Cards>
|
||||
|
||||
## Schlüsselkonzepte
|
||||
|
||||
### Topologische Ausführung
|
||||
Blöcke werden in Abhängigkeitsreihenfolge ausgeführt, ähnlich wie eine Tabellenkalkulation Zellen neu berechnet. Die Ausführungs-Engine bestimmt automatisch, welche Blöcke basierend auf abgeschlossenen Abhängigkeiten ausgeführt werden können.
|
||||
|
||||
### Pfadverfolgung
|
||||
Die Engine verfolgt aktiv Ausführungspfade durch Ihren Workflow. Router- und Bedingungsblöcke aktualisieren diese Pfade dynamisch und stellen sicher, dass nur relevante Blöcke ausgeführt werden.
|
||||
|
||||
### Schichtbasierte Verarbeitung
|
||||
Anstatt Blöcke einzeln auszuführen, identifiziert die Engine Schichten von Blöcken, die parallel ausgeführt werden können, und optimiert so die Leistung für komplexe Workflows.
|
||||
|
||||
### Ausführungskontext
|
||||
Jeder Workflow behält während der Ausführung einen umfangreichen Kontext bei, der Folgendes enthält:
|
||||
- Block-Ausgaben und -Zustände
|
||||
- Aktive Ausführungspfade
|
||||
- Verfolgung von Schleifen- und Paralleliterationen
|
||||
- Umgebungsvariablen
|
||||
- Routing-Entscheidungen
|
||||
|
||||
## Deployment-Snapshots
|
||||
|
||||
Alle öffentlichen Einstiegspunkte – API, Chat, Zeitplan, Webhook und manuelle Ausführungen – führen den aktiven Deployment-Snapshot des Workflows aus. Veröffentliche ein neues Deployment, wann immer du die Arbeitsfläche änderst, damit jeder Auslöser die aktualisierte Version verwendet.
|
||||
|
||||
<div className='flex justify-center my-6'>
|
||||
<Image
|
||||
src='/static/execution/deployment-versions.png'
|
||||
alt='Tabelle mit Deployment-Versionen'
|
||||
width={500}
|
||||
height={280}
|
||||
className='rounded-xl border border-border shadow-sm'
|
||||
/>
|
||||
</div>
|
||||
|
||||
Das Deploy-Modal behält eine vollständige Versionshistorie bei – untersuche jeden Snapshot, vergleiche ihn mit deinem Entwurf und führe Upgrades oder Rollbacks mit einem Klick durch, wenn du eine frühere Version wiederherstellen musst.
|
||||
|
||||
## Programmatische Ausführung
|
||||
|
||||
Führe Workflows aus deinen Anwendungen heraus mit unseren offiziellen SDKs aus:
|
||||
|
||||
```bash
|
||||
# TypeScript/JavaScript
|
||||
npm install simstudio-ts-sdk
|
||||
|
||||
# Python
|
||||
pip install simstudio-sdk
|
||||
```
|
||||
|
||||
```typescript
|
||||
// TypeScript Example
|
||||
import { SimStudioClient } from 'simstudio-ts-sdk';
|
||||
|
||||
const client = new SimStudioClient({
|
||||
apiKey: 'your-api-key'
|
||||
});
|
||||
|
||||
const result = await client.executeWorkflow('workflow-id', {
|
||||
input: { message: 'Hello' }
|
||||
});
|
||||
```
|
||||
|
||||
## Best Practices
|
||||
|
||||
### Design für Zuverlässigkeit
|
||||
- Behandle Fehler elegant mit geeigneten Fallback-Pfaden
|
||||
- Verwende Umgebungsvariablen für sensible Daten
|
||||
- Füge Logging zu Funktionsblöcken für Debugging hinzu
|
||||
|
||||
### Optimiere Performance
|
||||
- Minimiere externe API-Aufrufe wo möglich
|
||||
- Nutze parallele Ausführung für unabhängige Operationen
|
||||
- Cache Ergebnisse mit Memory-Blöcken wenn angemessen
|
||||
|
||||
### Überwache Ausführungen
|
||||
- Überprüfe Logs regelmäßig, um Leistungsmuster zu verstehen
|
||||
- Verfolge Kosten für KI-Modellnutzung
|
||||
- Verwende Workflow-Snapshots zur Fehlerbehebung
|
||||
|
||||
## Was kommt als nächstes?
|
||||
|
||||
Beginne mit [Ausführungsgrundlagen](/execution/basics), um zu verstehen, wie Workflows laufen, und erkunde dann [Logging](/execution/logging), um deine Ausführungen zu überwachen, sowie [Kostenberechnung](/execution/costs), um deine Ausgaben zu optimieren.
|
||||
@@ -0,0 +1,150 @@
|
||||
---
|
||||
title: Protokollierung
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Sim bietet umfassende Protokollierung für alle Workflow-Ausführungen und gibt Ihnen vollständige Transparenz darüber, wie Ihre Workflows laufen, welche Daten durch sie fließen und wo möglicherweise Probleme auftreten.
|
||||
|
||||
## Protokollierungssystem
|
||||
|
||||
Sim bietet zwei komplementäre Protokollierungsschnittstellen, die verschiedenen Workflows und Anwendungsfällen entsprechen:
|
||||
|
||||
### Echtzeit-Konsole
|
||||
|
||||
Während der manuellen oder Chat-Workflow-Ausführung erscheinen Protokolle in Echtzeit im Konsolen-Panel auf der rechten Seite des Workflow-Editors:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/logs/console.png"
|
||||
alt="Echtzeit-Konsolen-Panel"
|
||||
width={400}
|
||||
height={300}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
Die Konsole zeigt:
|
||||
- Fortschritt der Blockausführung mit Hervorhebung des aktiven Blocks
|
||||
- Echtzeit-Ausgaben nach Abschluss der Blöcke
|
||||
- Ausführungszeit für jeden Block
|
||||
- Erfolgs-/Fehlerstatusanzeigen
|
||||
|
||||
### Protokollseite
|
||||
|
||||
Alle Workflow-Ausführungen – ob manuell ausgelöst, über API, Chat, Zeitplan oder Webhook – werden auf der dedizierten Protokollseite protokolliert:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/logs/logs.png"
|
||||
alt="Protokollseite"
|
||||
width={600}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
Die Protokollseite bietet:
|
||||
- Umfassende Filterung nach Zeitraum, Status, Auslösertyp, Ordner und Workflow
|
||||
- Suchfunktion über alle Protokolle
|
||||
- Live-Modus für Echtzeit-Updates
|
||||
- 7-tägige Protokollaufbewahrung (erweiterbar für längere Aufbewahrung)
|
||||
|
||||
## Protokolldetails-Seitenleiste
|
||||
|
||||
Durch Klicken auf einen Protokolleintrag öffnet sich eine detaillierte Seitenleistenansicht:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/logs/logs-sidebar.png"
|
||||
alt="Protokoll-Seitenleiste mit Details"
|
||||
width={600}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
### Block-Eingabe/Ausgabe
|
||||
|
||||
Sehen Sie den vollständigen Datenfluss für jeden Block mit Tabs zum Umschalten zwischen:
|
||||
|
||||
<Tabs items={['Output', 'Input']}>
|
||||
<Tab>
|
||||
**Output-Tab** zeigt das Ausführungsergebnis des Blocks:
|
||||
- Strukturierte Daten mit JSON-Formatierung
|
||||
- Markdown-Rendering für KI-generierte Inhalte
|
||||
- Kopierschaltfläche für einfache Datenextraktion
|
||||
</Tab>
|
||||
|
||||
<Tab>
|
||||
**Input-Tab** zeigt, was an den Block übergeben wurde:
|
||||
- Aufgelöste Variablenwerte
|
||||
- Referenzierte Ausgaben anderer Blöcke
|
||||
- Verwendete Umgebungsvariablen
|
||||
- API-Schlüssel werden aus Sicherheitsgründen automatisch unkenntlich gemacht
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### Ausführungszeitlinie
|
||||
|
||||
Für Workflow-übergreifende Protokolle, sehen Sie detaillierte Ausführungsmetriken:
|
||||
- Start- und Endzeitstempel
|
||||
- Gesamtdauer des Workflows
|
||||
- Ausführungszeiten einzelner Blöcke
|
||||
- Identifikation von Leistungsengpässen
|
||||
|
||||
## Workflow-Snapshots
|
||||
|
||||
Für jede protokollierte Ausführung klicken Sie auf "Snapshot anzeigen", um den exakten Workflow-Zustand zum Ausführungszeitpunkt zu sehen:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/logs/logs-frozen-canvas.png"
|
||||
alt="Workflow-Snapshot"
|
||||
width={600}
|
||||
height={400}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
Der Snapshot bietet:
|
||||
- Eingefrorene Arbeitsfläche, die die Workflow-Struktur zeigt
|
||||
- Block-Zustände und Verbindungen, wie sie während der Ausführung waren
|
||||
- Klicken Sie auf einen beliebigen Block, um dessen Ein- und Ausgaben zu sehen
|
||||
- Nützlich zum Debuggen von Workflows, die seitdem geändert wurden
|
||||
|
||||
<Callout type="info">
|
||||
Workflow-Snapshots sind nur für Ausführungen verfügbar, die nach der Einführung des erweiterten Protokollierungssystems durchgeführt wurden. Ältere migrierte Protokolle zeigen die Meldung "Protokollierter Zustand nicht gefunden".
|
||||
</Callout>
|
||||
|
||||
## Protokollaufbewahrung
|
||||
|
||||
- **Kostenloser Plan**: 7 Tage Protokollaufbewahrung
|
||||
- **Pro-Plan**: 30 Tage Protokollaufbewahrung
|
||||
- **Team-Plan**: 90 Tage Protokollaufbewahrung
|
||||
- **Enterprise-Plan**: Individuelle Aufbewahrungszeiträume verfügbar
|
||||
|
||||
## Best Practices
|
||||
|
||||
### Für die Entwicklung
|
||||
- Verwenden Sie die Echtzeit-Konsole für sofortiges Feedback während des Testens
|
||||
- Überprüfen Sie Block-Ein- und Ausgaben, um den Datenfluss zu verifizieren
|
||||
- Nutzen Sie Workflow-Snapshots, um funktionierende mit fehlerhaften Versionen zu vergleichen
|
||||
|
||||
### Für die Produktion
|
||||
- Überwachen Sie die Protokollseite regelmäßig auf Fehler oder Leistungsprobleme
|
||||
- Richten Sie Filter ein, um sich auf bestimmte Workflows oder Zeiträume zu konzentrieren
|
||||
- Verwenden Sie den Live-Modus während kritischer Bereitstellungen, um Ausführungen in Echtzeit zu beobachten
|
||||
|
||||
### Für das Debugging
|
||||
- Überprüfen Sie immer die Ausführungszeitlinie, um langsame Blöcke zu identifizieren
|
||||
- Vergleichen Sie Eingaben zwischen funktionierenden und fehlerhaften Ausführungen
|
||||
- Verwenden Sie Workflow-Snapshots, um den genauen Zustand zu sehen, wenn Probleme aufgetreten sind
|
||||
|
||||
## Nächste Schritte
|
||||
|
||||
- Erfahren Sie mehr über die [Kostenberechnung](/execution/costs), um die Preisgestaltung von Workflows zu verstehen
|
||||
- Erkunden Sie die [externe API](/execution/api) für programmatischen Zugriff auf Protokolle
|
||||
- Richten Sie [Benachrichtigungen](/execution/api#notifications) für Echtzeit-Warnungen per Webhook, E-Mail oder Slack ein
|
||||
@@ -0,0 +1,196 @@
|
||||
---
|
||||
title: Erste Schritte
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Card, Cards } from 'fumadocs-ui/components/card'
|
||||
import { File, Files, Folder } from 'fumadocs-ui/components/files'
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import {
|
||||
AgentIcon,
|
||||
ApiIcon,
|
||||
ChartBarIcon,
|
||||
CodeIcon,
|
||||
ConditionalIcon,
|
||||
ConnectIcon,
|
||||
ExaAIIcon,
|
||||
FirecrawlIcon,
|
||||
GmailIcon,
|
||||
NotionIcon,
|
||||
PerplexityIcon,
|
||||
SlackIcon,
|
||||
} from '@/components/icons'
|
||||
import { Video } from '@/components/ui/video'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Erstelle deinen ersten KI-Workflow in 10 Minuten. In diesem Tutorial wirst du einen Personenrecherche-Agenten erstellen, der fortschrittliche LLM-gestützte Suchwerkzeuge nutzt, um Informationen über Personen zu extrahieren und zu strukturieren.
|
||||
|
||||
<Callout type="info">
|
||||
Dieses Tutorial behandelt die wesentlichen Konzepte zum Erstellen von Workflows in Sim. Geschätzte Bearbeitungszeit: 10 Minuten.
|
||||
</Callout>
|
||||
|
||||
## Was du erstellen wirst
|
||||
|
||||
Einen Personenrecherche-Agenten, der:
|
||||
1. Benutzereingaben über eine Chat-Schnittstelle akzeptiert
|
||||
2. Das Web mit KI-gestützten Tools durchsucht (Exa und Linkup)
|
||||
3. Informationen über Personen extrahiert und strukturiert
|
||||
4. Formatierte JSON-Daten mit Standort, Beruf und Ausbildung zurückgibt
|
||||
|
||||
<Image
|
||||
src="/static/getting-started/started-1.png"
|
||||
alt="Beispiel für erste Schritte"
|
||||
width={800}
|
||||
height={500}
|
||||
/>
|
||||
|
||||
## Schritt-für-Schritt-Anleitung
|
||||
|
||||
<Steps>
|
||||
<Step title="Workflow erstellen und einen KI-Agenten hinzufügen">
|
||||
Klicke im Dashboard auf **Neuer Workflow** und benenne ihn "Getting Started".
|
||||
|
||||
Jeder neue Workflow enthält standardmäßig einen **Start-Block** – dies ist der Eingangspunkt, der Benutzereingaben empfängt. Da wir diesen Workflow über Chat auslösen werden, ist keine Konfiguration für den Start-Block erforderlich.
|
||||
|
||||
Ziehe einen **Agenten-Block** aus dem linken Bereich auf die Arbeitsfläche und konfiguriere ihn:
|
||||
- **Modell**: Wähle "OpenAI GPT-4o"
|
||||
- **System-Prompt**: "Du bist ein Personenrecherche-Agent. Wenn dir ein Name einer Person gegeben wird, nutze deine verfügbaren Suchwerkzeuge, um umfassende Informationen über sie zu finden, einschließlich ihres Standorts, Berufs, Bildungshintergrunds und anderer relevanter Details."
|
||||
- **Benutzer-Prompt**: Ziehe die Verbindung vom Ausgabefeld des Start-Blocks in dieses Feld, um `<start.input>` mit dem Benutzer-Prompt zu verbinden
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="getting-started/started-2.mp4" width={700} height={450} />
|
||||
</div>
|
||||
</Step>
|
||||
|
||||
<Step title="Suchwerkzeuge zum Agenten hinzufügen">
|
||||
Erweitere deinen Agenten mit Websuche-Funktionen. Klicke auf den Agenten-Block, um ihn auszuwählen.
|
||||
|
||||
Im Bereich **Tools**:
|
||||
- Klicke auf **Tool hinzufügen**
|
||||
- Wähle **Exa** und **Linkup** aus den verfügbaren Tools
|
||||
- Gib deine API-Schlüssel für beide Tools ein, um Websuche und Datenzugriff zu ermöglichen
|
||||
|
||||
<div className="mx-auto w-3/5 overflow-hidden rounded-lg">
|
||||
<Video src="getting-started/started-3.mp4" width={700} height={450} />
|
||||
</div>
|
||||
</Step>
|
||||
|
||||
<Step title="Workflow testen">
|
||||
Teste deinen Workflow mit dem **Chat-Panel** auf der rechten Seite des Bildschirms.
|
||||
|
||||
Im Chat-Panel:
|
||||
- Klicke auf das Dropdown-Menü und wähle `agent1.content`, um die Ausgabe des Agenten anzuzeigen
|
||||
- Gib eine Testnachricht ein: "John ist ein Softwareentwickler aus San Francisco, der Informatik an der Stanford University studiert hat."
|
||||
- Klicke auf **Senden**, um den Workflow auszuführen
|
||||
|
||||
Der Agent wird die Person analysieren und strukturierte Informationen zurückgeben.
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="getting-started/started-4.mp4" width={700} height={450} />
|
||||
</div>
|
||||
</Step>
|
||||
|
||||
<Step title="Strukturierte Ausgabe konfigurieren">
|
||||
Konfiguriere deinen Agenten, um strukturierte JSON-Daten zurückzugeben. Klicke auf den Agenten-Block, um ihn auszuwählen.
|
||||
|
||||
Im Bereich **Antwortformat**:
|
||||
- Klicke auf das **Zauberstab-Symbol** (✨) neben dem Schema-Feld
|
||||
- Gib den Prompt ein: "Erstelle ein Schema namens person, das Standort, Beruf und Ausbildung enthält"
|
||||
- Die KI wird automatisch das JSON-Schema generieren
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="getting-started/started-5.mp4" width={700} height={450} />
|
||||
</div>
|
||||
</Step>
|
||||
|
||||
<Step title="Mit strukturierter Ausgabe testen">
|
||||
Kehre zum **Chat-Panel** zurück, um das strukturierte Antwortformat zu testen.
|
||||
|
||||
Mit dem konfigurierten Antwortformat sind jetzt neue Ausgabeoptionen verfügbar:
|
||||
- Klicke auf das Dropdown-Menü und wähle die Option für strukturierte Ausgabe (das Schema, das du gerade erstellt hast)
|
||||
- Gib eine Testnachricht ein: "Sarah ist eine Marketing-Managerin aus New York mit einem MBA von der Harvard Business School."
|
||||
- Klicke auf **Senden**, um den Workflow auszuführen
|
||||
|
||||
Der Agent wird nun strukturierte JSON-Ausgabe zurückgeben, wobei die Informationen der Person in die Felder Standort, Beruf und Ausbildung organisiert sind.
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="getting-started/started-6.mp4" width={700} height={450} />
|
||||
</div>
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Was du erstellt hast
|
||||
|
||||
Du hast erfolgreich einen KI-Workflow erstellt, der:
|
||||
- ✅ Benutzereingaben über eine Chat-Schnittstelle akzeptiert
|
||||
- ✅ Unstrukturierten Text mit KI verarbeitet
|
||||
- ✅ Externe Suchwerkzeuge integriert (Exa und Linkup)
|
||||
- ✅ Strukturierte JSON-Daten mit KI-generierten Schemas zurückgibt
|
||||
- ✅ Echtzeit-Tests und Iteration demonstriert
|
||||
- ✅ Die Leistungsfähigkeit der visuellen, codefreien Entwicklung zeigt
|
||||
|
||||
## Wichtige Konzepte, die du gelernt hast
|
||||
|
||||
### Verwendete Block-Typen
|
||||
|
||||
<Files>
|
||||
<File
|
||||
name="Start Block"
|
||||
icon={<ConnectIcon className="h-4 w-4" />}
|
||||
annotation="Einstiegspunkt für Benutzereingaben (automatisch enthalten)"
|
||||
/>
|
||||
<File
|
||||
name="Agent Block"
|
||||
icon={<AgentIcon className="h-4 w-4" />}
|
||||
annotation="KI-Modell für Textverarbeitung und -analyse"
|
||||
/>
|
||||
</Files>
|
||||
|
||||
### Grundlegende Workflow-Konzepte
|
||||
|
||||
**Datenfluss**
|
||||
Verbinde Blöcke durch Ziehen von Verbindungen, um Daten zwischen Workflow-Schritten zu übertragen
|
||||
|
||||
**Chat-Schnittstelle**
|
||||
Teste Workflows in Echtzeit mit dem Chat-Panel und wähle verschiedene Ausgabeoptionen
|
||||
|
||||
**Tool-Integration**
|
||||
Erweitere die Fähigkeiten des Agenten durch Integration externer Dienste wie Exa und Linkup
|
||||
|
||||
**Variablenreferenzen**
|
||||
Greife auf Block-Ausgaben mit der `<blockName.output>` Syntax zu
|
||||
|
||||
**Strukturierte Ausgabe**
|
||||
Definiere JSON-Schemas, um konsistente, formatierte Antworten von der KI zu gewährleisten
|
||||
|
||||
**KI-generierte Schemas**
|
||||
Verwende den Zauberstab (✨), um Schemas aus natürlichsprachigen Eingabeaufforderungen zu generieren
|
||||
|
||||
**Iterative Entwicklung**
|
||||
Erstelle, teste und verfeinere Workflows schnell mit sofortigem Feedback
|
||||
|
||||
## Nächste Schritte
|
||||
|
||||
<Cards>
|
||||
<Card title="Workflow-Blöcke erkunden" href="/blocks">
|
||||
Entdecke API-, Funktions-, Bedingungs- und andere Workflow-Blöcke
|
||||
</Card>
|
||||
<Card title="Integrationen durchsuchen" href="/tools">
|
||||
Verbinde über 80 Dienste einschließlich Gmail, Slack, Notion und mehr
|
||||
</Card>
|
||||
<Card title="Benutzerdefinierte Logik hinzufügen" href="/blocks/function">
|
||||
Schreibe benutzerdefinierte Funktionen für fortgeschrittene Datenverarbeitung
|
||||
</Card>
|
||||
<Card title="Deinen Workflow bereitstellen" href="/execution">
|
||||
Mache deinen Workflow über REST API oder Webhooks zugänglich
|
||||
</Card>
|
||||
</Cards>
|
||||
|
||||
## Ressourcen
|
||||
|
||||
**Brauchst du detaillierte Erklärungen?** Besuche die [Blocks-Dokumentation](/blocks) für umfassende Anleitungen zu jeder Komponente.
|
||||
|
||||
**Suchst du nach Integrationen?** Erkunde die [Tools-Dokumentation](/tools), um alle 80+ verfügbaren Integrationen zu sehen.
|
||||
|
||||
**Bereit für den Livebetrieb?** Erfahre mehr über [Ausführung und Bereitstellung](/execution), um deine Workflows produktionsreif zu machen.
|
||||
@@ -0,0 +1,57 @@
|
||||
---
|
||||
title: Dokumentation
|
||||
---
|
||||
|
||||
import { Card, Cards } from 'fumadocs-ui/components/card'
|
||||
|
||||
# Sim Dokumentation
|
||||
|
||||
Willkommen bei Sim, einem visuellen Workflow-Builder für KI-Anwendungen. Erstellen Sie leistungsstarke KI-Agenten, Automatisierungs-Workflows und Datenverarbeitungs-Pipelines, indem Sie Blöcke auf einer Leinwand verbinden.
|
||||
|
||||
## Schnellstart
|
||||
|
||||
<Cards>
|
||||
<Card title="Einführung" href="/introduction">
|
||||
Erfahren Sie, was Sie mit Sim erstellen können
|
||||
</Card>
|
||||
<Card title="Erste Schritte" href="/getting-started">
|
||||
Erstellen Sie Ihren ersten Workflow in 10 Minuten
|
||||
</Card>
|
||||
<Card title="Workflow-Blöcke" href="/blocks">
|
||||
Lernen Sie die Bausteine kennen
|
||||
</Card>
|
||||
<Card title="Tools & Integrationen" href="/tools">
|
||||
Entdecken Sie über 80 integrierte Schnittstellen
|
||||
</Card>
|
||||
</Cards>
|
||||
|
||||
## Kernkonzepte
|
||||
|
||||
<Cards>
|
||||
<Card title="Verbindungen" href="/connections">
|
||||
Verstehen Sie, wie Daten zwischen Blöcken fließen
|
||||
</Card>
|
||||
<Card title="Variablen" href="/variables">
|
||||
Arbeiten Sie mit Workflow- und Umgebungsvariablen
|
||||
</Card>
|
||||
<Card title="Ausführung" href="/execution">
|
||||
Überwachen Sie Workflow-Ausführungen und verwalten Sie Kosten
|
||||
</Card>
|
||||
<Card title="Trigger" href="/triggers">
|
||||
Starten Sie Workflows über API, Webhooks oder Zeitpläne
|
||||
</Card>
|
||||
</Cards>
|
||||
|
||||
## Erweiterte Funktionen
|
||||
|
||||
<Cards>
|
||||
<Card title="Team-Management" href="/permissions/roles-and-permissions">
|
||||
Workspace-Rollen und Berechtigungen einrichten
|
||||
</Card>
|
||||
<Card title="MCP-Integration" href="/mcp">
|
||||
Externe Dienste mit dem Model Context Protocol verbinden
|
||||
</Card>
|
||||
<Card title="SDKs" href="/api-reference">
|
||||
Sim in Ihre Anwendungen integrieren
|
||||
</Card>
|
||||
</Cards>
|
||||
@@ -0,0 +1,117 @@
|
||||
---
|
||||
title: Einführung
|
||||
---
|
||||
|
||||
import { Card, Cards } from 'fumadocs-ui/components/card'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Image } from '@/components/ui/image'
|
||||
import { Video } from '@/components/ui/video'
|
||||
|
||||
Sim ist ein Open-Source-Tool zur visuellen Workflow-Erstellung für die Entwicklung und Bereitstellung von KI-Agenten-Workflows. Entwerfen Sie intelligente Automatisierungssysteme mit einer No-Code-Oberfläche – verbinden Sie KI-Modelle, Datenbanken, APIs und Business-Tools über eine intuitive Drag-and-Drop-Oberfläche. Ob Sie Chatbots entwickeln, Geschäftsprozesse automatisieren oder komplexe Datenpipelines orchestrieren – Sim bietet die Werkzeuge, um Ihre KI-Workflows zum Leben zu erwecken.
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/introduction.png"
|
||||
alt="Sim visuelle Workflow-Leinwand"
|
||||
width={700}
|
||||
height={450}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
## Was Sie erstellen können
|
||||
|
||||
**KI-Assistenten & Chatbots**
|
||||
Entwickeln Sie intelligente Konversationsagenten, die sich in Ihre Tools und Daten integrieren lassen. Ermöglichen Sie Funktionen wie Websuche, Kalenderverwaltung, E-Mail-Automatisierung und nahtlose Interaktion mit Geschäftssystemen.
|
||||
|
||||
**Automatisierung von Geschäftsprozessen**
|
||||
Beseitigen Sie manuelle Aufgaben in Ihrer gesamten Organisation. Automatisieren Sie Dateneingaben, erstellen Sie Berichte, beantworten Sie Kundenanfragen und optimieren Sie Workflows zur Inhaltserstellung.
|
||||
|
||||
**Datenverarbeitung & -analyse**
|
||||
Verwandeln Sie Rohdaten in umsetzbare Erkenntnisse. Extrahieren Sie Informationen aus Dokumenten, führen Sie Datensatzanalysen durch, erstellen Sie automatisierte Berichte und synchronisieren Sie Daten über verschiedene Plattformen hinweg.
|
||||
|
||||
**API-Integrations-Workflows**
|
||||
Orchestieren Sie komplexe Interaktionen zwischen mehreren Diensten. Erstellen Sie einheitliche API-Endpunkte, implementieren Sie anspruchsvolle Geschäftslogik und bauen Sie ereignisgesteuerte Automatisierungssysteme.
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
|
||||
<Video src="introduction/chat-workflow.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
## Wie es funktioniert
|
||||
|
||||
**Visueller Workflow-Editor**
|
||||
Entwerfen Sie Workflows mit einer intuitiven Drag-and-Drop-Oberfläche. Verbinden Sie KI-Modelle, Datenbanken, APIs und Dienste von Drittanbietern über eine visuelle No-Code-Schnittstelle, die komplexe Automatisierungslogik leicht verständlich und wartbar macht.
|
||||
|
||||
**Modulares Blocksystem**
|
||||
Bauen Sie mit spezialisierten Komponenten: Verarbeitungsblöcke (KI-Agenten, API-Aufrufe, benutzerdefinierte Funktionen), Logikblöcke (bedingte Verzweigungen, Schleifen, Router) und Ausgabeblöcke (Antworten, Evaluatoren). Jeder Block übernimmt eine bestimmte Aufgabe in Ihrem Workflow.
|
||||
|
||||
**Flexible Ausführungsauslöser**
|
||||
Starten Sie Workflows über mehrere Kanäle, einschließlich Chat-Schnittstellen, REST-APIs, Webhooks, geplante Cron-Jobs oder externe Ereignisse von Plattformen wie Slack und GitHub.
|
||||
|
||||
**Echtzeit-Zusammenarbeit**
|
||||
Ermöglichen Sie Ihrem Team, gemeinsam zu arbeiten. Mehrere Benutzer können Workflows gleichzeitig bearbeiten, mit Live-Updates und detaillierten Berechtigungskontrollen.
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
|
||||
<Video src="introduction/build-workflow.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
## Integrationen
|
||||
|
||||
Sim bietet native Integrationen mit über 80 Diensten in verschiedenen Kategorien:
|
||||
|
||||
- **KI-Modelle**: OpenAI, Anthropic, Google Gemini, Groq, Cerebras, lokale Modelle über Ollama oder VLLM
|
||||
- **Kommunikation**: Gmail, Slack, Microsoft Teams, Telegram, WhatsApp
|
||||
- **Produktivität**: Notion, Google Workspace, Airtable, Monday.com
|
||||
- **Entwicklung**: GitHub, Jira, Linear, automatisierte Browser-Tests
|
||||
- **Suche & Daten**: Google Search, Perplexity, Firecrawl, Exa AI
|
||||
- **Datenbanken**: PostgreSQL, MySQL, Supabase, Pinecone, Qdrant
|
||||
|
||||
Für benutzerdefinierte Integrationen nutzen Sie unsere [MCP (Model Context Protocol)-Unterstützung](/mcp), um beliebige externe Dienste oder Tools anzubinden.
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
|
||||
<Video src="introduction/integrations-sidebar.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
## Copilot
|
||||
|
||||
**Fragen stellen & Anleitung erhalten**
|
||||
Der Copilot beantwortet Fragen zu Sim, erklärt Ihre Workflows und gibt Verbesserungsvorschläge. Verwenden Sie das `@` Symbol, um auf Workflows, Blöcke, Dokumentation, Wissen und Protokolle für kontextbezogene Unterstützung zu verweisen.
|
||||
|
||||
**Workflows erstellen & bearbeiten**
|
||||
Wechseln Sie in den Agent-Modus, damit der Copilot Änderungen direkt auf Ihrer Arbeitsfläche vorschlagen und anwenden kann. Fügen Sie Blöcke hinzu, konfigurieren Sie Einstellungen, verbinden Sie Variablen und strukturieren Sie Workflows mit natürlichsprachlichen Befehlen um.
|
||||
|
||||
**Adaptive Reasoning-Stufen**
|
||||
Wählen Sie zwischen den Modi Schnell, Auto, Erweitert oder Behemoth, je nach Komplexität der Aufgabe. Beginnen Sie mit Schnell für einfache Fragen und steigern Sie sich bis zu Behemoth für komplexe architektonische Änderungen und tiefgehendes Debugging.
|
||||
|
||||
Erfahren Sie mehr über [Copilot-Funktionen](/copilot) und wie Sie die Produktivität mit KI-Unterstützung maximieren können.
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg my-6">
|
||||
<Video src="introduction/copilot-workflow.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
## Bereitstellungsoptionen
|
||||
|
||||
**Cloud-Hosting**
|
||||
Starten Sie sofort bei [sim.ai](https://sim.ai) mit vollständig verwalteter Infrastruktur, automatischer Skalierung und integrierter Beobachtbarkeit. Konzentrieren Sie sich auf den Aufbau von Workflows, während wir den Betrieb übernehmen.
|
||||
|
||||
**Self-Hosting**
|
||||
Stellen Sie die Lösung auf Ihrer eigenen Infrastruktur mit Docker Compose oder Kubernetes bereit. Behalten Sie die vollständige Kontrolle über Ihre Daten mit Unterstützung für lokale KI-Modelle durch Ollama-Integration.
|
||||
|
||||
## Nächste Schritte
|
||||
|
||||
Bereit, Ihren ersten KI-Workflow zu erstellen?
|
||||
|
||||
<Cards>
|
||||
<Card title="Erste Schritte" href="/getting-started">
|
||||
Erstellen Sie Ihren ersten Workflow in 10 Minuten
|
||||
</Card>
|
||||
<Card title="Workflow-Blöcke" href="/blocks">
|
||||
Erfahren Sie mehr über die Bausteine
|
||||
</Card>
|
||||
<Card title="Tools & Integrationen" href="/tools">
|
||||
Entdecken Sie über 80 integrierte Integrationen
|
||||
</Card>
|
||||
<Card title="Team-Berechtigungen" href="/permissions/roles-and-permissions">
|
||||
Richten Sie Workspace-Rollen und Berechtigungen ein
|
||||
</Card>
|
||||
</Cards>
|
||||
@@ -0,0 +1,60 @@
|
||||
---
|
||||
title: Tastaturkürzel
|
||||
description: Meistern Sie die Workflow-Arbeitsfläche mit Tastaturkürzeln und Maussteuerung
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Beschleunigen Sie die Erstellung Ihrer Workflows mit diesen Tastaturkürzeln und Maussteuerungen. Alle Tastenkombinationen funktionieren, wenn die Arbeitsfläche fokussiert ist (nicht beim Tippen in einem Eingabefeld).
|
||||
|
||||
<Callout type="info">
|
||||
**Mod** bezieht sich auf `Cmd` unter macOS und `Ctrl` unter Windows/Linux.
|
||||
</Callout>
|
||||
|
||||
## Arbeitsflächen-Steuerung
|
||||
|
||||
### Maussteuerung
|
||||
|
||||
| Aktion | Steuerung |
|
||||
|--------|---------|
|
||||
| Arbeitsfläche verschieben | Linksziehen auf leerer Fläche |
|
||||
| Arbeitsfläche verschieben | Scrollen oder Trackpad |
|
||||
| Mehrere Blöcke auswählen | Rechtsziehen zum Aufziehen eines Auswahlrahmens |
|
||||
| Block ziehen | Linksziehen auf Block-Kopfzeile |
|
||||
| Zur Auswahl hinzufügen | `Mod` + Klick auf Blöcke |
|
||||
|
||||
### Workflow-Aktionen
|
||||
|
||||
| Tastenkombination | Aktion |
|
||||
|----------|--------|
|
||||
| `Mod` + `Enter` | Workflow ausführen (oder abbrechen, falls aktiv) |
|
||||
| `Mod` + `Z` | Rückgängig |
|
||||
| `Mod` + `Shift` + `Z` | Wiederholen |
|
||||
| `Mod` + `C` | Ausgewählte Blöcke kopieren |
|
||||
| `Mod` + `V` | Blöcke einfügen |
|
||||
| `Delete` oder `Backspace` | Ausgewählte Blöcke oder Verbindungen löschen |
|
||||
| `Shift` + `L` | Arbeitsfläche automatisch anordnen |
|
||||
|
||||
## Panel-Navigation
|
||||
|
||||
Diese Tastenkombinationen wechseln zwischen den Panel-Tabs auf der rechten Seite der Arbeitsfläche.
|
||||
|
||||
| Tastenkombination | Aktion |
|
||||
|----------|--------|
|
||||
| `Mod` + `F` | Toolbar-Suche fokussieren |
|
||||
|
||||
## Globale Navigation
|
||||
|
||||
| Tastenkombination | Aktion |
|
||||
|----------|--------|
|
||||
| `Mod` + `K` | Suche öffnen |
|
||||
| `Mod` + `Shift` + `A` | Neuen Agenten-Workflow hinzufügen |
|
||||
| `Mod` + `Y` | Zu Vorlagen gehen |
|
||||
| `Mod` + `L` | Zu Logs gehen |
|
||||
|
||||
## Dienstprogramm
|
||||
|
||||
| Tastenkombination | Aktion |
|
||||
|----------|--------|
|
||||
| `Mod` + `D` | Terminal-Konsole leeren |
|
||||
| `Mod` + `E` | Benachrichtigungen löschen |
|
||||
@@ -0,0 +1,121 @@
|
||||
---
|
||||
title: Übersicht
|
||||
description: Laden Sie Ihre Dokumente hoch, verarbeiten und durchsuchen Sie sie
|
||||
mit intelligenter Vektorsuche und Chunking
|
||||
---
|
||||
|
||||
import { Video } from '@/components/ui/video'
|
||||
import { Image } from '@/components/ui/image'
|
||||
|
||||
Die Wissensdatenbank ermöglicht es Ihnen, Ihre Dokumente hochzuladen, zu verarbeiten und mit intelligenter Vektorsuche und Chunking zu durchsuchen. Dokumente verschiedener Typen werden automatisch verarbeitet, eingebettet und durchsuchbar gemacht. Ihre Dokumente werden intelligent in Chunks aufgeteilt, und Sie können sie mit natürlichsprachlichen Abfragen anzeigen, bearbeiten und durchsuchen.
|
||||
|
||||
## Upload und Verarbeitung
|
||||
|
||||
Laden Sie einfach Ihre Dokumente hoch, um zu beginnen. Sim verarbeitet sie automatisch im Hintergrund, extrahiert Text, erstellt Embeddings und teilt sie in durchsuchbare Chunks auf.
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="knowledgebase-1.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
Das System übernimmt den gesamten Verarbeitungsprozess für Sie:
|
||||
|
||||
1. **Textextraktion**: Inhalte werden aus Ihren Dokumenten mit spezialisierten Parsern für jeden Dateityp extrahiert
|
||||
2. **Intelligentes Chunking**: Dokumente werden in sinnvolle Chunks mit konfigurierbarer Größe und Überlappung aufgeteilt
|
||||
3. **Embedding-Generierung**: Vektoreinbettungen werden für semantische Suchfunktionen erstellt
|
||||
4. **Verarbeitungsstatus**: Verfolgen Sie den Fortschritt während Ihre Dokumente verarbeitet werden
|
||||
|
||||
## Unterstützte Dateitypen
|
||||
|
||||
Sim unterstützt PDF, Word (DOC/DOCX), Klartext (TXT), Markdown (MD), HTML, Excel (XLS/XLSX), PowerPoint (PPT/PPTX) und CSV-Dateien. Dateien können bis zu 100MB groß sein, wobei die optimale Leistung bei Dateien unter 50MB liegt. Sie können mehrere Dokumente gleichzeitig hochladen, und PDF-Dateien werden mit OCR-Verarbeitung für gescannte Dokumente unterstützt.
|
||||
|
||||
## Anzeigen und Bearbeiten von Chunks
|
||||
|
||||
Sobald Ihre Dokumente verarbeitet sind, können Sie die einzelnen Chunks anzeigen und bearbeiten. Dies gibt Ihnen volle Kontrolle darüber, wie Ihre Inhalte organisiert und durchsucht werden.
|
||||
|
||||
<Image src="/static/knowledgebase/knowledgebase.png" alt="Dokumentchunk-Ansicht mit verarbeiteten Inhalten" width={800} height={500} />
|
||||
|
||||
### Chunk-Konfiguration
|
||||
|
||||
Beim Erstellen einer Wissensdatenbank können Sie konfigurieren, wie Dokumente in Chunks aufgeteilt werden:
|
||||
|
||||
| Einstellung | Einheit | Standard | Bereich | Beschreibung |
|
||||
|---------|------|---------|-------|-------------|
|
||||
| **Maximale Chunk-Größe** | Tokens | 1.024 | 100-4.000 | Maximale Größe jedes Chunks (1 Token ≈ 4 Zeichen) |
|
||||
| **Minimale Chunk-Größe** | Zeichen | 1 | 1-2.000 | Minimale Chunk-Größe, um winzige Fragmente zu vermeiden |
|
||||
| **Überlappung** | Zeichen | 200 | 0-500 | Kontextüberlappung zwischen aufeinanderfolgenden Chunks |
|
||||
|
||||
- **Hierarchische Aufteilung**: Berücksichtigt die Dokumentstruktur (Abschnitte, Absätze, Sätze)
|
||||
|
||||
### Bearbeitungsmöglichkeiten
|
||||
- **Chunk-Inhalt bearbeiten**: Textinhalt einzelner Chunks ändern
|
||||
- **Chunk-Grenzen anpassen**: Chunks nach Bedarf zusammenführen oder aufteilen
|
||||
- **Metadaten hinzufügen**: Chunks mit zusätzlichem Kontext anreichern
|
||||
- **Massenoperationen**: Mehrere Chunks effizient verwalten
|
||||
|
||||
## Erweiterte PDF-Verarbeitung
|
||||
|
||||
Für PDF-Dokumente bietet Sim erweiterte Verarbeitungsfunktionen:
|
||||
|
||||
### OCR-Unterstützung
|
||||
Wenn mit Azure oder [Mistral OCR](https://docs.mistral.ai/ocr/) konfiguriert:
|
||||
- **Verarbeitung gescannter Dokumente**: Text aus bildbasierten PDFs extrahieren
|
||||
- **Verarbeitung gemischter Inhalte**: PDFs mit Text und Bildern verarbeiten
|
||||
- **Hohe Genauigkeit**: Fortschrittliche KI-Modelle gewährleisten präzise Textextraktion
|
||||
|
||||
## Verwendung des Knowledge-Blocks in Workflows
|
||||
|
||||
Sobald Ihre Dokumente verarbeitet sind, können Sie sie in Ihren KI-Workflows über den Knowledge-Block verwenden. Dies ermöglicht Retrieval-Augmented Generation (RAG), wodurch Ihre KI-Agenten auf Ihre Dokumentinhalte zugreifen und darüber nachdenken können, um genauere, kontextbezogene Antworten zu liefern.
|
||||
|
||||
<Image src="/static/knowledgebase/knowledgebase-2.png" alt="Verwendung des Knowledge-Blocks in Workflows" width={800} height={500} />
|
||||
|
||||
### Knowledge-Block-Funktionen
|
||||
- **Semantische Suche**: Relevante Inhalte mithilfe natürlichsprachlicher Abfragen finden
|
||||
- **Kontextintegration**: Relevante Chunks automatisch in Agenten-Prompts einbinden
|
||||
- **Dynamisches Abrufen**: Suche erfolgt in Echtzeit während der Workflow-Ausführung
|
||||
- **Relevanz-Bewertung**: Ergebnisse nach semantischer Ähnlichkeit sortiert
|
||||
|
||||
### Integrationsoptionen
|
||||
- **System-Prompts**: Stellen Sie Ihren KI-Agenten Kontext bereit
|
||||
- **Dynamischer Kontext**: Suchen und fügen Sie relevante Informationen während Konversationen hinzu
|
||||
- **Multi-Dokument-Suche**: Durchsuchen Sie Ihre gesamte Wissensdatenbank
|
||||
- **Gefilterte Suche**: Kombinieren Sie mit Tags für präzises Abrufen von Inhalten
|
||||
|
||||
## Vektor-Suchtechnologie
|
||||
|
||||
Sim verwendet Vektorsuche, die von [pgvector](https://github.com/pgvector/pgvector) unterstützt wird, um die Bedeutung und den Kontext Ihrer Inhalte zu verstehen:
|
||||
|
||||
### Semantisches Verständnis
|
||||
- **Kontextuelle Suche**: Findet relevante Inhalte, auch wenn exakte Schlüsselwörter nicht übereinstimmen
|
||||
- **Konzeptbasiertes Abrufen**: Versteht Beziehungen zwischen Ideen
|
||||
- **Mehrsprachige Unterstützung**: Funktioniert über verschiedene Sprachen hinweg
|
||||
- **Synonymerkennung**: Findet verwandte Begriffe und Konzepte
|
||||
|
||||
### Suchfunktionen
|
||||
- **Natürlichsprachige Abfragen**: Stellen Sie Fragen in einfachem Deutsch
|
||||
- **Ähnlichkeitssuche**: Finden Sie konzeptionell ähnliche Inhalte
|
||||
- **Hybride Suche**: Kombiniert Vektor- und traditionelle Schlüsselwortsuche
|
||||
- **Konfigurierbare Ergebnisse**: Steuern Sie die Anzahl und Relevanzschwelle der Ergebnisse
|
||||
|
||||
## Dokumentenverwaltung
|
||||
|
||||
### Organisationsfunktionen
|
||||
- **Massen-Upload**: Laden Sie mehrere Dateien gleichzeitig über die asynchrone API hoch
|
||||
- **Verarbeitungsstatus**: Echtzeit-Updates zur Dokumentenverarbeitung
|
||||
- **Suchen und filtern**: Finden Sie Dokumente schnell in großen Sammlungen
|
||||
- **Metadaten-Tracking**: Automatische Erfassung von Dateiinformationen und Verarbeitungsdetails
|
||||
|
||||
### Sicherheit und Datenschutz
|
||||
- **Sichere Speicherung**: Dokumente werden mit Sicherheit auf Unternehmensniveau gespeichert
|
||||
- **Zugriffskontrolle**: Workspace-basierte Berechtigungen
|
||||
- **Verarbeitungsisolierung**: Jeder Workspace hat isolierte Dokumentenverarbeitung
|
||||
- **Datenaufbewahrung**: Konfigurieren Sie Richtlinien zur Dokumentenaufbewahrung
|
||||
|
||||
## Erste Schritte
|
||||
|
||||
1. **Navigieren Sie zu Ihrer Wissensdatenbank**: Zugriff über Ihre Workspace-Seitenleiste
|
||||
2. **Dokumente hochladen**: Ziehen und ablegen oder Dateien zum Hochladen auswählen
|
||||
3. **Verarbeitung überwachen**: Beobachten Sie, wie Dokumente verarbeitet und in Abschnitte unterteilt werden
|
||||
4. **Abschnitte erkunden**: Zeigen Sie die verarbeiteten Inhalte an und bearbeiten Sie sie
|
||||
5. **Zu Workflows hinzufügen**: Verwenden Sie den Knowledge-Block, um mit Ihren KI-Agenten zu integrieren
|
||||
|
||||
Die Wissensdatenbank verwandelt Ihre statischen Dokumente in eine intelligente, durchsuchbare Ressource, die Ihre KI-Workflows für fundiertere und kontextbezogene Antworten nutzen können.
|
||||
@@ -0,0 +1,108 @@
|
||||
---
|
||||
title: Tags und Filterung
|
||||
---
|
||||
|
||||
import { Video } from '@/components/ui/video'
|
||||
|
||||
Tags bieten eine leistungsstarke Möglichkeit, Ihre Dokumente zu organisieren und präzise Filterungen für Ihre Vektorsuchen zu erstellen. Durch die Kombination von tag-basierter Filterung mit semantischer Suche können Sie genau die Inhalte aus Ihrer Wissensdatenbank abrufen, die Sie benötigen.
|
||||
|
||||
## Tags zu Dokumenten hinzufügen
|
||||
|
||||
Sie können jedem Dokument in Ihrer Wissensdatenbank benutzerdefinierte Tags hinzufügen, um Ihre Inhalte zu organisieren und zu kategorisieren und so leichter auffindbar zu machen.
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="knowledgebase-tag.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
### Tag-Verwaltung
|
||||
- **Benutzerdefinierte Tags**: Erstellen Sie Ihr eigenes Tag-System, das zu Ihrem Arbeitsablauf passt
|
||||
- **Mehrere Tags pro Dokument**: Wenden Sie so viele Tags wie nötig auf jedes Dokument an, es stehen 7 Tag-Slots pro Wissensdatenbank zur Verfügung, die von allen Dokumenten in der Wissensdatenbank gemeinsam genutzt werden
|
||||
- **Tag-Organisation**: Gruppieren Sie verwandte Dokumente mit einheitlichen Tags
|
||||
|
||||
### Best Practices für Tags
|
||||
- **Einheitliche Benennung**: Verwenden Sie standardisierte Tag-Namen für alle Ihre Dokumente
|
||||
- **Beschreibende Tags**: Verwenden Sie klare, aussagekräftige Tag-Namen
|
||||
- **Regelmäßige Bereinigung**: Entfernen Sie ungenutzte oder veraltete Tags regelmäßig
|
||||
|
||||
## Verwendung von Tags in Wissensblöcken
|
||||
|
||||
Tags werden besonders leistungsstark, wenn sie mit dem Wissensblock in Ihren Workflows kombiniert werden. Sie können Ihre Suchen auf bestimmte getaggte Inhalte filtern und so sicherstellen, dass Ihre KI-Agenten die relevantesten Informationen erhalten.
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="knowledgebase-tag2.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
## Suchmodi
|
||||
|
||||
Der Wissensblock unterstützt drei verschiedene Suchmodi, abhängig davon, was Sie angeben:
|
||||
|
||||
### 1. Nur-Tag-Suche
|
||||
Wenn Sie **nur Tags angeben** (keine Suchanfrage):
|
||||
- **Direkter Abruf**: Ruft alle Dokumente ab, die die angegebenen Tags haben
|
||||
- **Keine Vektorsuche**: Ergebnisse basieren ausschließlich auf Tag-Übereinstimmung
|
||||
- **Schnelle Leistung**: Schneller Abruf ohne semantische Verarbeitung
|
||||
- **Exakte Übereinstimmung**: Nur Dokumente mit allen angegebenen Tags werden zurückgegeben
|
||||
|
||||
**Anwendungsfall**: Wenn du alle Dokumente aus einer bestimmten Kategorie oder einem Projekt benötigst
|
||||
|
||||
### 2. Nur Vektorsuche
|
||||
Wenn du **nur eine Suchanfrage angibst** (keine Tags):
|
||||
- **Semantische Suche**: Findet Inhalte basierend auf Bedeutung und Kontext
|
||||
- **Vollständige Wissensdatenbank**: Durchsucht alle Dokumente
|
||||
- **Relevanz-Ranking**: Ergebnisse nach semantischer Ähnlichkeit geordnet
|
||||
- **Natürliche Sprache**: Verwende Fragen oder Phrasen, um relevante Inhalte zu finden
|
||||
|
||||
**Anwendungsfall**: Wenn du die relevantesten Inhalte unabhängig von der Organisation benötigst
|
||||
|
||||
### 3. Kombinierte Tag-Filterung + Vektorsuche
|
||||
Wenn du **sowohl Tags als auch eine Suchanfrage angibst**:
|
||||
1. **Zuerst**: Filtere Dokumente auf solche mit den angegebenen Tags
|
||||
2. **Dann**: Führe eine Vektorsuche innerhalb dieser gefilterten Teilmenge durch
|
||||
3. **Ergebnis**: Semantisch relevante Inhalte nur aus deinen getaggten Dokumenten
|
||||
|
||||
**Anwendungsfall**: Wenn du relevante Inhalte aus einer bestimmten Kategorie oder einem Projekt benötigst
|
||||
|
||||
### Suchkonfiguration
|
||||
|
||||
#### Tag-Filterung
|
||||
- **Mehrere Tags**: Verwende mehrere Tags für ODER-Logik (Dokument muss einen oder mehrere der Tags haben)
|
||||
- **Tag-Kombinationen**: Mische verschiedene Tag-Typen für präzise Filterung
|
||||
- **Groß-/Kleinschreibung**: Tag-Abgleich ist unabhängig von Groß-/Kleinschreibung
|
||||
- **Teilabgleich**: Exakte Übereinstimmung des Tag-Namens erforderlich
|
||||
|
||||
#### Vektorsuche-Parameter
|
||||
- **Abfragekomplexität**: Fragen in natürlicher Sprache funktionieren am besten
|
||||
- **Ergebnislimits**: Konfiguriere, wie viele Chunks abgerufen werden sollen
|
||||
- **Relevanzschwelle**: Lege minimale Ähnlichkeitswerte fest
|
||||
- **Kontextfenster**: Passe die Chunk-Größe an deinen Anwendungsfall an
|
||||
|
||||
## Integration mit Workflows
|
||||
|
||||
### Konfiguration des Wissensblocks
|
||||
1. **Wissensdatenbank auswählen**: Wähle aus, welche Wissensdatenbank durchsucht werden soll
|
||||
2. **Tags hinzufügen**: Gib Filterungs-Tags an (optional)
|
||||
3. **Anfrage eingeben**: Füge deine Suchanfrage hinzu (optional)
|
||||
4. **Ergebnisse konfigurieren**: Lege die Anzahl der abzurufenden Chunks fest
|
||||
5. **Suche testen**: Sieh dir die Ergebnisse an, bevor du sie im Workflow verwendest
|
||||
|
||||
### Dynamische Tag-Nutzung
|
||||
- **Variable Tags**: Verwenden Sie Workflow-Variablen als Tag-Werte
|
||||
- **Bedingte Filterung**: Wenden Sie verschiedene Tags basierend auf Workflow-Logik an
|
||||
- **Kontextbezogene Suche**: Passen Sie Tags basierend auf dem Gesprächskontext an
|
||||
- **Mehrstufige Filterung**: Verfeinern Sie Suchen durch Workflow-Schritte
|
||||
|
||||
### Leistungsoptimierung
|
||||
- **Effiziente Filterung**: Tag-Filterung erfolgt vor der Vektorsuche für bessere Leistung
|
||||
- **Caching**: Häufig verwendete Tag-Kombinationen werden für Geschwindigkeit zwischengespeichert
|
||||
- **Parallele Verarbeitung**: Mehrere Tag-Suchen können gleichzeitig ausgeführt werden
|
||||
- **Ressourcenmanagement**: Automatische Optimierung der Suchressourcen
|
||||
|
||||
## Erste Schritte mit Tags
|
||||
|
||||
1. **Planen Sie Ihre Tag-Struktur**: Entscheiden Sie sich für einheitliche Namenskonventionen
|
||||
2. **Beginnen Sie mit dem Taggen**: Fügen Sie Ihren vorhandenen Dokumenten relevante Tags hinzu
|
||||
3. **Testen Sie Kombinationen**: Experimentieren Sie mit Tag- und Suchanfragekombinationen
|
||||
4. **Integration in Workflows**: Verwenden Sie den Knowledge-Block mit Ihrer Tagging-Strategie
|
||||
5. **Verfeinern Sie im Laufe der Zeit**: Passen Sie Ihren Tagging-Ansatz basierend auf Suchergebnissen an
|
||||
|
||||
Tags verwandeln Ihre Wissensdatenbank von einem einfachen Dokumentenspeicher in ein präzise organisiertes, durchsuchbares Intelligenzsystem, das Ihre KI-Workflows mit chirurgischer Präzision navigieren können.
|
||||
@@ -0,0 +1,108 @@
|
||||
---
|
||||
title: Workflows als MCP bereitstellen
|
||||
description: Stellen Sie Ihre Workflows als MCP-Tools für externe KI-Assistenten
|
||||
und Anwendungen bereit
|
||||
---
|
||||
|
||||
import { Video } from '@/components/ui/video'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Stellen Sie Ihre Workflows als MCP-Tools bereit, um sie für externe KI-Assistenten wie Claude Desktop, Cursor und andere MCP-kompatible Clients zugänglich zu machen. Dies verwandelt Ihre Workflows in aufrufbare Tools, die von überall aus aufgerufen werden können.
|
||||
|
||||
## MCP-Server erstellen und verwalten
|
||||
|
||||
MCP-Server gruppieren Ihre Workflow-Tools zusammen. Erstellen und verwalten Sie sie in den Workspace-Einstellungen:
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/mcp-server.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. Navigieren Sie zu **Einstellungen → MCP-Server**
|
||||
2. Klicken Sie auf **Server erstellen**
|
||||
3. Geben Sie einen Namen und eine optionale Beschreibung ein
|
||||
4. Kopieren Sie die Server-URL zur Verwendung in Ihren MCP-Clients
|
||||
5. Zeigen Sie alle zum Server hinzugefügten Tools an und verwalten Sie diese
|
||||
|
||||
## Einen Workflow als Tool hinzufügen
|
||||
|
||||
Sobald Ihr Workflow bereitgestellt ist, können Sie ihn als MCP-Tool verfügbar machen:
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/mcp-deploy-tool.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. Öffnen Sie Ihren bereitgestellten Workflow
|
||||
2. Klicken Sie auf **Bereitstellen** und wechseln Sie zum Tab **MCP**
|
||||
3. Konfigurieren Sie den Tool-Namen und die Beschreibung
|
||||
4. Fügen Sie Beschreibungen für jeden Parameter hinzu (hilft der KI, Eingaben zu verstehen)
|
||||
5. Wählen Sie aus, zu welchen MCP-Servern es hinzugefügt werden soll
|
||||
|
||||
<Callout type="info">
|
||||
Der Workflow muss bereitgestellt sein, bevor er als MCP-Tool hinzugefügt werden kann.
|
||||
</Callout>
|
||||
|
||||
## Tool-Konfiguration
|
||||
|
||||
### Tool-Name
|
||||
Verwenden Sie Kleinbuchstaben, Zahlen und Unterstriche. Der Name sollte beschreibend sein und den MCP-Namenskonventionen folgen (z. B. `search_documents`, `send_email`).
|
||||
|
||||
### Beschreibung
|
||||
Schreiben Sie eine klare Beschreibung dessen, was das Tool tut. Dies hilft KI-Assistenten zu verstehen, wann das Tool verwendet werden soll.
|
||||
|
||||
### Parameter
|
||||
Die Eingabeformatfelder deines Workflows werden zu Tool-Parametern. Füge jedem Parameter Beschreibungen hinzu, um KI-Assistenten zu helfen, korrekte Werte bereitzustellen.
|
||||
|
||||
## MCP-Clients verbinden
|
||||
|
||||
Verwende die Server-URL aus den Einstellungen, um externe Anwendungen zu verbinden:
|
||||
|
||||
### Claude Desktop
|
||||
Füge dies zu deiner Claude Desktop-Konfiguration hinzu (`~/Library/Application Support/Claude/claude_desktop_config.json`):
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"my-sim-workflows": {
|
||||
"command": "npx",
|
||||
"args": ["-y", "mcp-remote", "YOUR_SERVER_URL"]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Cursor
|
||||
Füge die Server-URL in den MCP-Einstellungen von Cursor mit demselben mcp-remote-Muster hinzu.
|
||||
|
||||
<Callout type="warn">
|
||||
Füge deinen API-Key-Header (`X-API-Key`) für authentifizierten Zugriff hinzu, wenn du mcp-remote oder andere HTTP-basierte MCP-Transporte verwendest.
|
||||
</Callout>
|
||||
|
||||
## Server-Verwaltung
|
||||
|
||||
In der Server-Detailansicht unter **Einstellungen → MCP-Server** können Sie:
|
||||
|
||||
- **Tools anzeigen**: Alle Workflows sehen, die einem Server hinzugefügt wurden
|
||||
- **URL kopieren**: Die Server-URL für MCP-Clients abrufen
|
||||
- **Workflows hinzufügen**: Weitere bereitgestellte Workflows als Tools hinzufügen
|
||||
- **Tools entfernen**: Workflows vom Server entfernen
|
||||
- **Server löschen**: Den gesamten Server und alle seine Tools entfernen
|
||||
|
||||
## So funktioniert es
|
||||
|
||||
Wenn ein MCP-Client dein Tool aufruft:
|
||||
|
||||
1. Die Anfrage wird an deiner MCP-Server-URL empfangen
|
||||
2. Sim validiert die Anfrage und ordnet Parameter den Workflow-Eingaben zu
|
||||
3. Der bereitgestellte Workflow wird mit den angegebenen Eingaben ausgeführt
|
||||
4. Die Ergebnisse werden an den MCP-Client zurückgegeben
|
||||
|
||||
Workflows werden mit derselben Bereitstellungsversion wie API-Aufrufe ausgeführt, was konsistentes Verhalten gewährleistet.
|
||||
|
||||
## Berechtigungsanforderungen
|
||||
|
||||
| Aktion | Erforderliche Berechtigung |
|
||||
|--------|-------------------|
|
||||
| MCP-Server erstellen | **Admin** |
|
||||
| Workflows zu Servern hinzufügen | **Write** oder **Admin** |
|
||||
| MCP-Server anzeigen | **Read**, **Write** oder **Admin** |
|
||||
| MCP-Server löschen | **Admin** |
|
||||
@@ -0,0 +1,144 @@
|
||||
---
|
||||
title: MCP-Tools verwenden
|
||||
description: Externe Tools und Dienste über das Model Context Protocol verbinden
|
||||
---
|
||||
|
||||
import { Image } from '@/components/ui/image'
|
||||
import { Video } from '@/components/ui/video'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Das Model Context Protocol ([MCP](https://modelcontextprotocol.com/)) ermöglicht es Ihnen, externe Tools und Dienste über ein standardisiertes Protokoll zu verbinden, wodurch Sie APIs und Dienste direkt in Ihre Workflows integrieren können. Mit MCP können Sie die Fähigkeiten von Sim erweitern, indem Sie benutzerdefinierte Integrationen hinzufügen, die nahtlos mit Ihren Agenten und Workflows zusammenarbeiten.
|
||||
|
||||
## Was ist MCP?
|
||||
|
||||
MCP ist ein offener Standard, der es KI-Assistenten ermöglicht, sich sicher mit externen Datenquellen und Tools zu verbinden. Es bietet eine standardisierte Methode, um:
|
||||
|
||||
- Verbindungen zu Datenbanken, APIs und Dateisystemen herzustellen
|
||||
- Auf Echtzeitdaten von externen Diensten zuzugreifen
|
||||
- Benutzerdefinierte Tools und Skripte auszuführen
|
||||
- Sicheren, kontrollierten Zugriff auf externe Ressourcen zu gewährleisten
|
||||
|
||||
## Konfiguration von MCP-Servern
|
||||
|
||||
MCP-Server stellen Sammlungen von Tools bereit, die Ihre Agenten nutzen können. Konfigurieren Sie diese in den Workspace-Einstellungen:
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="mcp/settings-mcp-tools.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
1. Navigieren Sie zu Ihren Workspace-Einstellungen
|
||||
2. Gehen Sie zum Abschnitt **MCP-Server**
|
||||
3. Klicken Sie auf **MCP-Server hinzufügen**
|
||||
4. Geben Sie die Server-Konfigurationsdetails ein
|
||||
5. Speichern Sie die Konfiguration
|
||||
|
||||
<Callout type="info">
|
||||
Sie können MCP-Server auch direkt über die Symbolleiste in einem Agent-Block für eine schnelle Einrichtung konfigurieren.
|
||||
</Callout>
|
||||
|
||||
### Tools aktualisieren
|
||||
|
||||
Klicken Sie bei einem Server auf **Aktualisieren**, um die neuesten Tool-Schemas abzurufen und alle Agent-Blöcke, die diese Tools verwenden, automatisch mit den neuen Parameterdefinitionen zu aktualisieren.
|
||||
|
||||
## MCP-Tools in Agents verwenden
|
||||
|
||||
Sobald MCP-Server konfiguriert sind, werden ihre Tools in Ihren Agent-Blöcken verfügbar:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/mcp-2.png"
|
||||
alt="Using MCP Tool in Agent Block"
|
||||
width={700}
|
||||
height={450}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
1. Öffnen Sie einen **Agent**-Block
|
||||
2. Im Bereich **Tools** sehen Sie die verfügbaren MCP-Tools
|
||||
3. Wählen Sie die Tools aus, die der Agent verwenden soll
|
||||
4. Der Agent kann nun während der Ausführung auf diese Tools zugreifen
|
||||
|
||||
## Eigenständiger MCP-Tool-Block
|
||||
|
||||
Für eine präzisere Steuerung können Sie den dedizierten MCP-Tool-Block verwenden, um bestimmte MCP-Tools auszuführen:
|
||||
|
||||
<div className="flex justify-center">
|
||||
<Image
|
||||
src="/static/blocks/mcp-3.png"
|
||||
alt="Standalone MCP Tool Block"
|
||||
width={700}
|
||||
height={450}
|
||||
className="my-6"
|
||||
/>
|
||||
</div>
|
||||
|
||||
Der MCP-Tool-Block ermöglicht Ihnen:
|
||||
- Jedes konfigurierte MCP-Tool direkt auszuführen
|
||||
- Spezifische Parameter an das Tool zu übergeben
|
||||
- Die Ausgabe des Tools in nachfolgenden Workflow-Schritten zu verwenden
|
||||
- Mehrere MCP-Tools miteinander zu verketten
|
||||
|
||||
### Wann MCP-Tool vs. Agent verwenden
|
||||
|
||||
**Verwenden Sie Agent mit MCP-Tools, wenn:**
|
||||
- Sie möchten, dass die KI entscheidet, welche Tools verwendet werden
|
||||
- Sie komplexes Reasoning darüber benötigen, wann und wie Tools verwendet werden
|
||||
- Sie eine natürlichsprachliche Interaktion mit den Tools wünschen
|
||||
|
||||
**Verwenden Sie den MCP-Tool-Block, wenn:**
|
||||
- Sie eine deterministische Tool-Ausführung benötigen
|
||||
- Sie ein bestimmtes Tool mit bekannten Parametern ausführen möchten
|
||||
- Sie strukturierte Workflows mit vorhersehbaren Schritten erstellen
|
||||
|
||||
## Berechtigungsanforderungen
|
||||
|
||||
Die MCP-Funktionalität erfordert spezifische Workspace-Berechtigungen:
|
||||
|
||||
| Aktion | Erforderliche Berechtigung |
|
||||
|--------|-------------------|
|
||||
| MCP-Server in den Einstellungen konfigurieren | **Admin** |
|
||||
| MCP-Tools in Agenten verwenden | **Write** oder **Admin** |
|
||||
| Verfügbare MCP-Tools anzeigen | **Read**, **Write** oder **Admin** |
|
||||
| MCP-Tool-Blöcke ausführen | **Write** oder **Admin** |
|
||||
|
||||
## Häufige Anwendungsfälle
|
||||
|
||||
### Datenbankintegration
|
||||
Verbinden Sie sich mit Datenbanken, um Daten in Ihren Workflows abzufragen, einzufügen oder zu aktualisieren.
|
||||
|
||||
### API-Integrationen
|
||||
Greifen Sie auf externe APIs und Webdienste zu, die keine integrierten Sim-Integrationen haben.
|
||||
|
||||
### Dateisystemzugriff
|
||||
Lesen, schreiben und bearbeiten Sie Dateien auf lokalen oder entfernten Dateisystemen.
|
||||
|
||||
### Individuelle Geschäftslogik
|
||||
Führen Sie benutzerdefinierte Skripte oder Tools aus, die spezifisch für die Anforderungen Ihrer Organisation sind.
|
||||
|
||||
### Echtzeit-Datenzugriff
|
||||
Rufen Sie Live-Daten von externen Systemen während der Workflow-Ausführung ab.
|
||||
|
||||
## Sicherheitsüberlegungen
|
||||
|
||||
- MCP-Server laufen mit den Berechtigungen des Benutzers, der sie konfiguriert hat
|
||||
- Überprüfen Sie immer die MCP-Server-Quellen vor der Installation
|
||||
- Verwenden Sie Umgebungsvariablen für sensible Konfigurationsdaten
|
||||
- Überprüfen Sie die MCP-Server-Funktionen, bevor Sie Agenten Zugriff gewähren
|
||||
|
||||
## Fehlerbehebung
|
||||
|
||||
### MCP-Server wird nicht angezeigt
|
||||
- Überprüfen Sie, ob die Serverkonfiguration korrekt ist
|
||||
- Prüfen Sie, ob Sie über die erforderlichen Berechtigungen verfügen
|
||||
- Stellen Sie sicher, dass der MCP-Server läuft und erreichbar ist
|
||||
|
||||
### Tool-Ausführungsfehler
|
||||
- Überprüfen Sie, ob die Tool-Parameter korrekt formatiert sind
|
||||
- Prüfen Sie die MCP-Server-Logs auf Fehlermeldungen
|
||||
- Stellen Sie sicher, dass die erforderliche Authentifizierung konfiguriert ist
|
||||
|
||||
### Berechtigungsfehler
|
||||
- Bestätigen Sie Ihre Workspace-Berechtigungsstufe
|
||||
- Prüfen Sie, ob der MCP-Server zusätzliche Authentifizierung erfordert
|
||||
- Überprüfen Sie, ob der Server ordnungsgemäß für Ihren Workspace konfiguriert ist
|
||||
@@ -0,0 +1,28 @@
|
||||
{
|
||||
"title": "Sim Documentation",
|
||||
"pages": [
|
||||
"---Getting Started---",
|
||||
"./introduction/index",
|
||||
"./getting-started/index",
|
||||
"./quick-reference/index",
|
||||
"---Building Workflows---",
|
||||
"triggers",
|
||||
"blocks",
|
||||
"tools",
|
||||
"connections",
|
||||
"---Features---",
|
||||
"mcp",
|
||||
"copilot",
|
||||
"skills",
|
||||
"knowledgebase",
|
||||
"variables",
|
||||
"credentials",
|
||||
"---Platform---",
|
||||
"execution",
|
||||
"permissions",
|
||||
"self-hosting",
|
||||
"./enterprise/index",
|
||||
"./keyboard-shortcuts/index"
|
||||
],
|
||||
"defaultOpen": false
|
||||
}
|
||||
@@ -0,0 +1,161 @@
|
||||
---
|
||||
title: Rollen und Berechtigungen
|
||||
---
|
||||
|
||||
import { Video } from '@/components/ui/video'
|
||||
|
||||
Wenn Sie Teammitglieder zu Ihrer Organisation oder Ihrem Workspace einladen, müssen Sie entscheiden, welche Zugriffsebene Sie ihnen gewähren möchten. Dieser Leitfaden erklärt, was Benutzer mit jeder Berechtigungsstufe tun können, und hilft Ihnen, Teamrollen und die Zugriffsrechte jeder Berechtigungsstufe zu verstehen.
|
||||
|
||||
## Wie man jemanden zu einem Workspace einlädt
|
||||
|
||||
<div className="mx-auto w-full overflow-hidden rounded-lg">
|
||||
<Video src="invitations.mp4" width={700} height={450} />
|
||||
</div>
|
||||
|
||||
## Berechtigungsstufen für Workspaces
|
||||
|
||||
Beim Einladen einer Person zu einem Workspace können Sie eine von drei Berechtigungsstufen zuweisen:
|
||||
|
||||
| Berechtigung | Was sie tun können |
|
||||
|------------|------------------|
|
||||
| **Lesen** | Workflows ansehen, Ausführungsergebnisse sehen, aber keine Änderungen vornehmen |
|
||||
| **Schreiben** | Workflows erstellen und bearbeiten, Workflows ausführen, Umgebungsvariablen verwalten |
|
||||
| **Admin** | Alles, was Schreiben kann, plus Benutzer einladen/entfernen und Workspace-Einstellungen verwalten |
|
||||
|
||||
## Was jede Berechtigungsstufe tun kann
|
||||
|
||||
Hier ist eine detaillierte Aufschlüsselung dessen, was Benutzer mit jeder Berechtigungsstufe tun können:
|
||||
|
||||
### Leseberechtigung
|
||||
**Perfekt für:** Stakeholder, Beobachter oder Teammitglieder, die Einblick benötigen, aber keine Änderungen vornehmen sollten
|
||||
|
||||
**Was sie tun können:**
|
||||
- Alle Workflows im Workspace ansehen
|
||||
- Workflow-Ausführungsergebnisse und Protokolle einsehen
|
||||
- Workflow-Konfigurationen und Einstellungen durchsuchen
|
||||
- Umgebungsvariablen anzeigen (aber nicht bearbeiten)
|
||||
|
||||
**Was sie nicht tun können:**
|
||||
- Workflows erstellen, bearbeiten oder löschen
|
||||
- Workflows ausführen oder bereitstellen
|
||||
- Workspace-Einstellungen ändern
|
||||
- Andere Benutzer einladen
|
||||
|
||||
### Schreibberechtigung
|
||||
**Perfekt für:** Entwickler, Content-Ersteller oder Teammitglieder, die aktiv an Automatisierungen arbeiten
|
||||
|
||||
**Was sie tun können:**
|
||||
- Alles, was Benutzer mit Leseberechtigung können, plus:
|
||||
- Workflows erstellen, bearbeiten und löschen
|
||||
- Workflows ausführen und bereitstellen
|
||||
- Workspace-Umgebungsvariablen hinzufügen, bearbeiten und löschen
|
||||
- Alle verfügbaren Tools und Integrationen nutzen
|
||||
- In Echtzeit bei der Workflow-Bearbeitung zusammenarbeiten
|
||||
|
||||
**Was sie nicht können:**
|
||||
- Benutzer zum Workspace einladen oder daraus entfernen
|
||||
- Workspace-Einstellungen ändern
|
||||
- Den Workspace löschen
|
||||
|
||||
### Admin-Berechtigung
|
||||
**Perfekt für:** Teamleiter, Projektmanager oder technische Leiter, die den Workspace verwalten müssen
|
||||
|
||||
**Was sie können:**
|
||||
- Alles, was Benutzer mit Schreibrechten können, plus:
|
||||
- Neue Benutzer mit beliebiger Berechtigungsstufe zum Workspace einladen
|
||||
- Benutzer aus dem Workspace entfernen
|
||||
- Workspace-Einstellungen und Integrationen verwalten
|
||||
- Verbindungen zu externen Tools konfigurieren
|
||||
- Von anderen Benutzern erstellte Workflows löschen
|
||||
|
||||
**Was sie nicht können:**
|
||||
- Den Workspace löschen (das kann nur der Workspace-Besitzer)
|
||||
- Den Workspace-Besitzer aus dem Workspace entfernen
|
||||
|
||||
---
|
||||
|
||||
## Workspace-Besitzer vs. Admin
|
||||
|
||||
Jeder Workspace hat einen **Besitzer** (die Person, die ihn erstellt hat) sowie eine beliebige Anzahl von **Admins**.
|
||||
|
||||
### Workspace-Besitzer
|
||||
- Hat alle Admin-Berechtigungen
|
||||
- Kann den Workspace löschen
|
||||
- Kann nicht aus dem Workspace entfernt werden
|
||||
- Kann die Eigentümerschaft an einen anderen Benutzer übertragen
|
||||
|
||||
### Workspace-Admin
|
||||
- Kann alles tun außer den Workspace löschen oder den Besitzer entfernen
|
||||
- Kann vom Besitzer oder anderen Admins aus dem Workspace entfernt werden
|
||||
|
||||
---
|
||||
|
||||
## Häufige Szenarien
|
||||
|
||||
### Einen neuen Entwickler zum Team hinzufügen
|
||||
1. **Organisationsebene**: Laden Sie ihn als **Organisationsmitglied** ein
|
||||
2. **Workspace-Ebene**: Geben Sie ihm **Schreib**-Berechtigung, damit er Workflows erstellen und bearbeiten kann
|
||||
|
||||
### Einen Projektmanager hinzufügen
|
||||
1. **Organisationsebene**: Laden Sie ihn als **Organisationsmitglied** ein
|
||||
2. **Workspace-Ebene**: Geben Sie ihm **Admin**-Berechtigung, damit er das Team verwalten und alles einsehen kann
|
||||
|
||||
### Einen Stakeholder oder Kunden hinzufügen
|
||||
1. **Organisationsebene**: Laden Sie ihn als **Organisationsmitglied** ein
|
||||
2. **Workspace-Ebene**: Geben Sie ihm **Lese**-Berechtigung, damit er den Fortschritt sehen, aber keine Änderungen vornehmen kann
|
||||
|
||||
---
|
||||
|
||||
## Umgebungsvariablen
|
||||
|
||||
Benutzer können zwei Arten von Umgebungsvariablen erstellen:
|
||||
|
||||
### Persönliche Umgebungsvariablen
|
||||
- Nur für den einzelnen Benutzer sichtbar
|
||||
- Verfügbar in allen Workflows, die sie ausführen
|
||||
- Werden in den Benutzereinstellungen verwaltet
|
||||
|
||||
### Workspace-Umgebungsvariablen
|
||||
- **Leserecht**: Kann Variablennamen und -werte sehen
|
||||
- **Schreib-/Administratorrecht**: Kann Variablen hinzufügen, bearbeiten und löschen
|
||||
- Verfügbar für alle Workspace-Mitglieder
|
||||
- Wenn eine persönliche Variable denselben Namen wie eine Workspace-Variable hat, hat die persönliche Variable Vorrang
|
||||
|
||||
---
|
||||
|
||||
## Best Practices
|
||||
|
||||
### Mit minimalen Berechtigungen beginnen
|
||||
Geben Sie Benutzern die niedrigste Berechtigungsstufe, die sie für ihre Arbeit benötigen. Sie können die Berechtigungen später immer erhöhen.
|
||||
|
||||
### Organisationsstruktur klug nutzen
|
||||
- Machen Sie vertrauenswürdige Teamleiter zu **Organisationsadministratoren**
|
||||
- Die meisten Teammitglieder sollten **Organisationsmitglieder** sein
|
||||
- Reservieren Sie Workspace-**Admin**-Berechtigungen für Personen, die Benutzer verwalten müssen
|
||||
|
||||
### Berechtigungen regelmäßig überprüfen
|
||||
Überprüfen Sie regelmäßig, wer Zugriff auf was hat, besonders wenn Teammitglieder ihre Rollen wechseln oder das Unternehmen verlassen.
|
||||
|
||||
### Sicherheit von Umgebungsvariablen
|
||||
- Verwenden Sie persönliche Umgebungsvariablen für sensible API-Schlüssel
|
||||
- Verwenden Sie Workspace-Umgebungsvariablen für gemeinsame Konfigurationen
|
||||
- Überprüfen Sie regelmäßig, wer Zugriff auf sensible Variablen hat
|
||||
|
||||
---
|
||||
|
||||
## Organisationsrollen
|
||||
|
||||
Wenn Sie jemanden zu Ihrer Organisation einladen, können Sie eine von zwei Rollen zuweisen:
|
||||
|
||||
### Organisationsadministrator
|
||||
**Was sie tun können:**
|
||||
- Teammitglieder zur Organisation einladen und entfernen
|
||||
- Neue Workspaces erstellen
|
||||
- Abrechnungs- und Abonnementeinstellungen verwalten
|
||||
- Zugriff auf alle Workspaces innerhalb der Organisation
|
||||
|
||||
### Organisationsmitglied
|
||||
**Was sie tun können:**
|
||||
- Zugriff auf Workspaces, zu denen sie speziell eingeladen wurden
|
||||
- Liste der Organisationsmitglieder anzeigen
|
||||
- Können keine neuen Personen einladen oder Organisationseinstellungen verwalten
|
||||
@@ -0,0 +1,394 @@
|
||||
---
|
||||
title: Kurzreferenz
|
||||
description: Wesentliche Aktionen zum Navigieren und Verwenden des Sim-Workflow-Editors
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { ActionImage, ActionVideo } from '@/components/ui/action-media'
|
||||
|
||||
Eine schnelle Übersicht für alltägliche Aktionen im Sim-Workflow-Editor. Für Tastaturkürzel siehe [Tastaturkürzel](/keyboard-shortcuts).
|
||||
|
||||
<Callout type="info">
|
||||
**Mod** bezieht sich auf `Cmd` unter macOS und `Ctrl` unter Windows/Linux.
|
||||
</Callout>
|
||||
|
||||
## Arbeitsbereiche
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Arbeitsbereich erstellen</td>
|
||||
<td>Arbeitsbereich-Dropdown anklicken → **Neuer Arbeitsbereich**</td>
|
||||
<td><ActionVideo src="quick-reference/create-workspace.mp4" alt="Arbeitsbereich erstellen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Arbeitsbereiche wechseln</td>
|
||||
<td>Arbeitsbereich-Dropdown anklicken → Arbeitsbereich auswählen</td>
|
||||
<td><ActionVideo src="quick-reference/switch-workspace.mp4" alt="Arbeitsbereiche wechseln" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Teammitglieder einladen</td>
|
||||
<td>Seitenleiste → **Einladen**</td>
|
||||
<td><ActionVideo src="quick-reference/invite.mp4" alt="Teammitglieder einladen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Arbeitsbereich umbenennen</td>
|
||||
<td>Rechtsklick auf Arbeitsbereich → **Umbenennen**</td>
|
||||
<td rowSpan={4}><ActionImage src="/static/quick-reference/workspace-context-menu.png" alt="Arbeitsbereich-Kontextmenü" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Arbeitsbereich duplizieren</td>
|
||||
<td>Rechtsklick auf Arbeitsbereich → **Duplizieren**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Arbeitsbereich exportieren</td>
|
||||
<td>Rechtsklick auf Arbeitsbereich → **Exportieren**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Arbeitsbereich löschen</td>
|
||||
<td>Rechtsklick auf Arbeitsbereich → **Löschen**</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Workflows
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Workflow erstellen</td>
|
||||
<td>**+**-Schaltfläche in der Seitenleiste anklicken</td>
|
||||
<td><ActionImage src="/static/quick-reference/create-workflow.png" alt="Workflow erstellen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Workflows neu anordnen / verschieben</td>
|
||||
<td>Workflow nach oben/unten oder auf einen Ordner ziehen</td>
|
||||
<td><ActionVideo src="quick-reference/reordering.mp4" alt="Workflows neu anordnen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Workflow importieren</td>
|
||||
<td>Import-Schaltfläche in der Seitenleiste anklicken → Datei auswählen</td>
|
||||
<td><ActionImage src="/static/quick-reference/import-workflow.png" alt="Workflow importieren" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Mehrere Workflows auswählen</td>
|
||||
<td>`Mod+Click` oder `Shift+Click` Workflows in der Seitenleiste</td>
|
||||
<td><ActionVideo src="quick-reference/multiselect.mp4" alt="Mehrere Workflows auswählen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>In neuem Tab öffnen</td>
|
||||
<td>Rechtsklick auf Workflow → **In neuem Tab öffnen**</td>
|
||||
<td rowSpan={6}><ActionImage src="/static/quick-reference/workflow-context-menu.png" alt="Workflow-Kontextmenü" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Workflow umbenennen</td>
|
||||
<td>Rechtsklick auf Workflow → **Umbenennen**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Workflow-Farbe zuweisen</td>
|
||||
<td>Rechtsklick auf Workflow → **Farbe ändern**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Workflow duplizieren</td>
|
||||
<td>Rechtsklick auf Workflow → **Duplizieren**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Workflow exportieren</td>
|
||||
<td>Rechtsklick auf Workflow → **Exportieren**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Workflow löschen</td>
|
||||
<td>Rechtsklick auf Workflow → **Löschen**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ordner umbenennen</td>
|
||||
<td>Rechtsklick auf Ordner → **Umbenennen**</td>
|
||||
<td rowSpan={6}><ActionImage src="/static/quick-reference/folder-context-menu.png" alt="Ordner-Kontextmenü" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Workflow in Ordner erstellen</td>
|
||||
<td>Rechtsklick auf Ordner → **Workflow erstellen**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ordner in Ordner erstellen</td>
|
||||
<td>Rechtsklick auf Ordner → **Ordner erstellen**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ordner duplizieren</td>
|
||||
<td>Rechtsklick auf Ordner → **Duplizieren**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ordner exportieren</td>
|
||||
<td>Rechtsklick auf Ordner → **Exportieren**</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ordner löschen</td>
|
||||
<td>Rechtsklick auf Ordner → **Löschen**</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Blöcke
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Block hinzufügen</td>
|
||||
<td>Aus Toolbar-Panel ziehen oder Rechtsklick auf Canvas → **Block hinzufügen**</td>
|
||||
<td><ActionVideo src="quick-reference/add-block.mp4" alt="Block hinzufügen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Mehrere Blöcke auswählen</td>
|
||||
<td>`Mod+Click` zusätzliche Blöcke oder Shift-Ziehen für Auswahlrahmen</td>
|
||||
<td><ActionVideo src="quick-reference/multiselect-blocks.mp4" alt="Mehrere Blöcke auswählen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Blöcke kopieren</td>
|
||||
<td>`Mod+C` mit ausgewählten Blöcken</td>
|
||||
<td rowSpan={2}><ActionVideo src="quick-reference/copy-paste.mp4" alt="Blöcke kopieren und einfügen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Blöcke einfügen</td>
|
||||
<td>`Mod+V` zum Einfügen kopierter Blöcke</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Blöcke duplizieren</td>
|
||||
<td>Rechtsklick → **Duplizieren**</td>
|
||||
<td><ActionVideo src="quick-reference/duplicate-block.mp4" alt="Blöcke duplizieren" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Blöcke löschen</td>
|
||||
<td>`Delete` oder `Backspace` Taste oder Rechtsklick → **Löschen**</td>
|
||||
<td><ActionImage src="/static/quick-reference/delete-block.png" alt="Block löschen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Block umbenennen</td>
|
||||
<td>Auf Blocknamen im Header klicken oder im Editor-Panel bearbeiten</td>
|
||||
<td><ActionVideo src="quick-reference/rename-block.mp4" alt="Block umbenennen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Block aktivieren/deaktivieren</td>
|
||||
<td>Rechtsklick → **Aktivieren/Deaktivieren**</td>
|
||||
<td><ActionImage src="/static/quick-reference/disable-block.png" alt="Block deaktivieren" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Block sperren/entsperren</td>
|
||||
<td>Über Block hovern → Auf Schloss-Symbol klicken (nur Admin)</td>
|
||||
<td><ActionImage src="/static/quick-reference/lock-block.png" alt="Block sperren" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Handle-Ausrichtung umschalten</td>
|
||||
<td>Rechtsklick → **Handles umschalten**</td>
|
||||
<td><ActionVideo src="quick-reference/toggle-handles.mp4" alt="Handle-Ausrichtung umschalten" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Block konfigurieren</td>
|
||||
<td>Block auswählen → Editor-Panel rechts verwenden</td>
|
||||
<td><ActionVideo src="quick-reference/configure-block.mp4" alt="Block konfigurieren" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Verbindungen
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Verbindung erstellen</td>
|
||||
<td>Vom Ausgangs-Handle zum Eingangs-Handle ziehen</td>
|
||||
<td><ActionVideo src="quick-reference/connect-blocks.mp4" alt="Blöcke verbinden" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Verbindung löschen</td>
|
||||
<td>Auf Kante klicken zum Auswählen → `Delete` Taste</td>
|
||||
<td><ActionVideo src="quick-reference/delete-connection.mp4" alt="Verbindung löschen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ausgabe in anderem Block verwenden</td>
|
||||
<td>Verbindungs-Tag in Eingabefeld ziehen</td>
|
||||
<td><ActionVideo src="quick-reference/connection-tag.mp4" alt="Verbindungs-Tag verwenden" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Panels und Ansichten
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Symbolleiste durchsuchen</td>
|
||||
<td>`Mod+F`</td>
|
||||
<td><ActionVideo src="quick-reference/search-toolbar.mp4" alt="Symbolleiste durchsuchen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Alles durchsuchen</td>
|
||||
<td>`Mod+K`</td>
|
||||
<td><ActionImage src="/static/quick-reference/search-everything.png" alt="Alles durchsuchen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Manuellen Modus umschalten</td>
|
||||
<td>Klicken Sie auf die Umschalt-Schaltfläche, um zwischen manuell und Selektor zu wechseln</td>
|
||||
<td><ActionImage src="/static/quick-reference/toggle-manual-mode.png" alt="Manuellen Modus umschalten" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Seitenleiste ein-/ausklappen</td>
|
||||
<td>Klicken Sie auf die Einklappen-Schaltfläche in der Seitenleiste</td>
|
||||
<td><ActionVideo src="quick-reference/collapse-sidebar.mp4" alt="Seitenleiste einklappen" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Ausführen und Testen
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Workflow ausführen</td>
|
||||
<td>Klicken Sie auf die Schaltfläche Workflow ausführen oder `Mod+Enter`</td>
|
||||
<td><ActionImage src="/static/quick-reference/run-workflow.png" alt="Workflow ausführen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Workflow stoppen</td>
|
||||
<td>Klicken Sie auf die Stopp-Schaltfläche oder `Mod+Enter` während der Ausführung</td>
|
||||
<td><ActionImage src="/static/quick-reference/stop-workflow.png" alt="Workflow stoppen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Mit Chat testen</td>
|
||||
<td>Verwenden Sie das Chat-Panel auf der rechten Seite</td>
|
||||
<td><ActionImage src="/static/quick-reference/test-chat.png" alt="Mit Chat testen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ausgabe zum Anzeigen auswählen</td>
|
||||
<td>Klicken Sie auf das Dropdown-Menü im Chat-Panel → Wählen Sie Block-Ausgabe aus</td>
|
||||
<td><ActionImage src="/static/quick-reference/output-select.png" alt="Ausgabe zum Anzeigen auswählen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Chat-Verlauf löschen</td>
|
||||
<td>Klicken Sie auf die Löschen-Schaltfläche im Chat-Panel</td>
|
||||
<td><ActionImage src="/static/quick-reference/clear-chat.png" alt="Chat-Verlauf löschen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ab Block ausführen</td>
|
||||
<td>Bewegen Sie den Mauszeiger über den Block → Klicken Sie auf die Wiedergabe-Schaltfläche oder Rechtsklick → **Ab Block ausführen**</td>
|
||||
<td><ActionImage src="/static/quick-reference/run-from-block.png" alt="Ab Block ausführen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Bis Block ausführen</td>
|
||||
<td>Rechtsklick auf Block → **Bis Block ausführen**</td>
|
||||
<td><ActionImage src="/static/quick-reference/run-until-block.png" alt="Bis Block ausführen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ausführungsprotokolle anzeigen</td>
|
||||
<td>Öffnen Sie das Terminal-Panel unten oder `Mod+L`</td>
|
||||
<td><ActionImage src="/static/quick-reference/terminal.png" alt="Terminal für Ausführungsprotokolle" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Protokolle filtern</td>
|
||||
<td>Klicken Sie auf das Filter-Symbol im Terminal → Filtern Sie nach Block oder Status</td>
|
||||
<td><ActionImage src="/static/quick-reference/filter-block.png" alt="Protokolle nach Block filtern" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Protokolle durchsuchen</td>
|
||||
<td>Verwenden Sie das Suchfeld im Terminal oder Rechtsklick auf Protokolleintrag → **Suchen**</td>
|
||||
<td><ActionImage src="/static/quick-reference/terminal-search.png" alt="Protokolle durchsuchen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Protokolleintrag kopieren</td>
|
||||
<td>Zwischenablage-Symbol oder Rechtsklick auf Protokolleintrag → **Kopieren**</td>
|
||||
<td><ActionImage src="/static/quick-reference/copy-log.png" alt="Protokolleintrag kopieren" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Terminal leeren</td>
|
||||
<td>Papierkorb-Symbol oder `Mod+D`</td>
|
||||
<td><ActionImage src="/static/quick-reference/clear-terminal.png" alt="Terminal leeren" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Bereitstellung
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Workflow bereitstellen</td>
|
||||
<td>Klicken Sie auf die Schaltfläche **Bereitstellen** im Panel</td>
|
||||
<td><ActionImage src="/static/quick-reference/deploy.png" alt="Workflow bereitstellen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Bereitstellung aktualisieren</td>
|
||||
<td>Klicken Sie auf **Aktualisieren**, wenn Änderungen erkannt werden</td>
|
||||
<td><ActionImage src="/static/quick-reference/update-deployment.png" alt="Bereitstellung aktualisieren" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Bereitstellungsstatus anzeigen</td>
|
||||
<td>Überprüfen Sie die Statusanzeige (Live/Aktualisieren/Bereitstellen) im Tab „Bereitstellen"</td>
|
||||
<td><ActionImage src="/static/quick-reference/view-deployment.png" alt="Bereitstellungsstatus anzeigen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Bereitstellung zurücksetzen</td>
|
||||
<td>Greifen Sie auf frühere Versionen im Tab „Bereitstellen" zu → **Zu Live befördern**</td>
|
||||
<td><ActionImage src="/static/quick-reference/promote-deployment.png" alt="Bereitstellung zu Live befördern" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Versionsbeschreibung hinzufügen</td>
|
||||
<td>Tab „Bereitstellen" → Klicken Sie auf das Beschreibungssymbol → Beschreibung hinzufügen oder generieren</td>
|
||||
<td><ActionVideo src="quick-reference/deployment-description.mp4" alt="Versionsbeschreibung für Bereitstellung hinzufügen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>API-Endpunkt kopieren</td>
|
||||
<td>Tab „Bereitstellen" → API → API-cURL kopieren</td>
|
||||
<td><ActionImage src="/static/quick-reference/copy-api.png" alt="API-Endpunkt kopieren" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
## Variablen
|
||||
|
||||
<table>
|
||||
<thead>
|
||||
<tr><th>Aktion</th><th>Wie</th><th>Vorschau</th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Workflow-Variable hinzufügen / bearbeiten / löschen</td>
|
||||
<td>Panel → Variablen → **Variable hinzufügen**, zum Bearbeiten klicken oder Löschsymbol verwenden</td>
|
||||
<td><ActionImage src="/static/quick-reference/variables.png" alt="Variablen-Panel" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Umgebungsvariable hinzufügen</td>
|
||||
<td>Einstellungen → **Umgebungsvariablen** → **Hinzufügen**</td>
|
||||
<td><ActionImage src="/static/quick-reference/add-env-variable.png" alt="Umgebungsvariable hinzufügen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Auf Workflow-Variable verweisen</td>
|
||||
<td>Verwenden Sie die Syntax `<blockName.itemName>` in Block-Eingaben</td>
|
||||
<td><ActionImage src="/static/quick-reference/variable-reference.png" alt="Auf Workflow-Variable verweisen" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Auf Umgebungsvariable verweisen</td>
|
||||
<td>Verwenden Sie die Syntax `{{ENV_VAR}}` in Block-Eingaben</td>
|
||||
<td><ActionImage src="/static/quick-reference/env-variable-reference.png" alt="Auf Umgebungsvariable verweisen" /></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -0,0 +1,766 @@
|
||||
---
|
||||
title: Python
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
import { Card, Cards } from 'fumadocs-ui/components/card'
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps'
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
|
||||
Das offizielle Python SDK für Sim ermöglicht es Ihnen, Workflows programmatisch aus Ihren Python-Anwendungen heraus mit dem offiziellen Python SDK auszuführen.
|
||||
|
||||
<Callout type="info">
|
||||
Das Python SDK unterstützt Python 3.8+ mit Unterstützung für asynchrone Ausführung, automatischer Ratenbegrenzung mit exponentiellem Backoff und Nutzungsverfolgung.
|
||||
</Callout>
|
||||
|
||||
## Installation
|
||||
|
||||
Installieren Sie das SDK mit pip:
|
||||
|
||||
```bash
|
||||
pip install simstudio-sdk
|
||||
```
|
||||
|
||||
## Schnellstart
|
||||
|
||||
Hier ist ein einfaches Beispiel für den Einstieg:
|
||||
|
||||
```python
|
||||
from simstudio import SimStudioClient
|
||||
|
||||
# Initialize the client
|
||||
client = SimStudioClient(
|
||||
api_key="your-api-key-here",
|
||||
base_url="https://sim.ai" # optional, defaults to https://sim.ai
|
||||
)
|
||||
|
||||
# Execute a workflow
|
||||
try:
|
||||
result = client.execute_workflow("workflow-id")
|
||||
print("Workflow executed successfully:", result)
|
||||
except Exception as error:
|
||||
print("Workflow execution failed:", error)
|
||||
```
|
||||
|
||||
## API-Referenz
|
||||
|
||||
### SimStudioClient
|
||||
|
||||
#### Konstruktor
|
||||
|
||||
```python
|
||||
SimStudioClient(api_key: str, base_url: str = "https://sim.ai")
|
||||
```
|
||||
|
||||
**Parameter:**
|
||||
- `api_key` (str): Ihr Sim API-Schlüssel
|
||||
- `base_url` (str, optional): Basis-URL für die Sim API
|
||||
|
||||
#### Methoden
|
||||
|
||||
##### execute_workflow()
|
||||
|
||||
Führt einen Workflow mit optionalen Eingabedaten aus.
|
||||
|
||||
```python
|
||||
result = client.execute_workflow(
|
||||
"workflow-id",
|
||||
input_data={"message": "Hello, world!"},
|
||||
timeout=30.0 # 30 seconds
|
||||
)
|
||||
```
|
||||
|
||||
**Parameter:**
|
||||
- `workflow_id` (str): Die ID des auszuführenden Workflows
|
||||
- `input_data` (dict, optional): Eingabedaten, die an den Workflow übergeben werden
|
||||
- `timeout` (float, optional): Timeout in Sekunden (Standard: 30.0)
|
||||
- `stream` (bool, optional): Streaming-Antworten aktivieren (Standard: False)
|
||||
- `selected_outputs` (list[str], optional): Block-Ausgaben zum Streamen im Format `blockName.attribute` (z. B. `["agent1.content"]`)
|
||||
- `async_execution` (bool, optional): Asynchron ausführen (Standard: False)
|
||||
|
||||
**Rückgabewert:** `WorkflowExecutionResult | AsyncExecutionResult`
|
||||
|
||||
Wenn `async_execution=True`, wird sofort mit einer Task-ID zum Polling zurückgegeben. Andernfalls wird auf die Fertigstellung gewartet.
|
||||
|
||||
##### get_workflow_status()
|
||||
|
||||
Ruft den Status eines Workflows ab (Deployment-Status usw.).
|
||||
|
||||
```python
|
||||
status = client.get_workflow_status("workflow-id")
|
||||
print("Is deployed:", status.is_deployed)
|
||||
```
|
||||
|
||||
**Parameter:**
|
||||
- `workflow_id` (str): Die ID des Workflows
|
||||
|
||||
**Rückgabe:** `WorkflowStatus`
|
||||
|
||||
##### validate_workflow()
|
||||
|
||||
Überprüft, ob ein Workflow zur Ausführung bereit ist.
|
||||
|
||||
```python
|
||||
is_ready = client.validate_workflow("workflow-id")
|
||||
if is_ready:
|
||||
# Workflow is deployed and ready
|
||||
pass
|
||||
```
|
||||
|
||||
**Parameter:**
|
||||
- `workflow_id` (str): Die ID des Workflows
|
||||
|
||||
**Rückgabe:** `bool`
|
||||
|
||||
##### get_job_status()
|
||||
|
||||
Ruft den Status einer asynchronen Job-Ausführung ab.
|
||||
|
||||
```python
|
||||
status = client.get_job_status("task-id-from-async-execution")
|
||||
print("Status:", status["status"]) # 'queued', 'processing', 'completed', 'failed'
|
||||
if status["status"] == "completed":
|
||||
print("Output:", status["output"])
|
||||
```
|
||||
|
||||
**Parameter:**
|
||||
- `task_id` (str): Die Task-ID, die von der asynchronen Ausführung zurückgegeben wurde
|
||||
|
||||
**Rückgabe:** `Dict[str, Any]`
|
||||
|
||||
**Antwortfelder:**
|
||||
- `success` (bool): Ob die Anfrage erfolgreich war
|
||||
- `taskId` (str): Die Task-ID
|
||||
- `status` (str): Einer von `'queued'`, `'processing'`, `'completed'`, `'failed'`, `'cancelled'`
|
||||
- `metadata` (dict): Enthält `startedAt`, `completedAt` und `duration`
|
||||
- `output` (any, optional): Die Workflow-Ausgabe (wenn abgeschlossen)
|
||||
- `error` (any, optional): Fehlerdetails (wenn fehlgeschlagen)
|
||||
- `estimatedDuration` (int, optional): Geschätzte Dauer in Millisekunden (wenn in Bearbeitung/in Warteschlange)
|
||||
|
||||
##### execute_with_retry()
|
||||
|
||||
Führt einen Workflow mit automatischer Wiederholung bei Rate-Limit-Fehlern unter Verwendung von exponentiellem Backoff aus.
|
||||
|
||||
```python
|
||||
result = client.execute_with_retry(
|
||||
"workflow-id",
|
||||
input_data={"message": "Hello"},
|
||||
timeout=30.0,
|
||||
max_retries=3, # Maximum number of retries
|
||||
initial_delay=1.0, # Initial delay in seconds
|
||||
max_delay=30.0, # Maximum delay in seconds
|
||||
backoff_multiplier=2.0 # Exponential backoff multiplier
|
||||
)
|
||||
```
|
||||
|
||||
**Parameter:**
|
||||
- `workflow_id` (str): Die ID des auszuführenden Workflows
|
||||
- `input_data` (dict, optional): Eingabedaten, die an den Workflow übergeben werden
|
||||
- `timeout` (float, optional): Timeout in Sekunden
|
||||
- `stream` (bool, optional): Streaming-Antworten aktivieren
|
||||
- `selected_outputs` (list, optional): Block-Ausgaben zum Streamen
|
||||
- `async_execution` (bool, optional): Asynchron ausführen
|
||||
- `max_retries` (int, optional): Maximale Anzahl von Wiederholungen (Standard: 3)
|
||||
- `initial_delay` (float, optional): Anfangsverzögerung in Sekunden (Standard: 1.0)
|
||||
- `max_delay` (float, optional): Maximale Verzögerung in Sekunden (Standard: 30.0)
|
||||
- `backoff_multiplier` (float, optional): Backoff-Multiplikator (Standard: 2.0)
|
||||
|
||||
**Rückgabe:** `WorkflowExecutionResult | AsyncExecutionResult`
|
||||
|
||||
Die Wiederholungslogik verwendet exponentielles Backoff (1s → 2s → 4s → 8s...) mit ±25% Jitter, um Thundering Herd zu verhindern. Wenn die API einen `retry-after`-Header bereitstellt, wird dieser stattdessen verwendet.
|
||||
|
||||
##### get_rate_limit_info()
|
||||
|
||||
Ruft die aktuellen Rate-Limit-Informationen aus der letzten API-Antwort ab.
|
||||
|
||||
```python
|
||||
rate_limit_info = client.get_rate_limit_info()
|
||||
if rate_limit_info:
|
||||
print("Limit:", rate_limit_info.limit)
|
||||
print("Remaining:", rate_limit_info.remaining)
|
||||
print("Reset:", datetime.fromtimestamp(rate_limit_info.reset))
|
||||
```
|
||||
|
||||
**Rückgabewert:** `RateLimitInfo | None`
|
||||
|
||||
##### get_usage_limits()
|
||||
|
||||
Ruft aktuelle Nutzungslimits und Kontingentinformationen für Ihr Konto ab.
|
||||
|
||||
```python
|
||||
limits = client.get_usage_limits()
|
||||
print("Sync requests remaining:", limits.rate_limit["sync"]["remaining"])
|
||||
print("Async requests remaining:", limits.rate_limit["async"]["remaining"])
|
||||
print("Current period cost:", limits.usage["currentPeriodCost"])
|
||||
print("Plan:", limits.usage["plan"])
|
||||
```
|
||||
|
||||
**Rückgabewert:** `UsageLimits`
|
||||
|
||||
**Antwortstruktur:**
|
||||
|
||||
```python
|
||||
{
|
||||
"success": bool,
|
||||
"rateLimit": {
|
||||
"sync": {
|
||||
"isLimited": bool,
|
||||
"limit": int,
|
||||
"remaining": int,
|
||||
"resetAt": str
|
||||
},
|
||||
"async": {
|
||||
"isLimited": bool,
|
||||
"limit": int,
|
||||
"remaining": int,
|
||||
"resetAt": str
|
||||
},
|
||||
"authType": str # 'api' or 'manual'
|
||||
},
|
||||
"usage": {
|
||||
"currentPeriodCost": float,
|
||||
"limit": float,
|
||||
"plan": str # e.g., 'free', 'pro'
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
##### set_api_key()
|
||||
|
||||
Aktualisiert den API-Schlüssel.
|
||||
|
||||
```python
|
||||
client.set_api_key("new-api-key")
|
||||
```
|
||||
|
||||
##### set_base_url()
|
||||
|
||||
Aktualisiert die Basis-URL.
|
||||
|
||||
```python
|
||||
client.set_base_url("https://my-custom-domain.com")
|
||||
```
|
||||
|
||||
##### close()
|
||||
|
||||
Schließt die zugrunde liegende HTTP-Sitzung.
|
||||
|
||||
```python
|
||||
client.close()
|
||||
```
|
||||
|
||||
## Datenklassen
|
||||
|
||||
### WorkflowExecutionResult
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class WorkflowExecutionResult:
|
||||
success: bool
|
||||
output: Optional[Any] = None
|
||||
error: Optional[str] = None
|
||||
logs: Optional[List[Any]] = None
|
||||
metadata: Optional[Dict[str, Any]] = None
|
||||
trace_spans: Optional[List[Any]] = None
|
||||
total_duration: Optional[float] = None
|
||||
```
|
||||
|
||||
### AsyncExecutionResult
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class AsyncExecutionResult:
|
||||
success: bool
|
||||
task_id: str
|
||||
status: str # 'queued'
|
||||
created_at: str
|
||||
links: Dict[str, str] # e.g., {"status": "/api/jobs/{taskId}"}
|
||||
```
|
||||
|
||||
### WorkflowStatus
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class WorkflowStatus:
|
||||
is_deployed: bool
|
||||
deployed_at: Optional[str] = None
|
||||
needs_redeployment: bool = False
|
||||
```
|
||||
|
||||
### RateLimitInfo
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class RateLimitInfo:
|
||||
limit: int
|
||||
remaining: int
|
||||
reset: int
|
||||
retry_after: Optional[int] = None
|
||||
```
|
||||
|
||||
### UsageLimits
|
||||
|
||||
```python
|
||||
@dataclass
|
||||
class UsageLimits:
|
||||
success: bool
|
||||
rate_limit: Dict[str, Any]
|
||||
usage: Dict[str, Any]
|
||||
```
|
||||
|
||||
### SimStudioError
|
||||
|
||||
```python
|
||||
class SimStudioError(Exception):
|
||||
def __init__(self, message: str, code: Optional[str] = None, status: Optional[int] = None):
|
||||
super().__init__(message)
|
||||
self.code = code
|
||||
self.status = status
|
||||
```
|
||||
|
||||
**Häufige Fehlercodes:**
|
||||
- `UNAUTHORIZED`: Ungültiger API-Schlüssel
|
||||
- `TIMEOUT`: Zeitüberschreitung der Anfrage
|
||||
- `RATE_LIMIT_EXCEEDED`: Ratenlimit überschritten
|
||||
- `USAGE_LIMIT_EXCEEDED`: Nutzungslimit überschritten
|
||||
- `EXECUTION_ERROR`: Workflow-Ausführung fehlgeschlagen
|
||||
|
||||
## Beispiele
|
||||
|
||||
### Grundlegende Workflow-Ausführung
|
||||
|
||||
<Steps>
|
||||
<Step title="Client initialisieren">
|
||||
Richten Sie den SimStudioClient mit Ihrem API-Schlüssel ein.
|
||||
</Step>
|
||||
<Step title="Workflow validieren">
|
||||
Prüfen Sie, ob der Workflow bereitgestellt und zur Ausführung bereit ist.
|
||||
</Step>
|
||||
<Step title="Workflow ausführen">
|
||||
Führen Sie den Workflow mit Ihren Eingabedaten aus.
|
||||
</Step>
|
||||
<Step title="Ergebnis verarbeiten">
|
||||
Verarbeiten Sie das Ausführungsergebnis und behandeln Sie eventuelle Fehler.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
```python
|
||||
import os
|
||||
from simstudio import SimStudioClient
|
||||
|
||||
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
|
||||
|
||||
def run_workflow():
|
||||
try:
|
||||
# Check if workflow is ready
|
||||
is_ready = client.validate_workflow("my-workflow-id")
|
||||
if not is_ready:
|
||||
raise Exception("Workflow is not deployed or ready")
|
||||
|
||||
# Execute the workflow
|
||||
result = client.execute_workflow(
|
||||
"my-workflow-id",
|
||||
input_data={
|
||||
"message": "Process this data",
|
||||
"user_id": "12345"
|
||||
}
|
||||
)
|
||||
|
||||
if result.success:
|
||||
print("Output:", result.output)
|
||||
print("Duration:", result.metadata.get("duration") if result.metadata else None)
|
||||
else:
|
||||
print("Workflow failed:", result.error)
|
||||
|
||||
except Exception as error:
|
||||
print("Error:", error)
|
||||
|
||||
run_workflow()
|
||||
```
|
||||
|
||||
### Fehlerbehandlung
|
||||
|
||||
Behandeln Sie verschiedene Fehlertypen, die während der Workflow-Ausführung auftreten können:
|
||||
|
||||
```python
|
||||
from simstudio import SimStudioClient, SimStudioError
|
||||
import os
|
||||
|
||||
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
|
||||
|
||||
def execute_with_error_handling():
|
||||
try:
|
||||
result = client.execute_workflow("workflow-id")
|
||||
return result
|
||||
except SimStudioError as error:
|
||||
if error.code == "UNAUTHORIZED":
|
||||
print("Invalid API key")
|
||||
elif error.code == "TIMEOUT":
|
||||
print("Workflow execution timed out")
|
||||
elif error.code == "USAGE_LIMIT_EXCEEDED":
|
||||
print("Usage limit exceeded")
|
||||
elif error.code == "INVALID_JSON":
|
||||
print("Invalid JSON in request body")
|
||||
else:
|
||||
print(f"Workflow error: {error}")
|
||||
raise
|
||||
except Exception as error:
|
||||
print(f"Unexpected error: {error}")
|
||||
raise
|
||||
```
|
||||
|
||||
### Verwendung des Context-Managers
|
||||
|
||||
Verwenden Sie den Client als Context-Manager, um die Ressourcenbereinigung automatisch zu handhaben:
|
||||
|
||||
```python
|
||||
from simstudio import SimStudioClient
|
||||
import os
|
||||
|
||||
# Using context manager to automatically close the session
|
||||
with SimStudioClient(api_key=os.getenv("SIM_API_KEY")) as client:
|
||||
result = client.execute_workflow("workflow-id")
|
||||
print("Result:", result)
|
||||
# Session is automatically closed here
|
||||
```
|
||||
|
||||
### Batch-Workflow-Ausführung
|
||||
|
||||
Führen Sie mehrere Workflows effizient aus:
|
||||
|
||||
```python
|
||||
from simstudio import SimStudioClient
|
||||
import os
|
||||
|
||||
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
|
||||
|
||||
def execute_workflows_batch(workflow_data_pairs):
|
||||
"""Execute multiple workflows with different input data."""
|
||||
results = []
|
||||
|
||||
for workflow_id, input_data in workflow_data_pairs:
|
||||
try:
|
||||
# Validate workflow before execution
|
||||
if not client.validate_workflow(workflow_id):
|
||||
print(f"Skipping {workflow_id}: not deployed")
|
||||
continue
|
||||
|
||||
result = client.execute_workflow(workflow_id, input_data)
|
||||
results.append({
|
||||
"workflow_id": workflow_id,
|
||||
"success": result.success,
|
||||
"output": result.output,
|
||||
"error": result.error
|
||||
})
|
||||
|
||||
except Exception as error:
|
||||
results.append({
|
||||
"workflow_id": workflow_id,
|
||||
"success": False,
|
||||
"error": str(error)
|
||||
})
|
||||
|
||||
return results
|
||||
|
||||
# Example usage
|
||||
workflows = [
|
||||
("workflow-1", {"type": "analysis", "data": "sample1"}),
|
||||
("workflow-2", {"type": "processing", "data": "sample2"}),
|
||||
]
|
||||
|
||||
results = execute_workflows_batch(workflows)
|
||||
for result in results:
|
||||
print(f"Workflow {result['workflow_id']}: {'Success' if result['success'] else 'Failed'}")
|
||||
```
|
||||
|
||||
### Asynchrone Workflow-Ausführung
|
||||
|
||||
Führen Sie Workflows asynchron für langwierige Aufgaben aus:
|
||||
|
||||
```python
|
||||
import os
|
||||
import time
|
||||
from simstudio import SimStudioClient
|
||||
|
||||
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
|
||||
|
||||
def execute_async():
|
||||
try:
|
||||
# Start async execution
|
||||
result = client.execute_workflow(
|
||||
"workflow-id",
|
||||
input_data={"data": "large dataset"},
|
||||
async_execution=True # Execute asynchronously
|
||||
)
|
||||
|
||||
# Check if result is an async execution
|
||||
if hasattr(result, 'task_id'):
|
||||
print(f"Task ID: {result.task_id}")
|
||||
print(f"Status endpoint: {result.links['status']}")
|
||||
|
||||
# Poll for completion
|
||||
status = client.get_job_status(result.task_id)
|
||||
|
||||
while status["status"] in ["queued", "processing"]:
|
||||
print(f"Current status: {status['status']}")
|
||||
time.sleep(2) # Wait 2 seconds
|
||||
status = client.get_job_status(result.task_id)
|
||||
|
||||
if status["status"] == "completed":
|
||||
print("Workflow completed!")
|
||||
print(f"Output: {status['output']}")
|
||||
print(f"Duration: {status['metadata']['duration']}")
|
||||
else:
|
||||
print(f"Workflow failed: {status['error']}")
|
||||
|
||||
except Exception as error:
|
||||
print(f"Error: {error}")
|
||||
|
||||
execute_async()
|
||||
```
|
||||
|
||||
### Ratenlimitierung und Wiederholung
|
||||
|
||||
Behandeln Sie Ratenbegrenzungen automatisch mit exponentiellem Backoff:
|
||||
|
||||
```python
|
||||
import os
|
||||
from simstudio import SimStudioClient, SimStudioError
|
||||
|
||||
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
|
||||
|
||||
def execute_with_retry_handling():
|
||||
try:
|
||||
# Automatically retries on rate limit
|
||||
result = client.execute_with_retry(
|
||||
"workflow-id",
|
||||
input_data={"message": "Process this"},
|
||||
max_retries=5,
|
||||
initial_delay=1.0,
|
||||
max_delay=60.0,
|
||||
backoff_multiplier=2.0
|
||||
)
|
||||
|
||||
print(f"Success: {result}")
|
||||
except SimStudioError as error:
|
||||
if error.code == "RATE_LIMIT_EXCEEDED":
|
||||
print("Rate limit exceeded after all retries")
|
||||
|
||||
# Check rate limit info
|
||||
rate_limit_info = client.get_rate_limit_info()
|
||||
if rate_limit_info:
|
||||
from datetime import datetime
|
||||
reset_time = datetime.fromtimestamp(rate_limit_info.reset)
|
||||
print(f"Rate limit resets at: {reset_time}")
|
||||
|
||||
execute_with_retry_handling()
|
||||
```
|
||||
|
||||
### Nutzungsüberwachung
|
||||
|
||||
Überwachen Sie die Nutzung und Limits Ihres Kontos:
|
||||
|
||||
```python
|
||||
import os
|
||||
from simstudio import SimStudioClient
|
||||
|
||||
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
|
||||
|
||||
def check_usage():
|
||||
try:
|
||||
limits = client.get_usage_limits()
|
||||
|
||||
print("=== Rate Limits ===")
|
||||
print("Sync requests:")
|
||||
print(f" Limit: {limits.rate_limit['sync']['limit']}")
|
||||
print(f" Remaining: {limits.rate_limit['sync']['remaining']}")
|
||||
print(f" Resets at: {limits.rate_limit['sync']['resetAt']}")
|
||||
print(f" Is limited: {limits.rate_limit['sync']['isLimited']}")
|
||||
|
||||
print("\nAsync requests:")
|
||||
print(f" Limit: {limits.rate_limit['async']['limit']}")
|
||||
print(f" Remaining: {limits.rate_limit['async']['remaining']}")
|
||||
print(f" Resets at: {limits.rate_limit['async']['resetAt']}")
|
||||
print(f" Is limited: {limits.rate_limit['async']['isLimited']}")
|
||||
|
||||
print("\n=== Usage ===")
|
||||
print(f"Current period cost: ${limits.usage['currentPeriodCost']:.2f}")
|
||||
print(f"Limit: ${limits.usage['limit']:.2f}")
|
||||
print(f"Plan: {limits.usage['plan']}")
|
||||
|
||||
percent_used = (limits.usage['currentPeriodCost'] / limits.usage['limit']) * 100
|
||||
print(f"Usage: {percent_used:.1f}%")
|
||||
|
||||
if percent_used > 80:
|
||||
print("⚠️ Warning: You are approaching your usage limit!")
|
||||
|
||||
except Exception as error:
|
||||
print(f"Error checking usage: {error}")
|
||||
|
||||
check_usage()
|
||||
```
|
||||
|
||||
### Streaming-Workflow-Ausführung
|
||||
|
||||
Führen Sie Workflows mit Echtzeit-Streaming-Antworten aus:
|
||||
|
||||
```python
|
||||
from simstudio import SimStudioClient
|
||||
import os
|
||||
|
||||
client = SimStudioClient(api_key=os.getenv("SIM_API_KEY"))
|
||||
|
||||
def execute_with_streaming():
|
||||
"""Execute workflow with streaming enabled."""
|
||||
try:
|
||||
# Enable streaming for specific block outputs
|
||||
result = client.execute_workflow(
|
||||
"workflow-id",
|
||||
input_data={"message": "Count to five"},
|
||||
stream=True,
|
||||
selected_outputs=["agent1.content"] # Use blockName.attribute format
|
||||
)
|
||||
|
||||
print("Workflow result:", result)
|
||||
except Exception as error:
|
||||
print("Error:", error)
|
||||
|
||||
execute_with_streaming()
|
||||
```
|
||||
|
||||
Die Streaming-Antwort folgt dem Server-Sent-Events- (SSE-) Format:
|
||||
|
||||
```
|
||||
data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":"One"}
|
||||
|
||||
data: {"blockId":"7b7735b9-19e5-4bd6-818b-46aae2596e9f","chunk":", two"}
|
||||
|
||||
data: {"event":"done","success":true,"output":{},"metadata":{"duration":610}}
|
||||
|
||||
data: [DONE]
|
||||
```
|
||||
|
||||
**Flask-Streaming-Beispiel:**
|
||||
|
||||
```python
|
||||
from flask import Flask, Response, stream_with_context
|
||||
import requests
|
||||
import json
|
||||
import os
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
@app.route('/stream-workflow')
|
||||
def stream_workflow():
|
||||
"""Stream workflow execution to the client."""
|
||||
|
||||
def generate():
|
||||
response = requests.post(
|
||||
'https://sim.ai/api/workflows/WORKFLOW_ID/execute',
|
||||
headers={
|
||||
'Content-Type': 'application/json',
|
||||
'X-API-Key': os.getenv('SIM_API_KEY')
|
||||
},
|
||||
json={
|
||||
'message': 'Generate a story',
|
||||
'stream': True,
|
||||
'selectedOutputs': ['agent1.content']
|
||||
},
|
||||
stream=True
|
||||
)
|
||||
|
||||
for line in response.iter_lines():
|
||||
if line:
|
||||
decoded_line = line.decode('utf-8')
|
||||
if decoded_line.startswith('data: '):
|
||||
data = decoded_line[6:] # Remove 'data: ' prefix
|
||||
|
||||
if data == '[DONE]':
|
||||
break
|
||||
|
||||
try:
|
||||
parsed = json.loads(data)
|
||||
if 'chunk' in parsed:
|
||||
yield f"data: {json.dumps(parsed)}\n\n"
|
||||
elif parsed.get('event') == 'done':
|
||||
yield f"data: {json.dumps(parsed)}\n\n"
|
||||
print("Execution complete:", parsed.get('metadata'))
|
||||
except json.JSONDecodeError:
|
||||
pass
|
||||
|
||||
return Response(
|
||||
stream_with_context(generate()),
|
||||
mimetype='text/event-stream'
|
||||
)
|
||||
|
||||
if __name__ == '__main__':
|
||||
app.run(debug=True)
|
||||
```
|
||||
|
||||
### Umgebungskonfiguration
|
||||
|
||||
Konfigurieren Sie den Client mit Umgebungsvariablen:
|
||||
|
||||
<Tabs items={['Development', 'Production']}>
|
||||
<Tab value="Development">
|
||||
|
||||
```python
|
||||
import os
|
||||
from simstudio import SimStudioClient
|
||||
|
||||
# Development configuration
|
||||
client = SimStudioClient(
|
||||
api_key=os.getenv("SIM_API_KEY")
|
||||
base_url=os.getenv("SIM_BASE_URL", "https://sim.ai")
|
||||
)
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab value="Production">
|
||||
|
||||
```python
|
||||
import os
|
||||
from simstudio import SimStudioClient
|
||||
|
||||
# Production configuration with error handling
|
||||
api_key = os.getenv("SIM_API_KEY")
|
||||
if not api_key:
|
||||
raise ValueError("SIM_API_KEY environment variable is required")
|
||||
|
||||
client = SimStudioClient(
|
||||
api_key=api_key,
|
||||
base_url=os.getenv("SIM_BASE_URL", "https://sim.ai")
|
||||
)
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Ihren API-Schlüssel erhalten
|
||||
|
||||
<Steps>
|
||||
<Step title="Bei Sim anmelden">
|
||||
Navigieren Sie zu [Sim](https://sim.ai) und melden Sie sich in Ihrem Konto an.
|
||||
</Step>
|
||||
<Step title="Workflow öffnen">
|
||||
Navigieren Sie zu dem Workflow, den Sie programmatisch ausführen möchten.
|
||||
</Step>
|
||||
<Step title="Workflow bereitstellen">
|
||||
Klicken Sie auf "Bereitstellen", um Ihren Workflow bereitzustellen, falls dies noch nicht geschehen ist.
|
||||
</Step>
|
||||
<Step title="API-Schlüssel erstellen oder auswählen">
|
||||
Wählen oder erstellen Sie während des Bereitstellungsprozesses einen API-Schlüssel.
|
||||
</Step>
|
||||
<Step title="API-Schlüssel kopieren">
|
||||
Kopieren Sie den API-Schlüssel, um ihn in Ihrer Python-Anwendung zu verwenden.
|
||||
</Step>
|
||||
</Steps>
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- Python 3.8+
|
||||
- requests >= 2.25.0
|
||||
|
||||
## Lizenz
|
||||
|
||||
Apache-2.0
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,154 @@
|
||||
---
|
||||
title: Docker
|
||||
description: Sim mit Docker Compose bereitstellen
|
||||
---
|
||||
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
## Schnellstart
|
||||
|
||||
```bash
|
||||
# Clone and start
|
||||
git clone https://github.com/simstudioai/sim.git && cd sim
|
||||
docker compose -f docker-compose.prod.yml up -d
|
||||
```
|
||||
|
||||
Öffnen Sie [http://localhost:3000](http://localhost:3000)
|
||||
|
||||
## Produktionseinrichtung
|
||||
|
||||
### 1. Umgebung konfigurieren
|
||||
|
||||
```bash
|
||||
# Generate secrets
|
||||
cat > .env << EOF
|
||||
DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio
|
||||
BETTER_AUTH_SECRET=$(openssl rand -hex 32)
|
||||
ENCRYPTION_KEY=$(openssl rand -hex 32)
|
||||
INTERNAL_API_SECRET=$(openssl rand -hex 32)
|
||||
NEXT_PUBLIC_APP_URL=https://sim.yourdomain.com
|
||||
BETTER_AUTH_URL=https://sim.yourdomain.com
|
||||
EOF
|
||||
```
|
||||
|
||||
### 2. Dienste starten
|
||||
|
||||
```bash
|
||||
docker compose -f docker-compose.prod.yml up -d
|
||||
```
|
||||
|
||||
### 3. SSL einrichten
|
||||
|
||||
<Tabs items={['Caddy (Empfohlen)', 'Nginx + Certbot']}>
|
||||
<Tab value="Caddy (Empfohlen)">
|
||||
Caddy verwaltet SSL-Zertifikate automatisch.
|
||||
|
||||
```bash
|
||||
# Install Caddy
|
||||
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
|
||||
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
|
||||
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
|
||||
sudo apt update && sudo apt install caddy
|
||||
```
|
||||
|
||||
Erstellen Sie `/etc/caddy/Caddyfile`:
|
||||
|
||||
```
|
||||
sim.yourdomain.com {
|
||||
reverse_proxy localhost:3000
|
||||
|
||||
handle /socket.io/* {
|
||||
reverse_proxy localhost:3002
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
```bash
|
||||
sudo systemctl restart caddy
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab value="Nginx + Certbot">
|
||||
|
||||
```bash
|
||||
# Install
|
||||
sudo apt install nginx certbot python3-certbot-nginx -y
|
||||
|
||||
# Create /etc/nginx/sites-available/sim
|
||||
server {
|
||||
listen 80;
|
||||
server_name sim.yourdomain.com;
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection 'upgrade';
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
}
|
||||
|
||||
location /socket.io/ {
|
||||
proxy_pass http://127.0.0.1:3002;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
}
|
||||
}
|
||||
|
||||
# Enable and get certificate
|
||||
sudo ln -s /etc/nginx/sites-available/sim /etc/nginx/sites-enabled/
|
||||
sudo certbot --nginx -d sim.yourdomain.com
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Ollama
|
||||
|
||||
```bash
|
||||
# With GPU
|
||||
docker compose -f docker-compose.ollama.yml --profile gpu --profile setup up -d
|
||||
|
||||
# CPU only
|
||||
docker compose -f docker-compose.ollama.yml --profile cpu --profile setup up -d
|
||||
```
|
||||
|
||||
Zusätzliche Modelle herunterladen:
|
||||
|
||||
```bash
|
||||
docker compose -f docker-compose.ollama.yml exec ollama ollama pull llama3.2
|
||||
```
|
||||
|
||||
### Externes Ollama
|
||||
|
||||
Wenn Ollama auf Ihrem Host-Rechner läuft (nicht in Docker):
|
||||
|
||||
```bash
|
||||
# macOS/Windows
|
||||
OLLAMA_URL=http://host.docker.internal:11434 docker compose -f docker-compose.prod.yml up -d
|
||||
|
||||
# Linux - use your host IP
|
||||
OLLAMA_URL=http://192.168.1.100:11434 docker compose -f docker-compose.prod.yml up -d
|
||||
```
|
||||
|
||||
<Callout type="warning">
|
||||
Innerhalb von Docker bezieht sich `localhost` auf den Container, nicht auf Ihren Host. Verwenden Sie `host.docker.internal` oder die IP-Adresse Ihres Hosts.
|
||||
</Callout>
|
||||
|
||||
## Befehle
|
||||
|
||||
```bash
|
||||
# View logs
|
||||
docker compose -f docker-compose.prod.yml logs -f simstudio
|
||||
|
||||
# Stop
|
||||
docker compose -f docker-compose.prod.yml down
|
||||
|
||||
# Update
|
||||
docker compose -f docker-compose.prod.yml pull && docker compose -f docker-compose.prod.yml up -d
|
||||
|
||||
# Backup database
|
||||
docker compose -f docker-compose.prod.yml exec db pg_dump -U postgres simstudio > backup.sql
|
||||
```
|
||||
@@ -0,0 +1,86 @@
|
||||
---
|
||||
title: Umgebungsvariablen
|
||||
description: Konfigurationsreferenz für Sim
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
## Erforderlich
|
||||
|
||||
| Variable | Beschreibung |
|
||||
|----------|-------------|
|
||||
| `DATABASE_URL` | PostgreSQL-Verbindungszeichenfolge |
|
||||
| `BETTER_AUTH_SECRET` | Auth-Secret (32 Hex-Zeichen): `openssl rand -hex 32` |
|
||||
| `BETTER_AUTH_URL` | Ihre App-URL |
|
||||
| `ENCRYPTION_KEY` | Verschlüsselungsschlüssel (32 Hex-Zeichen): `openssl rand -hex 32` |
|
||||
| `INTERNAL_API_SECRET` | Internes API-Secret (32 Hex-Zeichen): `openssl rand -hex 32` |
|
||||
| `NEXT_PUBLIC_APP_URL` | Öffentliche App-URL |
|
||||
| `NEXT_PUBLIC_SOCKET_URL` | Optional. WebSocket-URL — verwendet standardmäßig den Seitenursprung; nur setzen, wenn Realtime auf einem separaten Host läuft. |
|
||||
|
||||
## KI-Anbieter
|
||||
|
||||
| Variable | Anbieter |
|
||||
|----------|----------|
|
||||
| `OPENAI_API_KEY` | OpenAI |
|
||||
| `ANTHROPIC_API_KEY_1` | Anthropic Claude |
|
||||
| `GEMINI_API_KEY_1` | Google Gemini |
|
||||
| `MISTRAL_API_KEY` | Mistral |
|
||||
| `OLLAMA_URL` | Ollama (Standard: `http://localhost:11434`) |
|
||||
|
||||
<Callout type="info">
|
||||
Für Lastausgleich fügen Sie mehrere Schlüssel mit den Suffixen `_1`, `_2`, `_3` hinzu (z.B. `OPENAI_API_KEY_1`, `OPENAI_API_KEY_2`). Funktioniert mit OpenAI, Anthropic und Gemini.
|
||||
</Callout>
|
||||
|
||||
<Callout type="info">
|
||||
In Docker verwenden Sie `OLLAMA_URL=http://host.docker.internal:11434` für Ollama auf dem Host-System.
|
||||
</Callout>
|
||||
|
||||
### Azure OpenAI
|
||||
|
||||
| Variable | Beschreibung |
|
||||
|----------|-------------|
|
||||
| `AZURE_OPENAI_API_KEY` | Azure OpenAI API-Schlüssel |
|
||||
| `AZURE_OPENAI_ENDPOINT` | Azure OpenAI Endpoint-URL |
|
||||
| `AZURE_OPENAI_API_VERSION` | API-Version (z.B. `2024-02-15-preview`) |
|
||||
|
||||
### vLLM (Selbst-gehostet)
|
||||
|
||||
| Variable | Beschreibung |
|
||||
|----------|-------------|
|
||||
| `VLLM_BASE_URL` | vLLM-Server-URL (z.B. `http://localhost:8000/v1`) |
|
||||
| `VLLM_API_KEY` | Optionaler Bearer-Token für vLLM |
|
||||
|
||||
## OAuth-Anbieter
|
||||
|
||||
| Variable | Beschreibung |
|
||||
|----------|-------------|
|
||||
| `GOOGLE_CLIENT_ID` | Google OAuth Client-ID |
|
||||
| `GOOGLE_CLIENT_SECRET` | Google OAuth Client-Secret |
|
||||
| `GITHUB_CLIENT_ID` | GitHub OAuth Client-ID |
|
||||
| `GITHUB_CLIENT_SECRET` | GitHub OAuth Client-Secret |
|
||||
|
||||
## Optional
|
||||
|
||||
| Variable | Beschreibung |
|
||||
|----------|-------------|
|
||||
| `API_ENCRYPTION_KEY` | Verschlüsselt gespeicherte API-Schlüssel (32 Hex-Zeichen): `openssl rand -hex 32` |
|
||||
| `COPILOT_API_KEY` | API-Schlüssel für Copilot-Funktionen |
|
||||
| `ADMIN_API_KEY` | Admin-API-Schlüssel für GitOps-Operationen |
|
||||
| `RESEND_API_KEY` | E-Mail-Dienst für Benachrichtigungen |
|
||||
| `ALLOWED_LOGIN_DOMAINS` | Registrierungen auf Domains beschränken (durch Kommas getrennt) |
|
||||
| `ALLOWED_LOGIN_EMAILS` | Registrierungen auf bestimmte E-Mails beschränken (durch Kommas getrennt) |
|
||||
| `DISABLE_REGISTRATION` | Auf `true` setzen, um neue Benutzerregistrierungen zu deaktivieren |
|
||||
|
||||
## Beispiel .env
|
||||
|
||||
```bash
|
||||
DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio
|
||||
BETTER_AUTH_SECRET=<openssl rand -hex 32>
|
||||
BETTER_AUTH_URL=https://sim.yourdomain.com
|
||||
ENCRYPTION_KEY=<openssl rand -hex 32>
|
||||
INTERNAL_API_SECRET=<openssl rand -hex 32>
|
||||
NEXT_PUBLIC_APP_URL=https://sim.yourdomain.com
|
||||
OPENAI_API_KEY=sk-...
|
||||
```
|
||||
|
||||
Siehe `apps/sim/.env.example` für alle Optionen.
|
||||
@@ -0,0 +1,65 @@
|
||||
---
|
||||
title: Self-Hosting
|
||||
description: Stellen Sie Sim auf Ihrer eigenen Infrastruktur bereit
|
||||
---
|
||||
|
||||
import { Card, Cards } from 'fumadocs-ui/components/card'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Stellen Sie Sim auf Ihrer eigenen Infrastruktur mit Docker oder Kubernetes bereit.
|
||||
|
||||
## Anforderungen
|
||||
|
||||
| Ressource | Klein | Standard | Produktion |
|
||||
|----------|-------|----------|------------|
|
||||
| CPU | 2 Kerne | 4 Kerne | 8+ Kerne |
|
||||
| RAM | 12 GB | 16 GB | 32+ GB |
|
||||
| Speicher | 20 GB SSD | 50 GB SSD | 100+ GB SSD |
|
||||
| Docker | 20.10+ | 20.10+ | Neueste Version |
|
||||
|
||||
**Klein**: Entwicklung, Tests, Einzelnutzer (1-5 Nutzer)
|
||||
**Standard**: Teams (5-50 Nutzer), moderate Arbeitslasten
|
||||
**Produktion**: Große Teams (50+ Nutzer), Hochverfügbarkeit, intensive Workflow-Ausführung
|
||||
|
||||
<Callout type="info">
|
||||
Die Ressourcenanforderungen werden durch Workflow-Ausführung (isolated-vm Sandboxing), Dateiverarbeitung (In-Memory-Dokumentenparsing) und Vektoroperationen (pgvector) bestimmt. Arbeitsspeicher ist typischerweise der limitierende Faktor, nicht CPU. Produktionsdaten zeigen, dass die Hauptanwendung durchschnittlich 4-8 GB und bei hoher Last bis zu 12 GB benötigt.
|
||||
</Callout>
|
||||
|
||||
## Schnellstart
|
||||
|
||||
```bash
|
||||
git clone https://github.com/simstudioai/sim.git && cd sim
|
||||
docker compose -f docker-compose.prod.yml up -d
|
||||
```
|
||||
|
||||
Öffnen Sie [http://localhost:3000](http://localhost:3000)
|
||||
|
||||
## Bereitstellungsoptionen
|
||||
|
||||
<Cards>
|
||||
<Card title="Docker" href="/self-hosting/docker">
|
||||
Bereitstellung mit Docker Compose auf jedem Server
|
||||
</Card>
|
||||
<Card title="Kubernetes" href="/self-hosting/kubernetes">
|
||||
Bereitstellung mit Helm auf Kubernetes-Clustern
|
||||
</Card>
|
||||
<Card title="Cloud-Plattformen" href="/self-hosting/platforms">
|
||||
Anleitungen für Railway, DigitalOcean, AWS, Azure, GCP
|
||||
</Card>
|
||||
</Cards>
|
||||
|
||||
## Architektur
|
||||
|
||||
| Komponente | Port | Beschreibung |
|
||||
|-----------|------|-------------|
|
||||
| simstudio | 3000 | Hauptanwendung |
|
||||
| realtime | 3002 | WebSocket-Server |
|
||||
| db | 5432 | PostgreSQL mit pgvector |
|
||||
| migrations | - | Datenbank-Migrationen (werden einmal ausgeführt) |
|
||||
|
||||
| Komponente | Port | Beschreibung |
|
||||
|-----------|------|-------------|
|
||||
| simstudio | 3000 | Hauptanwendung |
|
||||
| realtime | 3002 | WebSocket-Server |
|
||||
| db | 5432 | PostgreSQL mit pgvector |
|
||||
| migrations | - | Datenbankmigrationen (wird einmal ausgeführt) |
|
||||
@@ -0,0 +1,133 @@
|
||||
---
|
||||
title: Kubernetes
|
||||
description: Sim mit Helm bereitstellen
|
||||
---
|
||||
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- Kubernetes 1.19+
|
||||
- Helm 3.0+
|
||||
- PV-Provisioner-Unterstützung
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
# Clone repo
|
||||
git clone https://github.com/simstudioai/sim.git && cd sim
|
||||
|
||||
# Generate secrets
|
||||
BETTER_AUTH_SECRET=$(openssl rand -hex 32)
|
||||
ENCRYPTION_KEY=$(openssl rand -hex 32)
|
||||
INTERNAL_API_SECRET=$(openssl rand -hex 32)
|
||||
|
||||
# Install
|
||||
helm install sim ./helm/sim \
|
||||
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
|
||||
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
|
||||
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
|
||||
--namespace simstudio --create-namespace
|
||||
```
|
||||
|
||||
## Cloud-spezifische Werte
|
||||
|
||||
<Tabs items={['AWS EKS', 'Azure AKS', 'GCP GKE']}>
|
||||
<Tab value="AWS EKS">
|
||||
|
||||
```bash
|
||||
helm install sim ./helm/sim \
|
||||
--values ./helm/sim/examples/values-aws.yaml \
|
||||
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
|
||||
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
|
||||
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
|
||||
--set app.env.NEXT_PUBLIC_APP_URL="https://sim.yourdomain.com" \
|
||||
--namespace simstudio --create-namespace
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab value="Azure AKS">
|
||||
|
||||
```bash
|
||||
helm install sim ./helm/sim \
|
||||
--values ./helm/sim/examples/values-azure.yaml \
|
||||
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
|
||||
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
|
||||
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
|
||||
--set app.env.NEXT_PUBLIC_APP_URL="https://sim.yourdomain.com" \
|
||||
--namespace simstudio --create-namespace
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab value="GCP GKE">
|
||||
|
||||
```bash
|
||||
helm install sim ./helm/sim \
|
||||
--values ./helm/sim/examples/values-gcp.yaml \
|
||||
--set app.env.BETTER_AUTH_SECRET="$BETTER_AUTH_SECRET" \
|
||||
--set app.env.ENCRYPTION_KEY="$ENCRYPTION_KEY" \
|
||||
--set app.env.INTERNAL_API_SECRET="$INTERNAL_API_SECRET" \
|
||||
--set app.env.NEXT_PUBLIC_APP_URL="https://sim.yourdomain.com" \
|
||||
--namespace simstudio --create-namespace
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
## Schlüsselkonfiguration
|
||||
|
||||
```yaml
|
||||
# Custom values.yaml
|
||||
app:
|
||||
replicaCount: 2
|
||||
env:
|
||||
NEXT_PUBLIC_APP_URL: "https://sim.yourdomain.com"
|
||||
OPENAI_API_KEY: "sk-..."
|
||||
|
||||
postgresql:
|
||||
persistence:
|
||||
size: 50Gi
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
className: nginx
|
||||
tls:
|
||||
enabled: true
|
||||
app:
|
||||
host: sim.yourdomain.com
|
||||
```
|
||||
|
||||
Siehe `helm/sim/values.yaml` für alle Optionen.
|
||||
|
||||
## Externe Datenbank
|
||||
|
||||
```yaml
|
||||
postgresql:
|
||||
enabled: false
|
||||
|
||||
externalDatabase:
|
||||
enabled: true
|
||||
host: "your-db-host"
|
||||
port: 5432
|
||||
username: "postgres"
|
||||
password: "your-password"
|
||||
database: "simstudio"
|
||||
sslMode: "require"
|
||||
```
|
||||
|
||||
## Befehle
|
||||
|
||||
```bash
|
||||
# Port forward for local access
|
||||
kubectl port-forward deployment/sim-sim-app 3000:3000 -n simstudio
|
||||
|
||||
# View logs
|
||||
kubectl logs -l app.kubernetes.io/component=app -n simstudio --tail=100
|
||||
|
||||
# Upgrade
|
||||
helm upgrade sim ./helm/sim --namespace simstudio
|
||||
|
||||
# Uninstall
|
||||
helm uninstall sim --namespace simstudio
|
||||
```
|
||||
@@ -0,0 +1,123 @@
|
||||
---
|
||||
title: Cloud-Plattformen
|
||||
description: Sim auf Cloud-Plattformen bereitstellen
|
||||
---
|
||||
|
||||
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
## Railway
|
||||
|
||||
Bereitstellung mit einem Klick und automatischer PostgreSQL-Bereitstellung.
|
||||
|
||||
[
|
||||
|
||||

|
||||
|
||||
](https://railway.com/new/template/sim-studio)
|
||||
|
||||
Nach der Bereitstellung fügen Sie Umgebungsvariablen im Railway-Dashboard hinzu:
|
||||
- `BETTER_AUTH_SECRET`, `ENCRYPTION_KEY`, `INTERNAL_API_SECRET` (automatisch generiert)
|
||||
- `OPENAI_API_KEY` oder andere KI-Anbieter-Schlüssel
|
||||
- Benutzerdefinierte Domain in Einstellungen → Netzwerk
|
||||
|
||||
## VPS-Bereitstellung
|
||||
|
||||
Für DigitalOcean, AWS EC2, Azure VMs oder jeden Linux-Server:
|
||||
|
||||
<Tabs items={['DigitalOcean', 'AWS EC2', 'Azure VM']}>
|
||||
<Tab value="DigitalOcean">
|
||||
**Empfohlen:** 16 GB RAM Droplet, Ubuntu 24.04
|
||||
|
||||
```bash
|
||||
# Create Droplet via console, then SSH in
|
||||
ssh root@your-droplet-ip
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab value="AWS EC2">
|
||||
**Empfohlen:** t3.xlarge (16 GB RAM), Ubuntu 24.04
|
||||
|
||||
```bash
|
||||
ssh -i your-key.pem ubuntu@your-ec2-ip
|
||||
```
|
||||
|
||||
</Tab>
|
||||
<Tab value="Azure VM">
|
||||
**Empfohlen:** Standard_D4s_v3 (16 GB RAM), Ubuntu 24.04
|
||||
|
||||
```bash
|
||||
ssh azureuser@your-vm-ip
|
||||
```
|
||||
|
||||
</Tab>
|
||||
</Tabs>
|
||||
|
||||
### Docker installieren
|
||||
|
||||
```bash
|
||||
# Install Docker (official method)
|
||||
curl -fsSL https://get.docker.com | sudo sh
|
||||
sudo usermod -aG docker $USER
|
||||
|
||||
# Logout and reconnect, then verify
|
||||
docker --version
|
||||
```
|
||||
|
||||
### Sim bereitstellen
|
||||
|
||||
```bash
|
||||
git clone https://github.com/simstudioai/sim.git && cd sim
|
||||
|
||||
# Create .env with secrets
|
||||
cat > .env << EOF
|
||||
DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio
|
||||
BETTER_AUTH_SECRET=$(openssl rand -hex 32)
|
||||
ENCRYPTION_KEY=$(openssl rand -hex 32)
|
||||
INTERNAL_API_SECRET=$(openssl rand -hex 32)
|
||||
NEXT_PUBLIC_APP_URL=https://sim.yourdomain.com
|
||||
BETTER_AUTH_URL=https://sim.yourdomain.com
|
||||
EOF
|
||||
|
||||
# Start
|
||||
docker compose -f docker-compose.prod.yml up -d
|
||||
```
|
||||
|
||||
### SSL mit Caddy
|
||||
|
||||
```bash
|
||||
# Install Caddy
|
||||
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
|
||||
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
|
||||
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
|
||||
sudo apt update && sudo apt install caddy
|
||||
|
||||
# Configure (replace domain)
|
||||
echo 'sim.yourdomain.com {
|
||||
reverse_proxy localhost:3000
|
||||
handle /socket.io/* {
|
||||
reverse_proxy localhost:3002
|
||||
}
|
||||
}' | sudo tee /etc/caddy/Caddyfile
|
||||
|
||||
sudo systemctl restart caddy
|
||||
```
|
||||
|
||||
Richten Sie den DNS A-Eintrag Ihrer Domain auf die IP-Adresse Ihres Servers.
|
||||
|
||||
## Kubernetes (EKS, AKS, GKE)
|
||||
|
||||
Siehe den [Kubernetes-Leitfaden](/self-hosting/kubernetes) für Helm-Deployment auf verwaltetem Kubernetes.
|
||||
|
||||
## Verwaltete Datenbank (Optional)
|
||||
|
||||
Für den Produktivbetrieb sollten Sie einen verwalteten PostgreSQL-Dienst verwenden:
|
||||
|
||||
- **AWS RDS** / **Azure Database** / **Cloud SQL** - Aktivieren Sie die pgvector-Erweiterung
|
||||
- **Supabase** / **Neon** - pgvector enthalten
|
||||
|
||||
Setzen Sie `DATABASE_URL` in Ihrer Umgebung:
|
||||
|
||||
```bash
|
||||
DATABASE_URL="postgresql://user:pass@host:5432/db?sslmode=require"
|
||||
```
|
||||
@@ -0,0 +1,113 @@
|
||||
---
|
||||
title: Fehlerbehebung
|
||||
description: Häufige Probleme und Lösungen
|
||||
---
|
||||
|
||||
## Datenbankverbindung fehlgeschlagen
|
||||
|
||||
```bash
|
||||
# Check database is running
|
||||
docker compose ps db
|
||||
|
||||
# Test connection
|
||||
docker compose exec db psql -U postgres -c "SELECT 1"
|
||||
```
|
||||
|
||||
Überprüfen Sie das `DATABASE_URL` Format: `postgresql://user:pass@host:5432/database`
|
||||
|
||||
## Ollama-Modelle werden nicht angezeigt
|
||||
|
||||
In Docker ist `localhost` = der Container, nicht Ihr Host-Rechner.
|
||||
|
||||
```bash
|
||||
# For host-machine Ollama, use:
|
||||
OLLAMA_URL=http://host.docker.internal:11434 # macOS/Windows
|
||||
OLLAMA_URL=http://192.168.1.x:11434 # Linux (use actual IP)
|
||||
```
|
||||
|
||||
## WebSocket/Echtzeit funktioniert nicht
|
||||
|
||||
1. Stellen Sie sicher, dass der Reverse Proxy `/socket.io` an den Realtime-Service (Standardport 3002) weiterleitet. `NEXT_PUBLIC_SOCKET_URL` ist nur erforderlich, wenn Realtime auf einem separaten Host läuft.
|
||||
2. Überprüfen Sie, ob der Echtzeit-Dienst läuft: `docker compose ps realtime`
|
||||
3. Stellen Sie sicher, dass der Reverse-Proxy WebSocket-Upgrades weiterleitet (siehe [Docker-Anleitung](/self-hosting/docker))
|
||||
|
||||
## 502 Bad Gateway
|
||||
|
||||
```bash
|
||||
# Check app is running
|
||||
docker compose ps simstudio
|
||||
docker compose logs simstudio
|
||||
|
||||
# Common causes: out of memory, database not ready
|
||||
```
|
||||
|
||||
## Migrationsfehler
|
||||
|
||||
```bash
|
||||
# View migration logs
|
||||
docker compose logs migrations
|
||||
|
||||
# Run manually
|
||||
docker compose exec simstudio bun run db:migrate
|
||||
```
|
||||
|
||||
## pgvector nicht gefunden
|
||||
|
||||
Verwenden Sie das richtige PostgreSQL-Image:
|
||||
|
||||
```yaml
|
||||
image: pgvector/pgvector:pg17 # NOT postgres:17
|
||||
```
|
||||
|
||||
## Zertifikatsfehler (CERT_HAS_EXPIRED)
|
||||
|
||||
Wenn Sie SSL-Zertifikatsfehler beim Aufrufen externer APIs sehen:
|
||||
|
||||
```bash
|
||||
# Update CA certificates in container
|
||||
docker compose exec simstudio apt-get update && apt-get install -y ca-certificates
|
||||
|
||||
# Or set in environment (not recommended for production)
|
||||
NODE_TLS_REJECT_UNAUTHORIZED=0
|
||||
```
|
||||
|
||||
## Leere Seite nach dem Login
|
||||
|
||||
1. Überprüfen Sie die Browser-Konsole auf Fehler
|
||||
2. Stellen Sie sicher, dass `NEXT_PUBLIC_APP_URL` mit Ihrer tatsächlichen Domain übereinstimmt
|
||||
3. Löschen Sie Browser-Cookies und lokalen Speicher
|
||||
4. Prüfen Sie, ob alle Dienste laufen: `docker compose ps`
|
||||
|
||||
## Windows-spezifische Probleme
|
||||
|
||||
**Turbopack-Fehler unter Windows:**
|
||||
|
||||
```bash
|
||||
# Use WSL2 for better compatibility
|
||||
wsl --install
|
||||
|
||||
# Or disable Turbopack in package.json
|
||||
# Change "next dev --turbopack" to "next dev"
|
||||
```
|
||||
|
||||
**Zeilenende-Probleme:**
|
||||
|
||||
```bash
|
||||
# Configure git to use LF
|
||||
git config --global core.autocrlf input
|
||||
```
|
||||
|
||||
## Logs anzeigen
|
||||
|
||||
```bash
|
||||
# All services
|
||||
docker compose logs -f
|
||||
|
||||
# Specific service
|
||||
docker compose logs -f simstudio
|
||||
```
|
||||
|
||||
## Hilfe erhalten
|
||||
|
||||
- [GitHub Issues](https://github.com/simstudioai/sim/issues)
|
||||
- [Discord](https://discord.gg/Hr4UWYEcTT)
|
||||
@@ -0,0 +1,134 @@
|
||||
---
|
||||
title: Agent-Fähigkeiten
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout'
|
||||
|
||||
Agent-Fähigkeiten sind wiederverwendbare Anweisungspakete, die Ihren KI-Agenten spezialisierte Funktionen verleihen. Basierend auf dem offenen [Agent Skills](https://agentskills.io)-Format ermöglichen Fähigkeiten Ihnen, Fachwissen, Arbeitsabläufe und Best Practices zu erfassen, die Agenten bei Bedarf laden können.
|
||||
|
||||
## Wie Fähigkeiten funktionieren
|
||||
|
||||
Fähigkeiten nutzen **progressive Offenlegung**, um den Kontext des Agenten schlank zu halten:
|
||||
|
||||
1. **Entdeckung** — Nur Fähigkeitsnamen und Beschreibungen werden in den System-Prompt des Agenten aufgenommen (~50-100 Token jeweils)
|
||||
2. **Aktivierung** — Wenn der Agent entscheidet, dass eine Fähigkeit relevant ist, ruft er das `load_skill`-Tool auf, um die vollständigen Anweisungen in den Kontext zu laden
|
||||
3. **Ausführung** — Der Agent folgt den geladenen Anweisungen, um die Aufgabe zu erledigen
|
||||
|
||||
Das bedeutet, Sie können viele Fähigkeiten an einen Agenten anhängen, ohne dessen Kontextfenster aufzublähen. Der Agent lädt nur das, was er benötigt.
|
||||
|
||||
## Fähigkeiten erstellen
|
||||
|
||||
Gehen Sie zu **Einstellungen** und wählen Sie **Fähigkeiten** im Bereich Tools aus.
|
||||
|
||||

|
||||
|
||||
Klicken Sie auf **Hinzufügen**, um eine neue Fähigkeit mit drei Feldern zu erstellen:
|
||||
|
||||
| Feld | Beschreibung |
|
||||
|-------|-------------|
|
||||
| **Name** | Eine Kennung im Kebab-Case-Format (z. B. `sql-expert`, `code-reviewer`). Maximal 64 Zeichen. |
|
||||
| **Beschreibung** | Eine kurze Erklärung, was die Fähigkeit tut und wann sie verwendet werden soll. Dies liest der Agent, um zu entscheiden, ob er die Fähigkeit aktiviert. Maximal 1024 Zeichen. |
|
||||
| **Inhalt** | Die vollständigen Fähigkeitsanweisungen in Markdown. Diese werden geladen, wenn der Agent die Fähigkeit aktiviert. |
|
||||
|
||||
<Callout type="info">
|
||||
Die Beschreibung ist entscheidend — sie ist das Einzige, was der Agent sieht, bevor er entscheidet, eine Fähigkeit zu laden. Seien Sie spezifisch darüber, wann und warum die Fähigkeit verwendet werden sollte.
|
||||
</Callout>
|
||||
|
||||
### Gute Skill-Inhalte schreiben
|
||||
|
||||
Skill-Inhalte folgen denselben Konventionen wie [SKILL.md-Dateien](https://agentskills.io/specification):
|
||||
|
||||
```markdown
|
||||
# SQL Expert
|
||||
|
||||
## When to use this skill
|
||||
Use when the user asks you to write, optimize, or debug SQL queries.
|
||||
|
||||
## Instructions
|
||||
1. Always ask which database engine (PostgreSQL, MySQL, SQLite)
|
||||
2. Use CTEs over subqueries for readability
|
||||
3. Add index recommendations when relevant
|
||||
4. Explain query plans for optimization requests
|
||||
|
||||
## Common Patterns
|
||||
...
|
||||
```
|
||||
|
||||
**Empfohlene Struktur:**
|
||||
- **Wann verwenden** — Spezifische Auslöser und Szenarien
|
||||
- **Anweisungen** — Schritt-für-Schritt-Anleitung mit nummerierten Listen
|
||||
- **Beispiele** — Eingabe-/Ausgabe-Beispiele, die das erwartete Verhalten zeigen
|
||||
- **Häufige Muster** — Wiederverwendbare Ansätze für häufige Aufgaben
|
||||
- **Sonderfälle** — Fallstricke und besondere Überlegungen
|
||||
|
||||
Halten Sie Skills fokussiert und unter 500 Zeilen. Wenn ein Skill zu groß wird, teilen Sie ihn in mehrere spezialisierte Skills auf.
|
||||
|
||||
## Skills zu einem Agenten hinzufügen
|
||||
|
||||
Öffnen Sie einen beliebigen **Agent**-Block und finden Sie das **Skills**-Dropdown unterhalb des Tool-Bereichs. Wählen Sie die Skills aus, auf die der Agent Zugriff haben soll.
|
||||
|
||||

|
||||
|
||||
Ausgewählte Skills erscheinen als Karten, die Sie anklicken können, um sie zu bearbeiten oder zu entfernen.
|
||||
|
||||
### Was zur Laufzeit passiert
|
||||
|
||||
Wenn der Workflow ausgeführt wird:
|
||||
|
||||
1. Der System-Prompt des Agenten enthält einen `<available_skills>`-Abschnitt, der Name und Beschreibung jedes Skills auflistet
|
||||
2. Ein `load_skill`-Tool wird automatisch zu den verfügbaren Tools des Agenten hinzugefügt
|
||||
3. Wenn der Agent feststellt, dass ein Skill für die aktuelle Aufgabe relevant ist, ruft er `load_skill` mit dem Skill-Namen auf
|
||||
4. Der vollständige Skill-Inhalt wird als Tool-Antwort zurückgegeben und gibt dem Agenten detaillierte Anweisungen
|
||||
|
||||
Dies funktioniert über alle unterstützten LLM-Anbieter hinweg — das `load_skill`-Tool verwendet standardmäßiges Tool-Calling, sodass keine anbieterspezifische Konfiguration erforderlich ist.
|
||||
|
||||
## Häufige Anwendungsfälle
|
||||
|
||||
Skills sind besonders wertvoll, wenn Agenten spezialisiertes Wissen oder mehrstufige Workflows benötigen:
|
||||
|
||||
**Domain-Expertise**
|
||||
- `api-integration-expert` — Best Practices für den Aufruf spezifischer APIs (Authentifizierung, Rate Limiting, Fehlerbehandlung)
|
||||
- `data-transformation` — ETL-Muster, Datenbereinigung und Validierungsregeln
|
||||
- `code-reviewer` — Code-Review-Richtlinien spezifisch für die Standards Ihres Teams
|
||||
|
||||
**Workflow-Vorlagen**
|
||||
- `bug-investigation` — Schritt-für-Schritt-Debugging-Methodik (reproduzieren → isolieren → testen → beheben)
|
||||
- `feature-implementation` — Entwicklungs-Workflow von Anforderungen bis zur Bereitstellung
|
||||
- `document-generator` — Vorlagen und Formatierungsregeln für technische Dokumentation
|
||||
|
||||
**Unternehmensspezifisches Wissen**
|
||||
- `our-architecture` — Systemarchitekturdiagramme, Service-Abhängigkeiten und Bereitstellungsprozesse
|
||||
- `style-guide` — Markenrichtlinien, Schreibstil, UI/UX-Muster
|
||||
- `customer-onboarding` — Standardverfahren und häufige Kundenfragen
|
||||
|
||||
**Wann Skills vs. Agentenanweisungen verwendet werden sollten:**
|
||||
- Verwenden Sie **Skills** für Wissen, das über mehrere Workflows hinweg gilt oder sich häufig ändert
|
||||
- Verwenden Sie **Agentenanweisungen** für aufgabenspezifischen Kontext, der für einen einzelnen Agenten einzigartig ist
|
||||
|
||||
## Best Practices
|
||||
|
||||
**Effektive Beschreibungen schreiben**
|
||||
- **Seien Sie spezifisch und keyword-reich** — Statt "Hilft bei SQL", schreiben Sie "Optimierte SQL-Abfragen für PostgreSQL, MySQL und SQLite schreiben, einschließlich Index-Empfehlungen und Abfrageplan-Analyse"
|
||||
- **Aktivierungstrigger einbeziehen** — Erwähnen Sie spezifische Wörter oder Phrasen, die den Skill auslösen sollten (z. B. "Verwenden, wenn der Benutzer PDFs, Formulare oder Dokumentenextraktion erwähnt")
|
||||
- **Unter 200 Wörtern halten** — Agenten scannen Beschreibungen schnell; jedes Wort zählt
|
||||
|
||||
**Skill-Umfang und Organisation**
|
||||
- **Ein Skill pro Domäne** — Ein fokussierter `sql-expert`-Skill funktioniert besser als ein breiter `database-everything`-Skill
|
||||
- **Auf 5-10 Skills pro Agent begrenzen** — Mehr Skills = mehr Entscheidungsaufwand; klein anfangen und bei Bedarf erweitern
|
||||
- **Große Skills aufteilen** — Wenn ein Skill 500 Zeilen überschreitet, in fokussierte Sub-Skills aufteilen
|
||||
|
||||
**Inhaltsstruktur**
|
||||
- **Markdown-Formatierung verwenden** — Überschriften, Listen und Code-Blöcke helfen Agenten beim Parsen und Befolgen von Anweisungen
|
||||
- **Beispiele bereitstellen** — Input/Output-Paare zeigen, damit Agenten das erwartete Verhalten verstehen
|
||||
- **Explizit über Sonderfälle sein** — Gehen Sie nicht davon aus, dass Agenten spezielle Behandlung ableiten werden
|
||||
|
||||
**Testen und Iteration**
|
||||
- **Aktivierung testen** — Führen Sie Ihren Workflow aus und überprüfen Sie, ob der Agent die Skill lädt, wenn erwartet
|
||||
- **Auf Fehlalarme prüfen** — Stellen Sie sicher, dass Skills nicht aktiviert werden, wenn sie es nicht sollten
|
||||
- **Beschreibungen verfeinern** — Wenn eine Skill nicht geladen wird, wenn sie benötigt wird, fügen Sie der Beschreibung weitere Schlüsselwörter hinzu
|
||||
|
||||
## Mehr erfahren
|
||||
|
||||
- [Agent Skills Spezifikation](https://agentskills.io) — Das offene Format für portable Agent-Skills
|
||||
- [Beispiel-Skills](https://github.com/anthropics/skills) — Community-Skill-Beispiele durchsuchen
|
||||
- [Best Practices](https://agentskills.io/what-are-skills) — Effektive Skills schreiben
|
||||
@@ -0,0 +1,195 @@
|
||||
---
|
||||
title: Ahrefs
|
||||
description: SEO-Analyse mit Ahrefs
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="ahrefs"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Ahrefs](https://ahrefs.com/) ist ein führendes SEO-Toolset zur Analyse von Websites, Verfolgung von Rankings, Überwachung von Backlinks und Keyword-Recherche. Es bietet detaillierte Einblicke in Ihre eigene Website sowie in die Ihrer Wettbewerber und hilft Ihnen, datengestützte Entscheidungen zur Verbesserung Ihrer Sichtbarkeit in Suchmaschinen zu treffen.
|
||||
|
||||
Mit der Ahrefs-Integration in Sim können Sie:
|
||||
|
||||
- **Domain Rating & Autorität analysieren**: Überprüfen Sie sofort die Domain Rating (DR) und den Ahrefs Rank jeder Website, um deren Autorität einzuschätzen.
|
||||
- **Backlinks abrufen**: Rufen Sie eine Liste von Backlinks ab, die auf eine Website oder eine bestimmte URL verweisen, mit Details wie Ankertext, DR der verweisenden Seite und mehr.
|
||||
- **Backlink-Statistiken erhalten**: Greifen Sie auf Metriken zu Backlink-Typen (dofollow, nofollow, Text, Bild, Weiterleitung usw.) für eine Domain oder URL zu.
|
||||
- **Organische Keywords erkunden** *(geplant)*: Sehen Sie, für welche Keywords eine Domain rankt und welche Positionen sie in den Google-Suchergebnissen einnimmt.
|
||||
- **Top-Seiten entdecken** *(geplant)*: Identifizieren Sie die leistungsstärksten Seiten nach organischem Traffic und Links.
|
||||
|
||||
Diese Tools ermöglichen es Ihren Agenten, SEO-Recherchen zu automatisieren, Wettbewerber zu überwachen und Berichte zu erstellen – alles als Teil Ihrer Workflow-Automatisierungen. Um die Ahrefs-Integration zu nutzen, benötigen Sie ein Ahrefs Enterprise-Abonnement mit API-Zugang.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Integrieren Sie Ahrefs SEO-Tools in Ihren Workflow. Analysieren Sie Domain-Ratings, Backlinks, organische Keywords, Top-Seiten und mehr. Erfordert einen Ahrefs Enterprise-Plan mit API-Zugang.
|
||||
|
||||
## Tools
|
||||
|
||||
### `ahrefs_domain_rating`
|
||||
|
||||
Erhalten Sie die Domain Rating (DR) und den Ahrefs Rank für eine Zieldomain. Die Domain Rating zeigt die Stärke einer Website
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `target` | string | Ja | Die zu analysierende Zieldomäne (z.B. example.com) |
|
||||
| `date` | string | Nein | Datum für historische Daten im Format YYYY-MM-DD (standardmäßig heute) |
|
||||
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `domainRating` | number | Domain Rating Score (0-100) |
|
||||
| `ahrefsRank` | number | Ahrefs Rank - globales Ranking basierend auf der Stärke des Backlink-Profils |
|
||||
|
||||
### `ahrefs_backlinks`
|
||||
|
||||
Erhalte eine Liste von Backlinks, die auf eine Zieldomäne oder URL verweisen. Liefert Details zu jedem Backlink, einschließlich Quell-URL, Ankertext und Domain Rating.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `target` | string | Ja | Die zu analysierende Zieldomäne oder URL |
|
||||
| `mode` | string | Nein | Analysemodus: domain (gesamte Domäne), prefix (URL-Präfix), subdomains (alle Subdomänen einschließen), exact (exakte URL-Übereinstimmung) |
|
||||
| `date` | string | Nein | Datum für historische Daten im Format YYYY-MM-DD (standardmäßig heute) |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse (Standard: 100) |
|
||||
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für Paginierung |
|
||||
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `backlinks` | array | Liste der Backlinks, die auf das Ziel verweisen |
|
||||
|
||||
### `ahrefs_backlinks_stats`
|
||||
|
||||
Ruft Backlink-Statistiken für eine Zieldomäne oder URL ab. Gibt Gesamtwerte für verschiedene Backlink-Typen zurück, einschließlich Dofollow-, Nofollow-, Text-, Bild- und Weiterleitungslinks.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `target` | string | Ja | Die zu analysierende Zieldomäne oder URL |
|
||||
| `mode` | string | Nein | Analysemodus: domain \(gesamte Domäne\), prefix \(URL-Präfix\), subdomains \(alle Subdomänen einschließen\), exact \(exakte URL-Übereinstimmung\) |
|
||||
| `date` | string | Nein | Datum für historische Daten im Format JJJJ-MM-TT \(standardmäßig heute\) |
|
||||
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `stats` | object | Zusammenfassung der Backlink-Statistiken |
|
||||
|
||||
### `ahrefs_referring_domains`
|
||||
|
||||
Ruft eine Liste von Domänen ab, die auf eine Zieldomäne oder URL verlinken. Gibt eindeutige verweisende Domänen mit ihrem Domain-Rating, Backlink-Anzahl und Entdeckungsdaten zurück.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `target` | string | Ja | Die zu analysierende Zieldomäne oder URL |
|
||||
| `mode` | string | Nein | Analysemodus: domain \(gesamte Domäne\), prefix \(URL-Präfix\), subdomains \(alle Subdomänen einschließen\), exact \(exakte URL-Übereinstimmung\) |
|
||||
| `date` | string | Nein | Datum für historische Daten im Format JJJJ-MM-TT \(standardmäßig heute\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 100\) |
|
||||
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für die Paginierung |
|
||||
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `referringDomains` | array | Liste der Domains, die auf das Ziel verlinken |
|
||||
|
||||
### `ahrefs_organic_keywords`
|
||||
|
||||
Erhalte organische Keywords, für die eine Zieldomain oder URL in den Google-Suchergebnissen rankt. Liefert Keyword-Details einschließlich Suchvolumen, Ranking-Position und geschätztem Traffic.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `target` | string | Ja | Die zu analysierende Zieldomain oder URL |
|
||||
| `country` | string | Nein | Ländercode für Suchergebnisse \(z.B. us, gb, de\). Standard: us |
|
||||
| `mode` | string | Nein | Analysemodus: domain \(gesamte Domain\), prefix \(URL-Präfix\), subdomains \(alle Subdomains einschließen\), exact \(exakte URL-Übereinstimmung\) |
|
||||
| `date` | string | Nein | Datum für historische Daten im Format JJJJ-MM-TT \(standardmäßig heute\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 100\) |
|
||||
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für Paginierung |
|
||||
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `keywords` | array | Liste der organischen Keywords, für die das Ziel rankt |
|
||||
|
||||
### `ahrefs_top_pages`
|
||||
|
||||
Erhalte die Top-Seiten einer Zieldomain, sortiert nach organischem Traffic. Liefert Seiten-URLs mit ihrem Traffic, Keyword-Anzahl und geschätztem Traffic-Wert.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `target` | string | Ja | Die zu analysierende Zieldomäne |
|
||||
| `country` | string | Nein | Ländercode für Verkehrsdaten \(z.B. us, gb, de\). Standard: us |
|
||||
| `mode` | string | Nein | Analysemodus: domain \(gesamte Domäne\), prefix \(URL-Präfix\), subdomains \(alle Subdomänen einschließen\) |
|
||||
| `date` | string | Nein | Datum für historische Daten im Format JJJJ-MM-TT \(standardmäßig heute\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 100\) |
|
||||
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für Paginierung |
|
||||
| `select` | string | Nein | Kommagetrennte Liste der zurückzugebenden Felder \(z.B. url,traffic,keywords,top_keyword,value\). Standard: url,traffic,keywords,top_keyword,value |
|
||||
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pages` | array | Liste der Top-Seiten nach organischem Traffic |
|
||||
|
||||
### `ahrefs_keyword_overview`
|
||||
|
||||
Erhalten Sie detaillierte Metriken für ein Keyword, einschließlich Suchvolumen, Keyword-Schwierigkeit, CPC, Klicks und Traffic-Potenzial.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `keyword` | string | Ja | Das zu analysierende Keyword |
|
||||
| `country` | string | Nein | Ländercode für Keyword-Daten \(z.B. us, gb, de\). Standard: us |
|
||||
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `overview` | object | Keyword-Metriken Übersicht |
|
||||
|
||||
### `ahrefs_broken_backlinks`
|
||||
|
||||
Erhalte eine Liste defekter Backlinks, die auf eine Zieldomäne oder URL verweisen. Nützlich zur Identifizierung von Möglichkeiten zur Link-Wiederherstellung.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `target` | string | Ja | Die zu analysierende Zieldomäne oder URL |
|
||||
| `mode` | string | Nein | Analysemodus: domain \(gesamte Domäne\), prefix \(URL-Präfix\), subdomains \(alle Subdomänen einschließen\), exact \(exakte URL-Übereinstimmung\) |
|
||||
| `date` | string | Nein | Datum für historische Daten im Format JJJJ-MM-TT \(standardmäßig heute\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 100\) |
|
||||
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für Paginierung |
|
||||
| `apiKey` | string | Ja | Ahrefs API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `brokenBacklinks` | array | Liste defekter Backlinks |
|
||||
@@ -0,0 +1,125 @@
|
||||
---
|
||||
title: Airtable
|
||||
description: Airtable lesen, erstellen und aktualisieren
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="airtable"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Airtable](https://airtable.com/) ist eine leistungsstarke cloudbasierte Plattform, die die Funktionalität einer Datenbank mit der Einfachheit einer Tabellenkalkulation verbindet. Sie ermöglicht Benutzern, flexible Datenbanken zur Organisation, Speicherung und Zusammenarbeit an Informationen zu erstellen.
|
||||
|
||||
Mit Airtable können Sie:
|
||||
|
||||
- **Benutzerdefinierte Datenbanken erstellen**: Maßgeschneiderte Lösungen für Projektmanagement, Content-Kalender, Bestandsverfolgung und mehr entwickeln
|
||||
- **Daten visualisieren**: Ihre Informationen als Raster, Kanban-Board, Kalender oder Galerie anzeigen
|
||||
- **Arbeitsabläufe automatisieren**: Auslöser und Aktionen einrichten, um wiederkehrende Aufgaben zu automatisieren
|
||||
- **Mit anderen Tools integrieren**: Verbindung zu Hunderten anderer Anwendungen durch native Integrationen und APIs herstellen
|
||||
|
||||
In Sim ermöglicht die Airtable-Integration Ihren Agenten, programmatisch mit Ihren Airtable-Basen zu interagieren. Dies erlaubt nahtlose Datenoperationen wie das Abrufen von Informationen, Erstellen neuer Datensätze und Aktualisieren vorhandener Daten - alles innerhalb Ihrer Agenten-Workflows. Nutzen Sie Airtable als dynamische Datenquelle oder -ziel für Ihre Agenten, sodass sie im Rahmen ihrer Entscheidungsfindung und Aufgabenausführung auf strukturierte Informationen zugreifen und diese bearbeiten können.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integriert Airtable in den Workflow. Kann Airtable-Datensätze erstellen, abrufen, auflisten oder aktualisieren. Erfordert OAuth. Kann im Trigger-Modus verwendet werden, um einen Workflow auszulösen, wenn eine Aktualisierung an einer Airtable-Tabelle vorgenommen wird.
|
||||
|
||||
## Tools
|
||||
|
||||
### `airtable_list_records`
|
||||
|
||||
Datensätze aus einer Airtable-Tabelle lesen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `baseId` | string | Ja | ID der Airtable-Basis |
|
||||
| `tableId` | string | Ja | ID der Tabelle |
|
||||
| `maxRecords` | number | Nein | Maximale Anzahl der zurückzugebenden Datensätze |
|
||||
| `filterFormula` | string | Nein | Formel zum Filtern von Datensätzen \(z.B. "\(\{Feldname\} = \'Wert\'\)"\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `records` | json | Array der abgerufenen Airtable-Datensätze |
|
||||
|
||||
### `airtable_get_record`
|
||||
|
||||
Einen einzelnen Datensatz aus einer Airtable-Tabelle anhand seiner ID abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `baseId` | string | Ja | ID der Airtable-Basis |
|
||||
| `tableId` | string | Ja | ID oder Name der Tabelle |
|
||||
| `recordId` | string | Ja | ID des abzurufenden Datensatzes |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `record` | json | Abgerufener Airtable-Datensatz mit id, createdTime und fields |
|
||||
| `metadata` | json | Operationsmetadaten einschließlich Datensatzanzahl |
|
||||
|
||||
### `airtable_create_records`
|
||||
|
||||
Neue Datensätze in eine Airtable-Tabelle schreiben
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `baseId` | string | Ja | ID der Airtable-Basis |
|
||||
| `tableId` | string | Ja | ID oder Name der Tabelle |
|
||||
| `records` | json | Ja | Array von zu erstellenden Datensätzen, jeder mit einem `fields` Objekt |
|
||||
| `fields` | string | Nein | Keine Beschreibung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `records` | json | Array der erstellten Airtable-Datensätze |
|
||||
|
||||
### `airtable_update_record`
|
||||
|
||||
Einen vorhandenen Datensatz in einer Airtable-Tabelle nach ID aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `baseId` | string | Ja | ID der Airtable-Basis |
|
||||
| `tableId` | string | Ja | ID oder Name der Tabelle |
|
||||
| `recordId` | string | Ja | ID des zu aktualisierenden Datensatzes |
|
||||
| `fields` | json | Ja | Ein Objekt, das die Feldnamen und ihre neuen Werte enthält |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `record` | json | Aktualisierter Airtable-Datensatz mit ID, Erstellungszeit und Feldern |
|
||||
| `metadata` | json | Operationsmetadaten einschließlich Datensatzanzahl und aktualisierter Feldnamen |
|
||||
|
||||
### `airtable_update_multiple_records`
|
||||
|
||||
Mehrere vorhandene Datensätze in einer Airtable-Tabelle aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `baseId` | string | Ja | ID der Airtable-Basis |
|
||||
| `tableId` | string | Ja | ID oder Name der Tabelle |
|
||||
| `records` | json | Ja | Array von zu aktualisierenden Datensätzen, jeder mit einer `id` und einem `fields`-Objekt |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `records` | json | Array der aktualisierten Airtable-Datensätze |
|
||||
@@ -0,0 +1,63 @@
|
||||
---
|
||||
title: Airweave
|
||||
description: Durchsuchen Sie Ihre synchronisierten Datensammlungen
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="airweave"
|
||||
color="#6366F1"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Airweave](https://airweave.ai/) ist eine KI-gestützte semantische Suchplattform, die Ihnen hilft, Wissen über alle Ihre synchronisierten Datenquellen hinweg zu entdecken und abzurufen. Airweave wurde für moderne Teams entwickelt und ermöglicht schnelle, relevante Suchergebnisse mithilfe neuraler, hybrider oder schlüsselwortbasierter Strategien, die auf Ihre Bedürfnisse zugeschnitten sind.
|
||||
|
||||
Mit Airweave können Sie:
|
||||
|
||||
- **Intelligenter suchen**: Verwenden Sie natürlichsprachliche Abfragen, um Informationen aufzudecken, die in Ihren verbundenen Tools und Datenbanken gespeichert sind
|
||||
- **Ihre Daten vereinheitlichen**: Greifen Sie nahtlos auf Inhalte aus Quellen wie Code, Dokumenten, Chat, E-Mails, Cloud-Dateien und mehr zu
|
||||
- **Abruf anpassen**: Wählen Sie zwischen hybriden (semantisch + Schlüsselwort), neuralen oder Schlüsselwort-Suchstrategien für optimale Ergebnisse
|
||||
- **Recall steigern**: Erweitern Sie Suchanfragen mit KI, um umfassendere Antworten zu finden
|
||||
- **Ergebnisse mit KI neu ordnen**: Priorisieren Sie die relevantesten Antworten mit leistungsstarken Sprachmodellen
|
||||
- **Sofortige Antworten erhalten**: Generieren Sie klare, KI-gestützte Antworten, die aus Ihren Daten synthetisiert werden
|
||||
|
||||
In Sim ermöglicht die Airweave-Integration Ihren Agenten, alle Daten Ihrer Organisation über ein einziges Tool zu durchsuchen, zusammenzufassen und Erkenntnisse zu extrahieren. Nutzen Sie Airweave, um umfassenden, kontextbezogenen Wissensabruf in Ihren Workflows zu ermöglichen – sei es beim Beantworten von Fragen, Erstellen von Zusammenfassungen oder Unterstützen dynamischer Entscheidungsfindung.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Durchsuchen Sie Ihre synchronisierten Datenquellen mit Airweave. Unterstützt semantische Suche mit hybriden, neuralen oder schlüsselwortbasierten Abrufstrategien. Optional können KI-gestützte Antworten aus Suchergebnissen generiert werden.
|
||||
|
||||
## Tools
|
||||
|
||||
### `airweave_search`
|
||||
|
||||
Durchsuchen Sie Ihre synchronisierten Datensammlungen mit Airweave. Unterstützt semantische Suche mit hybriden, neuralen oder schlüsselwortbasierten Abrufstrategien. Optional können KI-gestützte Antworten aus Suchergebnissen generiert werden.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Airweave API-Schlüssel für die Authentifizierung |
|
||||
| `collectionId` | string | Ja | Die lesbare ID der zu durchsuchenden Sammlung |
|
||||
| `query` | string | Ja | Der Suchanfragetext |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 100\) |
|
||||
| `retrievalStrategy` | string | Nein | Abrufstrategie: hybrid \(Standard\), neural oder keyword |
|
||||
| `expandQuery` | boolean | Nein | Abfragevariationen generieren, um die Trefferquote zu verbessern |
|
||||
| `rerank` | boolean | Nein | Ergebnisse für verbesserte Relevanz mithilfe von LLM neu ordnen |
|
||||
| `generateAnswer` | boolean | Nein | Eine natürlichsprachliche Antwort auf die Abfrage generieren |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | Suchergebnisse mit Inhalten, Scores und Metadaten aus Ihren synchronisierten Daten |
|
||||
| ↳ `entity_id` | string | Eindeutige Kennung für die Suchergebnisentität |
|
||||
| ↳ `source_name` | string | Name der Datenquelle \(z. B. "GitHub", "Slack"\) |
|
||||
| ↳ `md_content` | string | Markdown-formatierter Inhalt des Ergebnisses |
|
||||
| ↳ `score` | number | Relevanz-Score aus der Suche |
|
||||
| ↳ `metadata` | object | Zusätzliche Metadaten, die mit dem Ergebnis verknüpft sind |
|
||||
| ↳ `breadcrumbs` | array | Navigationspfad zum Ergebnis innerhalb seiner Quelle |
|
||||
| ↳ `url` | string | URL zum Originalinhalt |
|
||||
| `completion` | string | KI-generierte Antwort auf die Abfrage \(wenn generateAnswer aktiviert ist\) |
|
||||
@@ -0,0 +1,83 @@
|
||||
---
|
||||
title: Apify
|
||||
description: Führe Apify-Akteure aus und rufe Ergebnisse ab
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="apify"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Apify](https://apify.com/) ist eine leistungsstarke Plattform zum Erstellen, Bereitstellen und Ausführen von Web-Automatisierung und Web-Scraping-Akteuren im großen Maßstab. Apify ermöglicht es dir, nützliche Daten von jeder Website zu extrahieren, Arbeitsabläufe zu automatisieren und deine Datenpipelines nahtlos zu verbinden.
|
||||
|
||||
Mit Apify kannst du:
|
||||
|
||||
- **Vorgefertigte oder benutzerdefinierte Akteure ausführen**: Integriere öffentliche Akteure oder entwickle deine eigenen, um eine breite Palette von Webdatenextraktions- und Browser-Aufgaben zu automatisieren.
|
||||
- **Datensätze abrufen**: Greife auf strukturierte Datensätze zu, die von Akteuren in Echtzeit gesammelt wurden, und verwalte sie.
|
||||
- **Web-Automatisierung skalieren**: Nutze Cloud-Infrastruktur, um Aufgaben zuverlässig, asynchron oder synchron mit robuster Fehlerbehandlung auszuführen.
|
||||
|
||||
In Sim ermöglicht die Apify-Integration deinen Agenten, grundlegende Apify-Operationen programmatisch durchzuführen:
|
||||
|
||||
- **Akteur ausführen (Synchron)**: Verwende `apify_run_actor_sync`, um einen Apify-Akteur zu starten und auf dessen Abschluss zu warten, wobei die Ergebnisse sofort nach Beendigung des Laufs abgerufen werden.
|
||||
- **Akteur ausführen (Asynchron)**: Verwende `apify_run_actor_async`, um einen Akteur im Hintergrund zu starten und regelmäßig nach Ergebnissen zu fragen, was für längere oder komplexe Aufgaben geeignet ist.
|
||||
|
||||
Diese Operationen statten deine Agenten aus, um Datenerfassungs- oder Browser-Automatisierungsaufgaben direkt in Workflows zu automatisieren, zu scrapen und zu orchestrieren – alles mit flexibler Konfiguration und Ergebnisverarbeitung, ohne dass manuelle Ausführungen oder externe Tools erforderlich sind. Integriere Apify als dynamische Automatisierungs- und Datenextraktions-Engine, die programmatisch die webbasierten Workflows deiner Agenten antreibt.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Gebrauchsanweisung
|
||||
|
||||
Integriere Apify in deinen Workflow. Führe jeden Apify-Akteur mit benutzerdefinierter Eingabe aus und rufe Ergebnisse ab. Unterstützt sowohl synchrone als auch asynchrone Ausführung mit automatischem Datensatz-Abruf.
|
||||
|
||||
## Tools
|
||||
|
||||
### `apify_run_actor_sync`
|
||||
|
||||
Führe einen APIFY-Aktor synchron aus und erhalte Ergebnisse (maximal 5 Minuten)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | APIFY API-Token von console.apify.com/account#/integrations |
|
||||
| `actorId` | string | Ja | Aktor-ID oder Benutzername/Aktor-Name \(z.B. "janedoe/my-actor" oder Aktor-ID\) |
|
||||
| `input` | string | Nein | Aktor-Eingabe als JSON-String. Siehe Aktor-Dokumentation für erforderliche Felder. |
|
||||
| `timeout` | number | Nein | Timeout in Sekunden \(Standard: Aktor-Standard\) |
|
||||
| `build` | string | Nein | Aktor-Build zum Ausführen \(z.B. "latest", "beta" oder Build-Tag/Nummer\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob der Actor-Lauf erfolgreich war |
|
||||
| `runId` | string | APIFY-Lauf-ID |
|
||||
| `status` | string | Laufstatus \(SUCCEEDED, FAILED, usw.\) |
|
||||
| `items` | array | Dataset-Elemente \(falls abgeschlossen\) |
|
||||
|
||||
### `apify_run_actor_async`
|
||||
|
||||
Führe einen APIFY-Aktor asynchron mit Polling für lang laufende Aufgaben aus
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | APIFY API-Token von console.apify.com/account#/integrations |
|
||||
| `actorId` | string | Ja | Aktor-ID oder Benutzername/Aktor-Name \(z.B. "janedoe/my-actor" oder Aktor-ID\) |
|
||||
| `input` | string | Nein | Aktor-Eingabe als JSON-String |
|
||||
| `waitForFinish` | number | Nein | Anfängliche Wartezeit in Sekunden \(0-60\) bevor Polling beginnt |
|
||||
| `itemLimit` | number | Nein | Maximale Anzahl an Dataset-Elementen zum Abrufen \(1-250000, Standard 100\) |
|
||||
| `timeout` | number | Nein | Timeout in Sekunden \(Standard: Aktor-Standard\) |
|
||||
| `build` | string | Nein | Aktor-Build zum Ausführen \(z.B. "latest", "beta" oder Build-Tag/Nummer\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob der Actor-Lauf erfolgreich war |
|
||||
| `runId` | string | APIFY-Lauf-ID |
|
||||
| `status` | string | Laufstatus \(SUCCEEDED, FAILED, usw.\) |
|
||||
| `datasetId` | string | Dataset-ID mit Ergebnissen |
|
||||
| `items` | array | Dataset-Elemente \(falls abgeschlossen\) |
|
||||
@@ -0,0 +1,569 @@
|
||||
---
|
||||
title: Apollo
|
||||
description: Suchen, anreichern und verwalten Sie Kontakte mit Apollo.io
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="apollo"
|
||||
color="#EBF212"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Apollo.io](https://apollo.io/) ist eine führende Plattform für Vertriebsintelligenz und -engagement, die Benutzern ermöglicht, Kontakte und Unternehmen im großen Maßstab zu finden, anzureichern und zu kontaktieren. Apollo.io kombiniert eine umfangreiche Kontaktdatenbank mit robusten Anreicherungs- und Workflow-Automatisierungstools und unterstützt Vertriebs-, Marketing- und Recruiting-Teams bei der Beschleunigung des Wachstums.
|
||||
|
||||
Mit Apollo.io können Sie:
|
||||
|
||||
- **Millionen von Kontakten und Unternehmen durchsuchen**: Finden Sie präzise Leads mit erweiterten Filtern
|
||||
- **Leads und Accounts anreichern**: Füllen Sie fehlende Details mit verifizierten Daten und aktuellen Informationen
|
||||
- **CRM-Datensätze verwalten und organisieren**: Halten Sie Ihre Personen- und Unternehmensdaten genau und handlungsfähig
|
||||
- **Outreach automatisieren**: Fügen Sie Kontakte zu Sequenzen hinzu und erstellen Sie Follow-up-Aufgaben direkt aus Apollo.io
|
||||
|
||||
In Sim ermöglicht die Apollo.io-Integration Ihren Agenten, zentrale Apollo-Operationen programmatisch durchzuführen:
|
||||
|
||||
- **Personen und Unternehmen suchen**: Verwenden Sie `apollo_people_search`, um neue Leads mit flexiblen Filtern zu entdecken.
|
||||
- **Personendaten anreichern**: Verwenden Sie `apollo_people_enrich`, um Kontakte mit verifizierten Informationen zu ergänzen.
|
||||
- **Personen in Masse anreichern**: Verwenden Sie `apollo_people_bulk_enrich` für die großflächige Anreicherung mehrerer Kontakte auf einmal.
|
||||
- **Unternehmen suchen und anreichern**: Verwenden Sie `apollo_company_search` und `apollo_company_enrich`, um wichtige Unternehmensinformationen zu entdecken und zu aktualisieren.
|
||||
|
||||
Dies ermöglicht Ihren Agenten, leistungsstarke Workflows für Prospecting, CRM-Anreicherung und Automatisierung zu erstellen, ohne manuelle Dateneingabe oder Tabwechsel. Integrieren Sie Apollo.io als dynamische Datenquelle und CRM-Engine – und befähigen Sie Ihre Agenten, Leads nahtlos als Teil ihrer täglichen Arbeit zu identifizieren, zu qualifizieren und zu kontaktieren.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Gebrauchsanweisung
|
||||
|
||||
Integriert Apollo.io in den Workflow. Suche nach Personen und Unternehmen, reichere Kontaktdaten an, verwalte deine CRM-Kontakte und Konten, füge Kontakte zu Sequenzen hinzu und erstelle Aufgaben.
|
||||
|
||||
## Tools
|
||||
|
||||
### `apollo_people_search`
|
||||
|
||||
Apollo durchsuchen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel |
|
||||
| `person_titles` | array | Nein | Zu suchende Berufsbezeichnungen (z.B. ["CEO", "VP of Sales"]) |
|
||||
| `person_locations` | array | Nein | Orte, in denen gesucht werden soll (z.B. ["San Francisco, CA", "New York, NY"]) |
|
||||
| `person_seniorities` | array | Nein | Hierarchieebenen (z.B. ["senior", "executive", "manager"]) |
|
||||
| `organization_names` | array | Nein | Unternehmensnamen, in denen gesucht werden soll |
|
||||
| `q_keywords` | string | Nein | Zu suchende Schlüsselwörter |
|
||||
| `page` | number | Nein | Seitennummer für Paginierung (Standard: 1) |
|
||||
| `per_page` | number | Nein | Ergebnisse pro Seite (Standard: 25, max: 100) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `people` | json | Array von Personen, die den Suchkriterien entsprechen |
|
||||
| `metadata` | json | Paginierungsinformationen einschließlich page, per_page und total_entries |
|
||||
|
||||
### `apollo_people_enrich`
|
||||
|
||||
Daten für eine einzelne Person mit Apollo anreichern
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel |
|
||||
| `first_name` | string | Nein | Vorname der Person |
|
||||
| `last_name` | string | Nein | Nachname der Person |
|
||||
| `email` | string | Nein | E-Mail-Adresse der Person |
|
||||
| `organization_name` | string | Nein | Name des Unternehmens, in dem die Person arbeitet |
|
||||
| `domain` | string | Nein | Unternehmensdomäne (z.B. apollo.io) |
|
||||
| `linkedin_url` | string | Nein | LinkedIn-Profil-URL |
|
||||
| `reveal_personal_emails` | boolean | Nein | Persönliche E-Mail-Adressen aufdecken (verbraucht Credits) |
|
||||
| `reveal_phone_number` | boolean | Nein | Telefonnummern aufdecken (verbraucht Credits) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `person` | json | Angereicherte Personendaten von Apollo |
|
||||
| `metadata` | json | Anreicherungsmetadaten einschließlich Anreicherungsstatus |
|
||||
|
||||
### `apollo_people_bulk_enrich`
|
||||
|
||||
Daten für bis zu 10 Personen gleichzeitig mit Apollo anreichern
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel |
|
||||
| `people` | array | Ja | Array von Personen zur Anreicherung (max. 10) |
|
||||
| `reveal_personal_emails` | boolean | Nein | Persönliche E-Mail-Adressen anzeigen (verbraucht Credits) |
|
||||
| `reveal_phone_number` | boolean | Nein | Telefonnummern anzeigen (verbraucht Credits) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `people` | json | Array von angereicherten Personendaten |
|
||||
| `metadata` | json | Metadaten zur Massenanreicherung einschließlich Gesamt- und angereicherter Anzahl |
|
||||
|
||||
### `apollo_organization_search`
|
||||
|
||||
Apollo durchsuchen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel |
|
||||
| `organization_locations` | array | Nein | Zu durchsuchende Unternehmensstandorte |
|
||||
| `organization_num_employees_ranges` | array | Nein | Bereiche der Mitarbeiterzahl (z.B. ["1-10", "11-50"]) |
|
||||
| `q_organization_keyword_tags` | array | Nein | Branchen- oder Schlüsselwort-Tags |
|
||||
| `q_organization_name` | string | Nein | Zu suchender Organisationsname |
|
||||
| `page` | number | Nein | Seitennummer für Paginierung |
|
||||
| `per_page` | number | Nein | Ergebnisse pro Seite (max: 100) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `organizations` | json | Array von Organisationen, die den Suchkriterien entsprechen |
|
||||
| `metadata` | json | Paginierungsinformationen einschließlich page, per_page und total_entries |
|
||||
|
||||
### `apollo_organization_enrich`
|
||||
|
||||
Daten für eine einzelne Organisation mit Apollo anreichern
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel |
|
||||
| `organization_name` | string | Nein | Name der Organisation \(mindestens einer von organization_name oder domain ist erforderlich\) |
|
||||
| `domain` | string | Nein | Unternehmensdomäne \(z.B. apollo.io\) \(mindestens einer von domain oder organization_name ist erforderlich\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `organization` | json | Angereicherte Organisationsdaten von Apollo |
|
||||
| `metadata` | json | Anreicherungsmetadaten einschließlich des Anreicherungsstatus |
|
||||
|
||||
### `apollo_organization_bulk_enrich`
|
||||
|
||||
Daten für bis zu 10 Organisationen gleichzeitig mit Apollo anreichern
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel |
|
||||
| `organizations` | array | Ja | Array von zu anreichernden Organisationen \(max. 10\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `organizations` | json | Array von angereicherten Organisationsdaten |
|
||||
| `metadata` | json | Metadaten zur Massenanreicherung einschließlich Gesamt- und angereicherte Anzahl |
|
||||
|
||||
### `apollo_contact_create`
|
||||
|
||||
Einen neuen Kontakt in Ihrer Apollo-Datenbank erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel |
|
||||
| `first_name` | string | Ja | Vorname des Kontakts |
|
||||
| `last_name` | string | Ja | Nachname des Kontakts |
|
||||
| `email` | string | Nein | E-Mail-Adresse des Kontakts |
|
||||
| `title` | string | Nein | Berufsbezeichnung |
|
||||
| `account_id` | string | Nein | Apollo-Konto-ID für die Zuordnung |
|
||||
| `owner_id` | string | Nein | Benutzer-ID des Kontaktinhabers |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Erstellte Kontaktdaten von Apollo |
|
||||
| `metadata` | json | Erstellungsmetadaten einschließlich Erstellungsstatus |
|
||||
|
||||
### `apollo_contact_update`
|
||||
|
||||
Einen bestehenden Kontakt in Ihrer Apollo-Datenbank aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel |
|
||||
| `contact_id` | string | Ja | ID des zu aktualisierenden Kontakts |
|
||||
| `first_name` | string | Nein | Vorname des Kontakts |
|
||||
| `last_name` | string | Nein | Nachname des Kontakts |
|
||||
| `email` | string | Nein | E-Mail-Adresse |
|
||||
| `title` | string | Nein | Berufsbezeichnung |
|
||||
| `account_id` | string | Nein | Apollo-Konto-ID |
|
||||
| `owner_id` | string | Nein | Benutzer-ID des Kontaktinhabers |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | json | Aktualisierte Kontaktdaten von Apollo |
|
||||
| `metadata` | json | Aktualisierte Metadaten einschließlich des aktualisierten Status |
|
||||
|
||||
### `apollo_contact_search`
|
||||
|
||||
Dein Team durchsuchen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel |
|
||||
| `q_keywords` | string | Nein | Suchbegriffe |
|
||||
| `contact_stage_ids` | array | Nein | Nach Kontaktphasen-IDs filtern |
|
||||
| `page` | number | Nein | Seitennummer für Paginierung |
|
||||
| `per_page` | number | Nein | Ergebnisse pro Seite \(max: 100\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | json | Array von Kontakten, die den Suchkriterien entsprechen |
|
||||
| `metadata` | json | Paginierungsinformationen einschließlich page, per_page und total_entries |
|
||||
|
||||
### `apollo_contact_bulk_create`
|
||||
|
||||
Erstelle bis zu 100 Kontakte auf einmal in deiner Apollo-Datenbank. Unterstützt Deduplizierung, um das Erstellen von Duplikaten zu verhindern. Master-Schlüssel erforderlich.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel \(Master-Schlüssel erforderlich\) |
|
||||
| `contacts` | array | Ja | Array von zu erstellenden Kontakten \(max. 100\). Jeder Kontakt sollte first_name, last_name und optional email, title, account_id, owner_id enthalten |
|
||||
| `run_dedupe` | boolean | Nein | Aktiviere Deduplizierung, um das Erstellen von Duplikaten zu verhindern. Bei true werden bestehende Kontakte ohne Änderung zurückgegeben |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `created_contacts` | json | Array neu erstellter Kontakte |
|
||||
| `existing_contacts` | json | Array bestehender Kontakte \(wenn Deduplizierung aktiviert ist\) |
|
||||
| `metadata` | json | Metadaten zur Massenerstellung einschließlich Anzahl erstellter und bestehender Kontakte |
|
||||
|
||||
### `apollo_contact_bulk_update`
|
||||
|
||||
Aktualisieren Sie bis zu 100 bestehende Kontakte gleichzeitig in Ihrer Apollo-Datenbank. Jeder Kontakt muss ein ID-Feld enthalten. Master-Key erforderlich.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel \(Master-Key erforderlich\) |
|
||||
| `contacts` | array | Ja | Array zu aktualisierender Kontakte \(max. 100\). Jeder Kontakt muss ein ID-Feld enthalten und optional first_name, last_name, email, title, account_id, owner_id |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `updated_contacts` | json | Array erfolgreich aktualisierter Kontakte |
|
||||
| `failed_contacts` | json | Array von Kontakten, deren Aktualisierung fehlgeschlagen ist |
|
||||
| `metadata` | json | Metadaten zur Massenaktualisierung einschließlich Anzahl aktualisierter und fehlgeschlagener Kontakte |
|
||||
|
||||
### `apollo_account_create`
|
||||
|
||||
Erstellen Sie ein neues Konto (Unternehmen) in Ihrer Apollo-Datenbank
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel |
|
||||
| `name` | string | Ja | Unternehmensname |
|
||||
| `website_url` | string | Nein | Unternehmens-Website-URL |
|
||||
| `phone` | string | Nein | Telefonnummer des Unternehmens |
|
||||
| `owner_id` | string | Nein | Benutzer-ID des Kontoinhabers |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `account` | json | Erstellte Kontodaten von Apollo |
|
||||
| `metadata` | json | Erstellungsmetadaten einschließlich Erstellungsstatus |
|
||||
|
||||
### `apollo_account_update`
|
||||
|
||||
Aktualisieren eines vorhandenen Kontos in Ihrer Apollo-Datenbank
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel |
|
||||
| `account_id` | string | Ja | ID des zu aktualisierenden Kontos |
|
||||
| `name` | string | Nein | Firmenname |
|
||||
| `website_url` | string | Nein | Firmen-Website-URL |
|
||||
| `phone` | string | Nein | Telefonnummer des Unternehmens |
|
||||
| `owner_id` | string | Nein | Benutzer-ID des Kontoinhabers |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `account` | json | Aktualisierte Kontodaten von Apollo |
|
||||
| `metadata` | json | Aktualisierungsmetadaten einschließlich Aktualisierungsstatus |
|
||||
|
||||
### `apollo_account_search`
|
||||
|
||||
Durchsuchen Ihres Teams
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel \(Hauptschlüssel erforderlich\) |
|
||||
| `q_keywords` | string | Nein | Suchbegriffe für Kontodaten |
|
||||
| `owner_id` | string | Nein | Filtern nach Benutzer-ID des Kontoinhabers |
|
||||
| `account_stage_ids` | array | Nein | Filtern nach Kontophase-IDs |
|
||||
| `page` | number | Nein | Seitennummer für Paginierung |
|
||||
| `per_page` | number | Nein | Ergebnisse pro Seite \(max: 100\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `accounts` | json | Array von Konten, die den Suchkriterien entsprechen |
|
||||
| `metadata` | json | Paginierungsinformationen einschließlich page, per_page und total_entries |
|
||||
|
||||
### `apollo_account_bulk_create`
|
||||
|
||||
Erstellen Sie bis zu 100 Konten auf einmal in Ihrer Apollo-Datenbank. Hinweis: Apollo wendet keine Deduplizierung an - doppelte Konten können erstellt werden, wenn Einträge ähnliche Namen oder Domains haben. Master-Key erforderlich.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel \(Master-Key erforderlich\) |
|
||||
| `accounts` | array | Ja | Array von zu erstellenden Konten \(max. 100\). Jedes Konto sollte einen Namen \(erforderlich\) und optional website_url, phone, owner_id enthalten |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `created_accounts` | json | Array neu erstellter Konten |
|
||||
| `failed_accounts` | json | Array von Konten, deren Erstellung fehlgeschlagen ist |
|
||||
| `metadata` | json | Metadaten zur Massenerstellung einschließlich Anzahl erstellter und fehlgeschlagener Konten |
|
||||
|
||||
### `apollo_account_bulk_update`
|
||||
|
||||
Aktualisieren Sie bis zu 1000 bestehende Konten auf einmal in Ihrer Apollo-Datenbank (höheres Limit als bei Kontakten!). Jedes Konto muss ein id-Feld enthalten. Master-Key erforderlich.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel \(Master-Key erforderlich\) |
|
||||
| `accounts` | array | Ja | Array zu aktualisierender Konten \(max. 1000\). Jedes Konto muss ein id-Feld enthalten und optional name, website_url, phone, owner_id |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `updated_accounts` | json | Array der erfolgreich aktualisierten Konten |
|
||||
| `failed_accounts` | json | Array der Konten, deren Aktualisierung fehlgeschlagen ist |
|
||||
| `metadata` | json | Metadaten zur Massenaktualisierung, einschließlich der Anzahl aktualisierter und fehlgeschlagener Konten |
|
||||
|
||||
### `apollo_opportunity_create`
|
||||
|
||||
Erstellen Sie einen neuen Deal für ein Konto in Ihrer Apollo-Datenbank (Master-Key erforderlich)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel \(Master-Key erforderlich\) |
|
||||
| `name` | string | Ja | Name der Opportunity/des Deals |
|
||||
| `account_id` | string | Ja | ID des Kontos, zu dem diese Opportunity gehört |
|
||||
| `amount` | number | Nein | Geldwert der Opportunity |
|
||||
| `stage_id` | string | Nein | ID der Deal-Phase |
|
||||
| `owner_id` | string | Nein | Benutzer-ID des Opportunity-Eigentümers |
|
||||
| `close_date` | string | Nein | Erwartetes Abschlussdatum \(ISO 8601-Format\) |
|
||||
| `description` | string | Nein | Beschreibung oder Notizen zur Opportunity |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `opportunity` | json | Erstellte Opportunity-Daten von Apollo |
|
||||
| `metadata` | json | Erstellungsmetadaten einschließlich Erstellungsstatus |
|
||||
|
||||
### `apollo_opportunity_search`
|
||||
|
||||
Suchen und listen Sie alle Deals/Opportunities in Ihrem Team auf
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel |
|
||||
| `q_keywords` | string | Nein | Suchbegriffe für die Suche in Opportunity-Namen |
|
||||
| `account_ids` | array | Nein | Nach bestimmten Account-IDs filtern |
|
||||
| `stage_ids` | array | Nein | Nach Deal-Phase-IDs filtern |
|
||||
| `owner_ids` | array | Nein | Nach Opportunity-Besitzer-IDs filtern |
|
||||
| `page` | number | Nein | Seitennummer für Paginierung |
|
||||
| `per_page` | number | Nein | Ergebnisse pro Seite \(max: 100\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `opportunities` | json | Array von Opportunities, die den Suchkriterien entsprechen |
|
||||
| `metadata` | json | Paginierungsinformationen einschließlich page, per_page und total_entries |
|
||||
|
||||
### `apollo_opportunity_get`
|
||||
|
||||
Vollständige Details eines bestimmten Deals/Opportunity anhand der ID abrufen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel |
|
||||
| `opportunity_id` | string | Ja | ID der abzurufenden Opportunity |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `opportunity` | json | Vollständige Opportunity-Daten von Apollo |
|
||||
| `metadata` | json | Abruf-Metadaten einschließlich Gefunden-Status |
|
||||
|
||||
### `apollo_opportunity_update`
|
||||
|
||||
Einen bestehenden Deal/Opportunity in Ihrer Apollo-Datenbank aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel |
|
||||
| `opportunity_id` | string | Ja | ID der zu aktualisierenden Opportunity |
|
||||
| `name` | string | Nein | Name der Opportunity/des Deals |
|
||||
| `amount` | number | Nein | Geldwert der Opportunity |
|
||||
| `stage_id` | string | Nein | ID der Deal-Phase |
|
||||
| `owner_id` | string | Nein | Benutzer-ID des Opportunity-Eigentümers |
|
||||
| `close_date` | string | Nein | Erwartetes Abschlussdatum (ISO 8601-Format) |
|
||||
| `description` | string | Nein | Beschreibung oder Notizen zur Opportunity |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `opportunity` | json | Aktualisierte Opportunity-Daten von Apollo |
|
||||
| `metadata` | json | Aktualisierungsmetadaten einschließlich Aktualisierungsstatus |
|
||||
|
||||
### `apollo_sequence_search`
|
||||
|
||||
Suche nach Sequenzen/Kampagnen in deinem Team
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel (Master-Schlüssel erforderlich) |
|
||||
| `q_name` | string | Nein | Sequenzen nach Namen durchsuchen |
|
||||
| `active` | boolean | Nein | Nach Aktivitätsstatus filtern (true für aktive Sequenzen, false für inaktive) |
|
||||
| `page` | number | Nein | Seitennummer für Paginierung |
|
||||
| `per_page` | number | Nein | Ergebnisse pro Seite (max: 100) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `sequences` | json | Array von Sequenzen/Kampagnen, die den Suchkriterien entsprechen |
|
||||
| `metadata` | json | Paginierungsinformationen einschließlich page, per_page und total_entries |
|
||||
|
||||
### `apollo_sequence_add_contacts`
|
||||
|
||||
Kontakte zu einer Apollo-Sequenz hinzufügen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel (Master-Schlüssel erforderlich) |
|
||||
| `sequence_id` | string | Ja | ID der Sequenz, zu der Kontakte hinzugefügt werden sollen |
|
||||
| `contact_ids` | array | Ja | Array von Kontakt-IDs, die zur Sequenz hinzugefügt werden sollen |
|
||||
| `emailer_campaign_id` | string | Nein | Optionale E-Mail-Kampagnen-ID |
|
||||
| `send_email_from_user_id` | string | Nein | Benutzer-ID, von der E-Mails gesendet werden sollen |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts_added` | json | Array von Kontakt-IDs, die zur Sequenz hinzugefügt wurden |
|
||||
| `metadata` | json | Sequenz-Metadaten einschließlich sequence_id und total_added Anzahl |
|
||||
|
||||
### `apollo_task_create`
|
||||
|
||||
Eine neue Aufgabe in Apollo erstellen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel (Master-Schlüssel erforderlich) |
|
||||
| `note` | string | Ja | Aufgabennotiz/Beschreibung |
|
||||
| `contact_id` | string | Nein | Zu verknüpfende Kontakt-ID |
|
||||
| `account_id` | string | Nein | Zu verknüpfende Account-ID |
|
||||
| `due_at` | string | Nein | Fälligkeitsdatum im ISO-Format |
|
||||
| `priority` | string | Nein | Aufgabenpriorität |
|
||||
| `type` | string | Nein | Aufgabentyp |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `task` | json | Erstellte Aufgabendaten von Apollo |
|
||||
| `metadata` | json | Erstellungsmetadaten einschließlich des Erstellungsstatus |
|
||||
|
||||
### `apollo_task_search`
|
||||
|
||||
Suche nach Aufgaben in Apollo
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel (Master-Schlüssel erforderlich) |
|
||||
| `contact_id` | string | Nein | Nach Kontakt-ID filtern |
|
||||
| `account_id` | string | Nein | Nach Konto-ID filtern |
|
||||
| `completed` | boolean | Nein | Nach Abschlussstatus filtern |
|
||||
| `page` | number | Nein | Seitennummer für Paginierung |
|
||||
| `per_page` | number | Nein | Ergebnisse pro Seite (max: 100) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `tasks` | json | Array von Aufgaben, die den Suchkriterien entsprechen |
|
||||
| `metadata` | json | Paginierungsinformationen einschließlich Seite, pro_Seite und Gesamteinträge |
|
||||
|
||||
### `apollo_email_accounts`
|
||||
|
||||
Liste des Teams abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Apollo API-Schlüssel (Master-Schlüssel erforderlich) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `email_accounts` | json | Array von Team-E-Mail-Konten, die in Apollo verknüpft sind |
|
||||
| `metadata` | json | Metadaten einschließlich der Gesamtanzahl von E-Mail-Konten |
|
||||
@@ -0,0 +1,84 @@
|
||||
---
|
||||
title: ArXiv
|
||||
description: Suche und rufe wissenschaftliche Arbeiten von ArXiv ab
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="arxiv"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[ArXiv](https://arxiv.org/) ist ein kostenfreies, frei zugängliches Repository für wissenschaftliche Forschungsarbeiten in Bereichen wie Physik, Mathematik, Informatik, quantitative Biologie, quantitative Finanzwissenschaft, Statistik, Elektrotechnik, Systemwissenschaften und Wirtschaftswissenschaften. ArXiv bietet eine umfangreiche Sammlung von Preprints und veröffentlichten Artikeln und ist damit eine primäre Ressource für Forscher und Praktiker weltweit.
|
||||
|
||||
Mit ArXiv können Sie:
|
||||
|
||||
- **Nach wissenschaftlichen Arbeiten suchen**: Finden Sie Forschungsarbeiten anhand von Schlüsselwörtern, Autorennamen, Titeln, Kategorien und mehr
|
||||
- **Metadaten von Arbeiten abrufen**: Zugriff auf Abstracts, Autorenlisten, Veröffentlichungsdaten und andere bibliografische Informationen
|
||||
- **Volltext-PDFs herunterladen**: Erhalten Sie den vollständigen Text der meisten Arbeiten für eingehende Studien
|
||||
- **Autorenbeiträge erkunden**: Sehen Sie alle Arbeiten eines bestimmten Autors
|
||||
- **Auf dem Laufenden bleiben**: Entdecken Sie die neuesten Einreichungen und Trendthemen in Ihrem Fachgebiet
|
||||
|
||||
In Sim ermöglicht die ArXiv-Integration Ihren Agenten, wissenschaftliche Arbeiten von ArXiv programmatisch zu suchen, abzurufen und zu analysieren. Dies erlaubt Ihnen, Literaturrecherchen zu automatisieren, Forschungsassistenten zu erstellen oder aktuelles wissenschaftliches Wissen in Ihre agentischen Workflows einzubinden. Nutzen Sie ArXiv als dynamische Datenquelle für Forschung, Entdeckung und Wissensextraktion innerhalb Ihrer Sim-Projekte.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Integriert ArXiv in den Workflow. Kann nach Arbeiten suchen, Arbeitsdetails abrufen und Autorenarbeiten finden. Benötigt kein OAuth oder einen API-Schlüssel.
|
||||
|
||||
## Tools
|
||||
|
||||
### `arxiv_search`
|
||||
|
||||
Suche nach wissenschaftlichen Artikeln auf ArXiv nach Schlüsselwörtern, Autoren, Titeln oder anderen Feldern.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `searchQuery` | string | Ja | Die auszuführende Suchanfrage |
|
||||
| `searchField` | string | Nein | Feld, in dem gesucht werden soll: all, ti \(Titel\), au \(Autor\), abs \(Abstract\), co \(Kommentar\), jr \(Journal\), cat \(Kategorie\), rn \(Berichtsnummer\) |
|
||||
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 10, max: 2000\) |
|
||||
| `sortBy` | string | Nein | Sortieren nach: relevance, lastUpdatedDate, submittedDate \(Standard: relevance\) |
|
||||
| `sortOrder` | string | Nein | Sortierreihenfolge: ascending, descending \(Standard: descending\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `papers` | json | Array von Artikeln, die der Suchanfrage entsprechen |
|
||||
|
||||
### `arxiv_get_paper`
|
||||
|
||||
Erhalte detaillierte Informationen über einen bestimmten ArXiv-Artikel anhand seiner ID.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `paperId` | string | Ja | ArXiv-Artikel-ID \(z.B. "1706.03762"\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `paper` | json | Detaillierte Informationen über den angeforderten ArXiv-Artikel |
|
||||
|
||||
### `arxiv_get_author_papers`
|
||||
|
||||
Suche nach Artikeln eines bestimmten Autors auf ArXiv.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `authorName` | string | Ja | Zu suchender Autorenname |
|
||||
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 10, max: 2000\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `authorPapers` | json | Array von Publikationen, die vom angegebenen Autor verfasst wurden |
|
||||
@@ -0,0 +1,178 @@
|
||||
---
|
||||
title: Asana
|
||||
description: Mit Asana interagieren
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="asana"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Integriere Asana in den Workflow. Kann Aufgaben lesen, schreiben und aktualisieren.
|
||||
|
||||
## Tools
|
||||
|
||||
### `asana_get_task`
|
||||
|
||||
Eine einzelne Aufgabe anhand der GID abrufen oder mehrere Aufgaben mit Filtern erhalten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `taskGid` | string | Nein | Die global eindeutige Kennung \(GID\) der Aufgabe. Wenn nicht angegeben, werden mehrere Aufgaben abgerufen. |
|
||||
| `workspace` | string | Nein | Workspace-GID zum Filtern von Aufgaben \(erforderlich, wenn taskGid nicht verwendet wird\) |
|
||||
| `project` | string | Nein | Projekt-GID zum Filtern von Aufgaben |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Aufgaben \(Standard: 50\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `ts` | string | Zeitstempel der Antwort |
|
||||
| `gid` | string | Global eindeutige Kennung der Aufgabe |
|
||||
| `resource_type` | string | Ressourcentyp \(task\) |
|
||||
| `resource_subtype` | string | Ressourcen-Subtyp |
|
||||
| `name` | string | Aufgabenname |
|
||||
| `notes` | string | Aufgabennotizen oder -beschreibung |
|
||||
| `completed` | boolean | Ob die Aufgabe abgeschlossen ist |
|
||||
| `assignee` | object | Details zum Zugewiesenen |
|
||||
|
||||
### `asana_create_task`
|
||||
|
||||
Eine neue Aufgabe in Asana erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `workspace` | string | Ja | Workspace-GID, in dem die Aufgabe erstellt wird |
|
||||
| `name` | string | Ja | Name der Aufgabe |
|
||||
| `notes` | string | Nein | Notizen oder Beschreibung für die Aufgabe |
|
||||
| `assignee` | string | Nein | Benutzer-GID, dem die Aufgabe zugewiesen werden soll |
|
||||
| `due_on` | string | Nein | Fälligkeitsdatum im Format JJJJ-MM-TT |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `ts` | string | Zeitstempel der Antwort |
|
||||
| `gid` | string | Global eindeutige Kennung der Aufgabe |
|
||||
| `name` | string | Aufgabenname |
|
||||
| `notes` | string | Aufgabennotizen oder -beschreibung |
|
||||
| `completed` | boolean | Ob die Aufgabe abgeschlossen ist |
|
||||
| `created_at` | string | Zeitstempel der Aufgabenerstellung |
|
||||
| `permalink_url` | string | URL zur Aufgabe in Asana |
|
||||
|
||||
### `asana_update_task`
|
||||
|
||||
Eine bestehende Aufgabe in Asana aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `taskGid` | string | Ja | Die global eindeutige Kennung (GID) der zu aktualisierenden Aufgabe |
|
||||
| `name` | string | Nein | Aktualisierter Name für die Aufgabe |
|
||||
| `notes` | string | Nein | Aktualisierte Notizen oder Beschreibung für die Aufgabe |
|
||||
| `assignee` | string | Nein | Aktualisierte Benutzer-GID des Zugewiesenen |
|
||||
| `completed` | boolean | Nein | Aufgabe als abgeschlossen oder nicht abgeschlossen markieren |
|
||||
| `due_on` | string | Nein | Aktualisiertes Fälligkeitsdatum im Format JJJJ-MM-TT |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `ts` | string | Zeitstempel der Antwort |
|
||||
| `gid` | string | Global eindeutige Kennung der Aufgabe |
|
||||
| `name` | string | Aufgabenname |
|
||||
| `notes` | string | Aufgabennotizen oder -beschreibung |
|
||||
| `completed` | boolean | Ob die Aufgabe abgeschlossen ist |
|
||||
| `modified_at` | string | Zeitstempel der letzten Änderung der Aufgabe |
|
||||
|
||||
### `asana_get_projects`
|
||||
|
||||
Alle Projekte aus einem Asana-Workspace abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `workspace` | string | Ja | Workspace-GID, aus der Projekte abgerufen werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `ts` | string | Zeitstempel der Antwort |
|
||||
| `projects` | array | Array von Projekten |
|
||||
|
||||
### `asana_search_tasks`
|
||||
|
||||
Nach Aufgaben in einem Asana-Workspace suchen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `workspace` | string | Ja | Workspace-GID, in der nach Aufgaben gesucht werden soll |
|
||||
| `text` | string | Nein | Text, nach dem in Aufgabennamen gesucht werden soll |
|
||||
| `assignee` | string | Nein | Aufgaben nach Bearbeiter-GID filtern |
|
||||
| `projects` | array | Nein | Array von Projekt-GIDs, nach denen Aufgaben gefiltert werden sollen |
|
||||
| `completed` | boolean | Nein | Nach Abschlussstatus filtern |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `ts` | string | Zeitstempel der Antwort |
|
||||
| `tasks` | array | Array von passenden Aufgaben |
|
||||
|
||||
### `asana_add_comment`
|
||||
|
||||
Einen Kommentar (Story) zu einer Asana-Aufgabe hinzufügen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `taskGid` | string | Ja | Die global eindeutige Kennung \(GID\) der Aufgabe |
|
||||
| `text` | string | Ja | Der Textinhalt des Kommentars |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `ts` | string | Zeitstempel der Antwort |
|
||||
| `gid` | string | Global eindeutige Kennung des Kommentars |
|
||||
| `text` | string | Textinhalt des Kommentars |
|
||||
| `created_at` | string | Erstellungszeitstempel des Kommentars |
|
||||
| `created_by` | object | Details zum Autor des Kommentars |
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `tools`
|
||||
- Typ: `asana`
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
| `ts` | string | Zeitstempel der Antwort |
|
||||
| `gid` | string | Global eindeutige Kennung des Kommentars |
|
||||
| `text` | string | Textinhalt des Kommentars |
|
||||
| `created_at` | string | Erstellungszeitstempel des Kommentars |
|
||||
| `created_by` | object | Details zum Kommentarautor |
|
||||
| ↳ `gid` | string | Autor-GID |
|
||||
| ↳ `name` | string | Name des Autors |
|
||||
@@ -0,0 +1,55 @@
|
||||
---
|
||||
title: Browser-Nutzung
|
||||
description: Browser-Automatisierungsaufgaben ausführen
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="browser_use"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[BrowserUse](https://browser-use.com/) ist eine leistungsstarke Browser-Automatisierungsplattform, die es ermöglicht, Browser-Aufgaben programmatisch zu erstellen und auszuführen. Sie bietet eine Möglichkeit, Webinteraktionen durch natürlichsprachliche Anweisungen zu automatisieren, sodass Sie Websites navigieren, Formulare ausfüllen, Daten extrahieren und komplexe Aktionssequenzen durchführen können, ohne Code zu schreiben.
|
||||
|
||||
Mit BrowserUse können Sie:
|
||||
|
||||
- **Webinteraktionen automatisieren**: Zu Websites navigieren, Buttons klicken, Formulare ausfüllen und andere Browser-Aktionen durchführen
|
||||
- **Daten extrahieren**: Inhalte von Websites extrahieren, einschließlich Text, Bilder und strukturierte Daten
|
||||
- **Komplexe Workflows ausführen**: Mehrere Aktionen verketten, um anspruchsvolle Web-Aufgaben zu erledigen
|
||||
- **Aufgabenausführung überwachen**: Browser-Aufgaben in Echtzeit mit visuellem Feedback beobachten
|
||||
- **Ergebnisse programmatisch verarbeiten**: Strukturierte Ausgaben von Web-Automatisierungsaufgaben erhalten
|
||||
|
||||
In Sim ermöglicht die BrowserUse-Integration Ihren Agenten, mit dem Web zu interagieren, als wären sie menschliche Benutzer. Dies ermöglicht Szenarien wie Recherche, Datenerfassung, Formularübermittlung und Web-Tests - alles durch einfache natürlichsprachliche Anweisungen. Ihre Agenten können Informationen von Websites sammeln, mit Webanwendungen interagieren und Aktionen durchführen, die normalerweise manuelles Browsen erfordern würden, wodurch ihre Fähigkeiten erweitert werden, um das gesamte Web als Ressource einzubeziehen.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Integrieren Sie Browser Use in den Workflow. Kann im Web navigieren und Aktionen ausführen, als ob ein echter Benutzer mit dem Browser interagieren würde. Erfordert API-Schlüssel.
|
||||
|
||||
## Tools
|
||||
|
||||
### `browser_use_run_task`
|
||||
|
||||
Führt eine Browser-Automatisierungsaufgabe mit BrowserUse aus
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `task` | string | Ja | Was der Browser-Agent tun soll |
|
||||
| `variables` | json | Nein | Optionale Variablen zur Verwendung als Secrets \(Format: \{key: value\}\) |
|
||||
| `format` | string | Nein | Keine Beschreibung |
|
||||
| `save_browser_data` | boolean | Nein | Ob Browser-Daten gespeichert werden sollen |
|
||||
| `model` | string | Nein | Zu verwendende LLM-Modell \(Standard: gpt-4o\) |
|
||||
| `apiKey` | string | Ja | API-Schlüssel für die BrowserUse API |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Aufgabenausführungskennung |
|
||||
| `success` | boolean | Status der Aufgabenfertigstellung |
|
||||
| `output` | json | Ausgabedaten der Aufgabe |
|
||||
| `steps` | json | Ausgeführte Schritte |
|
||||
@@ -0,0 +1,785 @@
|
||||
---
|
||||
title: Cal Com
|
||||
description: Verwalten Sie Cal.com-Buchungen, Veranstaltungstypen, Zeitpläne und
|
||||
Verfügbarkeiten
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="calcom"
|
||||
color="#FFFFFE"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Cal.com](https://cal.com/) ist eine flexible und quelloffene Planungsplattform, die es einfach macht, Termine, Buchungen, Veranstaltungstypen und Teamverfügbarkeiten zu verwalten.
|
||||
|
||||
Mit Cal.com können Sie:
|
||||
|
||||
- **Planung automatisieren**: Ermöglichen Sie Nutzern, Ihre verfügbaren Zeitfenster einzusehen und Meetings automatisch zu buchen, ohne E-Mail-Pingpong.
|
||||
- **Veranstaltungen verwalten**: Erstellen und passen Sie Veranstaltungstypen, Dauern und Regeln für Einzel- oder Gruppenmeetings an.
|
||||
- **Kalender integrieren**: Verbinden Sie sich nahtlos mit Google, Outlook, Apple oder anderen Kalenderanbietern, um Doppelbuchungen zu vermeiden.
|
||||
- **Teilnehmer und Gäste verwalten**: Erfassen Sie Teilnehmerinformationen, verwalten Sie Gäste und versenden Sie Einladungen oder Erinnerungen.
|
||||
- **Verfügbarkeit steuern**: Definieren Sie individuelle Arbeitszeiten, Pufferzeiten und Storno-/Umbuchungsregeln.
|
||||
- **Workflows automatisieren**: Lösen Sie benutzerdefinierte Aktionen über Webhooks aus, wenn eine Buchung erstellt, storniert oder umgebucht wird.
|
||||
|
||||
In Sim ermöglicht die Cal.com-Integration Ihren Agenten, Meetings zu buchen, Verfügbarkeiten zu prüfen, Veranstaltungstypen zu verwalten und Planungsaufgaben programmatisch zu automatisieren. Dies hilft Agenten, Meetings zu koordinieren, Buchungen im Namen von Nutzern zu versenden, Zeitpläne zu prüfen oder auf Buchungsereignisse zu reagieren – alles ohne manuelle Eingriffe. Durch die Verbindung von Sim mit Cal.com erschließen Sie hochautomatisierte und intelligente Planungs-Workflows, die sich nahtlos in Ihre umfassenderen Automatisierungsanforderungen integrieren lassen.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Integrieren Sie Cal.com in Ihren Workflow. Erstellen und verwalten Sie Buchungen, Veranstaltungstypen, Zeitpläne und prüfen Sie Verfügbarkeitsfenster. Unterstützt das Erstellen, Auflisten, Umbuchen und Stornieren von Buchungen sowie die Verwaltung von Veranstaltungstypen und Zeitplänen. Kann auch Workflows basierend auf Cal.com-Webhook-Ereignissen auslösen (Buchung erstellt, storniert, umgebucht). Verbinden Sie Ihr Cal.com-Konto über OAuth.
|
||||
|
||||
## Tools
|
||||
|
||||
### `calcom_create_booking`
|
||||
|
||||
Eine neue Buchung auf Cal.com erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `eventTypeId` | number | Ja | Die ID des zu buchenden Ereignistyps |
|
||||
| `start` | string | Ja | Startzeit im UTC ISO 8601-Format \(z. B. 2024-01-15T09:00:00Z\) |
|
||||
| `attendee` | object | Ja | Teilnehmerinformationsobjekt mit Name, E-Mail, Zeitzone und optionaler Telefonnummer \(zusammengestellt aus einzelnen Teilnehmerfeldern\) |
|
||||
| `guests` | array | Nein | Array von Gast-E-Mail-Adressen |
|
||||
| `items` | string | Nein | Gast-E-Mail-Adresse |
|
||||
| `lengthInMinutes` | number | Nein | Dauer der Buchung in Minuten \(überschreibt die Standardeinstellung des Ereignistyps\) |
|
||||
| `metadata` | object | Nein | Benutzerdefinierte Metadaten, die an die Buchung angehängt werden |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | object | Details der erstellten Buchung |
|
||||
| ↳ `eventType` | object | Details des Ereignistyps |
|
||||
| ↳ `id` | number | Ereignistyp-ID |
|
||||
| ↳ `slug` | string | Ereignistyp-Slug |
|
||||
| ↳ `attendees` | array | Liste der Teilnehmer |
|
||||
| ↳ `name` | string | Name des Teilnehmers |
|
||||
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Teilnehmers |
|
||||
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
|
||||
| ↳ `timeZone` | string | Zeitzone des Teilnehmers \(IANA-Format\) |
|
||||
| ↳ `phoneNumber` | string | Telefonnummer des Teilnehmers |
|
||||
| ↳ `language` | string | Sprachpräferenz des Teilnehmers \(ISO-Code\) |
|
||||
| ↳ `absent` | boolean | Ob der Teilnehmer abwesend war |
|
||||
| ↳ `hosts` | array | Liste der Gastgeber |
|
||||
| ↳ `id` | number | Benutzer-ID des Gastgebers |
|
||||
| ↳ `name` | string | Anzeigename des Gastgebers |
|
||||
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Gastgebers |
|
||||
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
|
||||
| ↳ `username` | string | Cal.com-Benutzername des Gastgebers |
|
||||
| ↳ `timeZone` | string | Zeitzone des Gastgebers \(IANA-Format\) |
|
||||
| ↳ `id` | number | Numerische Buchungs-ID |
|
||||
| ↳ `uid` | string | Eindeutige Kennung für die Buchung |
|
||||
| ↳ `title` | string | Titel der Buchung |
|
||||
| ↳ `status` | string | Buchungsstatus \(z. B. akzeptiert, ausstehend, storniert\) |
|
||||
| ↳ `start` | string | Startzeit im ISO 8601-Format |
|
||||
| ↳ `end` | string | Endzeit im ISO 8601-Format |
|
||||
| ↳ `duration` | number | Dauer in Minuten |
|
||||
| ↳ `eventTypeId` | number | Ereignistyp-ID |
|
||||
| ↳ `meetingUrl` | string | URL zum Beitritt zum Meeting |
|
||||
| ↳ `location` | string | Ort der Buchung |
|
||||
| ↳ `absentHost` | boolean | Ob der Gastgeber abwesend war |
|
||||
| ↳ `guests` | array | Gast-E-Mail-Adressen |
|
||||
| ↳ `bookingFieldsResponses` | json | Benutzerdefinierte Buchungsfeldantworten \(dynamische Schlüssel basierend auf der Ereignistyp-Konfiguration\) |
|
||||
| ↳ `metadata` | json | Benutzerdefinierte Metadaten, die an die Buchung angehängt sind \(dynamische Schlüssel-Wert-Paare\) |
|
||||
| ↳ `icsUid` | string | ICS-Kalender-UID |
|
||||
| ↳ `createdAt` | string | Zeitpunkt der Erstellung der Buchung |
|
||||
|
||||
### `calcom_get_booking`
|
||||
|
||||
Details einer bestimmten Buchung anhand ihrer UID abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `bookingUid` | string | Ja | Eindeutige Kennung \(UID\) der Buchung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | object | Buchungsdetails |
|
||||
| ↳ `eventType` | object | Details zum Ereignistyp |
|
||||
| ↳ `id` | number | Ereignistyp-ID |
|
||||
| ↳ `slug` | string | Ereignistyp-Slug |
|
||||
| ↳ `attendees` | array | Liste der Teilnehmer |
|
||||
| ↳ `name` | string | Name des Teilnehmers |
|
||||
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Teilnehmers |
|
||||
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
|
||||
| ↳ `timeZone` | string | Zeitzone des Teilnehmers \(IANA-Format\) |
|
||||
| ↳ `phoneNumber` | string | Telefonnummer des Teilnehmers |
|
||||
| ↳ `language` | string | Sprachpräferenz des Teilnehmers \(ISO-Code\) |
|
||||
| ↳ `absent` | boolean | Ob der Teilnehmer abwesend war |
|
||||
| ↳ `hosts` | array | Liste der Gastgeber |
|
||||
| ↳ `id` | number | Benutzer-ID des Gastgebers |
|
||||
| ↳ `name` | string | Anzeigename des Gastgebers |
|
||||
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Gastgebers |
|
||||
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
|
||||
| ↳ `username` | string | Cal.com-Benutzername des Gastgebers |
|
||||
| ↳ `timeZone` | string | Zeitzone des Gastgebers \(IANA-Format\) |
|
||||
| ↳ `id` | number | Numerische Buchungs-ID |
|
||||
| ↳ `uid` | string | Eindeutige Kennung für die Buchung |
|
||||
| ↳ `title` | string | Titel der Buchung |
|
||||
| ↳ `description` | string | Beschreibung der Buchung |
|
||||
| ↳ `status` | string | Buchungsstatus \(z. B. akzeptiert, ausstehend, storniert\) |
|
||||
| ↳ `start` | string | Startzeit im ISO-8601-Format |
|
||||
| ↳ `end` | string | Endzeit im ISO-8601-Format |
|
||||
| ↳ `duration` | number | Dauer in Minuten |
|
||||
| ↳ `eventTypeId` | number | Ereignistyp-ID |
|
||||
| ↳ `meetingUrl` | string | URL zum Beitritt zum Meeting |
|
||||
| ↳ `location` | string | Ort der Buchung |
|
||||
| ↳ `absentHost` | boolean | Ob der Gastgeber abwesend war |
|
||||
| ↳ `guests` | array | E-Mail-Adressen der Gäste |
|
||||
| ↳ `bookingFieldsResponses` | json | Benutzerdefinierte Buchungsfeld-Antworten \(dynamische Schlüssel basierend auf der Ereignistyp-Konfiguration\) |
|
||||
| ↳ `metadata` | json | Benutzerdefinierte Metadaten, die der Buchung angehängt sind \(dynamische Schlüssel-Wert-Paare\) |
|
||||
| ↳ `rating` | number | Buchungsbewertung |
|
||||
| ↳ `icsUid` | string | ICS-Kalender-UID |
|
||||
| ↳ `cancellationReason` | string | Grund für die Stornierung, falls storniert |
|
||||
| ↳ `reschedulingReason` | string | Grund für die Umbuchung, falls umgebucht |
|
||||
| ↳ `rescheduledFromUid` | string | Ursprüngliche Buchungs-UID, falls diese Buchung umgebucht wurde |
|
||||
| ↳ `rescheduledToUid` | string | Neue Buchungs-UID nach Umbuchung |
|
||||
| ↳ `cancelledByEmail` | string | E-Mail der Person, die die Buchung storniert hat |
|
||||
| ↳ `rescheduledByEmail` | string | E-Mail der Person, die die Buchung umgebucht hat |
|
||||
| ↳ `createdAt` | string | Zeitpunkt der Erstellung der Buchung |
|
||||
| ↳ `updatedAt` | string | Zeitpunkt der letzten Aktualisierung der Buchung |
|
||||
|
||||
### `calcom_list_bookings`
|
||||
|
||||
Alle Buchungen mit optionalem Statusfilter auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `status` | string | Nein | Buchungen nach Status filtern: upcoming, recurring, past, cancelled oder unconfirmed |
|
||||
| `take` | number | Nein | Anzahl der zurückzugebenden Buchungen \(Paginierungslimit\) |
|
||||
| `skip` | number | Nein | Anzahl der zu überspringenden Buchungen \(Paginierungsoffset\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | array | Array von Buchungen |
|
||||
| ↳ `eventType` | object | Details zum Ereignistyp |
|
||||
| ↳ `id` | number | Ereignistyp-ID |
|
||||
| ↳ `slug` | string | Ereignistyp-Slug |
|
||||
| ↳ `attendees` | array | Liste der Teilnehmer |
|
||||
| ↳ `name` | string | Name des Teilnehmers |
|
||||
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Teilnehmers |
|
||||
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
|
||||
| ↳ `timeZone` | string | Zeitzone des Teilnehmers \(IANA-Format\) |
|
||||
| ↳ `phoneNumber` | string | Telefonnummer des Teilnehmers |
|
||||
| ↳ `language` | string | Sprachpräferenz des Teilnehmers \(ISO-Code\) |
|
||||
| ↳ `absent` | boolean | Ob der Teilnehmer abwesend war |
|
||||
| ↳ `hosts` | array | Liste der Gastgeber |
|
||||
| ↳ `id` | number | Benutzer-ID des Gastgebers |
|
||||
| ↳ `name` | string | Anzeigename des Gastgebers |
|
||||
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Gastgebers |
|
||||
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
|
||||
| ↳ `username` | string | Cal.com-Benutzername des Gastgebers |
|
||||
| ↳ `timeZone` | string | Zeitzone des Gastgebers \(IANA-Format\) |
|
||||
| ↳ `id` | number | Numerische Buchungs-ID |
|
||||
| ↳ `uid` | string | Eindeutige Kennung für die Buchung |
|
||||
| ↳ `title` | string | Titel der Buchung |
|
||||
| ↳ `description` | string | Beschreibung der Buchung |
|
||||
| ↳ `status` | string | Buchungsstatus \(z. B. accepted, pending, cancelled\) |
|
||||
| ↳ `start` | string | Startzeit im ISO-8601-Format |
|
||||
| ↳ `end` | string | Endzeit im ISO-8601-Format |
|
||||
| ↳ `duration` | number | Dauer in Minuten |
|
||||
| ↳ `eventTypeId` | number | Ereignistyp-ID |
|
||||
| ↳ `meetingUrl` | string | URL zum Beitritt zum Meeting |
|
||||
| ↳ `location` | string | Ort der Buchung |
|
||||
| ↳ `absentHost` | boolean | Ob der Gastgeber abwesend war |
|
||||
| ↳ `guests` | array | E-Mail-Adressen der Gäste |
|
||||
| ↳ `bookingFieldsResponses` | json | Antworten auf benutzerdefinierte Buchungsfelder \(dynamische Schlüssel basierend auf der Ereignistyp-Konfiguration\) |
|
||||
| ↳ `metadata` | json | Benutzerdefinierte Metadaten, die der Buchung zugeordnet sind \(dynamische Schlüssel-Wert-Paare\) |
|
||||
| ↳ `rating` | number | Buchungsbewertung |
|
||||
| ↳ `icsUid` | string | ICS-Kalender-UID |
|
||||
| ↳ `cancellationReason` | string | Grund für die Stornierung, falls storniert |
|
||||
| ↳ `cancelledByEmail` | string | E-Mail der Person, die die Buchung storniert hat |
|
||||
| ↳ `reschedulingReason` | string | Grund für die Umbuchung, falls umgebucht |
|
||||
| ↳ `rescheduledByEmail` | string | E-Mail der Person, die die Buchung umgebucht hat |
|
||||
| ↳ `rescheduledFromUid` | string | Ursprüngliche Buchungs-UID, falls diese Buchung umgebucht wurde |
|
||||
| ↳ `rescheduledToUid` | string | Neue Buchungs-UID nach Umbuchung |
|
||||
| ↳ `createdAt` | string | Zeitpunkt der Erstellung der Buchung |
|
||||
| ↳ `updatedAt` | string | Zeitpunkt der letzten Aktualisierung der Buchung |
|
||||
| `pagination` | object | Paginierungs-Metadaten |
|
||||
| ↳ `totalItems` | number | Gesamtanzahl der Elemente |
|
||||
| ↳ `remainingItems` | number | Verbleibende Elemente nach der aktuellen Seite |
|
||||
| ↳ `returnedItems` | number | Anzahl der in dieser Antwort zurückgegebenen Elemente |
|
||||
| ↳ `itemsPerPage` | number | Elemente pro Seite |
|
||||
| ↳ `currentPage` | number | Aktuelle Seitennummer |
|
||||
| ↳ `totalPages` | number | Gesamtanzahl der Seiten |
|
||||
| ↳ `hasNextPage` | boolean | Ob es eine nächste Seite gibt |
|
||||
| ↳ `hasPreviousPage` | boolean | Ob es eine vorherige Seite gibt |
|
||||
|
||||
### `calcom_cancel_booking`
|
||||
|
||||
Eine bestehende Buchung stornieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `bookingUid` | string | Ja | Eindeutige Kennung \(UID\) der zu stornierenden Buchung |
|
||||
| `cancellationReason` | string | Nein | Grund für die Stornierung der Buchung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | object | Details der stornierten Buchung |
|
||||
| ↳ `eventType` | object | Details des Ereignistyps |
|
||||
| ↳ `id` | number | Ereignistyp-ID |
|
||||
| ↳ `slug` | string | Ereignistyp-Slug |
|
||||
| ↳ `attendees` | array | Liste der Teilnehmer |
|
||||
| ↳ `name` | string | Name des Teilnehmers |
|
||||
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Teilnehmers |
|
||||
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
|
||||
| ↳ `timeZone` | string | Zeitzone des Teilnehmers \(IANA-Format\) |
|
||||
| ↳ `phoneNumber` | string | Telefonnummer des Teilnehmers |
|
||||
| ↳ `language` | string | Sprachpräferenz des Teilnehmers \(ISO-Code\) |
|
||||
| ↳ `absent` | boolean | Ob der Teilnehmer abwesend war |
|
||||
| ↳ `hosts` | array | Liste der Gastgeber |
|
||||
| ↳ `id` | number | Benutzer-ID des Gastgebers |
|
||||
| ↳ `name` | string | Anzeigename des Gastgebers |
|
||||
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Gastgebers |
|
||||
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
|
||||
| ↳ `username` | string | Cal.com-Benutzername des Gastgebers |
|
||||
| ↳ `timeZone` | string | Zeitzone des Gastgebers \(IANA-Format\) |
|
||||
| ↳ `id` | number | Numerische Buchungs-ID |
|
||||
| ↳ `uid` | string | Eindeutige Kennung für die Buchung |
|
||||
| ↳ `title` | string | Titel der Buchung |
|
||||
| ↳ `cancellationReason` | string | Grund für die Stornierung, falls storniert |
|
||||
| ↳ `cancelledByEmail` | string | E-Mail der Person, die die Buchung storniert hat |
|
||||
| ↳ `start` | string | Startzeit im ISO-8601-Format |
|
||||
| ↳ `end` | string | Endzeit im ISO-8601-Format |
|
||||
| ↳ `duration` | number | Dauer in Minuten |
|
||||
| ↳ `eventTypeId` | number | Ereignistyp-ID |
|
||||
| ↳ `location` | string | Ort der Buchung |
|
||||
| ↳ `metadata` | json | Benutzerdefinierte Metadaten, die der Buchung zugeordnet sind \(dynamische Schlüssel-Wert-Paare\) |
|
||||
| ↳ `createdAt` | string | Zeitpunkt der Erstellung der Buchung |
|
||||
| ↳ `status` | string | Buchungsstatus \(sollte storniert sein\) |
|
||||
|
||||
### `calcom_reschedule_booking`
|
||||
|
||||
Eine bestehende Buchung auf einen neuen Zeitpunkt verschieben
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `bookingUid` | string | Ja | Eindeutige Kennung \(UID\) der zu verschiebenden Buchung |
|
||||
| `start` | string | Ja | Neue Startzeit im UTC ISO 8601-Format \(z. B. 2024-01-15T09:00:00Z\) |
|
||||
| `reschedulingReason` | string | Nein | Grund für die Verschiebung der Buchung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | object | Details der verschobenen Buchung |
|
||||
| ↳ `eventType` | object | Details des Ereignistyps |
|
||||
| ↳ `id` | number | Ereignistyp-ID |
|
||||
| ↳ `slug` | string | Ereignistyp-Slug |
|
||||
| ↳ `attendees` | array | Liste der Teilnehmer |
|
||||
| ↳ `name` | string | Name des Teilnehmers |
|
||||
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Teilnehmers |
|
||||
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
|
||||
| ↳ `timeZone` | string | Zeitzone des Teilnehmers \(IANA-Format\) |
|
||||
| ↳ `phoneNumber` | string | Telefonnummer des Teilnehmers |
|
||||
| ↳ `language` | string | Sprachpräferenz des Teilnehmers \(ISO-Code\) |
|
||||
| ↳ `absent` | boolean | Ob der Teilnehmer abwesend war |
|
||||
| ↳ `hosts` | array | Liste der Gastgeber |
|
||||
| ↳ `id` | number | Benutzer-ID des Gastgebers |
|
||||
| ↳ `name` | string | Anzeigename des Gastgebers |
|
||||
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Gastgebers |
|
||||
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
|
||||
| ↳ `username` | string | Cal.com-Benutzername des Gastgebers |
|
||||
| ↳ `timeZone` | string | Zeitzone des Gastgebers \(IANA-Format\) |
|
||||
| ↳ `id` | number | Numerische Buchungs-ID |
|
||||
| ↳ `title` | string | Titel der Buchung |
|
||||
| ↳ `status` | string | Buchungsstatus \(z. B. akzeptiert, ausstehend, storniert\) |
|
||||
| ↳ `reschedulingReason` | string | Grund für die Verschiebung, falls verschoben |
|
||||
| ↳ `rescheduledFromUid` | string | Ursprüngliche Buchungs-UID, falls diese Buchung verschoben wurde |
|
||||
| ↳ `rescheduledByEmail` | string | E-Mail der Person, die die Buchung verschoben hat |
|
||||
| ↳ `duration` | number | Dauer in Minuten |
|
||||
| ↳ `eventTypeId` | number | Ereignistyp-ID |
|
||||
| ↳ `meetingUrl` | string | URL zum Beitreten des Meetings |
|
||||
| ↳ `location` | string | Ort der Buchung |
|
||||
| ↳ `guests` | array | E-Mail-Adressen der Gäste |
|
||||
| ↳ `metadata` | json | Benutzerdefinierte Metadaten, die an die Buchung angehängt sind \(dynamische Schlüssel-Wert-Paare\) |
|
||||
| ↳ `icsUid` | string | ICS-Kalender-UID |
|
||||
| ↳ `createdAt` | string | Zeitpunkt der Erstellung der Buchung |
|
||||
| ↳ `uid` | string | Eindeutige Kennung für die neue Buchung |
|
||||
| ↳ `start` | string | Neue Startzeit im ISO 8601-Format |
|
||||
| ↳ `end` | string | Neue Endzeit im ISO 8601-Format |
|
||||
|
||||
### `calcom_confirm_booking`
|
||||
|
||||
Eine ausstehende Buchung bestätigen, die eine Bestätigung erfordert
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `bookingUid` | string | Ja | Eindeutige Kennung \(UID\) der zu bestätigenden Buchung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | object | Details der bestätigten Buchung |
|
||||
| ↳ `eventType` | object | Details des Ereignistyps |
|
||||
| ↳ `id` | number | Ereignistyp-ID |
|
||||
| ↳ `slug` | string | Ereignistyp-Slug |
|
||||
| ↳ `attendees` | array | Liste der Teilnehmer |
|
||||
| ↳ `name` | string | Name des Teilnehmers |
|
||||
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Teilnehmers |
|
||||
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
|
||||
| ↳ `timeZone` | string | Zeitzone des Teilnehmers \(IANA-Format\) |
|
||||
| ↳ `phoneNumber` | string | Telefonnummer des Teilnehmers |
|
||||
| ↳ `language` | string | Sprachpräferenz des Teilnehmers \(ISO-Code\) |
|
||||
| ↳ `absent` | boolean | Ob der Teilnehmer abwesend war |
|
||||
| ↳ `hosts` | array | Liste der Gastgeber |
|
||||
| ↳ `id` | number | Benutzer-ID des Gastgebers |
|
||||
| ↳ `name` | string | Anzeigename des Gastgebers |
|
||||
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Gastgebers |
|
||||
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail \(kann von der tatsächlichen E-Mail abweichen\) |
|
||||
| ↳ `username` | string | Cal.com-Benutzername des Gastgebers |
|
||||
| ↳ `timeZone` | string | Zeitzone des Gastgebers \(IANA-Format\) |
|
||||
| ↳ `id` | number | Numerische Buchungs-ID |
|
||||
| ↳ `uid` | string | Eindeutige Kennung für die Buchung |
|
||||
| ↳ `title` | string | Titel der Buchung |
|
||||
| ↳ `start` | string | Startzeit im ISO-8601-Format |
|
||||
| ↳ `end` | string | Endzeit im ISO-8601-Format |
|
||||
| ↳ `duration` | number | Dauer in Minuten |
|
||||
| ↳ `eventTypeId` | number | Ereignistyp-ID |
|
||||
| ↳ `meetingUrl` | string | URL zum Beitreten des Meetings |
|
||||
| ↳ `location` | string | Ort der Buchung |
|
||||
| ↳ `guests` | array | E-Mail-Adressen der Gäste |
|
||||
| ↳ `metadata` | json | Benutzerdefinierte Metadaten, die der Buchung angehängt sind \(dynamische Schlüssel-Wert-Paare\) |
|
||||
| ↳ `icsUid` | string | ICS-Kalender-UID |
|
||||
| ↳ `createdAt` | string | Zeitpunkt der Erstellung der Buchung |
|
||||
| ↳ `status` | string | Buchungsstatus \(sollte akzeptiert/bestätigt sein\) |
|
||||
|
||||
### `calcom_decline_booking`
|
||||
|
||||
Eine ausstehende Buchungsanfrage ablehnen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `bookingUid` | string | Ja | Eindeutige Kennung (UID) der abzulehnenden Buchung |
|
||||
| `reason` | string | Nein | Grund für die Ablehnung der Buchung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | object | Details der abgelehnten Buchung |
|
||||
| ↳ `eventType` | object | Details des Ereignistyps |
|
||||
| ↳ `id` | number | Ereignistyp-ID |
|
||||
| ↳ `slug` | string | Ereignistyp-Slug |
|
||||
| ↳ `attendees` | array | Liste der Teilnehmer |
|
||||
| ↳ `name` | string | Name des Teilnehmers |
|
||||
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Teilnehmers |
|
||||
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail (kann von der tatsächlichen E-Mail abweichen) |
|
||||
| ↳ `timeZone` | string | Zeitzone des Teilnehmers (IANA-Format) |
|
||||
| ↳ `phoneNumber` | string | Telefonnummer des Teilnehmers |
|
||||
| ↳ `language` | string | Sprachpräferenz des Teilnehmers (ISO-Code) |
|
||||
| ↳ `absent` | boolean | Ob der Teilnehmer abwesend war |
|
||||
| ↳ `hosts` | array | Liste der Gastgeber |
|
||||
| ↳ `id` | number | Benutzer-ID des Gastgebers |
|
||||
| ↳ `name` | string | Anzeigename des Gastgebers |
|
||||
| ↳ `email` | string | Tatsächliche E-Mail-Adresse des Gastgebers |
|
||||
| ↳ `displayEmail` | string | Öffentlich angezeigte E-Mail (kann von der tatsächlichen E-Mail abweichen) |
|
||||
| ↳ `username` | string | Cal.com-Benutzername des Gastgebers |
|
||||
| ↳ `timeZone` | string | Zeitzone des Gastgebers (IANA-Format) |
|
||||
| ↳ `id` | number | Numerische Buchungs-ID |
|
||||
| ↳ `uid` | string | Eindeutige Kennung für die Buchung |
|
||||
| ↳ `title` | string | Titel der Buchung |
|
||||
| ↳ `cancellationReason` | string | Grund für die Stornierung, falls storniert |
|
||||
| ↳ `start` | string | Startzeit im ISO-8601-Format |
|
||||
| ↳ `end` | string | Endzeit im ISO-8601-Format |
|
||||
| ↳ `duration` | number | Dauer in Minuten |
|
||||
| ↳ `eventTypeId` | number | Ereignistyp-ID |
|
||||
| ↳ `location` | string | Ort der Buchung |
|
||||
| ↳ `metadata` | json | Benutzerdefinierte Metadaten, die der Buchung angehängt sind (dynamische Schlüssel-Wert-Paare) |
|
||||
| ↳ `createdAt` | string | Zeitpunkt der Erstellung der Buchung |
|
||||
| ↳ `status` | string | Buchungsstatus (sollte storniert/abgelehnt sein) |
|
||||
|
||||
### `calcom_create_event_type`
|
||||
|
||||
Einen neuen Ereignistyp in Cal.com erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `title` | string | Ja | Titel des Ereignistyps |
|
||||
| `slug` | string | Ja | Eindeutiger Slug für die Ereignistyp-URL |
|
||||
| `lengthInMinutes` | number | Ja | Dauer des Ereignisses in Minuten |
|
||||
| `description` | string | Nein | Beschreibung des Ereignistyps |
|
||||
| `slotInterval` | number | Nein | Intervall zwischen verfügbaren Buchungsslots in Minuten |
|
||||
| `minimumBookingNotice` | number | Nein | Erforderliche Mindestvorlaufzeit vor der Buchung in Minuten |
|
||||
| `beforeEventBuffer` | number | Nein | Pufferzeit vor dem Ereignis in Minuten |
|
||||
| `afterEventBuffer` | number | Nein | Pufferzeit nach dem Ereignis in Minuten |
|
||||
| `scheduleId` | number | Nein | ID des Zeitplans für die Verfügbarkeit |
|
||||
| `disableGuests` | boolean | Nein | Ob das Hinzufügen von Gästen zu Buchungen deaktiviert ist |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | object | Details des erstellten Ereignistyps |
|
||||
| ↳ `id` | number | Ereignistyp-ID |
|
||||
| ↳ `title` | string | Ereignistyp-Titel |
|
||||
| ↳ `slug` | string | Ereignistyp-Slug |
|
||||
| ↳ `description` | string | Ereignistyp-Beschreibung |
|
||||
| ↳ `lengthInMinutes` | number | Dauer in Minuten |
|
||||
| ↳ `slotInterval` | number | Slot-Intervall in Minuten |
|
||||
| ↳ `minimumBookingNotice` | number | Mindestvorlaufzeit für Buchung in Minuten |
|
||||
| ↳ `beforeEventBuffer` | number | Puffer vor Ereignis in Minuten |
|
||||
| ↳ `afterEventBuffer` | number | Puffer nach Ereignis in Minuten |
|
||||
| ↳ `scheduleId` | number | Zeitplan-ID |
|
||||
| ↳ `disableGuests` | boolean | Ob Gäste deaktiviert sind |
|
||||
| ↳ `createdAt` | string | ISO-Zeitstempel der Erstellung |
|
||||
| ↳ `updatedAt` | string | ISO-Zeitstempel der letzten Aktualisierung |
|
||||
|
||||
### `calcom_get_event_type`
|
||||
|
||||
Detaillierte Informationen über einen bestimmten Ereignistyp abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `eventTypeId` | number | Ja | Ereignistyp-ID zum Abrufen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | object | Details zum Ereignistyp |
|
||||
| ↳ `id` | number | Ereignistyp-ID |
|
||||
| ↳ `title` | string | Titel des Ereignistyps |
|
||||
| ↳ `slug` | string | Slug des Ereignistyps |
|
||||
| ↳ `description` | string | Beschreibung des Ereignistyps |
|
||||
| ↳ `lengthInMinutes` | number | Dauer in Minuten |
|
||||
| ↳ `slotInterval` | number | Zeitfensterintervall in Minuten |
|
||||
| ↳ `minimumBookingNotice` | number | Mindestvorlaufzeit für Buchungen in Minuten |
|
||||
| ↳ `beforeEventBuffer` | number | Puffer vor dem Ereignis in Minuten |
|
||||
| ↳ `afterEventBuffer` | number | Puffer nach dem Ereignis in Minuten |
|
||||
| ↳ `scheduleId` | number | Zeitplan-ID |
|
||||
| ↳ `disableGuests` | boolean | Ob Gäste deaktiviert sind |
|
||||
| ↳ `createdAt` | string | ISO-Zeitstempel der Erstellung |
|
||||
| ↳ `updatedAt` | string | ISO-Zeitstempel der letzten Aktualisierung |
|
||||
|
||||
### `calcom_list_event_types`
|
||||
|
||||
Eine Liste aller Ereignistypen abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `sortCreatedAt` | string | Nein | Sortierung nach Erstellungsdatum: "asc" oder "desc" |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | array | Array von Ereignistypen |
|
||||
| ↳ `id` | number | Ereignistyp-ID |
|
||||
| ↳ `title` | string | Ereignistyp-Titel |
|
||||
| ↳ `slug` | string | Ereignistyp-Slug |
|
||||
| ↳ `description` | string | Ereignistyp-Beschreibung |
|
||||
| ↳ `lengthInMinutes` | number | Dauer in Minuten |
|
||||
| ↳ `slotInterval` | number | Zeitfensterintervall in Minuten |
|
||||
| ↳ `minimumBookingNotice` | number | Mindestvorlaufzeit für Buchungen in Minuten |
|
||||
| ↳ `beforeEventBuffer` | number | Pufferzeit vor dem Ereignis in Minuten |
|
||||
| ↳ `afterEventBuffer` | number | Pufferzeit nach dem Ereignis in Minuten |
|
||||
| ↳ `scheduleId` | number | Zeitplan-ID |
|
||||
| ↳ `disableGuests` | boolean | Ob Gäste deaktiviert sind |
|
||||
| ↳ `createdAt` | string | ISO-Zeitstempel der Erstellung |
|
||||
| ↳ `updatedAt` | string | ISO-Zeitstempel der letzten Aktualisierung |
|
||||
|
||||
### `calcom_update_event_type`
|
||||
|
||||
Einen bestehenden Ereignistyp in Cal.com aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `eventTypeId` | number | Ja | Zu aktualisierende Ereignistyp-ID \(z. B. 12345\) |
|
||||
| `title` | string | Nein | Titel des Ereignistyps |
|
||||
| `slug` | string | Nein | Eindeutiger Slug für die Ereignistyp-URL |
|
||||
| `lengthInMinutes` | number | Nein | Dauer des Ereignisses in Minuten |
|
||||
| `description` | string | Nein | Beschreibung des Ereignistyps |
|
||||
| `slotInterval` | number | Nein | Intervall zwischen verfügbaren Buchungszeitfenstern in Minuten |
|
||||
| `minimumBookingNotice` | number | Nein | Erforderliche Mindestvorlaufzeit vor der Buchung in Minuten |
|
||||
| `beforeEventBuffer` | number | Nein | Pufferzeit vor dem Ereignis in Minuten |
|
||||
| `afterEventBuffer` | number | Nein | Pufferzeit nach dem Ereignis in Minuten |
|
||||
| `scheduleId` | number | Nein | ID des Zeitplans für die Verfügbarkeit |
|
||||
| `disableGuests` | boolean | Nein | Ob das Hinzufügen von Gästen zu Buchungen deaktiviert werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | object | Aktualisierte Details des Ereignistyps |
|
||||
| ↳ `id` | number | Ereignistyp-ID |
|
||||
| ↳ `title` | string | Titel des Ereignistyps |
|
||||
| ↳ `slug` | string | Slug des Ereignistyps |
|
||||
| ↳ `description` | string | Beschreibung des Ereignistyps |
|
||||
| ↳ `lengthInMinutes` | number | Dauer in Minuten |
|
||||
| ↳ `slotInterval` | number | Zeitfensterintervall in Minuten |
|
||||
| ↳ `minimumBookingNotice` | number | Mindestvorlaufzeit für Buchungen in Minuten |
|
||||
| ↳ `beforeEventBuffer` | number | Puffer vor dem Ereignis in Minuten |
|
||||
| ↳ `afterEventBuffer` | number | Puffer nach dem Ereignis in Minuten |
|
||||
| ↳ `scheduleId` | number | Zeitplan-ID |
|
||||
| ↳ `disableGuests` | boolean | Ob Gäste deaktiviert sind |
|
||||
| ↳ `createdAt` | string | ISO-Zeitstempel der Erstellung |
|
||||
| ↳ `updatedAt` | string | ISO-Zeitstempel der letzten Aktualisierung |
|
||||
|
||||
### `calcom_delete_event_type`
|
||||
|
||||
Einen Ereignistyp aus Cal.com löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `eventTypeId` | number | Ja | Zu löschende Ereignistyp-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | object | Details des gelöschten Ereignistyps |
|
||||
| ↳ `id` | number | Ereignistyp-ID |
|
||||
| ↳ `lengthInMinutes` | number | Dauer in Minuten |
|
||||
| ↳ `title` | string | Titel des Ereignistyps |
|
||||
| ↳ `slug` | string | Slug des Ereignistyps |
|
||||
|
||||
### `calcom_create_schedule`
|
||||
|
||||
Einen neuen Verfügbarkeitsplan in Cal.com erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `name` | string | Ja | Name des Plans |
|
||||
| `timeZone` | string | Ja | Zeitzone für den Plan \(z. B. America/New_York\) |
|
||||
| `isDefault` | boolean | Ja | Ob dieser Plan als Standard festgelegt werden soll |
|
||||
| `availability` | array | Nein | Verfügbarkeitsintervalle für den Plan |
|
||||
| `items` | object | Nein | Verfügbarkeitsintervall |
|
||||
| `properties` | array | Nein | Wochentage \(Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag\) |
|
||||
| `days` | array | Nein | Wochentage \(Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag\) |
|
||||
| `startTime` | string | Nein | Startzeit im Format HH:MM |
|
||||
| `endTime` | string | Nein | Endzeit im Format HH:MM |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | object | Erstellte Plandaten |
|
||||
| ↳ `id` | number | Plan-ID |
|
||||
| ↳ `ownerId` | number | Benutzer-ID des Eigentümers |
|
||||
| ↳ `name` | string | Planname |
|
||||
| ↳ `timeZone` | string | Zeitzone \(z. B. America/New_York\) |
|
||||
| ↳ `isDefault` | boolean | Ob dies der Standardplan ist |
|
||||
| ↳ `availability` | array | Verfügbarkeitsfenster |
|
||||
| ↳ `days` | array | Wochentage \(Montag, Dienstag usw.\) |
|
||||
| ↳ `startTime` | string | Startzeit im Format HH:MM |
|
||||
| ↳ `endTime` | string | Endzeit im Format HH:MM |
|
||||
| ↳ `overrides` | array | Datumsspezifische Verfügbarkeitsüberschreibungen |
|
||||
| ↳ `date` | string | Datum im Format JJJJ-MM-TT |
|
||||
| ↳ `startTime` | string | Startzeit im Format HH:MM |
|
||||
| ↳ `endTime` | string | Endzeit im Format HH:MM |
|
||||
|
||||
### `calcom_get_schedule`
|
||||
|
||||
Einen bestimmten Zeitplan anhand der ID von Cal.com abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `scheduleId` | string | Ja | ID des abzurufenden Zeitplans |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | object | Zeitplandaten |
|
||||
| ↳ `id` | number | Zeitplan-ID |
|
||||
| ↳ `ownerId` | number | Benutzer-ID des Eigentümers |
|
||||
| ↳ `name` | string | Zeitplanname |
|
||||
| ↳ `timeZone` | string | Zeitzone \(z. B. America/New_York\) |
|
||||
| ↳ `isDefault` | boolean | Ob dies der Standardzeitplan ist |
|
||||
| ↳ `availability` | array | Verfügbarkeitsfenster |
|
||||
| ↳ `days` | array | Wochentage \(Montag, Dienstag usw.\) |
|
||||
| ↳ `startTime` | string | Startzeit im Format HH:MM |
|
||||
| ↳ `endTime` | string | Endzeit im Format HH:MM |
|
||||
| ↳ `overrides` | array | Datumsspezifische Verfügbarkeitsüberschreibungen |
|
||||
| ↳ `date` | string | Datum im Format JJJJ-MM-TT |
|
||||
| ↳ `startTime` | string | Startzeit im Format HH:MM |
|
||||
| ↳ `endTime` | string | Endzeit im Format HH:MM |
|
||||
|
||||
### `calcom_list_schedules`
|
||||
|
||||
Alle Verfügbarkeitszeitpläne von Cal.com auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | array | Array von Zeitplanobjekten |
|
||||
| ↳ `id` | number | Zeitplan-ID |
|
||||
| ↳ `ownerId` | number | Benutzer-ID des Eigentümers |
|
||||
| ↳ `name` | string | Zeitplanname |
|
||||
| ↳ `timeZone` | string | Zeitzone \(z. B. America/New_York\) |
|
||||
| ↳ `isDefault` | boolean | Ob dies der Standardzeitplan ist |
|
||||
| ↳ `availability` | array | Verfügbarkeitsfenster |
|
||||
| ↳ `days` | array | Wochentage \(Montag, Dienstag usw.\) |
|
||||
| ↳ `startTime` | string | Startzeit im Format HH:MM |
|
||||
| ↳ `endTime` | string | Endzeit im Format HH:MM |
|
||||
| ↳ `overrides` | array | Datumsspezifische Verfügbarkeitsüberschreibungen |
|
||||
| ↳ `date` | string | Datum im Format JJJJ-MM-TT |
|
||||
| ↳ `startTime` | string | Startzeit im Format HH:MM |
|
||||
| ↳ `endTime` | string | Endzeit im Format HH:MM |
|
||||
|
||||
### `calcom_update_schedule`
|
||||
|
||||
Einen bestehenden Zeitplan in Cal.com aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `scheduleId` | string | Ja | ID des zu aktualisierenden Zeitplans |
|
||||
| `name` | string | Nein | Neuer Name für den Zeitplan |
|
||||
| `timeZone` | string | Nein | Neue Zeitzone für den Zeitplan \(z. B. America/New_York\) |
|
||||
| `isDefault` | boolean | Nein | Ob dieser Zeitplan als Standard festgelegt werden soll |
|
||||
| `availability` | array | Nein | Neue Verfügbarkeitsintervalle für den Zeitplan |
|
||||
| `items` | object | Nein | Verfügbarkeitsintervall |
|
||||
| `properties` | array | Nein | Wochentage \(Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag\) |
|
||||
| `days` | array | Nein | Wochentage \(Montag, Dienstag, Mittwoch, Donnerstag, Freitag, Samstag, Sonntag\) |
|
||||
| `startTime` | string | Nein | Startzeit im Format HH:MM |
|
||||
| `endTime` | string | Nein | Endzeit im Format HH:MM |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | object | Aktualisierte Zeitplandaten |
|
||||
| ↳ `id` | number | Zeitplan-ID |
|
||||
| ↳ `ownerId` | number | Benutzer-ID des Eigentümers |
|
||||
| ↳ `name` | string | Zeitplanname |
|
||||
| ↳ `timeZone` | string | Zeitzone \(z. B. America/New_York\) |
|
||||
| ↳ `isDefault` | boolean | Ob dies der Standardzeitplan ist |
|
||||
| ↳ `availability` | array | Verfügbarkeitsfenster |
|
||||
| ↳ `days` | array | Wochentage \(Montag, Dienstag usw.\) |
|
||||
| ↳ `startTime` | string | Startzeit im Format HH:MM |
|
||||
| ↳ `endTime` | string | Endzeit im Format HH:MM |
|
||||
| ↳ `overrides` | array | Datumsspezifische Verfügbarkeitsüberschreibungen |
|
||||
| ↳ `date` | string | Datum im Format JJJJ-MM-TT |
|
||||
| ↳ `startTime` | string | Startzeit im Format HH:MM |
|
||||
| ↳ `endTime` | string | Endzeit im Format HH:MM |
|
||||
|
||||
### `calcom_delete_schedule`
|
||||
|
||||
Einen Zeitplan aus Cal.com löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `scheduleId` | string | Ja | ID des zu löschenden Zeitplans |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus \(Erfolg oder Fehler\) |
|
||||
|
||||
### `calcom_get_default_schedule`
|
||||
|
||||
Den Standard-Verfügbarkeitszeitplan aus Cal.com abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | object | Standard-Zeitplandaten |
|
||||
| ↳ `id` | number | Zeitplan-ID |
|
||||
| ↳ `ownerId` | number | Benutzer-ID des Eigentümers |
|
||||
| ↳ `name` | string | Zeitplanname |
|
||||
| ↳ `timeZone` | string | Zeitzone \(z. B. America/New_York\) |
|
||||
| ↳ `isDefault` | boolean | Ob dies der Standardzeitplan ist |
|
||||
| ↳ `availability` | array | Verfügbarkeitsfenster |
|
||||
| ↳ `days` | array | Wochentage \(Montag, Dienstag usw.\) |
|
||||
| ↳ `startTime` | string | Startzeit im Format HH:MM |
|
||||
| ↳ `endTime` | string | Endzeit im Format HH:MM |
|
||||
| ↳ `overrides` | array | Datumsspezifische Verfügbarkeitsüberschreibungen |
|
||||
| ↳ `date` | string | Datum im Format JJJJ-MM-TT |
|
||||
| ↳ `startTime` | string | Startzeit im Format HH:MM |
|
||||
| ↳ `endTime` | string | Endzeit im Format HH:MM |
|
||||
|
||||
### `calcom_get_slots`
|
||||
|
||||
Verfügbare Buchungsslots für einen Cal.com-Ereignistyp innerhalb eines Zeitraums abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `start` | string | Ja | Beginn des Zeitraums im UTC ISO 8601-Format \(z. B. 2024-01-15T00:00:00Z\) |
|
||||
| `end` | string | Ja | Ende des Zeitraums im UTC ISO 8601-Format \(z. B. 2024-01-22T00:00:00Z\) |
|
||||
| `eventTypeId` | number | Nein | Ereignistyp-ID für direkte Suche |
|
||||
| `eventTypeSlug` | string | Nein | Ereignistyp-Slug \(erfordert, dass der Benutzername gesetzt ist\) |
|
||||
| `username` | string | Nein | Benutzername für persönliche Ereignistypen \(erforderlich bei Verwendung von eventTypeSlug\) |
|
||||
| `timeZone` | string | Nein | Zeitzone für zurückgegebene Slots \(Standard ist UTC\) |
|
||||
| `duration` | number | Nein | Slot-Länge in Minuten |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `status` | string | Antwortstatus |
|
||||
| `data` | json | Verfügbare Zeitslots gruppiert nach Datum \(Schlüssel im Format JJJJ-MM-TT\). Jedes Datum ist einem Array von Slot-Objekten mit Startzeit, optionaler Endzeit und Informationen zu Sitzplatz-Events zugeordnet. |
|
||||
@@ -0,0 +1,167 @@
|
||||
---
|
||||
title: Calendly
|
||||
description: Verwalte Calendly-Terminplanung und Ereignisse
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="calendly"
|
||||
color="#FFFFFF"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Calendly](https://calendly.com/) ist eine beliebte Plattform zur Terminplanungsautomatisierung, die Ihnen hilft, Meetings, Events und Termine mühelos zu buchen. Mit Calendly können Teams und Einzelpersonen die Terminplanung optimieren, den E-Mail-Austausch reduzieren und Aufgaben rund um Veranstaltungen automatisieren.
|
||||
|
||||
Mit der Sim Calendly-Integration können Ihre Agenten:
|
||||
|
||||
- **Informationen über Ihr Konto und geplante Ereignisse abrufen**: Verwenden Sie Tools, um Benutzerinformationen, Ereignistypen und geplante Ereignisse für Analysen oder Automatisierungen abzurufen.
|
||||
- **Ereignistypen und Terminplanung verwalten**: Greifen Sie auf verfügbare Ereignistypen für Benutzer oder Organisationen zu und listen Sie diese auf, rufen Sie Details zu bestimmten Ereignistypen ab und überwachen Sie geplante Meetings und Teilnehmerdaten.
|
||||
- **Automatisieren Sie Follow-ups und Workflows**: Wenn Benutzer Meetings planen, umplanen oder stornieren, können Sim-Agenten automatisch entsprechende Workflows auslösen – wie das Senden von Erinnerungen, das Aktualisieren von CRMs oder das Benachrichtigen von Teilnehmern.
|
||||
- **Einfache Integration über Webhooks**: Richten Sie Sim-Workflows ein, um auf Calendly-Webhook-Ereignisse in Echtzeit zu reagieren, einschließlich wenn Eingeladene Termine planen, stornieren oder mit Routing-Formularen interagieren.
|
||||
|
||||
Ob Sie die Meeting-Vorbereitung automatisieren, Einladungen verwalten oder benutzerdefinierte Workflows als Reaktion auf Planungsaktivitäten ausführen möchten – die Calendly-Tools in Sim bieten Ihnen flexiblen und sicheren Zugriff. Erschließen Sie neue Automatisierungsmöglichkeiten, indem Sie sofort auf Planungsänderungen reagieren – und optimieren Sie so die Abläufe und die Kommunikation Ihres Teams.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integrieren Sie Calendly in Ihren Workflow. Verwalten Sie Ereignistypen, geplante Ereignisse, Eingeladene und Webhooks. Kann auch Workflows basierend auf Calendly-Webhook-Ereignissen auslösen (Eingeladener hat Termin vereinbart, Eingeladener hat storniert, Routing-Formular wurde eingereicht). Erfordert einen persönlichen Zugriffstoken.
|
||||
|
||||
## Tools
|
||||
|
||||
### `calendly_get_current_user`
|
||||
|
||||
Informationen über den aktuell authentifizierten Calendly-Benutzer abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Calendly persönlicher Zugriffstoken |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `resource` | object | Informationen zum aktuellen Benutzer |
|
||||
|
||||
### `calendly_list_event_types`
|
||||
|
||||
Eine Liste aller Ereignistypen für einen Benutzer oder eine Organisation abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Calendly persönliches Zugriffstoken |
|
||||
| `user` | string | Nein | Nur Ereignistypen zurückgeben, die zu diesem Benutzer gehören \(URI-Format\) |
|
||||
| `organization` | string | Nein | Nur Ereignistypen zurückgeben, die zu dieser Organisation gehören \(URI-Format\) |
|
||||
| `count` | number | Nein | Anzahl der Ergebnisse pro Seite \(Standard: 20, max: 100\) |
|
||||
| `pageToken` | string | Nein | Seitentoken für Paginierung |
|
||||
| `sort` | string | Nein | Sortierreihenfolge für Ergebnisse \(z.B. "name:asc", "name:desc"\) |
|
||||
| `active` | boolean | Nein | Bei true werden nur aktive Ereignistypen angezeigt. Bei false oder nicht ausgewählt werden alle Ereignistypen angezeigt \(sowohl aktive als auch inaktive\). |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `collection` | array | Array von Ereignistyp-Objekten |
|
||||
|
||||
### `calendly_get_event_type`
|
||||
|
||||
Detaillierte Informationen über einen bestimmten Ereignistyp abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Calendly persönliches Zugriffstoken |
|
||||
| `eventTypeUuid` | string | Ja | Ereignistyp-UUID \(kann vollständige URI oder nur die UUID sein\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `resource` | object | Details zum Ereignistyp |
|
||||
|
||||
### `calendly_list_scheduled_events`
|
||||
|
||||
Eine Liste geplanter Ereignisse für einen Benutzer oder eine Organisation abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Calendly persönliches Zugriffstoken |
|
||||
| `user` | string | Nein | Gibt Ereignisse zurück, die zu diesem Benutzer gehören \(URI-Format\). Entweder "user" oder "organization" muss angegeben werden. |
|
||||
| `organization` | string | Nein | Gibt Ereignisse zurück, die zu dieser Organisation gehören \(URI-Format\). Entweder "user" oder "organization" muss angegeben werden. |
|
||||
| `invitee_email` | string | Nein | Gibt Ereignisse zurück, bei denen der Eingeladene diese E-Mail hat |
|
||||
| `count` | number | Nein | Anzahl der Ergebnisse pro Seite \(Standard: 20, max: 100\) |
|
||||
| `max_start_time` | string | Nein | Gibt Ereignisse mit Startzeit vor diesem Zeitpunkt zurück \(ISO 8601-Format\) |
|
||||
| `min_start_time` | string | Nein | Gibt Ereignisse mit Startzeit nach diesem Zeitpunkt zurück \(ISO 8601-Format\) |
|
||||
| `pageToken` | string | Nein | Seitentoken für Paginierung |
|
||||
| `sort` | string | Nein | Sortierreihenfolge für Ergebnisse \(z.B. "start_time:asc", "start_time:desc"\) |
|
||||
| `status` | string | Nein | Nach Status filtern \("active" oder "canceled"\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `collection` | array | Array von geplanten Ereignisobjekten |
|
||||
|
||||
### `calendly_get_scheduled_event`
|
||||
|
||||
Detaillierte Informationen über ein bestimmtes geplantes Ereignis abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Calendly persönliches Zugriffstoken |
|
||||
| `eventUuid` | string | Ja | UUID des geplanten Ereignisses \(kann vollständige URI oder nur die UUID sein\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `resource` | object | Details zum geplanten Ereignis |
|
||||
|
||||
### `calendly_list_event_invitees`
|
||||
|
||||
Eine Liste der Eingeladenen für ein geplantes Ereignis abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Calendly persönliches Zugriffstoken |
|
||||
| `eventUuid` | string | Ja | UUID des geplanten Ereignisses \(kann vollständige URI oder nur die UUID sein\) |
|
||||
| `count` | number | Nein | Anzahl der Ergebnisse pro Seite \(Standard: 20, max: 100\) |
|
||||
| `email` | string | Nein | Eingeladene nach E-Mail-Adresse filtern |
|
||||
| `pageToken` | string | Nein | Seitentoken für Paginierung |
|
||||
| `sort` | string | Nein | Sortierreihenfolge für Ergebnisse \(z.B. "created_at:asc", "created_at:desc"\) |
|
||||
| `status` | string | Nein | Nach Status filtern \("active" oder "canceled"\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `collection` | array | Array von Eingeladenen-Objekten |
|
||||
|
||||
### `calendly_cancel_event`
|
||||
|
||||
Ein geplantes Ereignis stornieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Calendly persönliches Zugriffstoken |
|
||||
| `eventUuid` | string | Ja | UUID des zu stornierenden geplanten Ereignisses \(kann vollständige URI oder nur die UUID sein\) |
|
||||
| `reason` | string | Nein | Grund für die Stornierung \(wird an Eingeladene gesendet\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `resource` | object | Stornierungsdetails |
|
||||
@@ -0,0 +1,54 @@
|
||||
---
|
||||
title: Circleback
|
||||
description: KI-gestützte Meeting-Notizen und Aufgaben
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="circleback"
|
||||
color="linear-gradient(180deg, #E0F7FA 0%, #FFFFFF 100%)"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Circleback](https://circleback.ai/) ist eine KI-gestützte Plattform, die Meeting-Notizen, Aufgaben, Transkripte und Aufzeichnungen für Ihr Team automatisiert. Wenn ein Meeting abgeschlossen ist, verarbeitet Circleback die Konversation und liefert detaillierte Notizen und Aufgaben sowie ein Transkript und eine Aufzeichnung (sofern verfügbar). Dies hilft Teams dabei, Erkenntnisse effizient zu erfassen, Aufgaben zu verteilen und sicherzustellen, dass nichts übersehen wird – alles nahtlos in Ihre Workflows integriert.
|
||||
|
||||
Mit der Sim Circleback-Integration können Sie:
|
||||
|
||||
- **Detaillierte Meeting-Notizen und Aufgaben erhalten**: Sammeln Sie automatisch gut formatierte Meeting-Zusammenfassungen und verfolgen Sie umsetzbare Aufgaben, die während Ihrer Anrufe besprochen wurden.
|
||||
- **Auf vollständige Meeting-Aufzeichnungen und Transkripte zugreifen**: Erhalten Sie die vollständige Konversation und die zugehörige Aufzeichnung, um wichtige Momente einfach zu überprüfen oder mit Kollegen zu teilen.
|
||||
- **Teilnehmerinformationen und Meeting-Kontext erfassen**: Teilnehmerlisten, Meeting-Metadaten und Tags helfen dabei, Ihre Daten organisiert und umsetzbar zu halten.
|
||||
- **Erkenntnisse direkt in Ihre Workflows liefern**: Lösen Sie Automatisierungen aus oder senden Sie Circleback-Daten an andere Systeme, sobald ein Meeting beendet ist, mithilfe der leistungsstarken Webhook-Trigger von Sim.
|
||||
|
||||
**So funktioniert es in Sim:**
|
||||
Circleback verwendet Webhook-Trigger: Sobald ein Meeting verarbeitet wurde, werden die Daten automatisch an Ihren Agenten oder Ihre Automatisierung übertragen. Sie können weitere Automatisierungen basierend auf folgenden Ereignissen erstellen:
|
||||
|
||||
- Meeting abgeschlossen (alle verarbeiteten Daten verfügbar)
|
||||
- Neue Notizen (Notizen sind verfügbar, noch bevor das Meeting vollständig verarbeitet ist)
|
||||
- Raw-Webhook-Integration für erweiterte Anwendungsfälle
|
||||
|
||||
**Die folgenden Informationen sind in der Circleback-Meeting-Webhook-Payload verfügbar:**
|
||||
|
||||
| Feld | Typ | Beschreibung |
|
||||
|----------------|---------|----------------------------------------------------|
|
||||
| `id` | number | Circleback Meeting-ID |
|
||||
| `name` | string | Meeting-Titel |
|
||||
| `url` | string | Virtueller Meeting-Link (Zoom, Meet, Teams usw.) |
|
||||
| `createdAt` | string | Zeitstempel der Meeting-Erstellung |
|
||||
| `duration` | number | Dauer in Sekunden |
|
||||
| `recordingUrl` | string | Aufzeichnungs-URL (24 Stunden gültig) |
|
||||
| `tags` | json | Array von Tags |
|
||||
| `icalUid` | string | Kalender-Event-ID |
|
||||
| `attendees` | json | Array von Teilnehmer-Objekten |
|
||||
| `notes` | string | Meeting-Notizen in Markdown |
|
||||
| `actionItems` | json | Array von Aufgaben |
|
||||
| `transcript` | json | Array von Transkript-Segmenten |
|
||||
| `insights` | json | Vom Nutzer erstellte Insights |
|
||||
| `meeting` | json | Vollständige Meeting-Daten |
|
||||
|
||||
Egal, ob Sie sofortige Zusammenfassungen verteilen, Aufgaben protokollieren oder benutzerdefinierte Workflows erstellen möchten, die durch neue Meeting-Daten ausgelöst werden – Circleback und Sim machen es nahtlos, alles rund um Ihre Meetings automatisch zu verwalten.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Erhalten Sie Meeting-Notizen, Aufgaben, Transkripte und Aufzeichnungen, wenn Meetings verarbeitet werden. Circleback nutzt Webhooks, um Daten an Ihre Workflows zu übermitteln.
|
||||
@@ -0,0 +1,55 @@
|
||||
---
|
||||
title: Clay
|
||||
description: Populate Clay workbook
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="clay"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* 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!
|
||||
|
||||
<iframe
|
||||
width="100%"
|
||||
height="400"
|
||||
src="https://www.youtube.com/embed/cx_75X5sI_s"
|
||||
title="Clay Integration with Sim"
|
||||
frameBorder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
></iframe>
|
||||
|
||||
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 | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `webhookURL` | string | Ja | Die Webhook-URL, die befüllt werden soll |
|
||||
| `data` | json | Ja | Die Daten, die befüllt werden sollen |
|
||||
| `authToken` | string | Nein | Optionaler Auth-Token für die Clay-Webhook-Authentifizierung \(die meisten Webhooks benötigen dies nicht\) |
|
||||
|
||||
#### Output
|
||||
@@ -0,0 +1,437 @@
|
||||
---
|
||||
title: Clerk
|
||||
description: Verwalten Sie Benutzer, Organisationen und Sitzungen in Clerk
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="clerk"
|
||||
color="#131316"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Clerk](https://clerk.com/) ist eine umfassende Identitätsinfrastruktur-Plattform, die Ihnen hilft, Benutzer, Authentifizierung und Sitzungen für Ihre Anwendungen zu verwalten.
|
||||
|
||||
In Sim ermöglicht die Clerk-Integration Ihren Agenten, die Benutzer- und Sitzungsverwaltung durch einfach zu bedienende API-basierte Tools zu automatisieren. Agenten können sicher Benutzer auflisten, Benutzerprofile aktualisieren, Organisationen verwalten, Sitzungen überwachen und den Zugriff direkt in Ihrem Workflow widerrufen.
|
||||
|
||||
Mit Clerk können Sie:
|
||||
|
||||
- **Benutzer authentifizieren und Sitzungen verwalten**: Steuern Sie nahtlos Anmeldung, Registrierung und den Sitzungslebenszyklus für Ihre Benutzer.
|
||||
- **Benutzer auflisten und aktualisieren**: Rufen Sie automatisch Benutzerlisten ab, aktualisieren Sie Benutzerattribute oder zeigen Sie Profildetails als Teil Ihrer Agentenaufgaben an.
|
||||
- **Organisationen und Mitgliedschaften verwalten**: Fügen Sie Organisationen hinzu oder aktualisieren Sie diese und verwalten Sie Benutzermitgliedschaften übersichtlich.
|
||||
- **Sitzungen überwachen und widerrufen**: Sehen Sie aktive oder vergangene Benutzersitzungen ein und widerrufen Sie bei Bedarf sofort den Zugriff aus Sicherheitsgründen.
|
||||
|
||||
Die Integration ermöglicht eine Echtzeit- und nachvollziehbare Verwaltung Ihrer Benutzerbasis – alles innerhalb von Sim. Verbundene Agenten können das Onboarding automatisieren, Richtlinien durchsetzen, Verzeichnisse aktuell halten und auf Authentifizierungsereignisse oder organisatorische Änderungen reagieren, sodass Sie sichere und flexible Prozesse mit Clerk als Ihrer Identitäts-Engine betreiben können.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integrieren Sie Clerk-Authentifizierung und Benutzerverwaltung in Ihren Workflow. Erstellen, aktualisieren, löschen und listen Sie Benutzer auf. Verwalten Sie Organisationen und deren Mitgliedschaften. Überwachen und steuern Sie Benutzersitzungen.
|
||||
|
||||
## Tools
|
||||
|
||||
### `clerk_list_users`
|
||||
|
||||
Listen Sie alle Benutzer in Ihrer Clerk-Anwendung mit optionaler Filterung und Paginierung auf
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
|
||||
| `limit` | number | Nein | Anzahl der Ergebnisse pro Seite \(z. B. 10, 50, 100; Bereich: 1-500, Standard: 10\) |
|
||||
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für die Paginierung \(z. B. 0, 10, 20\) |
|
||||
| `orderBy` | string | Nein | Sortierfeld mit optionalem +/- Präfix für die Richtung \(Standard: -created_at\) |
|
||||
| `emailAddress` | string | Nein | Filtern nach E-Mail-Adresse \(z. B. user@example.com oder user1@example.com,user2@example.com\) |
|
||||
| `phoneNumber` | string | Nein | Filtern nach Telefonnummer \(durch Komma getrennt für mehrere\) |
|
||||
| `externalId` | string | Nein | Filtern nach externer ID \(durch Komma getrennt für mehrere\) |
|
||||
| `username` | string | Nein | Filtern nach Benutzername \(durch Komma getrennt für mehrere\) |
|
||||
| `userId` | string | Nein | Filtern nach Benutzer-ID \(z. B. user_2NNEqL2nrIRdJ194ndJqAHwEfxC oder durch Komma getrennt für mehrere\) |
|
||||
| `query` | string | Nein | Suchanfrage zur Übereinstimmung über E-Mail, Telefon, Benutzername und Namen \(z. B. john oder john@example.com\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Array von Clerk-Benutzerobjekten |
|
||||
| ↳ `id` | string | Benutzer-ID |
|
||||
| ↳ `username` | string | Benutzername |
|
||||
| ↳ `firstName` | string | Vorname |
|
||||
| ↳ `lastName` | string | Nachname |
|
||||
| ↳ `imageUrl` | string | Profilbild-URL |
|
||||
| ↳ `hasImage` | boolean | Ob Benutzer ein Profilbild hat |
|
||||
| ↳ `primaryEmailAddressId` | string | Primäre E-Mail-Adressen-ID |
|
||||
| ↳ `primaryPhoneNumberId` | string | Primäre Telefonnummer-ID |
|
||||
| ↳ `emailAddresses` | array | E-Mail-Adressen des Benutzers |
|
||||
| ↳ `id` | string | E-Mail-Adressen-ID |
|
||||
| ↳ `emailAddress` | string | E-Mail-Adresse |
|
||||
| ↳ `phoneNumbers` | array | Telefonnummern des Benutzers |
|
||||
| ↳ `id` | string | Telefonnummer-ID |
|
||||
| ↳ `phoneNumber` | string | Telefonnummer |
|
||||
| ↳ `externalId` | string | Externe System-ID |
|
||||
| ↳ `passwordEnabled` | boolean | Ob Passwort aktiviert ist |
|
||||
| ↳ `twoFactorEnabled` | boolean | Ob 2FA aktiviert ist |
|
||||
| ↳ `banned` | boolean | Ob Benutzer gesperrt ist |
|
||||
| ↳ `locked` | boolean | Ob Benutzer blockiert ist |
|
||||
| ↳ `lastSignInAt` | number | Zeitstempel der letzten Anmeldung |
|
||||
| ↳ `lastActiveAt` | number | Zeitstempel der letzten Aktivität |
|
||||
| ↳ `createdAt` | number | Erstellungszeitstempel |
|
||||
| ↳ `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
|
||||
| ↳ `publicMetadata` | json | Öffentliche Metadaten |
|
||||
| `totalCount` | number | Gesamtanzahl der Benutzer, die der Abfrage entsprechen |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `clerk_get_user`
|
||||
|
||||
Einen einzelnen Benutzer anhand seiner ID von Clerk abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
|
||||
| `userId` | string | Ja | Die ID des abzurufenden Benutzers \(z. B. user_2NNEqL2nrIRdJ194ndJqAHwEfxC\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Benutzer-ID |
|
||||
| `username` | string | Benutzername |
|
||||
| `firstName` | string | Vorname |
|
||||
| `lastName` | string | Nachname |
|
||||
| `imageUrl` | string | Profilbild-URL |
|
||||
| `hasImage` | boolean | Ob der Benutzer ein Profilbild hat |
|
||||
| `primaryEmailAddressId` | string | Primäre E-Mail-Adressen-ID |
|
||||
| `primaryPhoneNumberId` | string | Primäre Telefonnummer-ID |
|
||||
| `primaryWeb3WalletId` | string | Primäre Web3-Wallet-ID |
|
||||
| `emailAddresses` | array | E-Mail-Adressen des Benutzers |
|
||||
| ↳ `id` | string | E-Mail-Adressen-ID |
|
||||
| ↳ `emailAddress` | string | E-Mail-Adresse |
|
||||
| ↳ `verified` | boolean | Ob die E-Mail verifiziert ist |
|
||||
| `phoneNumbers` | array | Telefonnummern des Benutzers |
|
||||
| ↳ `id` | string | Telefonnummer-ID |
|
||||
| ↳ `phoneNumber` | string | Telefonnummer |
|
||||
| ↳ `verified` | boolean | Ob die Telefonnummer verifiziert ist |
|
||||
| `externalId` | string | Externe System-ID |
|
||||
| `passwordEnabled` | boolean | Ob das Passwort aktiviert ist |
|
||||
| `twoFactorEnabled` | boolean | Ob 2FA aktiviert ist |
|
||||
| `totpEnabled` | boolean | Ob TOTP aktiviert ist |
|
||||
| `backupCodeEnabled` | boolean | Ob Backup-Codes aktiviert sind |
|
||||
| `banned` | boolean | Ob der Benutzer gesperrt ist |
|
||||
| `locked` | boolean | Ob der Benutzer blockiert ist |
|
||||
| `deleteSelfEnabled` | boolean | Ob der Benutzer sich selbst löschen kann |
|
||||
| `createOrganizationEnabled` | boolean | Ob der Benutzer Organisationen erstellen kann |
|
||||
| `lastSignInAt` | number | Zeitstempel der letzten Anmeldung |
|
||||
| `lastActiveAt` | number | Zeitstempel der letzten Aktivität |
|
||||
| `createdAt` | number | Erstellungszeitstempel |
|
||||
| `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
|
||||
| `publicMetadata` | json | Öffentliche Metadaten \(vom Frontend lesbar\) |
|
||||
| `privateMetadata` | json | Private Metadaten \(nur Backend\) |
|
||||
| `unsafeMetadata` | json | Unsichere Metadaten \(vom Frontend änderbar\) |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `clerk_create_user`
|
||||
|
||||
Erstellen Sie einen neuen Benutzer in Ihrer Clerk-Anwendung
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
|
||||
| `emailAddress` | string | Nein | E-Mail-Adressen für den Benutzer \(durch Komma getrennt für mehrere\) |
|
||||
| `phoneNumber` | string | Nein | Telefonnummern für den Benutzer \(durch Komma getrennt für mehrere\) |
|
||||
| `username` | string | Nein | Benutzername für den Benutzer \(muss eindeutig sein\) |
|
||||
| `password` | string | Nein | Passwort für den Benutzer \(mindestens 8 Zeichen\) |
|
||||
| `firstName` | string | Nein | Vorname des Benutzers |
|
||||
| `lastName` | string | Nein | Nachname des Benutzers |
|
||||
| `externalId` | string | Nein | Externe System-ID \(muss eindeutig sein\) |
|
||||
| `publicMetadata` | json | Nein | Öffentliche Metadaten \(JSON-Objekt, lesbar vom Frontend\) |
|
||||
| `privateMetadata` | json | Nein | Private Metadaten \(JSON-Objekt, nur Backend\) |
|
||||
| `unsafeMetadata` | json | Nein | Unsichere Metadaten \(JSON-Objekt, änderbar vom Frontend\) |
|
||||
| `skipPasswordChecks` | boolean | Nein | Passwortvalidierungsprüfungen überspringen |
|
||||
| `skipPasswordRequirement` | boolean | Nein | Passwort optional machen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Erstellte Benutzer-ID |
|
||||
| `username` | string | Benutzername |
|
||||
| `firstName` | string | Vorname |
|
||||
| `lastName` | string | Nachname |
|
||||
| `imageUrl` | string | Profilbild-URL |
|
||||
| `primaryEmailAddressId` | string | Primäre E-Mail-Adressen-ID |
|
||||
| `primaryPhoneNumberId` | string | Primäre Telefonnummer-ID |
|
||||
| `emailAddresses` | array | E-Mail-Adressen des Benutzers |
|
||||
| ↳ `id` | string | E-Mail-Adressen-ID |
|
||||
| ↳ `emailAddress` | string | E-Mail-Adresse |
|
||||
| ↳ `verified` | boolean | Ob die E-Mail verifiziert ist |
|
||||
| `phoneNumbers` | array | Telefonnummern des Benutzers |
|
||||
| ↳ `id` | string | Telefonnummer-ID |
|
||||
| ↳ `phoneNumber` | string | Telefonnummer |
|
||||
| ↳ `verified` | boolean | Ob die Telefonnummer verifiziert ist |
|
||||
| `externalId` | string | Externe System-ID |
|
||||
| `createdAt` | number | Erstellungszeitstempel |
|
||||
| `updatedAt` | number | Letzter Aktualisierungszeitstempel |
|
||||
| `publicMetadata` | json | Öffentliche Metadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `clerk_update_user`
|
||||
|
||||
Aktualisieren Sie einen bestehenden Benutzer in Ihrer Clerk-Anwendung
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
|
||||
| `userId` | string | Ja | Die ID des zu aktualisierenden Benutzers \(z. B. user_2NNEqL2nrIRdJ194ndJqAHwEfxC\) |
|
||||
| `firstName` | string | Nein | Vorname des Benutzers |
|
||||
| `lastName` | string | Nein | Nachname des Benutzers |
|
||||
| `username` | string | Nein | Benutzername \(muss eindeutig sein\) |
|
||||
| `password` | string | Nein | Neues Passwort \(mindestens 8 Zeichen\) |
|
||||
| `externalId` | string | Nein | Externe System-ID |
|
||||
| `primaryEmailAddressId` | string | Nein | ID der verifizierten E-Mail, die als primär festgelegt werden soll |
|
||||
| `primaryPhoneNumberId` | string | Nein | ID der verifizierten Telefonnummer, die als primär festgelegt werden soll |
|
||||
| `publicMetadata` | json | Nein | Öffentliche Metadaten \(JSON-Objekt\) |
|
||||
| `privateMetadata` | json | Nein | Private Metadaten \(JSON-Objekt\) |
|
||||
| `unsafeMetadata` | json | Nein | Unsichere Metadaten \(JSON-Objekt\) |
|
||||
| `skipPasswordChecks` | boolean | Nein | Passwortvalidierungsprüfungen überspringen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Aktualisierte Benutzer-ID |
|
||||
| `username` | string | Benutzername |
|
||||
| `firstName` | string | Vorname |
|
||||
| `lastName` | string | Nachname |
|
||||
| `imageUrl` | string | Profilbild-URL |
|
||||
| `primaryEmailAddressId` | string | Primäre E-Mail-Adressen-ID |
|
||||
| `primaryPhoneNumberId` | string | Primäre Telefonnummer-ID |
|
||||
| `emailAddresses` | array | E-Mail-Adressen des Benutzers |
|
||||
| ↳ `id` | string | E-Mail-Adressen-ID |
|
||||
| ↳ `emailAddress` | string | E-Mail-Adresse |
|
||||
| ↳ `verified` | boolean | Ob die E-Mail verifiziert ist |
|
||||
| `phoneNumbers` | array | Telefonnummern des Benutzers |
|
||||
| ↳ `id` | string | Telefonnummer-ID |
|
||||
| ↳ `phoneNumber` | string | Telefonnummer |
|
||||
| ↳ `verified` | boolean | Ob die Telefonnummer verifiziert ist |
|
||||
| `externalId` | string | Externe System-ID |
|
||||
| `banned` | boolean | Ob der Benutzer gesperrt ist |
|
||||
| `locked` | boolean | Ob der Benutzer blockiert ist |
|
||||
| `createdAt` | number | Erstellungszeitstempel |
|
||||
| `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
|
||||
| `publicMetadata` | json | Öffentliche Metadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `clerk_delete_user`
|
||||
|
||||
Einen Benutzer aus Ihrer Clerk-Anwendung löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
|
||||
| `userId` | string | Ja | Die ID des zu löschenden Benutzers (z. B. user_2NNEqL2nrIRdJ194ndJqAHwEfxC) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | ID des gelöschten Benutzers |
|
||||
| `object` | string | Objekttyp (user) |
|
||||
| `deleted` | boolean | Ob der Benutzer gelöscht wurde |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `clerk_list_organizations`
|
||||
|
||||
Alle Organisationen in Ihrer Clerk-Anwendung mit optionaler Filterung auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
|
||||
| `limit` | number | Nein | Anzahl der Ergebnisse pro Seite (z. B. 10, 50, 100; Bereich: 1–500, Standard: 10) |
|
||||
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für die Paginierung (z. B. 0, 10, 20) |
|
||||
| `includeMembersCount` | boolean | Nein | Mitgliederanzahl für jede Organisation einbeziehen |
|
||||
| `query` | string | Nein | Suche nach Organisations-ID, Name oder Slug (z. B. Acme Corp oder acme-corp) |
|
||||
| `orderBy` | string | Nein | Sortierfeld (name, created_at, members_count) mit +/- Präfix |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `organizations` | array | Array von Clerk-Organisationsobjekten |
|
||||
| ↳ `id` | string | Organisations-ID |
|
||||
| ↳ `name` | string | Organisationsname |
|
||||
| ↳ `slug` | string | Organisations-Slug |
|
||||
| ↳ `imageUrl` | string | URL des Organisationsbilds |
|
||||
| ↳ `hasImage` | boolean | Ob die Organisation ein Bild hat |
|
||||
| ↳ `membersCount` | number | Anzahl der Mitglieder |
|
||||
| ↳ `pendingInvitationsCount` | number | Anzahl ausstehender Einladungen |
|
||||
| ↳ `maxAllowedMemberships` | number | Maximal zulässige Mitgliedschaften |
|
||||
| ↳ `adminDeleteEnabled` | boolean | Ob Admin-Löschung aktiviert ist |
|
||||
| ↳ `createdBy` | string | Benutzer-ID des Erstellers |
|
||||
| ↳ `createdAt` | number | Erstellungszeitstempel |
|
||||
| ↳ `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
|
||||
| ↳ `publicMetadata` | json | Öffentliche Metadaten |
|
||||
| `totalCount` | number | Gesamtanzahl der Organisationen |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `clerk_get_organization`
|
||||
|
||||
Abrufen einer einzelnen Organisation nach ID oder Slug von Clerk
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
|
||||
| `organizationId` | string | Ja | Die ID oder der Slug der abzurufenden Organisation \(z. B. org_2NNEqL2nrIRdJ194ndJqAHwEfxC oder my-org-slug\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Organisations-ID |
|
||||
| `name` | string | Organisationsname |
|
||||
| `slug` | string | Organisations-Slug |
|
||||
| `imageUrl` | string | URL des Organisationsbilds |
|
||||
| `hasImage` | boolean | Ob die Organisation ein Bild hat |
|
||||
| `membersCount` | number | Anzahl der Mitglieder |
|
||||
| `pendingInvitationsCount` | number | Anzahl ausstehender Einladungen |
|
||||
| `maxAllowedMemberships` | number | Maximal zulässige Mitgliedschaften |
|
||||
| `adminDeleteEnabled` | boolean | Ob Admin-Löschung aktiviert ist |
|
||||
| `createdBy` | string | Benutzer-ID des Erstellers |
|
||||
| `createdAt` | number | Erstellungszeitstempel |
|
||||
| `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
|
||||
| `publicMetadata` | json | Öffentliche Metadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `clerk_create_organization`
|
||||
|
||||
Erstellen Sie eine neue Organisation in Ihrer Clerk-Anwendung
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
|
||||
| `name` | string | Ja | Name der Organisation |
|
||||
| `createdBy` | string | Ja | Benutzer-ID des Erstellers, der Administrator wird \(z. B. user_2NNEqL2nrIRdJ194ndJqAHwEfxC\) |
|
||||
| `slug` | string | Nein | Slug-Identifikator für die Organisation |
|
||||
| `maxAllowedMemberships` | number | Nein | Maximale Mitgliederkapazität \(0 für unbegrenzt\) |
|
||||
| `publicMetadata` | json | Nein | Öffentliche Metadaten \(JSON-Objekt\) |
|
||||
| `privateMetadata` | json | Nein | Private Metadaten \(JSON-Objekt\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Erstellte Organisations-ID |
|
||||
| `name` | string | Organisationsname |
|
||||
| `slug` | string | Organisations-Slug |
|
||||
| `imageUrl` | string | URL des Organisationsbildes |
|
||||
| `hasImage` | boolean | Ob die Organisation ein Bild hat |
|
||||
| `membersCount` | number | Anzahl der Mitglieder |
|
||||
| `pendingInvitationsCount` | number | Anzahl ausstehender Einladungen |
|
||||
| `maxAllowedMemberships` | number | Maximal zulässige Mitgliedschaften |
|
||||
| `adminDeleteEnabled` | boolean | Ob das Löschen durch den Administrator aktiviert ist |
|
||||
| `createdBy` | string | Benutzer-ID des Erstellers |
|
||||
| `createdAt` | number | Erstellungszeitstempel |
|
||||
| `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
|
||||
| `publicMetadata` | json | Öffentliche Metadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `clerk_list_sessions`
|
||||
|
||||
Sitzungen für einen Benutzer oder Client in Ihrer Clerk-Anwendung auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `secretKey` | string | Ja | Der Clerk Secret Key für die API-Authentifizierung |
|
||||
| `userId` | string | Nein | Benutzer-ID, für die Sitzungen aufgelistet werden sollen \(z. B. user_2NNEqL2nrIRdJ194ndJqAHwEfxC; erforderlich, wenn clientId nicht angegeben ist\) |
|
||||
| `clientId` | string | Nein | Client-ID, für die Sitzungen aufgelistet werden sollen \(erforderlich, wenn userId nicht angegeben ist\) |
|
||||
| `status` | string | Nein | Nach Sitzungsstatus filtern \(abandoned, active, ended, expired, pending, removed, replaced, revoked\) |
|
||||
| `limit` | number | Nein | Anzahl der Ergebnisse pro Seite \(z. B. 10, 50, 100; Bereich: 1-500, Standard: 10\) |
|
||||
| `offset` | number | Nein | Anzahl der zu überspringenden Ergebnisse für die Paginierung \(z. B. 0, 10, 20\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `sessions` | array | Array von Clerk-Sitzungsobjekten |
|
||||
| ↳ `id` | string | Sitzungs-ID |
|
||||
| ↳ `userId` | string | Benutzer-ID |
|
||||
| ↳ `clientId` | string | Client-ID |
|
||||
| ↳ `status` | string | Sitzungsstatus |
|
||||
| ↳ `lastActiveAt` | number | Zeitstempel der letzten Aktivität |
|
||||
| ↳ `lastActiveOrganizationId` | string | ID der zuletzt aktiven Organisation |
|
||||
| ↳ `expireAt` | number | Ablaufzeitstempel |
|
||||
| ↳ `abandonAt` | number | Abbruchzeitstempel |
|
||||
| ↳ `createdAt` | number | Erstellungszeitstempel |
|
||||
| ↳ `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
|
||||
| `totalCount` | number | Gesamtanzahl der Sitzungen |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `clerk_get_session`
|
||||
|
||||
Eine einzelne Sitzung anhand der ID von Clerk abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `secretKey` | string | Ja | Der geheime Clerk-Schlüssel für die API-Authentifizierung |
|
||||
| `sessionId` | string | Ja | Die ID der abzurufenden Sitzung \(z. B. sess_2NNEqL2nrIRdJ194ndJqAHwEfxC\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Sitzungs-ID |
|
||||
| `userId` | string | Benutzer-ID |
|
||||
| `clientId` | string | Client-ID |
|
||||
| `status` | string | Sitzungsstatus |
|
||||
| `lastActiveAt` | number | Zeitstempel der letzten Aktivität |
|
||||
| `lastActiveOrganizationId` | string | ID der zuletzt aktiven Organisation |
|
||||
| `expireAt` | number | Ablaufzeitstempel |
|
||||
| `abandonAt` | number | Zeitstempel für Abbruch |
|
||||
| `createdAt` | number | Erstellungszeitstempel |
|
||||
| `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `clerk_revoke_session`
|
||||
|
||||
Eine Sitzung widerrufen, um sie sofort ungültig zu machen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `secretKey` | string | Ja | Der geheime Clerk-Schlüssel für die API-Authentifizierung |
|
||||
| `sessionId` | string | Ja | Die ID der zu widerrufenden Sitzung \(z. B. sess_2NNEqL2nrIRdJ194ndJqAHwEfxC\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Sitzungs-ID |
|
||||
| `userId` | string | Benutzer-ID |
|
||||
| `clientId` | string | Client-ID |
|
||||
| `status` | string | Sitzungsstatus \(sollte widerrufen sein\) |
|
||||
| `lastActiveAt` | number | Zeitstempel der letzten Aktivität |
|
||||
| `lastActiveOrganizationId` | string | ID der zuletzt aktiven Organisation |
|
||||
| `expireAt` | number | Ablaufzeitstempel |
|
||||
| `abandonAt` | number | Zeitstempel für Abbruch |
|
||||
| `createdAt` | number | Erstellungszeitstempel |
|
||||
| `updatedAt` | number | Zeitstempel der letzten Aktualisierung |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
@@ -0,0 +1,865 @@
|
||||
---
|
||||
title: Confluence
|
||||
description: Mit Confluence interagieren
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="confluence"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Confluence](https://www.atlassian.com/software/confluence) ist Atlassians leistungsstarke Plattform für Teamzusammenarbeit und Wissensmanagement. Sie dient als zentraler Arbeitsbereich, in dem Teams Informationen über Abteilungen und Organisationen hinweg erstellen, organisieren und teilen können.
|
||||
|
||||
Mit Confluence können Sie:
|
||||
|
||||
- **Strukturierte Dokumentation erstellen**: Umfassende Wikis, Projektpläne und Wissensbasen mit umfangreicher Formatierung aufbauen
|
||||
- **In Echtzeit zusammenarbeiten**: Gemeinsam mit Teammitgliedern an Dokumenten arbeiten, mit Kommentaren, Erwähnungen und Bearbeitungsfunktionen
|
||||
- **Informationen hierarchisch organisieren**: Inhalte mit Bereichen, Seiten und verschachtelten Hierarchien für intuitive Navigation strukturieren
|
||||
- **Mit anderen Tools integrieren**: Verbindung mit Jira, Trello und anderen Atlassian-Produkten für nahtlose Workflow-Integration
|
||||
- **Zugriffsberechtigungen kontrollieren**: Verwalten, wer bestimmte Inhalte ansehen, bearbeiten oder kommentieren kann
|
||||
|
||||
In Sim ermöglicht die Confluence-Integration Ihren Agenten den Zugriff auf die Wissensdatenbank Ihrer Organisation. Agenten können Informationen von Confluence-Seiten abrufen, nach bestimmten Inhalten suchen und bei Bedarf sogar Dokumentationen aktualisieren. Dies ermöglicht es Ihren Workflows, das in Ihrer Confluence-Instanz gespeicherte kollektive Wissen zu nutzen und Agenten zu erstellen, die auf interne Dokumentationen verweisen, etablierte Verfahren befolgen und aktuelle Informationsressourcen als Teil ihrer Tätigkeiten pflegen können.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integrieren Sie Confluence in den Workflow. Kann Seiten lesen, erstellen, aktualisieren, löschen, Kommentare verwalten, Anhänge hinzufügen, Labels vergeben und Inhalte durchsuchen.
|
||||
|
||||
## Tools
|
||||
|
||||
### `confluence_retrieve`
|
||||
|
||||
Ruft Inhalte von Confluence-Seiten über die Confluence-API ab.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID zum Abrufen |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel des Abrufs |
|
||||
| `pageId` | string | Confluence-Seiten-ID |
|
||||
| `content` | string | Seiteninhalt ohne HTML-Tags |
|
||||
| `title` | string | Seitentitel |
|
||||
|
||||
### `confluence_update`
|
||||
|
||||
Aktualisiert eine Confluence-Seite über die Confluence-API.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID zum Aktualisieren |
|
||||
| `title` | string | Nein | Neuer Titel für die Seite |
|
||||
| `content` | string | Nein | Neuer Inhalt für die Seite im Confluence-Speicherformat |
|
||||
| `version` | number | Nein | Versionsnummer der Seite (erforderlich zur Vermeidung von Konflikten) |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Aktualisierung |
|
||||
| `pageId` | string | Confluence-Seiten-ID |
|
||||
| `title` | string | Aktualisierter Seitentitel |
|
||||
| `success` | boolean | Erfolgsstatus der Aktualisierungsoperation |
|
||||
|
||||
### `confluence_create_page`
|
||||
|
||||
Erstellen Sie eine neue Seite in einem Confluence-Space.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `spaceId` | string | Ja | Confluence-Space-ID, in dem die Seite erstellt wird |
|
||||
| `title` | string | Ja | Titel der neuen Seite |
|
||||
| `content` | string | Ja | Seiteninhalt im Confluence-Speicherformat (HTML) |
|
||||
| `parentId` | string | Nein | Übergeordnete Seiten-ID, wenn eine Unterseite erstellt wird |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Erstellung |
|
||||
| `pageId` | string | Erstellte Seiten-ID |
|
||||
| `title` | string | Seitentitel |
|
||||
| `url` | string | Seiten-URL |
|
||||
|
||||
### `confluence_delete_page`
|
||||
|
||||
Löschen einer Confluence-Seite (verschiebt sie in den Papierkorb, wo sie wiederhergestellt werden kann).
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID zum Löschen |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Löschung |
|
||||
| `pageId` | string | Gelöschte Seiten-ID |
|
||||
| `deleted` | boolean | Löschstatus |
|
||||
|
||||
### `confluence_search`
|
||||
|
||||
Suche nach Inhalten in Confluence-Seiten, Blog-Beiträgen und anderen Inhalten.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `query` | string | Ja | Suchabfragestring |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse (Standard: 25) |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Suche |
|
||||
| `results` | array | Suchergebnisse |
|
||||
|
||||
### `confluence_create_comment`
|
||||
|
||||
Einen Kommentar zu einer Confluence-Seite hinzufügen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID, zu der ein Kommentar hinzugefügt werden soll |
|
||||
| `comment` | string | Ja | Kommentartext im Confluence-Speicherformat |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Erstellung |
|
||||
| `commentId` | string | Erstellte Kommentar-ID |
|
||||
| `pageId` | string | Seiten-ID |
|
||||
|
||||
### `confluence_list_comments`
|
||||
|
||||
Listet alle Kommentare auf einer Confluence-Seite auf.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID, von der Kommentare aufgelistet werden sollen |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Kommentare (Standard: 25) |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel des Abrufs |
|
||||
| `comments` | array | Liste der Kommentare |
|
||||
|
||||
### `confluence_update_comment`
|
||||
|
||||
Aktualisiert einen vorhandenen Kommentar auf einer Confluence-Seite.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `commentId` | string | Ja | Confluence-Kommentar-ID zum Aktualisieren |
|
||||
| `comment` | string | Ja | Aktualisierter Kommentartext im Confluence-Speicherformat |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Aktualisierung |
|
||||
| `commentId` | string | Aktualisierte Kommentar-ID |
|
||||
| `updated` | boolean | Aktualisierungsstatus |
|
||||
|
||||
### `confluence_delete_comment`
|
||||
|
||||
Löscht einen Kommentar von einer Confluence-Seite.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `commentId` | string | Ja | Confluence-Kommentar-ID zum Löschen |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Löschung |
|
||||
| `commentId` | string | Gelöschte Kommentar-ID |
|
||||
| `deleted` | boolean | Löschstatus |
|
||||
|
||||
### `confluence_upload_attachment`
|
||||
|
||||
Laden Sie eine Datei als Anhang zu einer Confluence-Seite hoch.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID, an die die Datei angehängt werden soll |
|
||||
| `file` | file | Ja | Die als Anhang hochzuladende Datei |
|
||||
| `fileName` | string | Nein | Optionaler benutzerdefinierter Dateiname für den Anhang |
|
||||
| `comment` | string | Nein | Optionaler Kommentar zum Anhang |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel des Uploads |
|
||||
| `attachmentId` | string | Hochgeladene Anhangs-ID |
|
||||
| `title` | string | Dateiname des Anhangs |
|
||||
| `fileSize` | number | Dateigröße in Bytes |
|
||||
| `mediaType` | string | MIME-Typ des Anhangs |
|
||||
| `downloadUrl` | string | Download-URL für den Anhang |
|
||||
| `pageId` | string | Seiten-ID, zu der der Anhang hinzugefügt wurde |
|
||||
|
||||
### `confluence_list_attachments`
|
||||
|
||||
Listen Sie alle Anhänge einer Confluence-Seite auf.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID, von der Anhänge aufgelistet werden sollen |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Anhänge (Standard: 25) |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel des Abrufs |
|
||||
| `attachments` | array | Liste der Anhänge |
|
||||
|
||||
### `confluence_delete_attachment`
|
||||
|
||||
Löschen eines Anhangs von einer Confluence-Seite (wird in den Papierkorb verschoben).
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `attachmentId` | string | Ja | Confluence-Anhangs-ID zum Löschen |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Löschung |
|
||||
| `attachmentId` | string | Gelöschte Anhangs-ID |
|
||||
| `deleted` | boolean | Löschstatus |
|
||||
|
||||
### `confluence_list_labels`
|
||||
|
||||
Listet alle Labels einer Confluence-Seite auf.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID, von der Labels aufgelistet werden sollen |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel des Abrufs |
|
||||
| `labels` | array | Liste der Labels |
|
||||
|
||||
### `confluence_get_space`
|
||||
|
||||
Ruft Details zu einem bestimmten Confluence-Space ab.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `spaceId` | string | Ja | Confluence-Space-ID zum Abrufen |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel des Abrufs |
|
||||
| `spaceId` | string | Space-ID |
|
||||
| `name` | string | Space-Name |
|
||||
| `key` | string | Space-Schlüssel |
|
||||
| `type` | string | Space-Typ |
|
||||
| `status` | string | Space-Status |
|
||||
| `url` | string | Space-URL |
|
||||
|
||||
### `confluence_list_spaces`
|
||||
|
||||
Listet alle Confluence-Spaces auf, auf die der Benutzer zugreifen kann.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Spaces (Standard: 25) |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel des Abrufs |
|
||||
| `spaces` | array | Liste der Spaces |
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `tools`
|
||||
- Typ: `confluence`
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z. B. ihrfirma.atlassian.net) |
|
||||
| `blogPostId` | string | Ja | Die ID des abzurufenden Blogbeitrags |
|
||||
| `bodyFormat` | string | Nein | Format für den Blogbeitrag-Body: storage, atlas_doc_format oder view |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | ISO 8601-Zeitstempel der Operation |
|
||||
| `id` | string | Blogbeitrag-ID |
|
||||
| `title` | string | Blogbeitrag-Titel |
|
||||
| `status` | string | Blogbeitrag-Status |
|
||||
| `spaceId` | string | Space-ID |
|
||||
| `authorId` | string | Konto-ID des Autors |
|
||||
| `createdAt` | string | Erstellungszeitstempel |
|
||||
| `version` | object | Versionsinformationen |
|
||||
| ↳ `number` | number | Versionsnummer |
|
||||
| ↳ `message` | string | Versionsnachricht |
|
||||
| ↳ `minorEdit` | boolean | Ob dies eine geringfügige Bearbeitung ist |
|
||||
| ↳ `authorId` | string | Konto-ID des Versionsautors |
|
||||
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Versionserstellung |
|
||||
| `body` | object | Blogbeitrag-Body-Inhalt im angeforderten Format |
|
||||
| ↳ `storage` | object | Body im Speicherformat (Confluence-Markup) |
|
||||
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
|
||||
| ↳ `representation` | string | Inhaltsdarstellungstyp |
|
||||
| ↳ `view` | object | Body im Ansichtsformat (gerendertes HTML) |
|
||||
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
|
||||
| ↳ `representation` | string | Inhaltsdarstellungstyp |
|
||||
| ↳ `atlas_doc_format` | object | Body im Atlassian Document Format (ADF) |
|
||||
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
|
||||
| ↳ `representation` | string | Inhaltsdarstellungstyp |
|
||||
| `webUrl` | string | URL zum Anzeigen des Blogbeitrags |
|
||||
|
||||
### `confluence_create_blogpost`
|
||||
|
||||
Erstellen Sie einen neuen Blogbeitrag in einem Confluence-Space.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `spaceId` | string | Ja | Die ID des Spaces, in dem der Blogbeitrag erstellt werden soll |
|
||||
| `title` | string | Ja | Titel des Blogbeitrags |
|
||||
| `content` | string | Ja | Blogbeitrag-Inhalt im Confluence-Speicherformat (HTML) |
|
||||
| `status` | string | Nein | Blogbeitrag-Status: current (Standard) oder draft |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | ISO 8601-Zeitstempel der Operation |
|
||||
| `id` | string | Erstellte Blogbeitrag-ID |
|
||||
| `title` | string | Blogbeitrag-Titel |
|
||||
| `status` | string | Blogbeitrag-Status |
|
||||
| `spaceId` | string | Space-ID |
|
||||
| `authorId` | string | Konto-ID des Autors |
|
||||
| `body` | object | Blogbeitrag-Inhalt |
|
||||
| ↳ `storage` | object | Inhalt im Speicherformat (Confluence-Markup) |
|
||||
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
|
||||
| ↳ `representation` | string | Inhaltsdarstellungstyp |
|
||||
| ↳ `view` | object | Inhalt im Anzeigeformat (gerendertes HTML) |
|
||||
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
|
||||
| ↳ `representation` | string | Inhaltsdarstellungstyp |
|
||||
| ↳ `atlas_doc_format` | object | Inhalt im Atlassian Document Format (ADF) |
|
||||
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
|
||||
| ↳ `representation` | string | Inhaltsdarstellungstyp |
|
||||
| `version` | object | Versionsinformationen des Blogbeitrags |
|
||||
| ↳ `number` | number | Versionsnummer |
|
||||
| ↳ `message` | string | Versionsnachricht |
|
||||
| ↳ `minorEdit` | boolean | Ob dies eine geringfügige Bearbeitung ist |
|
||||
| ↳ `authorId` | string | Konto-ID des Versionsautors |
|
||||
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Versionserstellung |
|
||||
| `webUrl` | string | URL zum Anzeigen des Blogbeitrags |
|
||||
|
||||
### `confluence_list_blogposts_in_space`
|
||||
|
||||
Listet alle Blogbeiträge innerhalb eines bestimmten Confluence-Spaces auf.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `spaceId` | string | Ja | Die ID des Confluence-Spaces, aus dem Blogbeiträge aufgelistet werden sollen |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Blogbeiträge (Standard: 25, max: 250) |
|
||||
| `status` | string | Nein | Filtern nach Status: current, archived, trashed oder draft |
|
||||
| `bodyFormat` | string | Nein | Format für den Blogbeitrags-Body: storage, atlas_doc_format oder view |
|
||||
| `cursor` | string | Nein | Paginierungs-Cursor aus vorheriger Antwort |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | ISO 8601-Zeitstempel der Operation |
|
||||
| `blogPosts` | array | Array von Blogbeiträgen im Space |
|
||||
| ↳ `id` | string | Blogbeitrags-ID |
|
||||
| ↳ `title` | string | Blogbeitragstitel |
|
||||
| ↳ `status` | string | Blogbeitragsstatus |
|
||||
| ↳ `spaceId` | string | Space-ID |
|
||||
| ↳ `authorId` | string | Konto-ID des Autors |
|
||||
| ↳ `createdAt` | string | Erstellungszeitstempel |
|
||||
| ↳ `version` | object | Versionsinformationen |
|
||||
| ↳ `number` | number | Versionsnummer |
|
||||
| ↳ `message` | string | Versionsnachricht |
|
||||
| ↳ `minorEdit` | boolean | Ob dies eine geringfügige Bearbeitung ist |
|
||||
| ↳ `authorId` | string | Konto-ID des Versionsautors |
|
||||
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Versionserstellung |
|
||||
| ↳ `body` | object | Blogbeitrags-Body-Inhalt |
|
||||
| ↳ `storage` | object | Body im Speicherformat (Confluence-Markup) |
|
||||
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
|
||||
| ↳ `representation` | string | Inhaltsdarstellungstyp |
|
||||
| ↳ `view` | object | Body im Ansichtsformat (gerendertes HTML) |
|
||||
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
|
||||
| ↳ `representation` | string | Inhaltsdarstellungstyp |
|
||||
| ↳ `atlas_doc_format` | object | Body im Atlassian Document Format (ADF) |
|
||||
| ↳ `value` | string | Der Inhaltswert im angegebenen Format |
|
||||
| ↳ `representation` | string | Inhaltsdarstellungstyp |
|
||||
| ↳ `webUrl` | string | URL zum Anzeigen des Blogbeitrags |
|
||||
| `nextCursor` | string | Cursor zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
### `confluence_create_comment`
|
||||
|
||||
Fügen Sie einen Kommentar zu einer Confluence-Seite hinzu.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID, zu der ein Kommentar hinzugefügt werden soll |
|
||||
| `comment` | string | Ja | Kommentartext im Confluence-Speicherformat |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Erstellung |
|
||||
| `commentId` | string | Erstellte Kommentar-ID |
|
||||
| `pageId` | string | Seiten-ID |
|
||||
|
||||
### `confluence_list_comments`
|
||||
|
||||
Listen Sie alle Kommentare auf einer Confluence-Seite auf.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID, von der Kommentare aufgelistet werden sollen |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Kommentare (Standard: 25) |
|
||||
| `bodyFormat` | string | Nein | Format für den Kommentartext: storage, atlas_doc_format, view oder export_view (Standard: storage) |
|
||||
| `cursor` | string | Nein | Paginierungs-Cursor aus vorheriger Antwort |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | ISO 8601-Zeitstempel der Operation |
|
||||
| `comments` | array | Array von Confluence-Kommentaren |
|
||||
| ↳ `id` | string | Eindeutige Kommentar-ID |
|
||||
| ↳ `status` | string | Kommentarstatus (z. B. current) |
|
||||
| ↳ `title` | string | Kommentartitel |
|
||||
| ↳ `pageId` | string | ID der Seite, zu der der Kommentar gehört |
|
||||
| ↳ `blogPostId` | string | ID des Blogposts, zu dem der Kommentar gehört |
|
||||
| ↳ `parentCommentId` | string | ID des übergeordneten Kommentars |
|
||||
| ↳ `body` | object | Kommentarinhalt |
|
||||
| ↳ `value` | string | Kommentarinhalt |
|
||||
| ↳ `representation` | string | Format der Inhaltsdarstellung (z. B. storage, view) |
|
||||
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Kommentarerstellung |
|
||||
| ↳ `authorId` | string | Account-ID des Kommentarautors |
|
||||
| ↳ `version` | object | Versionsinformationen des Kommentars |
|
||||
| ↳ `number` | number | Versionsnummer |
|
||||
| ↳ `message` | string | Versionsnachricht |
|
||||
| ↳ `minorEdit` | boolean | Ob es sich um eine geringfügige Bearbeitung handelt |
|
||||
| ↳ `authorId` | string | Account-ID des Versionsautors |
|
||||
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Versionserstellung |
|
||||
| `nextCursor` | string | Cursor zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
### `confluence_update_comment`
|
||||
|
||||
Aktualisiert einen vorhandenen Kommentar auf einer Confluence-Seite.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `commentId` | string | Ja | Confluence-Kommentar-ID zum Aktualisieren |
|
||||
| `comment` | string | Ja | Aktualisierter Kommentartext im Confluence-Speicherformat |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Aktualisierung |
|
||||
| `commentId` | string | Aktualisierte Kommentar-ID |
|
||||
| `updated` | boolean | Aktualisierungsstatus |
|
||||
|
||||
### `confluence_delete_comment`
|
||||
|
||||
Löscht einen Kommentar von einer Confluence-Seite.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `commentId` | string | Ja | Confluence-Kommentar-ID zum Löschen |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Löschung |
|
||||
| `commentId` | string | Gelöschte Kommentar-ID |
|
||||
| `deleted` | boolean | Löschstatus |
|
||||
|
||||
### `confluence_upload_attachment`
|
||||
|
||||
Laden Sie eine Datei als Anhang zu einer Confluence-Seite hoch.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z. B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID, an die die Datei angehängt werden soll |
|
||||
| `file` | file | Ja | Die als Anhang hochzuladende Datei |
|
||||
| `fileName` | string | Nein | Optionaler benutzerdefinierter Dateiname für den Anhang |
|
||||
| `comment` | string | Nein | Optionaler Kommentar zum Anhang |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel des Uploads |
|
||||
| `attachmentId` | string | Hochgeladene Anhangs-ID |
|
||||
| `title` | string | Dateiname des Anhangs |
|
||||
| `fileSize` | number | Dateigröße in Bytes |
|
||||
| `mediaType` | string | MIME-Typ des Anhangs |
|
||||
| `downloadUrl` | string | Download-URL für den Anhang |
|
||||
| `pageId` | string | Seiten-ID, zu der der Anhang hinzugefügt wurde |
|
||||
|
||||
### `confluence_list_attachments`
|
||||
|
||||
Listen Sie alle Anhänge auf einer Confluence-Seite auf.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z. B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID, von der Anhänge aufgelistet werden sollen |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Anhänge (Standard: 50, max: 250) |
|
||||
| `cursor` | string | Nein | Paginierungs-Cursor aus vorheriger Antwort |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | ISO 8601-Zeitstempel der Operation |
|
||||
| `attachments` | array | Array von Confluence-Anhängen |
|
||||
| ↳ `id` | string | Eindeutige Anhangs-ID (mit Präfix "att") |
|
||||
| ↳ `title` | string | Dateiname des Anhangs |
|
||||
| ↳ `status` | string | Anhangsstatus (z. B. current, archived, trashed) |
|
||||
| ↳ `mediaType` | string | MIME-Typ des Anhangs |
|
||||
| ↳ `fileSize` | number | Dateigröße in Bytes |
|
||||
| ↳ `downloadUrl` | string | URL zum Herunterladen des Anhangs |
|
||||
| ↳ `webuiUrl` | string | URL zum Anzeigen des Anhangs in der Confluence-Oberfläche |
|
||||
| ↳ `pageId` | string | ID der Seite, zu der der Anhang gehört |
|
||||
| ↳ `blogPostId` | string | ID des Blogbeitrags, zu dem der Anhang gehört |
|
||||
| ↳ `comment` | string | Kommentar/Beschreibung des Anhangs |
|
||||
| ↳ `version` | object | Versionsinformationen des Anhangs |
|
||||
| ↳ `number` | number | Versionsnummer |
|
||||
| ↳ `message` | string | Versionsnachricht |
|
||||
| ↳ `minorEdit` | boolean | Ob es sich um eine geringfügige Bearbeitung handelt |
|
||||
| ↳ `authorId` | string | Konto-ID des Versionsautors |
|
||||
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Versionserstellung |
|
||||
| `nextCursor` | string | Cursor zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
### `confluence_delete_attachment`
|
||||
|
||||
Löschen eines Anhangs von einer Confluence-Seite (verschiebt ihn in den Papierkorb).
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `attachmentId` | string | Ja | Confluence-Anhangs-ID zum Löschen |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel der Löschung |
|
||||
| `attachmentId` | string | Gelöschte Anhangs-ID |
|
||||
| `deleted` | boolean | Löschstatus |
|
||||
|
||||
### `confluence_list_labels`
|
||||
|
||||
Alle Labels auf einer Confluence-Seite auflisten.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID, von der Labels aufgelistet werden sollen |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Labels (Standard: 25, max: 250) |
|
||||
| `cursor` | string | Nein | Paginierungs-Cursor aus vorheriger Antwort |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | Zeitstempel des Abrufs |
|
||||
| `labels` | array | Array von Labels auf der Seite |
|
||||
| ↳ `id` | string | Eindeutige Label-ID |
|
||||
| ↳ `name` | string | Label-Name |
|
||||
| ↳ `prefix` | string | Label-Präfix/Typ (z.B. global, my, team) |
|
||||
| `nextCursor` | string | Cursor zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
### `confluence_add_label`
|
||||
|
||||
Fügen Sie einer Confluence-Seite ein Label zur Organisation und Kategorisierung hinzu.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID, zu der das Label hinzugefügt werden soll |
|
||||
| `labelName` | string | Ja | Name des hinzuzufügenden Labels |
|
||||
| `prefix` | string | Nein | Label-Präfix: global (Standard), my, team oder system |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | ISO 8601-Zeitstempel der Operation |
|
||||
| `pageId` | string | Seiten-ID, zu der das Label hinzugefügt wurde |
|
||||
| `labelName` | string | Name des hinzugefügten Labels |
|
||||
| `labelId` | string | ID des hinzugefügten Labels |
|
||||
|
||||
### `confluence_delete_label`
|
||||
|
||||
Entfernen Sie ein Label von einer Confluence-Seite.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `pageId` | string | Ja | Confluence-Seiten-ID, von der das Label entfernt werden soll |
|
||||
| `labelName` | string | Ja | Name des zu entfernenden Labels |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | ISO 8601-Zeitstempel der Operation |
|
||||
| `pageId` | string | Seiten-ID, von der das Label entfernt wurde |
|
||||
| `labelName` | string | Name des entfernten Labels |
|
||||
| `deleted` | boolean | Löschstatus |
|
||||
|
||||
### `confluence_get_pages_by_label`
|
||||
|
||||
Ruft alle Seiten ab, auf die ein bestimmtes Label angewendet wurde.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z. B. ihrfirma.atlassian.net) |
|
||||
| `labelId` | string | Ja | Die ID des Labels, für das Seiten abgerufen werden sollen |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Seiten (Standard: 50, max: 250) |
|
||||
| `cursor` | string | Nein | Paginierungs-Cursor aus vorheriger Antwort |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | ISO 8601-Zeitstempel der Operation |
|
||||
| `labelId` | string | ID des Labels |
|
||||
| `pages` | array | Array von Seiten mit diesem Label |
|
||||
| ↳ `id` | string | Eindeutige Seitenkennung |
|
||||
| ↳ `title` | string | Seitentitel |
|
||||
| ↳ `status` | string | Seitenstatus (z. B. current, archived, trashed, draft) |
|
||||
| ↳ `spaceId` | string | ID des Spaces, der die Seite enthält |
|
||||
| ↳ `parentId` | string | ID der übergeordneten Seite (null bei oberster Ebene) |
|
||||
| ↳ `authorId` | string | Account-ID des Seitenautors |
|
||||
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Seitenerstellung |
|
||||
| ↳ `version` | object | Seitenversionsinformationen |
|
||||
| ↳ `number` | number | Versionsnummer |
|
||||
| ↳ `message` | string | Versionsnachricht |
|
||||
| ↳ `minorEdit` | boolean | Ob dies eine geringfügige Bearbeitung ist |
|
||||
| ↳ `authorId` | string | Account-ID des Versionsautors |
|
||||
| ↳ `createdAt` | string | ISO 8601-Zeitstempel der Versionserstellung |
|
||||
| `nextCursor` | string | Cursor zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
### `confluence_list_space_labels`
|
||||
|
||||
Alle Labels auflisten, die mit einem Confluence-Space verknüpft sind.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `spaceId` | string | Ja | Die ID des Confluence-Space, von dem Labels aufgelistet werden sollen |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Labels (Standard: 25, max: 250) |
|
||||
| `cursor` | string | Nein | Paginierungs-Cursor aus vorheriger Antwort |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | ISO 8601-Zeitstempel der Operation |
|
||||
| `spaceId` | string | ID des Space |
|
||||
| `labels` | array | Array von Labels im Space |
|
||||
| ↳ `id` | string | Eindeutige Label-ID |
|
||||
| ↳ `name` | string | Label-Name |
|
||||
| ↳ `prefix` | string | Label-Präfix/Typ (z.B. global, my, team) |
|
||||
| `nextCursor` | string | Cursor zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
### `confluence_get_space`
|
||||
|
||||
Details zu einem bestimmten Confluence-Space abrufen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z.B. ihrfirma.atlassian.net) |
|
||||
| `spaceId` | string | Ja | Confluence-Space-ID zum Abrufen |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | ISO 8601-Zeitstempel der Operation |
|
||||
| `spaceId` | string | Space-ID |
|
||||
| `name` | string | Space-Name |
|
||||
| `key` | string | Space-Schlüssel |
|
||||
| `type` | string | Space-Typ (global, personal) |
|
||||
| `status` | string | Space-Status (current, archived) |
|
||||
| `url` | string | URL zum Anzeigen des Space in Confluence |
|
||||
| `authorId` | string | Account-ID des Space-Erstellers |
|
||||
| `createdAt` | string | ISO 8601-Zeitstempel der Space-Erstellung |
|
||||
| `homepageId` | string | ID der Space-Startseite |
|
||||
| `description` | object | Space-Beschreibungsinhalt |
|
||||
| ↳ `value` | string | Beschreibungstext |
|
||||
| ↳ `representation` | string | Format der Inhaltsdarstellung (z. B. plain, view, storage) |
|
||||
|
||||
### `confluence_list_spaces`
|
||||
|
||||
Listet alle Confluence-Spaces auf, auf die der Benutzer zugreifen kann.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `domain` | string | Ja | Ihre Confluence-Domain (z. B. ihrfirma.atlassian.net) |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Spaces (Standard: 25, max: 250) |
|
||||
| `cursor` | string | Nein | Paginierungs-Cursor aus vorheriger Antwort |
|
||||
| `cloudId` | string | Nein | Confluence Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `ts` | string | ISO-8601-Zeitstempel der Operation |
|
||||
| `spaces` | array | Array von Confluence-Spaces |
|
||||
| ↳ `id` | string | Eindeutige Space-ID |
|
||||
| ↳ `key` | string | Space-Schlüssel \(Kurzbezeichner für URLs\) |
|
||||
| ↳ `name` | string | Space-Name |
|
||||
| ↳ `type` | string | Space-Typ \(z. B. global, personal\) |
|
||||
| ↳ `status` | string | Space-Status \(z. B. current, archived\) |
|
||||
| ↳ `authorId` | string | Account-ID des Space-Erstellers |
|
||||
| ↳ `createdAt` | string | ISO-8601-Zeitstempel der Space-Erstellung |
|
||||
| ↳ `homepageId` | string | ID der Space-Startseite |
|
||||
| ↳ `description` | object | Space-Beschreibung |
|
||||
| ↳ `value` | string | Beschreibungstext |
|
||||
| ↳ `representation` | string | Format der Inhaltsdarstellung \(z. B. plain, view, storage\) |
|
||||
| `nextCursor` | string | Cursor zum Abrufen der nächsten Ergebnisseite |
|
||||
@@ -0,0 +1,170 @@
|
||||
---
|
||||
title: Cursor
|
||||
description: Starten und verwalten Sie Cursor Cloud-Agenten zur Arbeit an
|
||||
GitHub-Repositories
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="cursor"
|
||||
color="#1E1E1E"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Cursor](https://www.cursor.so/) ist eine KI-IDE und cloudbasierte Plattform, mit der Sie leistungsstarke KI-Agenten starten und verwalten können, die direkt mit Ihren GitHub-Repositories arbeiten können. Cursor-Agenten können Entwicklungsaufgaben automatisieren, die Produktivität Ihres Teams steigern und mit Ihnen zusammenarbeiten, indem sie Codeänderungen vornehmen, auf natürlichsprachliche Anweisungen reagieren und einen Gesprächsverlauf über ihre Aktivitäten führen.
|
||||
|
||||
Mit Cursor können Sie:
|
||||
|
||||
- **Cloud-Agenten für Codebasen starten**: Erstellen Sie sofort neue KI-Agenten, die in der Cloud an Ihren Repositories arbeiten
|
||||
- **Codierungsaufgaben mit natürlicher Sprache delegieren**: Leiten Sie Agenten mit schriftlichen Anweisungen, Änderungen und Klarstellungen an
|
||||
- **Fortschritt und Ergebnisse überwachen**: Rufen Sie den Agentenstatus ab, sehen Sie detaillierte Ergebnisse und prüfen Sie aktuelle oder abgeschlossene Aufgaben
|
||||
- **Zugriff auf den vollständigen Gesprächsverlauf**: Überprüfen Sie alle Eingabeaufforderungen und KI-Antworten für Transparenz und Nachvollziehbarkeit
|
||||
- **Steuerung und Verwaltung des Agenten-Lebenszyklus**: Listen Sie aktive Agenten auf, beenden Sie Agenten und verwalten Sie API-basierte Agentenstarts und Nachverfolgungen
|
||||
|
||||
In Sim ermöglicht die Cursor-Integration Ihren Agenten und Workflows, programmatisch mit Cursor-Cloud-Agenten zu interagieren. Das bedeutet, Sie können Sim verwenden, um:
|
||||
|
||||
- Alle Cloud-Agenten auflisten und ihren aktuellen Status durchsuchen (`cursor_list_agents`)
|
||||
- Aktuellen Status und Ausgaben für jeden Agenten abrufen (`cursor_get_agent`)
|
||||
- Den vollständigen Gesprächsverlauf für jeden Codierungsagenten anzeigen (`cursor_get_conversation`)
|
||||
- Nachfolgende Anweisungen oder neue Eingabeaufforderungen zu einem laufenden Agenten hinzufügen
|
||||
- Agenten nach Bedarf verwalten und beenden
|
||||
|
||||
Diese Integration hilft Ihnen, die flexible Intelligenz von Sim-Agenten mit den leistungsstarken Automatisierungsfunktionen von Cursor zu kombinieren, wodurch es möglich wird, KI-gesteuerte Entwicklung über Ihre Projekte hinweg zu skalieren.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Gebrauchsanweisung
|
||||
|
||||
Interagieren Sie mit der Cursor Cloud Agents API, um KI-Agenten zu starten, die an Ihren GitHub-Repositories arbeiten können. Unterstützt das Starten von Agenten, das Hinzufügen von Folgeanweisungen, die Statusprüfung, die Anzeige von Konversationen und die Verwaltung des Agenten-Lebenszyklus.
|
||||
|
||||
## Tools
|
||||
|
||||
### `cursor_list_agents`
|
||||
|
||||
Listet alle Cloud-Agenten für den authentifizierten Benutzer mit optionaler Paginierung auf.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Cursor API-Schlüssel |
|
||||
| `limit` | number | Nein | Anzahl der zurückzugebenden Agenten \(Standard: 20, max: 100\) |
|
||||
| `cursor` | string | Nein | Paginierungscursor aus der vorherigen Antwort |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Menschenlesbare Liste der Agenten |
|
||||
| `metadata` | object | Metadaten der Agentenliste |
|
||||
|
||||
### `cursor_get_agent`
|
||||
|
||||
Ruft den aktuellen Status und die Ergebnisse eines Cloud-Agenten ab.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Cursor API-Schlüssel |
|
||||
| `agentId` | string | Ja | Eindeutige Kennung für den Cloud-Agenten \(z.B. bc_abc123\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Menschenlesbare Agentendetails |
|
||||
| `metadata` | object | Agenten-Metadaten |
|
||||
|
||||
### `cursor_get_conversation`
|
||||
|
||||
Ruft den Konversationsverlauf eines Cloud-Agenten ab, einschließlich aller Benutzeraufforderungen und Assistentenantworten.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Cursor API-Schlüssel |
|
||||
| `agentId` | string | Ja | Eindeutige Kennung für den Cloud-Agenten \(z.B. bc_abc123\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Menschenlesbarer Konversationsverlauf |
|
||||
| `metadata` | object | Konversations-Metadaten |
|
||||
|
||||
### `cursor_launch_agent`
|
||||
|
||||
Starten Sie einen neuen Cloud-Agenten, um an einem GitHub-Repository mit den angegebenen Anweisungen zu arbeiten.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Cursor API-Schlüssel |
|
||||
| `repository` | string | Ja | GitHub-Repository-URL \(z.B. https://github.com/your-org/your-repo\) |
|
||||
| `ref` | string | Nein | Branch, Tag oder Commit, von dem aus gearbeitet werden soll \(standardmäßig der Hauptbranch\) |
|
||||
| `promptText` | string | Ja | Der Anweisungstext für den Agenten |
|
||||
| `promptImages` | string | Nein | JSON-Array von Bildobjekten mit Base64-Daten und Abmessungen |
|
||||
| `model` | string | Nein | Zu verwendendes Modell \(leer lassen für automatische Auswahl\) |
|
||||
| `branchName` | string | Nein | Benutzerdefinierter Branch-Name für den Agenten |
|
||||
| `autoCreatePr` | boolean | Nein | Automatisches Erstellen eines PR, wenn der Agent fertig ist |
|
||||
| `openAsCursorGithubApp` | boolean | Nein | Öffnen des PR als Cursor GitHub App |
|
||||
| `skipReviewerRequest` | boolean | Nein | Überspringen der Anfrage nach Prüfern für den PR |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Erfolgsmeldung mit Agenten-Details |
|
||||
| `metadata` | object | Metadaten zum Startergebnis |
|
||||
|
||||
### `cursor_add_followup`
|
||||
|
||||
Fügen Sie einem bestehenden Cloud-Agenten eine Folgeanweisung hinzu.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Cursor API-Schlüssel |
|
||||
| `agentId` | string | Ja | Eindeutige Kennung für den Cloud-Agenten \(z.B. bc_abc123\) |
|
||||
| `followupPromptText` | string | Ja | Der Folgeanweisungstext für den Agenten |
|
||||
| `promptImages` | string | Nein | JSON-Array von Bildobjekten mit Base64-Daten und Abmessungen \(max. 5\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Erfolgsmeldung |
|
||||
| `metadata` | object | Ergebnis-Metadaten |
|
||||
|
||||
### `cursor_stop_agent`
|
||||
|
||||
Stoppt einen laufenden Cloud-Agenten. Dies pausiert den Agenten, ohne ihn zu löschen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Cursor API-Schlüssel |
|
||||
| `agentId` | string | Ja | Eindeutige Kennung für den Cloud-Agenten \(z.B. bc_abc123\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Erfolgsmeldung |
|
||||
| `metadata` | object | Ergebnis-Metadaten |
|
||||
|
||||
### `cursor_delete_agent`
|
||||
|
||||
Löscht einen Cloud-Agenten dauerhaft. Diese Aktion kann nicht rückgängig gemacht werden.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Cursor API-Schlüssel |
|
||||
| `agentId` | string | Ja | Eindeutige Kennung für den Cloud-Agenten \(z.B. bc_abc123\) |
|
||||
@@ -0,0 +1,297 @@
|
||||
---
|
||||
title: Datadog
|
||||
description: Überwachen Sie Infrastruktur, Anwendungen und Logs mit Datadog
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="datadog"
|
||||
color="#632CA6"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Datadog](https://datadoghq.com/) ist eine umfassende Überwachungs- und Analyseplattform für Infrastruktur, Anwendungen, Logs und mehr. Sie ermöglicht Organisationen Echtzeit-Einblicke in den Zustand und die Leistung von Systemen, erkennt Anomalien und automatisiert die Reaktion auf Vorfälle.
|
||||
|
||||
Mit Datadog können Sie:
|
||||
|
||||
- **Metriken überwachen**: Sammeln, visualisieren und analysieren Sie Metriken von Servern, Cloud-Diensten und benutzerdefinierten Anwendungen.
|
||||
- **Zeitreihendaten abfragen**: Führen Sie erweiterte Abfragen zu Leistungsmetriken für Trendanalysen und Berichte durch.
|
||||
- **Monitore und Ereignisse verwalten**: Richten Sie Monitore ein, um Probleme zu erkennen, Warnungen auszulösen und Ereignisse für die Beobachtbarkeit zu erstellen.
|
||||
- **Ausfallzeiten verwalten**: Planen und programmieren Sie geplante Ausfallzeiten, um Warnungen während der Wartung zu unterdrücken.
|
||||
- **Logs und Traces analysieren** *(mit zusätzlicher Einrichtung in Datadog)*: Zentralisieren und untersuchen Sie Logs oder verteilte Traces für eine tiefere Fehlerbehebung.
|
||||
|
||||
Die Datadog-Integration von Sim ermöglicht es Ihren Agenten, diese Vorgänge zu automatisieren und programmatisch mit Ihrem Datadog-Konto zu interagieren. Verwenden Sie sie, um benutzerdefinierte Metriken zu übermitteln, Zeitreihendaten abzufragen, Monitore zu verwalten, Ereignisse zu erstellen und Ihre Überwachungsabläufe direkt innerhalb von Sim-Automatisierungen zu optimieren.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Gebrauchsanweisung
|
||||
|
||||
Integrieren Sie Datadog-Überwachung in Workflows. Übermitteln Sie Metriken, verwalten Sie Monitore, fragen Sie Logs ab, erstellen Sie Ereignisse, handhaben Sie Ausfallzeiten und mehr.
|
||||
|
||||
## Tools
|
||||
|
||||
### `datadog_submit_metrics`
|
||||
|
||||
Übermitteln Sie benutzerdefinierte Metriken an Datadog. Verwenden Sie diese zur Verfolgung der Anwendungsleistung, Geschäftsmetriken oder benutzerdefinierten Überwachungsdaten.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `series` | string | Ja | JSON-Array von Metrikserien zur Übermittlung. Jede Serie sollte den Metriknamen, Typ \(gauge/rate/count\), Punkte \(Zeitstempel/Wert-Paare\) und optionale Tags enthalten. |
|
||||
| `apiKey` | string | Ja | Datadog API-Schlüssel |
|
||||
| `site` | string | Nein | Datadog-Site/Region \(Standard: datadoghq.com\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob die Metriken erfolgreich übermittelt wurden |
|
||||
| `errors` | array | Alle Fehler, die während der Übermittlung aufgetreten sind |
|
||||
|
||||
### `datadog_query_timeseries`
|
||||
|
||||
Abfrage von Metrik-Zeitreihendaten aus Datadog. Verwenden Sie dies zur Analyse von Trends, zur Erstellung von Berichten oder zum Abrufen von Metrikwerten.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Ja | Datadog-Metrikabfrage (z.B. "avg:system.cpu.user\{*\}") |
|
||||
| `from` | number | Ja | Startzeit als Unix-Zeitstempel in Sekunden |
|
||||
| `to` | number | Ja | Endzeit als Unix-Zeitstempel in Sekunden |
|
||||
| `apiKey` | string | Ja | Datadog API-Schlüssel |
|
||||
| `applicationKey` | string | Ja | Datadog Anwendungsschlüssel |
|
||||
| `site` | string | Nein | Datadog-Site/Region (Standard: datadoghq.com) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `series` | array | Array von Zeitreihendaten mit Metrikname, Tags und Datenpunkten |
|
||||
| `status` | string | Abfragestatus |
|
||||
|
||||
### `datadog_create_event`
|
||||
|
||||
Veröffentlichen Sie ein Ereignis im Datadog-Ereignisstrom. Verwenden Sie dies für Deployment-Benachrichtigungen, Warnungen oder andere wichtige Vorkommnisse.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `title` | string | Ja | Ereignistitel |
|
||||
| `text` | string | Ja | Ereignistext/Beschreibung. Unterstützt Markdown. |
|
||||
| `alertType` | string | Nein | Warnungstyp: error, warning, info, success, user_update, recommendation oder snapshot |
|
||||
| `priority` | string | Nein | Ereignispriorität: normal oder low |
|
||||
| `host` | string | Nein | Hostname, der mit diesem Ereignis verknüpft werden soll |
|
||||
| `tags` | string | Nein | Kommagetrennte Liste von Tags (z.B. "env:production,service:api") |
|
||||
| `aggregationKey` | string | Nein | Schlüssel zum Zusammenfassen von Ereignissen |
|
||||
| `sourceTypeName` | string | Nein | Quelltypname für das Ereignis |
|
||||
| `dateHappened` | number | Nein | Unix-Zeitstempel, wann das Ereignis aufgetreten ist (standardmäßig jetzt) |
|
||||
| `apiKey` | string | Ja | Datadog API-Schlüssel |
|
||||
| `site` | string | Nein | Datadog-Site/Region (Standard: datadoghq.com) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `event` | object | Die Details des erstellten Events |
|
||||
|
||||
### `datadog_create_monitor`
|
||||
|
||||
Erstellen Sie einen neuen Monitor/Alert in Datadog. Monitore können Metriken, Service-Checks, Events und mehr überwachen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `name` | string | Ja | Name des Monitors |
|
||||
| `type` | string | Ja | Monitor-Typ: metric alert, service check, event alert, process alert, log alert, query alert, composite, synthetics alert, slo alert |
|
||||
| `query` | string | Ja | Monitor-Abfrage (z.B. `avg(last_5m):avg:system.cpu.idle{*} < 20`) |
|
||||
| `message` | string | Nein | Nachricht, die bei Benachrichtigungen enthalten sein soll. Kann @-Erwähnungen und Markdown enthalten. |
|
||||
| `tags` | string | Nein | Kommagetrennte Liste von Tags |
|
||||
| `priority` | number | Nein | Monitor-Priorität (1-5, wobei 1 die höchste ist) |
|
||||
| `options` | string | Nein | JSON-String mit Monitor-Optionen (Schwellenwerte, notify_no_data, renotify_interval, usw.) |
|
||||
| `apiKey` | string | Ja | Datadog API-Schlüssel |
|
||||
| `applicationKey` | string | Ja | Datadog Anwendungsschlüssel |
|
||||
| `site` | string | Nein | Datadog Site/Region (Standard: datadoghq.com) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `monitor` | object | Die Details des erstellten Monitors |
|
||||
|
||||
### `datadog_get_monitor`
|
||||
|
||||
Rufen Sie Details eines bestimmten Monitors anhand seiner ID ab.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `monitorId` | string | Ja | Die ID des abzurufenden Monitors |
|
||||
| `groupStates` | string | Nein | Kommagetrennte Gruppenzustände, die einbezogen werden sollen: alert, warn, no data, ok |
|
||||
| `withDowntimes` | boolean | Nein | Downtime-Daten mit dem Monitor einbeziehen |
|
||||
| `apiKey` | string | Ja | Datadog API-Schlüssel |
|
||||
| `applicationKey` | string | Ja | Datadog Anwendungsschlüssel |
|
||||
| `site` | string | Nein | Datadog Site/Region (Standard: datadoghq.com) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `monitor` | object | Die Monitor-Details |
|
||||
|
||||
### `datadog_list_monitors`
|
||||
|
||||
Listet alle Monitore in Datadog auf, mit optionaler Filterung nach Namen, Tags oder Status.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupStates` | string | Nein | Kommagetrennte Gruppenstatus zur Filterung: alert, warn, no data, ok |
|
||||
| `name` | string | Nein | Filtert Monitore nach Namen \(teilweise Übereinstimmung\) |
|
||||
| `tags` | string | Nein | Kommagetrennte Liste von Tags zur Filterung |
|
||||
| `monitorTags` | string | Nein | Kommagetrennte Liste von Monitor-Tags zur Filterung |
|
||||
| `withDowntimes` | boolean | Nein | Downtime-Daten mit Monitoren einbeziehen |
|
||||
| `page` | number | Nein | Seitennummer für Paginierung \(0-indiziert\) |
|
||||
| `pageSize` | number | Nein | Anzahl der Monitore pro Seite \(max. 1000\) |
|
||||
| `apiKey` | string | Ja | Datadog API-Schlüssel |
|
||||
| `applicationKey` | string | Ja | Datadog Anwendungsschlüssel |
|
||||
| `site` | string | Nein | Datadog Site/Region \(Standard: datadoghq.com\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `monitors` | array | Liste der Monitore |
|
||||
|
||||
### `datadog_mute_monitor`
|
||||
|
||||
Stummschalten eines Monitors, um Benachrichtigungen vorübergehend zu unterdrücken.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `monitorId` | string | Ja | Die ID des stummzuschaltenden Monitors |
|
||||
| `scope` | string | Nein | Bereich zum Stummschalten \(z.B. "host:myhost"\). Wenn nicht angegeben, werden alle Bereiche stummgeschaltet. |
|
||||
| `end` | number | Nein | Unix-Zeitstempel, wann die Stummschaltung enden soll. Wenn nicht angegeben, wird auf unbestimmte Zeit stummgeschaltet. |
|
||||
| `apiKey` | string | Ja | Datadog API-Schlüssel |
|
||||
| `applicationKey` | string | Ja | Datadog Anwendungsschlüssel |
|
||||
| `site` | string | Nein | Datadog Site/Region \(Standard: datadoghq.com\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Gibt an, ob der Monitor erfolgreich stummgeschaltet wurde |
|
||||
|
||||
### `datadog_query_logs`
|
||||
|
||||
Suchen und abrufen von Logs aus Datadog. Verwenden Sie dies zur Fehlerbehebung, Analyse oder Überwachung.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Ja | Log-Suchabfrage (z.B. "service:web-app status:error") |
|
||||
| `from` | string | Ja | Startzeit im ISO-8601-Format oder relativ (z.B. "now-1h") |
|
||||
| `to` | string | Ja | Endzeit im ISO-8601-Format oder relativ (z.B. "now") |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Logs (Standard: 50, max: 1000) |
|
||||
| `sort` | string | Nein | Sortierreihenfolge: timestamp (älteste zuerst) oder -timestamp (neueste zuerst) |
|
||||
| `indexes` | string | Nein | Kommagetrennte Liste der zu durchsuchenden Log-Indizes |
|
||||
| `apiKey` | string | Ja | Datadog API-Schlüssel |
|
||||
| `applicationKey` | string | Ja | Datadog Anwendungsschlüssel |
|
||||
| `site` | string | Nein | Datadog Site/Region (Standard: datadoghq.com) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `logs` | array | Liste der Log-Einträge |
|
||||
|
||||
### `datadog_send_logs`
|
||||
|
||||
Senden von Log-Einträgen an Datadog für zentralisiertes Logging und Analyse.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `logs` | string | Ja | JSON-Array von Log-Einträgen. Jeder Eintrag sollte message und optional ddsource, ddtags, hostname, service enthalten. |
|
||||
| `apiKey` | string | Ja | Datadog API-Schlüssel |
|
||||
| `site` | string | Nein | Datadog Site/Region (Standard: datadoghq.com) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob die Logs erfolgreich gesendet wurden |
|
||||
|
||||
### `datadog_create_downtime`
|
||||
|
||||
Planen Sie eine Ausfallzeit, um Monitor-Benachrichtigungen während Wartungsfenstern zu unterdrücken.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `scope` | string | Yes | Bereich, auf den die Ausfallzeit angewendet werden soll (z.B. "host:myhost", "env:production" oder "*" für alle) |
|
||||
| `message` | string | No | Nachricht, die während der Ausfallzeit angezeigt werden soll |
|
||||
| `start` | number | No | Unix-Zeitstempel für den Beginn der Ausfallzeit (standardmäßig jetzt) |
|
||||
| `end` | number | No | Unix-Zeitstempel für das Ende der Ausfallzeit |
|
||||
| `timezone` | string | No | Zeitzone für die Ausfallzeit (z.B. "America/New_York") |
|
||||
| `monitorId` | string | No | Spezifische Monitor-ID, die stummgeschaltet werden soll |
|
||||
| `monitorTags` | string | No | Kommagetrennte Monitor-Tags zur Übereinstimmung (z.B. "team:backend,priority:high") |
|
||||
| `muteFirstRecoveryNotification` | boolean | No | Die erste Wiederherstellungsbenachrichtigung stummschalten |
|
||||
| `apiKey` | string | Yes | Datadog API-Schlüssel |
|
||||
| `applicationKey` | string | Yes | Datadog Anwendungsschlüssel |
|
||||
| `site` | string | No | Datadog Site/Region (Standard: datadoghq.com) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `downtime` | object | Die Details der erstellten Ausfallzeit |
|
||||
|
||||
### `datadog_list_downtimes`
|
||||
|
||||
Listet alle geplanten Ausfallzeiten in Datadog auf.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `currentOnly` | boolean | No | Nur aktuell aktive Ausfallzeiten zurückgeben |
|
||||
| `monitorId` | string | No | Nach Monitor-ID filtern |
|
||||
| `apiKey` | string | Yes | Datadog API-Schlüssel |
|
||||
| `applicationKey` | string | Yes | Datadog Anwendungsschlüssel |
|
||||
| `site` | string | No | Datadog Site/Region (Standard: datadoghq.com) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `downtimes` | array | Liste der Ausfallzeiten |
|
||||
|
||||
### `datadog_cancel_downtime`
|
||||
|
||||
Eine geplante Ausfallzeit abbrechen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `downtimeId` | string | Ja | Die ID der abzubrechenden Ausfallzeit |
|
||||
| `apiKey` | string | Ja | Datadog API-Schlüssel |
|
||||
| `applicationKey` | string | Ja | Datadog Anwendungsschlüssel |
|
||||
| `site` | string | Nein | Datadog Site/Region \(Standard: datadoghq.com\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob die Ausfallzeit erfolgreich abgebrochen wurde |
|
||||
@@ -0,0 +1,732 @@
|
||||
---
|
||||
title: Discord
|
||||
description: Mit Discord interagieren
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="discord"
|
||||
color="#5865F2"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Discord](https://discord.com) ist eine leistungsstarke Kommunikationsplattform, die es dir ermöglicht, dich mit Freunden, Communities und Teams zu verbinden. Sie bietet eine Reihe von Funktionen für die Teamzusammenarbeit, darunter Textkanäle, Sprachkanäle und Videoanrufe.
|
||||
|
||||
Mit einem Discord-Account oder -Bot kannst du:
|
||||
|
||||
- **Nachrichten senden**: Nachrichten an einen bestimmten Kanal senden
|
||||
- **Nachrichten abrufen**: Nachrichten aus einem bestimmten Kanal abrufen
|
||||
- **Server abrufen**: Informationen über einen bestimmten Server abrufen
|
||||
- **Benutzer abrufen**: Informationen über einen bestimmten Benutzer abrufen
|
||||
|
||||
In Sim ermöglicht die Discord-Integration deinen Agenten den Zugriff auf die Discord-Server deiner Organisation. Agenten können Informationen aus Discord-Kanälen abrufen, nach bestimmten Benutzern suchen, Serverinformationen erhalten und Nachrichten senden. Dies ermöglicht deinen Workflows, sich mit deinen Discord-Communities zu integrieren, Benachrichtigungen zu automatisieren und interaktive Erlebnisse zu schaffen.
|
||||
|
||||
> **Wichtig:** Um Nachrichteninhalte lesen zu können, benötigt dein Discord-Bot die Berechtigung "Message Content Intent" im Discord Developer Portal. Ohne diese Berechtigung erhältst du zwar weiterhin Nachrichten-Metadaten, aber das Inhaltsfeld wird leer angezeigt.
|
||||
|
||||
Discord-Komponenten in Sim verwenden effizientes Lazy Loading und rufen Daten nur bei Bedarf ab, um API-Aufrufe zu minimieren und Rate-Limiting zu verhindern. Die Token-Aktualisierung erfolgt automatisch im Hintergrund, um deine Verbindung aufrechtzuerhalten.
|
||||
|
||||
### Einrichtung deines Discord-Bots
|
||||
|
||||
1. Gehe zum [Discord Developer Portal](https://discord.com/developers/applications)
|
||||
2. Erstelle eine neue Anwendung und navigiere zum "Bot"-Tab
|
||||
3. Erstelle einen Bot und kopiere deinen Bot-Token
|
||||
4. Aktiviere unter "Privileged Gateway Intents" den **Message Content Intent**, um Nachrichteninhalte lesen zu können
|
||||
5. Lade deinen Bot mit den entsprechenden Berechtigungen auf deine Server ein
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Umfassende Discord-Integration: Nachrichten, Threads, Kanäle, Rollen, Mitglieder, Einladungen und Webhooks.
|
||||
|
||||
## Tools
|
||||
|
||||
### `discord_send_message`
|
||||
|
||||
Eine Nachricht an einen Discord-Kanal senden
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `channelId` | string | Ja | Die Discord-Kanal-ID, an die die Nachricht gesendet werden soll |
|
||||
| `content` | string | Nein | Der Textinhalt der Nachricht |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
| `files` | file[] | Nein | Dateien, die an die Nachricht angehängt werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Discord-Nachrichtendaten |
|
||||
|
||||
### `discord_get_messages`
|
||||
|
||||
Nachrichten aus einem Discord-Kanal abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `channelId` | string | Ja | Die Discord-Kanal-ID, von der Nachrichten abgerufen werden sollen |
|
||||
| `limit` | number | Nein | Maximale Anzahl der abzurufenden Nachrichten \(Standard: 10, max: 100\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Container für Nachrichtendaten |
|
||||
|
||||
### `discord_get_server`
|
||||
|
||||
Informationen über einen Discord-Server (Guild) abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Discord-Server \(Guild\) Informationen |
|
||||
|
||||
### `discord_get_user`
|
||||
|
||||
Informationen über einen Discord-Benutzer abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Discord-Bot-Token zur Authentifizierung |
|
||||
| `userId` | string | Ja | Die Discord-Benutzer-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Discord-Benutzerinformationen |
|
||||
|
||||
### `discord_edit_message`
|
||||
|
||||
Eine bestehende Nachricht in einem Discord-Kanal bearbeiten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `channelId` | string | Ja | Die Discord-Kanal-ID, die die Nachricht enthält |
|
||||
| `messageId` | string | Ja | Die ID der zu bearbeitenden Nachricht |
|
||||
| `content` | string | Nein | Der neue Textinhalt für die Nachricht |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Aktualisierte Discord-Nachrichtendaten |
|
||||
|
||||
### `discord_delete_message`
|
||||
|
||||
Eine Nachricht aus einem Discord-Kanal löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `channelId` | string | Ja | Die Discord-Kanal-ID, die die Nachricht enthält |
|
||||
| `messageId` | string | Ja | Die ID der zu löschenden Nachricht |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
|
||||
### `discord_add_reaction`
|
||||
|
||||
Füge eine Reaktions-Emoji zu einer Discord-Nachricht hinzu
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `channelId` | string | Ja | Die Discord-Kanal-ID, die die Nachricht enthält |
|
||||
| `messageId` | string | Ja | Die ID der Nachricht, auf die reagiert werden soll |
|
||||
| `emoji` | string | Ja | Das Emoji für die Reaktion \(Unicode-Emoji oder benutzerdefiniertes Emoji im Format name:id\) |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
|
||||
### `discord_remove_reaction`
|
||||
|
||||
Entferne eine Reaktion von einer Discord-Nachricht
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `channelId` | string | Ja | Die Discord-Kanal-ID, die die Nachricht enthält |
|
||||
| `messageId` | string | Ja | Die ID der Nachricht mit der Reaktion |
|
||||
| `emoji` | string | Ja | Das zu entfernende Emoji \(Unicode-Emoji oder benutzerdefiniertes Emoji im Format name:id\) |
|
||||
| `userId` | string | Nein | Die Benutzer-ID, deren Reaktion entfernt werden soll \(weglassen, um die eigene Reaktion des Bots zu entfernen\) |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
|
||||
### `discord_pin_message`
|
||||
|
||||
Eine Nachricht in einem Discord-Kanal anpinnen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `channelId` | string | Ja | Die Discord-Kanal-ID, die die Nachricht enthält |
|
||||
| `messageId` | string | Ja | Die ID der anzupinnenden Nachricht |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
|
||||
### `discord_unpin_message`
|
||||
|
||||
Eine Nachricht in einem Discord-Kanal lösen (Unpin)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `channelId` | string | Ja | Die Discord-Kanal-ID, die die Nachricht enthält |
|
||||
| `messageId` | string | Ja | Die ID der zu lösenden Nachricht |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
|
||||
### `discord_create_thread`
|
||||
|
||||
Einen Thread in einem Discord-Kanal erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `channelId` | string | Ja | Die Discord-Kanal-ID, in der der Thread erstellt werden soll |
|
||||
| `name` | string | Ja | Der Name des Threads \(1-100 Zeichen\) |
|
||||
| `messageId` | string | Nein | Die Nachrichten-ID, aus der ein Thread erstellt werden soll \(falls aus einer bestehenden Nachricht erstellt wird\) |
|
||||
| `autoArchiveDuration` | number | Nein | Dauer in Minuten bis zur automatischen Archivierung des Threads \(60, 1440, 4320, 10080\) |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Erstellte Thread-Daten |
|
||||
|
||||
### `discord_join_thread`
|
||||
|
||||
Einem Thread in Discord beitreten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `threadId` | string | Ja | Die Thread-ID, der beigetreten werden soll |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
|
||||
### `discord_leave_thread`
|
||||
|
||||
Einen Thread in Discord verlassen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `threadId` | string | Ja | Die Thread-ID, die verlassen werden soll |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
|
||||
### `discord_archive_thread`
|
||||
|
||||
Einen Thread in Discord archivieren oder dearchivieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `threadId` | string | Ja | Die Thread-ID zum Archivieren/Dearchivieren |
|
||||
| `archived` | boolean | Ja | Ob der Thread archiviert \(true\) oder dearchiviert \(false\) werden soll |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Aktualisierte Thread-Daten |
|
||||
|
||||
### `discord_create_channel`
|
||||
|
||||
Einen neuen Kanal in einem Discord-Server erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
| `name` | string | Ja | Der Name des Kanals \(1-100 Zeichen\) |
|
||||
| `type` | number | Nein | Kanaltyp \(0=Text, 2=Sprache, 4=Kategorie, 5=Ankündigung, 13=Bühne\) |
|
||||
| `topic` | string | Nein | Kanalthema \(0-1024 Zeichen\) |
|
||||
| `parentId` | string | Nein | Übergeordnete Kategorie-ID für den Kanal |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Daten des erstellten Kanals |
|
||||
|
||||
### `discord_update_channel`
|
||||
|
||||
Discord-Kanal aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `channelId` | string | Ja | Die Discord-Kanal-ID, die aktualisiert werden soll |
|
||||
| `name` | string | Nein | Der neue Name für den Kanal |
|
||||
| `topic` | string | Nein | Das neue Thema für den Kanal |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Daten des aktualisierten Kanals |
|
||||
|
||||
### `discord_delete_channel`
|
||||
|
||||
Discord-Kanal löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `channelId` | string | Ja | Die Discord-Kanal-ID, die gelöscht werden soll |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
|
||||
### `discord_get_channel`
|
||||
|
||||
Informationen über einen Discord-Kanal abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `channelId` | string | Ja | Die Discord-Kanal-ID, die abgerufen werden soll |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Kanaldaten |
|
||||
|
||||
### `discord_create_role`
|
||||
|
||||
Eine neue Rolle in einem Discord-Server erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
| `name` | string | Ja | Der Name der Rolle |
|
||||
| `color` | number | Nein | RGB-Farbwert als Ganzzahl \(z.B. 0xFF0000 für rot\) |
|
||||
| `hoist` | boolean | Nein | Ob Rollenmitglieder getrennt von Online-Mitgliedern angezeigt werden sollen |
|
||||
| `mentionable` | boolean | Nein | Ob die Rolle erwähnt werden kann |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Daten der erstellten Rolle |
|
||||
|
||||
### `discord_update_role`
|
||||
|
||||
Eine Rolle in einem Discord-Server aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
| `roleId` | string | Ja | Die zu aktualisierende Rollen-ID |
|
||||
| `name` | string | Nein | Der neue Name für die Rolle |
|
||||
| `color` | number | Nein | RGB-Farbwert als Ganzzahl |
|
||||
| `hoist` | boolean | Nein | Ob Rollenmitglieder separat angezeigt werden sollen |
|
||||
| `mentionable` | boolean | Nein | Ob die Rolle erwähnt werden kann |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Aktualisierte Rollendaten |
|
||||
|
||||
### `discord_delete_role`
|
||||
|
||||
Eine Rolle aus einem Discord-Server löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
| `roleId` | string | Ja | Die zu löschende Rollen-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
|
||||
### `discord_assign_role`
|
||||
|
||||
Eine Rolle einem Mitglied auf einem Discord-Server zuweisen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
| `userId` | string | Ja | Die Benutzer-ID, der die Rolle zugewiesen werden soll |
|
||||
| `roleId` | string | Ja | Die Rollen-ID, die zugewiesen werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
|
||||
### `discord_remove_role`
|
||||
|
||||
Eine Rolle von einem Mitglied auf einem Discord-Server entfernen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
| `userId` | string | Ja | Die Benutzer-ID, von der die Rolle entfernt werden soll |
|
||||
| `roleId` | string | Ja | Die Rollen-ID, die entfernt werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
|
||||
### `discord_kick_member`
|
||||
|
||||
Ein Mitglied von einem Discord-Server entfernen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
| `userId` | string | Ja | Die Benutzer-ID des zu entfernenden Benutzers |
|
||||
| `reason` | string | Nein | Grund für die Entfernung des Mitglieds |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
|
||||
### `discord_ban_member`
|
||||
|
||||
Ein Mitglied von einem Discord-Server sperren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
| `userId` | string | Ja | Die Benutzer-ID, die gesperrt werden soll |
|
||||
| `reason` | string | Nein | Grund für die Sperrung des Mitglieds |
|
||||
| `deleteMessageDays` | number | Nein | Anzahl der Tage, für die Nachrichten gelöscht werden sollen \(0-7\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
|
||||
### `discord_unban_member`
|
||||
|
||||
Die Sperrung eines Mitglieds auf einem Discord-Server aufheben
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
| `userId` | string | Ja | Die Benutzer-ID, deren Sperrung aufgehoben werden soll |
|
||||
| `reason` | string | Nein | Grund für die Aufhebung der Sperrung des Mitglieds |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
|
||||
### `discord_get_member`
|
||||
|
||||
Informationen über ein Mitglied in einem Discord-Server abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
| `userId` | string | Ja | Die abzurufende Benutzer-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Mitgliedsdaten |
|
||||
|
||||
### `discord_update_member`
|
||||
|
||||
Ein Mitglied in einem Discord-Server aktualisieren (z.B. Nickname ändern)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
| `userId` | string | Ja | Die zu aktualisierende Benutzer-ID |
|
||||
| `nick` | string | Nein | Neuer Nickname für das Mitglied \(null zum Entfernen\) |
|
||||
| `mute` | boolean | Nein | Ob das Mitglied in Sprachkanälen stummgeschaltet werden soll |
|
||||
| `deaf` | boolean | Nein | Ob das Mitglied in Sprachkanälen taub geschaltet werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Aktualisierte Mitgliedsdaten |
|
||||
|
||||
### `discord_create_invite`
|
||||
|
||||
Einen Einladungslink für einen Discord-Kanal erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `channelId` | string | Ja | Die Discord-Kanal-ID, für die eine Einladung erstellt werden soll |
|
||||
| `maxAge` | number | Nein | Dauer der Einladung in Sekunden \(0 = läuft nie ab, Standard 86400\) |
|
||||
| `maxUses` | number | Nein | Maximale Anzahl der Verwendungen \(0 = unbegrenzt, Standard 0\) |
|
||||
| `temporary` | boolean | Nein | Ob die Einladung temporäre Mitgliedschaft gewährt |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Erstellte Einladungsdaten |
|
||||
|
||||
### `discord_get_invite`
|
||||
|
||||
Informationen über eine Discord-Einladung abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `inviteCode` | string | Ja | Der abzurufende Einladungscode |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Einladungsdaten |
|
||||
|
||||
### `discord_delete_invite`
|
||||
|
||||
Discord-Einladung löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `inviteCode` | string | Ja | Der zu löschende Einladungscode |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
|
||||
### `discord_create_webhook`
|
||||
|
||||
Webhook in einem Discord-Kanal erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `channelId` | string | Ja | Die Discord-Kanal-ID, in der der Webhook erstellt werden soll |
|
||||
| `name` | string | Ja | Name des Webhooks \(1-80 Zeichen\) |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Erstellte Webhook-Daten |
|
||||
|
||||
### `discord_execute_webhook`
|
||||
|
||||
Discord-Webhook ausführen, um eine Nachricht zu senden
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `webhookId` | string | Ja | Die Webhook-ID |
|
||||
| `webhookToken` | string | Ja | Der Webhook-Token |
|
||||
| `content` | string | Ja | Der zu sendende Nachrichteninhalt |
|
||||
| `username` | string | Nein | Überschreibt den Standardbenutzernamen des Webhooks |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Über Webhook gesendete Nachricht |
|
||||
|
||||
### `discord_get_webhook`
|
||||
|
||||
Informationen über einen Discord-Webhook abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `webhookId` | string | Ja | Die abzurufende Webhook-ID |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
| `data` | object | Webhook-Daten |
|
||||
|
||||
### `discord_delete_webhook`
|
||||
|
||||
Einen Discord-Webhook löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `botToken` | string | Ja | Der Bot-Token zur Authentifizierung |
|
||||
| `webhookId` | string | Ja | Die zu löschende Webhook-ID |
|
||||
| `serverId` | string | Ja | Die Discord-Server-ID \(Guild-ID\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgs- oder Fehlermeldung |
|
||||
@@ -0,0 +1,214 @@
|
||||
---
|
||||
title: Dropbox
|
||||
description: Dateien in Dropbox hochladen, herunterladen, teilen und verwalten
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="dropbox"
|
||||
color="#0061FF"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Dropbox](https://dropbox.com/) ist eine beliebte Cloud-Speicher- und Kollaborationsplattform, die es Einzelpersonen und Teams ermöglicht, Dateien sicher zu speichern, darauf zuzugreifen und sie von überall aus zu teilen. Dropbox ist für einfache Dateiverwaltung, Synchronisierung und leistungsstarke Zusammenarbeit konzipiert, egal ob Sie allein oder in einer Gruppe arbeiten.
|
||||
|
||||
Mit Dropbox in Sim können Sie:
|
||||
|
||||
- **Dateien hoch- und herunterladen**: Laden Sie jede Datei nahtlos in Ihre Dropbox hoch oder rufen Sie Inhalte bei Bedarf ab
|
||||
- **Ordnerinhalte auflisten**: Durchsuchen Sie die Dateien und Ordner in jedem Dropbox-Verzeichnis
|
||||
- **Neue Ordner erstellen**: Organisieren Sie Ihre Dateien, indem Sie programmgesteuert neue Ordner in Ihrer Dropbox erstellen
|
||||
- **Dateien und Ordner suchen**: Finden Sie Dokumente, Bilder oder andere Elemente nach Namen oder Inhalt
|
||||
- **Geteilte Links generieren**: Erstellen Sie schnell teilbare öffentliche oder private Links für Dateien und Ordner
|
||||
- **Dateien verwalten**: Verschieben, löschen oder benennen Sie Dateien und Ordner im Rahmen automatisierter Workflows um
|
||||
|
||||
Diese Funktionen ermöglichen es Ihren Sim-Agenten, Dropbox-Operationen direkt in Ihren Workflows zu automatisieren – vom Sichern wichtiger Dateien bis hin zur Verteilung von Inhalten und der Pflege organisierter Ordner. Verwenden Sie Dropbox sowohl als Quelle als auch als Ziel für Dateien und ermöglichen Sie so eine nahtlose Cloud-Speicherverwaltung als Teil Ihrer Geschäftsprozesse.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integrieren Sie Dropbox in Ihren Workflow für Dateiverwaltung, Freigabe und Zusammenarbeit. Laden Sie Dateien hoch, laden Sie Inhalte herunter, erstellen Sie Ordner, verwalten Sie freigegebene Links und mehr.
|
||||
|
||||
## Tools
|
||||
|
||||
### `dropbox_upload`
|
||||
|
||||
Eine Datei zu Dropbox hochladen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `path` | string | Ja | Der Pfad in Dropbox, wo die Datei gespeichert werden soll \(z.B. /ordner/dokument.pdf\) |
|
||||
| `fileContent` | string | Ja | Der base64-kodierte Inhalt der hochzuladenden Datei |
|
||||
| `fileName` | string | Nein | Optionaler Dateiname \(wird verwendet, wenn der Pfad ein Ordner ist\) |
|
||||
| `mode` | string | Nein | Schreibmodus: add \(Standard\) oder overwrite |
|
||||
| `autorename` | boolean | Nein | Wenn true, wird die Datei umbenannt, falls ein Konflikt besteht |
|
||||
| `mute` | boolean | Nein | Wenn true, wird der Benutzer nicht über diesen Upload benachrichtigt |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | object | Die Metadaten der hochgeladenen Datei |
|
||||
|
||||
### `dropbox_download`
|
||||
|
||||
Eine Datei von Dropbox herunterladen und einen temporären Link erhalten
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `path` | string | Ja | Der Pfad der herunterzuladenden Datei (z.B. /ordner/dokument.pdf) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | object | Die Metadaten der Datei |
|
||||
|
||||
### `dropbox_list_folder`
|
||||
|
||||
Den Inhalt eines Ordners in Dropbox auflisten
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `path` | string | Ja | Der Pfad des aufzulistenden Ordners (verwende "" für das Stammverzeichnis) |
|
||||
| `recursive` | boolean | Nein | Wenn true, Inhalte rekursiv auflisten |
|
||||
| `includeDeleted` | boolean | Nein | Wenn true, gelöschte Dateien/Ordner einbeziehen |
|
||||
| `includeMediaInfo` | boolean | Nein | Wenn true, Medieninfos für Fotos/Videos einbeziehen |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse (Standard: 500) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `entries` | array | Liste der Dateien und Ordner im Verzeichnis |
|
||||
|
||||
### `dropbox_create_folder`
|
||||
|
||||
Einen neuen Ordner in Dropbox erstellen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `path` | string | Ja | Der Pfad, an dem der Ordner erstellt werden soll (z.B. /neuer-ordner) |
|
||||
| `autorename` | boolean | Nein | Wenn true, den Ordner umbenennen, falls ein Konflikt besteht |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `folder` | object | Die Metadaten des erstellten Ordners |
|
||||
|
||||
### `dropbox_delete`
|
||||
|
||||
Eine Datei oder einen Ordner in Dropbox löschen (wird in den Papierkorb verschoben)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `path` | string | Ja | Der Pfad der zu löschenden Datei oder des zu löschenden Ordners |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `metadata` | object | Metadaten des gelöschten Elements |
|
||||
|
||||
### `dropbox_copy`
|
||||
|
||||
Eine Datei oder einen Ordner in Dropbox kopieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `fromPath` | string | Ja | Der Quellpfad der zu kopierenden Datei oder des zu kopierenden Ordners |
|
||||
| `toPath` | string | Ja | Der Zielpfad für die kopierte Datei oder den kopierten Ordner |
|
||||
| `autorename` | boolean | Nein | Wenn true, wird die Datei umbenannt, falls am Zielort ein Konflikt besteht |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `metadata` | object | Metadaten des kopierten Elements |
|
||||
|
||||
### `dropbox_move`
|
||||
|
||||
Eine Datei oder einen Ordner in Dropbox verschieben oder umbenennen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `fromPath` | string | Ja | Der Quellpfad der zu verschiebenden Datei oder des zu verschiebenden Ordners |
|
||||
| `toPath` | string | Ja | Der Zielpfad für die verschobene Datei oder den verschobenen Ordner |
|
||||
| `autorename` | boolean | Nein | Wenn true, wird die Datei umbenannt, falls am Zielort ein Konflikt besteht |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `metadata` | object | Metadaten des verschobenen Elements |
|
||||
|
||||
### `dropbox_get_metadata`
|
||||
|
||||
Metadaten für eine Datei oder einen Ordner in Dropbox abrufen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `path` | string | Ja | Der Pfad der Datei oder des Ordners, für die/den Metadaten abgerufen werden sollen |
|
||||
| `includeMediaInfo` | boolean | Nein | Wenn true, werden Medieninformationen für Fotos/Videos einbezogen |
|
||||
| `includeDeleted` | boolean | Nein | Wenn true, werden gelöschte Dateien in den Ergebnissen einbezogen |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `metadata` | object | Metadaten für die Datei oder den Ordner |
|
||||
|
||||
### `dropbox_create_shared_link`
|
||||
|
||||
Einen teilbaren Link für eine Datei oder einen Ordner in Dropbox erstellen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `path` | string | Ja | Der Pfad der Datei oder des Ordners, der geteilt werden soll |
|
||||
| `requestedVisibility` | string | Nein | Sichtbarkeit: public, team_only oder password |
|
||||
| `linkPassword` | string | Nein | Passwort für den geteilten Link \(nur wenn die Sichtbarkeit password ist\) |
|
||||
| `expires` | string | Nein | Ablaufdatum im ISO 8601-Format \(z.B. 2025-12-31T23:59:59Z\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `sharedLink` | object | Der erstellte geteilte Link |
|
||||
|
||||
### `dropbox_search`
|
||||
|
||||
Suche nach Dateien und Ordnern in Dropbox
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Ja | Die Suchanfrage |
|
||||
| `path` | string | Nein | Suche auf einen bestimmten Ordnerpfad beschränken |
|
||||
| `fileExtensions` | string | Nein | Kommagetrennte Liste von Dateierweiterungen zur Filterung \(z.B. pdf,xlsx\) |
|
||||
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 100\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `matches` | array | Suchergebnisse |
|
||||
@@ -0,0 +1,107 @@
|
||||
---
|
||||
title: DSPy
|
||||
description: Führen Sie Vorhersagen mit selbst gehosteten DSPy-Programmen aus
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="dspy"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[DSPy](https://github.com/stanford-oval/dspy) ist ein Open-Source-Framework für die Programmierung – statt Prompting – von Sprachmodellen. DSPy ermöglicht es Ihnen, interpretierbare und modulare LLM-gestützte Agenten mithilfe von Python-Funktionen, strukturierten Modulen und deklarativen Signaturen zu erstellen, wodurch es einfach wird, Sprachmodellanwendungen zu komponieren, zu debuggen und zuverlässig bereitzustellen.
|
||||
|
||||
Mit DSPy in Sim können Sie:
|
||||
|
||||
- **Benutzerdefinierte Vorhersagen ausführen**: Verbinden Sie Ihren selbst gehosteten DSPy-Server und rufen Sie Vorhersage-Endpunkte für eine Vielzahl von natürlichsprachlichen Aufgaben auf.
|
||||
- **Chain of Thought und ReAct-Reasoning**: Nutzen Sie fortgeschrittene DSPy-Module für schrittweises Reasoning, mehrstufige Dialoge und Action-Observation-Schleifen.
|
||||
- **Integration in Ihre Workflows**: Automatisieren Sie LLM-Vorhersagen und Reasoning als Teil jeder Sim-Automatisierung oder Agentenroutine.
|
||||
- **Benutzerdefinierte Endpunkte und Kontext bereitstellen**: Rufen Sie flexibel Ihre eigenen DSPy-gestützten APIs mit benutzerdefinierter Authentifizierung, Endpunkten, Eingabefeldern und Kontext auf.
|
||||
|
||||
Diese Funktionen ermöglichen es Ihren Sim-Agenten, auf modulare, interpretierbare LLM-basierte Programme für Aufgaben wie Fragebeantwortung, Dokumentenanalyse, Entscheidungsunterstützung und mehr zuzugreifen – wobei Sie die Kontrolle über das Modell, die Daten und die Logik behalten.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integrieren Sie sich mit Ihren selbst gehosteten DSPy-Programmen für LLM-gestützte Vorhersagen. Unterstützt Predict, Chain of Thought und ReAct-Agenten. DSPy ist das Framework für die Programmierung – nicht das Prompting – von Sprachmodellen.
|
||||
|
||||
## Tools
|
||||
|
||||
### `dspy_predict`
|
||||
|
||||
Führen Sie eine Vorhersage mit einem selbst gehosteten DSPy-Programm-Endpunkt aus
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `baseUrl` | string | Ja | Basis-URL des DSPy-Servers \(z. B. https://your-dspy-server.com\) |
|
||||
| `apiKey` | string | Nein | API-Schlüssel für die Authentifizierung \(falls von Ihrem Server erforderlich\) |
|
||||
| `endpoint` | string | Nein | API-Endpunkt-Pfad \(Standard ist /predict\) |
|
||||
| `input` | string | Ja | Der Eingabetext, der an das DSPy-Programm gesendet werden soll |
|
||||
| `inputField` | string | Nein | Name des Eingabefelds, das vom DSPy-Programm erwartet wird \(Standard ist "text"\) |
|
||||
| `context` | string | Nein | Zusätzlicher Kontext, der dem DSPy-Programm bereitgestellt werden soll |
|
||||
| `additionalInputs` | json | Nein | Zusätzliche Schlüssel-Wert-Paare, die in den Request-Body aufgenommen werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `answer` | string | Die Hauptausgabe/Antwort des DSPy-Programms |
|
||||
| `reasoning` | string | Die Begründung oder Erklärung hinter der Antwort \(falls verfügbar\) |
|
||||
| `status` | string | Antwortstatus vom DSPy-Server \(Erfolg oder Fehler\) |
|
||||
| `rawOutput` | json | Die vollständige Rohausgabe des DSPy-Programms \(result.toDict\(\)\) |
|
||||
|
||||
### `dspy_chain_of_thought`
|
||||
|
||||
Führen Sie eine Chain of Thought-Vorhersage mit einem selbst gehosteten DSPy ChainOfThought-Programm-Endpunkt aus
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `baseUrl` | string | Ja | Basis-URL des DSPy-Servers \(z. B. https://your-dspy-server.com\) |
|
||||
| `apiKey` | string | Nein | API-Schlüssel für die Authentifizierung \(falls von Ihrem Server erforderlich\) |
|
||||
| `endpoint` | string | Nein | API-Endpunkt-Pfad \(Standard ist /predict\) |
|
||||
| `question` | string | Ja | Die Frage, die mithilfe von Chain of Thought-Reasoning beantwortet werden soll |
|
||||
| `context` | string | Nein | Zusätzlicher Kontext zur Beantwortung der Frage |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `answer` | string | Die durch Chain of Thought-Reasoning generierte Antwort |
|
||||
| `reasoning` | string | Die schrittweise Begründung, die zur Antwort geführt hat |
|
||||
| `status` | string | Antwortstatus vom DSPy-Server \(Erfolg oder Fehler\) |
|
||||
| `rawOutput` | json | Die vollständige Rohausgabe des DSPy-Programms \(result.toDict\(\)\) |
|
||||
|
||||
### `dspy_react`
|
||||
|
||||
Führen Sie einen ReAct-Agenten mit einem selbst gehosteten DSPy ReAct-Programm-Endpunkt für mehrstufiges Denken und Handeln aus
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `baseUrl` | string | Ja | Basis-URL des DSPy-Servers \(z. B. https://your-dspy-server.com\) |
|
||||
| `apiKey` | string | Nein | API-Schlüssel für die Authentifizierung \(falls von Ihrem Server erforderlich\) |
|
||||
| `endpoint` | string | Nein | API-Endpunkt-Pfad \(Standardwert: /predict\) |
|
||||
| `task` | string | Ja | Die Aufgabe oder Frage, an der der ReAct-Agent arbeiten soll |
|
||||
| `context` | string | Nein | Zusätzlicher Kontext für die Aufgabe |
|
||||
| `maxIterations` | number | Nein | Maximale Anzahl von Denkiterationen \(Standardwert: Servereinstellung\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `answer` | string | Die endgültige Antwort oder das Ergebnis des ReAct-Agenten |
|
||||
| `reasoning` | string | Die Gesamtzusammenfassung des Denkprozesses des Agenten |
|
||||
| `trajectory` | array | Der schrittweise Verlauf von Gedanken, Aktionen und Beobachtungen |
|
||||
| ↳ `thought` | string | Der Denkprozess in diesem Schritt |
|
||||
| ↳ `toolName` | string | Der Name des aufgerufenen Tools/der Aktion |
|
||||
| ↳ `toolArgs` | json | An das Tool übergebene Argumente |
|
||||
| ↳ `observation` | string | Die Beobachtung/das Ergebnis der Tool-Ausführung |
|
||||
| `status` | string | Antwortstatus vom DSPy-Server \(Erfolg oder Fehler\) |
|
||||
| `rawOutput` | json | Die vollständige Rohausgabe des DSPy-Programms \(result.toDict\(\)\) |
|
||||
@@ -0,0 +1,58 @@
|
||||
---
|
||||
title: DuckDuckGo
|
||||
description: Suche mit DuckDuckGo
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="duckduckgo"
|
||||
color="#FFFFFF"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[DuckDuckGo](https://duckduckgo.com/) ist eine datenschutzorientierte Websuchmaschine, die sofortige Antworten, Zusammenfassungen, verwandte Themen und mehr liefert – ohne dich oder deine Suchen zu verfolgen. DuckDuckGo macht es einfach, Informationen ohne Benutzerprofilierung oder zielgerichtete Werbung zu finden.
|
||||
|
||||
Mit DuckDuckGo in Sim kannst du:
|
||||
|
||||
- **Im Web suchen**: Finde sofort Antworten, Fakten und Übersichten für eine bestimmte Suchanfrage
|
||||
- **Direkte Antworten erhalten**: Erhalte spezifische Antworten für Berechnungen, Umrechnungen oder Faktenfragen
|
||||
- **Auf Zusammenfassungen zugreifen**: Erhalte kurze Zusammenfassungen oder Beschreibungen für deine Suchthemen
|
||||
- **Verwandte Themen abrufen**: Entdecke Links und Referenzen, die für deine Suche relevant sind
|
||||
- **Ausgabe filtern**: Optional HTML entfernen oder Begriffsklärungen überspringen für sauberere Ergebnisse
|
||||
|
||||
Diese Funktionen ermöglichen es deinen Sim-Agenten, den Zugriff auf aktuelles Webwissen zu automatisieren – vom Auffinden von Fakten in einem Workflow bis hin zur Anreicherung von Dokumenten und Analysen mit aktuellen Informationen. Da DuckDuckGos Instant Answers API offen ist und keinen API-Schlüssel erfordert, lässt sie sich einfach und datenschutzsicher in deine automatisierten Geschäftsprozesse integrieren.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Durchsuche das Web mit der DuckDuckGo Instant Answers API. Liefert sofortige Antworten, Zusammenfassungen, verwandte Themen und mehr. Kostenlos nutzbar ohne API-Schlüssel.
|
||||
|
||||
## Tools
|
||||
|
||||
### `duckduckgo_search`
|
||||
|
||||
Durchsuche das Web mit der DuckDuckGo Instant Answers API. Liefert sofortige Antworten, Zusammenfassungen und verwandte Themen für deine Anfrage. Kostenlos nutzbar ohne API-Schlüssel.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Ja | Die auszuführende Suchanfrage |
|
||||
| `noHtml` | boolean | Nein | HTML aus Text in Ergebnissen entfernen \(Standard: true\) |
|
||||
| `skipDisambig` | boolean | Nein | Begriffsklärungsergebnisse überspringen \(Standard: false\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `heading` | string | Die Überschrift/der Titel der Sofortantwort |
|
||||
| `abstract` | string | Eine kurze Zusammenfassung des Themas |
|
||||
| `abstractText` | string | Einfache Textversion der Zusammenfassung |
|
||||
| `abstractSource` | string | Die Quelle der Zusammenfassung \(z.B. Wikipedia\) |
|
||||
| `abstractURL` | string | URL zur Quelle der Zusammenfassung |
|
||||
| `image` | string | URL zu einem Bild zum Thema |
|
||||
| `answer` | string | Direkte Antwort, falls verfügbar \(z.B. für Berechnungen\) |
|
||||
| `answerType` | string | Typ der Antwort \(z.B. calc, ip, usw.\) |
|
||||
| `type` | string | Antworttyp: A \(Artikel\), D \(Begriffsklärung\), C \(Kategorie\), N \(Name\), E \(Exklusiv\) |
|
||||
| `relatedTopics` | array | Array verwandter Themen mit URLs und Beschreibungen |
|
||||
@@ -0,0 +1,205 @@
|
||||
---
|
||||
title: Amazon DynamoDB
|
||||
description: Verbindung zu Amazon DynamoDB
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="dynamodb"
|
||||
color="linear-gradient(45deg, #2E27AD 0%, #527FFF 100%)"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Amazon DynamoDB](https://aws.amazon.com/dynamodb/) ist ein vollständig verwalteter NoSQL-Datenbankdienst von AWS, der schnelle und vorhersehbare Leistung mit nahtloser Skalierbarkeit bietet. Mit DynamoDB können Sie beliebige Datenmengen speichern und abrufen und jede Art von Anforderungsverkehr bedienen, ohne dass Sie Hardware oder Infrastruktur verwalten müssen.
|
||||
|
||||
Mit DynamoDB können Sie:
|
||||
|
||||
- **Elemente abrufen**: Elemente in Ihren Tabellen mithilfe von Primärschlüsseln nachschlagen
|
||||
- **Elemente einfügen**: Elemente in Ihren Tabellen hinzufügen oder ersetzen
|
||||
- **Elemente abfragen**: Mehrere Elemente mithilfe von Abfragen über Indizes abrufen
|
||||
- **Tabellen scannen**: Alle oder einen Teil der Daten in einer Tabelle lesen
|
||||
- **Elemente aktualisieren**: Bestimmte Attribute vorhandener Elemente ändern
|
||||
- **Elemente löschen**: Datensätze aus Ihren Tabellen entfernen
|
||||
|
||||
In Sim ermöglicht die DynamoDB-Integration Ihren Agenten den sicheren Zugriff auf DynamoDB-Tabellen und deren Manipulation mithilfe von AWS-Anmeldeinformationen. Zu den unterstützten Operationen gehören:
|
||||
|
||||
- **Get**: Ein Element anhand seines Schlüssels abrufen
|
||||
- **Put**: Elemente einfügen oder überschreiben
|
||||
- **Query**: Abfragen mit Schlüsselbedingungen und Filtern ausführen
|
||||
- **Scan**: Mehrere Elemente durch Scannen der Tabelle oder des Index lesen
|
||||
- **Update**: Bestimmte Attribute eines oder mehrerer Elemente ändern
|
||||
- **Delete**: Ein Element aus einer Tabelle entfernen
|
||||
|
||||
Diese Integration ermöglicht es Sim-Agenten, Datenverwaltungsaufgaben innerhalb Ihrer DynamoDB-Tabellen programmatisch zu automatisieren, sodass Sie Workflows erstellen können, die skalierbare NoSQL-Daten ohne manuellen Aufwand oder Serververwaltung verwalten, ändern und abrufen.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integrieren Sie Amazon DynamoDB in Workflows. Unterstützt Get-, Put-, Query-, Scan-, Update- und Delete-Operationen auf DynamoDB-Tabellen.
|
||||
|
||||
## Tools
|
||||
|
||||
### `dynamodb_get`
|
||||
|
||||
Ein Element aus einer DynamoDB-Tabelle anhand des Primärschlüssels abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `region` | string | Ja | AWS-Region (z.B. us-east-1) |
|
||||
| `accessKeyId` | string | Ja | AWS-Zugriffsschlüssel-ID |
|
||||
| `secretAccessKey` | string | Ja | AWS-Geheimzugriffsschlüssel |
|
||||
| `tableName` | string | Ja | DynamoDB-Tabellenname |
|
||||
| `key` | object | Ja | Primärschlüssel des abzurufenden Elements |
|
||||
| `consistentRead` | boolean | Nein | Stark konsistentes Lesen verwenden |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Statusmeldung der Operation |
|
||||
| `item` | object | Abgerufenes Element |
|
||||
|
||||
### `dynamodb_put`
|
||||
|
||||
Ein Element in eine DynamoDB-Tabelle einfügen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `region` | string | Ja | AWS-Region (z.B. us-east-1) |
|
||||
| `accessKeyId` | string | Ja | AWS-Zugriffsschlüssel-ID |
|
||||
| `secretAccessKey` | string | Ja | AWS-Geheimzugriffsschlüssel |
|
||||
| `tableName` | string | Ja | DynamoDB-Tabellenname |
|
||||
| `item` | object | Ja | Element, das in die Tabelle eingefügt werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Statusmeldung der Operation |
|
||||
| `item` | object | Erstelltes Element |
|
||||
|
||||
### `dynamodb_query`
|
||||
|
||||
Abfrage von Elementen aus einer DynamoDB-Tabelle mit Schlüsselbedingungen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `region` | string | Ja | AWS-Region (z.B. us-east-1) |
|
||||
| `accessKeyId` | string | Ja | AWS-Zugriffsschlüssel-ID |
|
||||
| `secretAccessKey` | string | Ja | AWS-Geheimzugriffsschlüssel |
|
||||
| `tableName` | string | Ja | DynamoDB-Tabellenname |
|
||||
| `keyConditionExpression` | string | Ja | Schlüsselbedingungsausdruck (z.B. "pk = :pk") |
|
||||
| `filterExpression` | string | Nein | Filterausdruck für Ergebnisse |
|
||||
| `expressionAttributeNames` | object | Nein | Attributnamenzuordnungen für reservierte Wörter |
|
||||
| `expressionAttributeValues` | object | Nein | Ausdrucksattributwerte |
|
||||
| `indexName` | string | Nein | Name des sekundären Index für die Abfrage |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Elemente |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Statusmeldung der Operation |
|
||||
| `items` | array | Array der zurückgegebenen Elemente |
|
||||
| `count` | number | Anzahl der zurückgegebenen Elemente |
|
||||
|
||||
### `dynamodb_scan`
|
||||
|
||||
Alle Elemente in einer DynamoDB-Tabelle scannen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `region` | string | Ja | AWS-Region (z.B. us-east-1) |
|
||||
| `accessKeyId` | string | Ja | AWS-Zugriffsschlüssel-ID |
|
||||
| `secretAccessKey` | string | Ja | AWS-Geheimzugriffsschlüssel |
|
||||
| `tableName` | string | Ja | DynamoDB-Tabellenname |
|
||||
| `filterExpression` | string | Nein | Filterausdruck für Ergebnisse |
|
||||
| `projectionExpression` | string | Nein | Abzurufende Attribute |
|
||||
| `expressionAttributeNames` | object | Nein | Attributnamenzuordnungen für reservierte Wörter |
|
||||
| `expressionAttributeValues` | object | Nein | Ausdrucksattributwerte |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Elemente |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Statusmeldung der Operation |
|
||||
| `items` | array | Array der zurückgegebenen Elemente |
|
||||
| `count` | number | Anzahl der zurückgegebenen Elemente |
|
||||
|
||||
### `dynamodb_update`
|
||||
|
||||
Ein Element in einer DynamoDB-Tabelle aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `region` | string | Ja | AWS-Region (z.B. us-east-1) |
|
||||
| `accessKeyId` | string | Ja | AWS-Zugriffsschlüssel-ID |
|
||||
| `secretAccessKey` | string | Ja | AWS-Geheimzugriffsschlüssel |
|
||||
| `tableName` | string | Ja | Name der DynamoDB-Tabelle |
|
||||
| `key` | object | Ja | Primärschlüssel des zu aktualisierenden Elements |
|
||||
| `updateExpression` | string | Ja | Aktualisierungsausdruck (z.B. "SET #name = :name") |
|
||||
| `expressionAttributeNames` | object | Nein | Attributnamenzuordnungen für reservierte Wörter |
|
||||
| `expressionAttributeValues` | object | Nein | Ausdrucksattributwerte |
|
||||
| `conditionExpression` | string | Nein | Bedingung, die erfüllt sein muss, damit die Aktualisierung erfolgreich ist |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Statusmeldung der Operation |
|
||||
| `item` | object | Aktualisiertes Element |
|
||||
|
||||
### `dynamodb_delete`
|
||||
|
||||
Ein Element aus einer DynamoDB-Tabelle löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `region` | string | Ja | AWS-Region (z.B. us-east-1) |
|
||||
| `accessKeyId` | string | Ja | AWS-Zugriffsschlüssel-ID |
|
||||
| `secretAccessKey` | string | Ja | AWS-Geheimzugriffsschlüssel |
|
||||
| `tableName` | string | Ja | Name der DynamoDB-Tabelle |
|
||||
| `key` | object | Ja | Primärschlüssel des zu löschenden Elements |
|
||||
| `conditionExpression` | string | Nein | Bedingung, die erfüllt sein muss, damit das Löschen erfolgreich ist |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Statusmeldung der Operation |
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `tools`
|
||||
- Typ: `dynamodb`
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `region` | string | Ja | AWS-Region (z.B. us-east-1) |
|
||||
| `accessKeyId` | string | Ja | AWS-Zugriffsschlüssel-ID |
|
||||
| `secretAccessKey` | string | Ja | AWS-Geheimzugriffsschlüssel |
|
||||
| `tableName` | string | Nein | Optionaler Tabellenname, um ein detailliertes Schema zu erhalten (z.B. "Users", "Orders"). Wenn nicht angegeben, werden alle Tabellen aufgelistet. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Statusmeldung der Operation |
|
||||
| `tables` | array | Liste der Tabellennamen in der Region |
|
||||
| `tableDetails` | object | Detaillierte Schemainformationen für eine bestimmte Tabelle |
|
||||
@@ -0,0 +1,384 @@
|
||||
---
|
||||
title: Elasticsearch
|
||||
description: Suchen, indexieren und verwalten Sie Daten in Elasticsearch
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="elasticsearch"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Elasticsearch](https://www.elastic.co/elasticsearch/) ist eine leistungsstarke verteilte Such- und Analysemaschine, die es Ihnen ermöglicht, große Datenmengen in Echtzeit zu indexieren, zu durchsuchen und zu analysieren. Sie wird häufig für Suchfunktionen, Log- und Ereignisdatenanalysen, Beobachtbarkeit und mehr eingesetzt.
|
||||
|
||||
Mit Elasticsearch in Sim erhalten Sie programmatischen Zugriff auf die Kernfunktionen von Elasticsearch, darunter:
|
||||
|
||||
- **Dokumente durchsuchen**: Führen Sie erweiterte Suchen in strukturiertem oder unstrukturiertem Text mit Query DSL durch, mit Unterstützung für Sortierung, Paginierung und Feldauswahl.
|
||||
- **Dokumente indexieren**: Fügen Sie neue Dokumente hinzu oder aktualisieren Sie bestehende in jedem Elasticsearch-Index für sofortigen Abruf und Analyse.
|
||||
- **Dokumente abrufen, aktualisieren oder löschen**: Rufen Sie bestimmte Dokumente nach ID ab, ändern oder entfernen Sie sie.
|
||||
- **Massenoperationen**: Führen Sie mehrere Indexierungs- oder Aktualisierungsaktionen in einer einzigen Anfrage für Datenverarbeitung mit hohem Durchsatz aus.
|
||||
- **Indizes verwalten**: Erstellen, löschen oder rufen Sie Details zu Indizes als Teil Ihrer Workflow-Automatisierung ab.
|
||||
- **Cluster-Überwachung**: Überprüfen Sie den Zustand und die Statistiken Ihrer Elasticsearch-Bereitstellung.
|
||||
|
||||
Sims Elasticsearch-Tools funktionieren sowohl mit selbst gehosteten als auch mit Elastic Cloud-Umgebungen. Integrieren Sie Elasticsearch in Ihre Agent-Workflows, um die Datenaufnahme zu automatisieren, große Datensätze zu durchsuchen, Berichte zu erstellen oder benutzerdefinierte, suchgestützte Anwendungen zu erstellen – alles ohne manuelle Eingriffe.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integrieren Sie Elasticsearch in Workflows für leistungsstarke Suche, Indexierung und Datenverwaltung. Unterstützt CRUD-Operationen für Dokumente, erweiterte Suchabfragen, Massenoperationen, Indexverwaltung und Cluster-Überwachung. Funktioniert sowohl mit selbst gehosteten als auch mit Elastic Cloud-Bereitstellungen.
|
||||
|
||||
## Tools
|
||||
|
||||
### `elasticsearch_search`
|
||||
|
||||
Durchsuche Dokumente in Elasticsearch mit Query DSL. Gibt übereinstimmende Dokumente mit Scores und Metadaten zurück.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
|
||||
| `host` | string | Nein | Elasticsearch-Host-URL (für self-hosted) |
|
||||
| `cloudId` | string | Nein | Elastic Cloud ID (für Cloud-Bereitstellungen) |
|
||||
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
|
||||
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
|
||||
| `username` | string | Nein | Benutzername für Basic Auth |
|
||||
| `password` | string | Nein | Passwort für Basic Auth |
|
||||
| `index` | string | Ja | Indexname für die Suche |
|
||||
| `query` | string | Nein | Query DSL als JSON-String |
|
||||
| `from` | number | Nein | Startoffset für Paginierung (Standard: 0) |
|
||||
| `size` | number | Nein | Anzahl der zurückzugebenden Ergebnisse (Standard: 10) |
|
||||
| `sort` | string | Nein | Sortierungsspezifikation als JSON-String |
|
||||
| `sourceIncludes` | string | Nein | Kommagetrennte Liste von Feldern, die in _source eingeschlossen werden sollen |
|
||||
| `sourceExcludes` | string | Nein | Kommagetrennte Liste von Feldern, die aus _source ausgeschlossen werden sollen |
|
||||
| `trackTotalHits` | boolean | Nein | Genaue Gesamttrefferanzahl verfolgen (Standard: true) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `took` | number | Zeit in Millisekunden, die die Suche gedauert hat |
|
||||
| `timed_out` | boolean | Ob die Suche ein Timeout hatte |
|
||||
| `hits` | object | Suchergebnisse mit Gesamtanzahl und übereinstimmenden Dokumenten |
|
||||
| `aggregations` | json | Aggregationsergebnisse, falls vorhanden |
|
||||
|
||||
### `elasticsearch_index_document`
|
||||
|
||||
Dokument in Elasticsearch indexieren (erstellen oder aktualisieren).
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
|
||||
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
|
||||
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
|
||||
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
|
||||
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
|
||||
| `username` | string | Nein | Benutzername für Basic-Auth |
|
||||
| `password` | string | Nein | Passwort für Basic-Auth |
|
||||
| `index` | string | Ja | Zielindexname |
|
||||
| `documentId` | string | Nein | Dokument-ID \(wird automatisch generiert, wenn nicht angegeben\) |
|
||||
| `document` | string | Ja | Dokumentinhalt als JSON-String |
|
||||
| `refresh` | string | Nein | Aktualisierungsrichtlinie: true, false oder wait_for |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `_index` | string | Index, in dem das Dokument gespeichert wurde |
|
||||
| `_id` | string | Dokument-ID |
|
||||
| `_version` | number | Dokumentversion |
|
||||
| `result` | string | Operationsergebnis \(erstellt oder aktualisiert\) |
|
||||
|
||||
### `elasticsearch_get_document`
|
||||
|
||||
Dokument anhand der ID aus Elasticsearch abrufen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
|
||||
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
|
||||
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
|
||||
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
|
||||
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
|
||||
| `username` | string | Nein | Benutzername für Basic-Auth |
|
||||
| `password` | string | Nein | Passwort für Basic-Auth |
|
||||
| `index` | string | Ja | Indexname |
|
||||
| `documentId` | string | Ja | Abzurufende Dokument-ID |
|
||||
| `sourceIncludes` | string | Nein | Kommagetrennte Liste der einzuschließenden Felder |
|
||||
| `sourceExcludes` | string | Nein | Kommagetrennte Liste der auszuschließenden Felder |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `_index` | string | Indexname |
|
||||
| `_id` | string | Dokument-ID |
|
||||
| `_version` | number | Dokumentversion |
|
||||
| `found` | boolean | Ob das Dokument gefunden wurde |
|
||||
| `_source` | json | Dokumentinhalt |
|
||||
|
||||
### `elasticsearch_update_document`
|
||||
|
||||
Teilweise Aktualisierung eines Dokuments in Elasticsearch mittels Doc-Merge.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
|
||||
| `host` | string | Nein | Elasticsearch-Host-URL (für self-hosted) |
|
||||
| `cloudId` | string | Nein | Elastic Cloud ID (für Cloud-Bereitstellungen) |
|
||||
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
|
||||
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
|
||||
| `username` | string | Nein | Benutzername für Basic Auth |
|
||||
| `password` | string | Nein | Passwort für Basic Auth |
|
||||
| `index` | string | Ja | Indexname |
|
||||
| `documentId` | string | Ja | Zu aktualisierende Dokument-ID |
|
||||
| `document` | string | Ja | Teilweise Dokument zum Zusammenführen als JSON-String |
|
||||
| `retryOnConflict` | number | Nein | Anzahl der Wiederholungen bei Versionskonflikten |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `_index` | string | Indexname |
|
||||
| `_id` | string | Dokument-ID |
|
||||
| `_version` | number | Neue Dokumentversion |
|
||||
| `result` | string | Operationsergebnis (updated oder noop) |
|
||||
|
||||
### `elasticsearch_delete_document`
|
||||
|
||||
Löschen eines Dokuments aus Elasticsearch anhand der ID.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
|
||||
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
|
||||
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
|
||||
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
|
||||
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
|
||||
| `username` | string | Nein | Benutzername für Basic-Auth |
|
||||
| `password` | string | Nein | Passwort für Basic-Auth |
|
||||
| `index` | string | Ja | Index-Name |
|
||||
| `documentId` | string | Ja | Dokument-ID zum Löschen |
|
||||
| `refresh` | string | Nein | Aktualisierungsrichtlinie: true, false oder wait_for |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `_index` | string | Index-Name |
|
||||
| `_id` | string | Dokument-ID |
|
||||
| `_version` | number | Dokumentversion |
|
||||
| `result` | string | Operationsergebnis \(deleted oder not_found\) |
|
||||
|
||||
### `elasticsearch_bulk`
|
||||
|
||||
Führen Sie mehrere Index-, Erstellungs-, Lösch- oder Aktualisierungsoperationen in einer einzigen Anfrage für hohe Leistung durch.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
|
||||
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
|
||||
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
|
||||
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
|
||||
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
|
||||
| `username` | string | Nein | Benutzername für Basic-Auth |
|
||||
| `password` | string | Nein | Passwort für Basic-Auth |
|
||||
| `index` | string | Nein | Standardindex für Operationen, die keinen angeben |
|
||||
| `operations` | string | Ja | Massenoperationen als NDJSON-String \(zeilenweise abgegrenztes JSON\) |
|
||||
| `refresh` | string | Nein | Aktualisierungsrichtlinie: true, false oder wait_for |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `took` | number | Zeit in Millisekunden, die der Massenvorgang gedauert hat |
|
||||
| `errors` | boolean | Ob ein Vorgang einen Fehler hatte |
|
||||
| `items` | array | Ergebnisse für jeden Vorgang |
|
||||
|
||||
### `elasticsearch_count`
|
||||
|
||||
Zählt Dokumente, die einer Abfrage in Elasticsearch entsprechen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
|
||||
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
|
||||
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
|
||||
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
|
||||
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
|
||||
| `username` | string | Nein | Benutzername für Basic-Auth |
|
||||
| `password` | string | Nein | Passwort für Basic-Auth |
|
||||
| `index` | string | Ja | Indexname, in dem Dokumente gezählt werden sollen |
|
||||
| `query` | string | Nein | Optionale Abfrage zum Filtern von Dokumenten \(JSON-String\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `count` | number | Anzahl der Dokumente, die der Abfrage entsprechen |
|
||||
| `_shards` | object | Shard-Statistiken |
|
||||
|
||||
### `elasticsearch_create_index`
|
||||
|
||||
Erstellt einen neuen Index mit optionalen Einstellungen und Mappings.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
|
||||
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
|
||||
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
|
||||
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
|
||||
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
|
||||
| `username` | string | Nein | Benutzername für Basic-Auth |
|
||||
| `password` | string | Nein | Passwort für Basic-Auth |
|
||||
| `index` | string | Ja | Zu erstellender Indexname |
|
||||
| `settings` | string | Nein | Indexeinstellungen als JSON-String |
|
||||
| `mappings` | string | Nein | Index-Mappings als JSON-String |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `acknowledged` | boolean | Ob die Anfrage bestätigt wurde |
|
||||
| `shards_acknowledged` | boolean | Ob die Shards bestätigt wurden |
|
||||
| `index` | string | Name des erstellten Index |
|
||||
|
||||
### `elasticsearch_delete_index`
|
||||
|
||||
Löscht einen Index und alle seine Dokumente. Dieser Vorgang ist nicht rückgängig zu machen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
|
||||
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
|
||||
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
|
||||
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
|
||||
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
|
||||
| `username` | string | Nein | Benutzername für Basic-Auth |
|
||||
| `password` | string | Nein | Passwort für Basic-Auth |
|
||||
| `index` | string | Ja | Name des zu löschenden Index |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `acknowledged` | boolean | Ob die Löschung bestätigt wurde |
|
||||
|
||||
### `elasticsearch_get_index`
|
||||
|
||||
Ruft Indexinformationen ab, einschließlich Einstellungen, Mappings und Aliase.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
|
||||
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
|
||||
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
|
||||
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
|
||||
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
|
||||
| `username` | string | Nein | Benutzername für Basic-Auth |
|
||||
| `password` | string | Nein | Passwort für Basic-Auth |
|
||||
| `index` | string | Ja | Name des Index, für den Informationen abgerufen werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `index` | json | Indexinformationen einschließlich Aliase, Mappings und Einstellungen |
|
||||
|
||||
### `elasticsearch_cluster_health`
|
||||
|
||||
Ruft den Gesundheitsstatus des Elasticsearch-Clusters ab.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
|
||||
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
|
||||
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
|
||||
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
|
||||
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
|
||||
| `username` | string | Nein | Benutzername für Basic-Auth |
|
||||
| `password` | string | Nein | Passwort für Basic-Auth |
|
||||
| `waitForStatus` | string | Nein | Warten bis der Cluster diesen Status erreicht: green, yellow oder red |
|
||||
| `timeout` | string | Nein | Timeout für den Wartevorgang \(z.B. 30s, 1m\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `cluster_name` | string | Name des Clusters |
|
||||
| `status` | string | Cluster-Gesundheitsstatus: green, yellow oder red |
|
||||
| `number_of_nodes` | number | Gesamtzahl der Knoten im Cluster |
|
||||
| `number_of_data_nodes` | number | Anzahl der Datenknoten |
|
||||
| `active_shards` | number | Anzahl der aktiven Shards |
|
||||
| `unassigned_shards` | number | Anzahl der nicht zugewiesenen Shards |
|
||||
|
||||
### `elasticsearch_cluster_stats`
|
||||
|
||||
Erhalte umfassende Statistiken über den Elasticsearch-Cluster.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
|
||||
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
|
||||
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
|
||||
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
|
||||
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
|
||||
| `username` | string | Nein | Benutzername für Basic-Auth |
|
||||
| `password` | string | Nein | Passwort für Basic-Auth |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `cluster_name` | string | Name des Clusters |
|
||||
| `status` | string | Cluster-Gesundheitsstatus |
|
||||
| `nodes` | object | Knotenstatistiken einschließlich Anzahl und Versionen |
|
||||
| `indices` | object | Indexstatistiken einschließlich Dokumentanzahl und Speichergröße |
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `tools`
|
||||
- Typ: `elasticsearch`
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `deploymentType` | string | Ja | Bereitstellungstyp: self_hosted oder cloud |
|
||||
| `host` | string | Nein | Elasticsearch-Host-URL \(für self-hosted\) |
|
||||
| `cloudId` | string | Nein | Elastic Cloud ID \(für Cloud-Bereitstellungen\) |
|
||||
| `authMethod` | string | Ja | Authentifizierungsmethode: api_key oder basic_auth |
|
||||
| `apiKey` | string | Nein | Elasticsearch API-Schlüssel |
|
||||
| `username` | string | Nein | Benutzername für Basic-Auth |
|
||||
| `password` | string | Nein | Passwort für Basic-Auth |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Zusammenfassende Nachricht über die Indizes |
|
||||
| `indices` | json | Array von Indexinformationsobjekten |
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
title: ElevenLabs
|
||||
description: TTS mit ElevenLabs konvertieren
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="elevenlabs"
|
||||
color="#181C1E"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[ElevenLabs](https://elevenlabs.io/) ist eine hochmoderne Text-to-Speech-Plattform, die unglaublich natürliche und ausdrucksstarke KI-Stimmen erzeugt. Sie bietet einige der realistischsten und emotional nuanciertesten synthetischen Stimmen, die heute verfügbar sind, was sie ideal für die Erstellung lebensechter Audioinhalte macht.
|
||||
|
||||
Mit ElevenLabs können Sie:
|
||||
|
||||
- **Natürlich klingende Sprache generieren**: Audio erstellen, das kaum von menschlicher Sprache zu unterscheiden ist
|
||||
- **Aus vielfältigen Stimmoptionen wählen**: Zugriff auf eine Bibliothek vorgefertigter Stimmen mit verschiedenen Akzenten, Tonlagen und Eigenschaften
|
||||
- **Stimmen klonen**: Benutzerdefinierte Stimmen basierend auf Audiobeispielen erstellen (mit entsprechenden Genehmigungen)
|
||||
- **Sprachparameter steuern**: Stabilität, Klarheit und emotionalen Ton anpassen, um die Ausgabe zu optimieren
|
||||
- **Realistische Emotionen hinzufügen**: Natürlich klingende Emotionen wie Freude, Traurigkeit oder Aufregung einbauen
|
||||
|
||||
In Sim ermöglicht die ElevenLabs-Integration Ihren Agenten, Text in lebensechte Sprache umzuwandeln, was die Interaktivität und das Engagement Ihrer Anwendungen verbessert. Dies ist besonders wertvoll für die Erstellung von Sprachassistenten, die Generierung von Audioinhalten, die Entwicklung barrierefreier Anwendungen oder den Aufbau von Konversationsschnittstellen, die menschlicher wirken. Die Integration ermöglicht es Ihnen, die fortschrittlichen Sprachsynthesefähigkeiten von ElevenLabs nahtlos in Ihre Agenten-Workflows zu integrieren und so die Lücke zwischen textbasierter KI und natürlicher menschlicher Kommunikation zu schließen.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
ElevenLabs in den Workflow integrieren. Kann Text in Sprache umwandeln. Erfordert API-Schlüssel.
|
||||
|
||||
## Tools
|
||||
|
||||
### `elevenlabs_tts`
|
||||
|
||||
TTS mit ElevenLabs-Stimmen konvertieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `text` | string | Ja | Der Text, der in Sprache umgewandelt werden soll |
|
||||
| `voiceId` | string | Ja | Die ID der zu verwendenden Stimme |
|
||||
| `modelId` | string | Nein | Die ID des zu verwendenden Modells \(standardmäßig eleven_monolingual_v1\) |
|
||||
| `apiKey` | string | Ja | Ihr ElevenLabs API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `audioUrl` | string | Die URL der generierten Audiodatei |
|
||||
| `audioFile` | file | Die generierte Audiodatei |
|
||||
@@ -0,0 +1,925 @@
|
||||
---
|
||||
title: Enrich
|
||||
description: B2B-Datenanreicherung und LinkedIn-Intelligence mit Enrich.so
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="enrich"
|
||||
color="#E5E5E6"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Enrich.so](https://enrich.so/) liefert präzise B2B-Datenanreicherung und LinkedIn-Intelligence in Echtzeit. Die Plattform bietet dynamischen Zugriff auf öffentliche und strukturierte Unternehmens-, Kontakt- und berufliche Informationen und ermöglicht es Teams, umfassendere Profile zu erstellen, die Lead-Qualität zu verbessern und effektivere Kontaktaufnahmen durchzuführen.
|
||||
|
||||
Mit Enrich.so können Sie:
|
||||
|
||||
- **Kontakt- und Unternehmensprofile anreichern**: Entdecken Sie sofort wichtige Datenpunkte für Leads, Interessenten und Unternehmen – nur mit einer E-Mail-Adresse oder einem LinkedIn-Profil.
|
||||
- **E-Mail-Zustellbarkeit überprüfen**: Prüfen Sie, ob E-Mail-Adressen gültig, zustellbar und sicher zu kontaktieren sind, bevor Sie versenden.
|
||||
- **Geschäftliche und private E-Mails finden**: Identifizieren Sie fehlende geschäftliche E-Mails aus einem LinkedIn-Profil oder private E-Mails, um Ihre Reichweite zu erweitern.
|
||||
- **Telefonnummern und Social-Media-Profile aufdecken**: Erschließen Sie zusätzliche Kommunikationskanäle für Kontakte durch Anreicherungstools.
|
||||
- **LinkedIn-Beiträge und Engagement analysieren**: Extrahieren Sie Erkenntnisse über Reichweite, Reaktionen und Zielgruppe aus öffentlichen LinkedIn-Inhalten.
|
||||
- **Erweiterte Personen- und Unternehmenssuche durchführen**: Ermöglichen Sie Ihren Agenten, Unternehmen und Fachkräfte anhand detaillierter Filter und Echtzeit-Intelligence zu finden.
|
||||
|
||||
Die Sim-Integration mit Enrich.so befähigt Ihre Agenten und Automatisierungen, B2B-Daten sofort abzufragen, anzureichern und zu validieren, wodurch die Produktivität in Workflows wie Vertriebsakquise, Recruiting, Marketing-Operations und mehr gesteigert wird. Die Kombination der Orchestrierungsfähigkeiten von Sim mit Enrich.so ermöglicht intelligentere, datengesteuerte Automatisierungsstrategien, die durch erstklassige B2B-Intelligence unterstützt werden.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Greifen Sie auf B2B-Daten-Intelligence in Echtzeit mit Enrich.so zu. Reichern Sie Profile aus E-Mail-Adressen an, finden Sie geschäftliche E-Mails aus LinkedIn, überprüfen Sie die E-Mail-Zustellbarkeit, suchen Sie nach Personen und Unternehmen und analysieren Sie das Engagement von LinkedIn-Beiträgen.
|
||||
|
||||
## Tools
|
||||
|
||||
### `enrich_check_credits`
|
||||
|
||||
Überprüfen Sie Ihre Enrich API-Guthaben-Nutzung und Ihr verbleibendes Guthaben.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `totalCredits` | number | Dem Konto insgesamt zugewiesene Credits |
|
||||
| `creditsUsed` | number | Bisher verbrauchte Credits |
|
||||
| `creditsRemaining` | number | Verbleibende verfügbare Credits |
|
||||
|
||||
### `enrich_email_to_profile`
|
||||
|
||||
Rufen Sie detaillierte LinkedIn-Profilinformationen über eine E-Mail-Adresse ab, einschließlich Berufserfahrung, Ausbildung und Fähigkeiten.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich API-Schlüssel |
|
||||
| `email` | string | Ja | E-Mail-Adresse für die Suche \(z. B. john.doe@company.com\) |
|
||||
| `inRealtime` | boolean | Nein | Auf true setzen, um aktuelle Daten abzurufen und zwischengespeicherte Informationen zu umgehen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `displayName` | string | Vollständiger Anzeigename |
|
||||
| `firstName` | string | Vorname |
|
||||
| `lastName` | string | Nachname |
|
||||
| `headline` | string | Berufliche Überschrift |
|
||||
| `occupation` | string | Aktuelle Tätigkeit |
|
||||
| `summary` | string | Profilzusammenfassung |
|
||||
| `location` | string | Standort |
|
||||
| `country` | string | Land |
|
||||
| `linkedInUrl` | string | LinkedIn-Profil-URL |
|
||||
| `photoUrl` | string | Profilfoto-URL |
|
||||
| `connectionCount` | number | Anzahl der Kontakte |
|
||||
| `isConnectionCountObfuscated` | boolean | Ob die Kontaktanzahl verschleiert ist \(500+\) |
|
||||
| `positionHistory` | array | Berufserfahrung |
|
||||
| ↳ `title` | string | Berufsbezeichnung |
|
||||
| ↳ `company` | string | Firmenname |
|
||||
| ↳ `startDate` | string | Startdatum |
|
||||
| ↳ `endDate` | string | Enddatum |
|
||||
| ↳ `location` | string | Standort |
|
||||
| `education` | array | Ausbildungsverlauf |
|
||||
| ↳ `school` | string | Schulname |
|
||||
| ↳ `degree` | string | Abschluss |
|
||||
| ↳ `fieldOfStudy` | string | Studienrichtung |
|
||||
| ↳ `startDate` | string | Startdatum |
|
||||
| ↳ `endDate` | string | Enddatum |
|
||||
| `certifications` | array | Berufliche Zertifizierungen |
|
||||
| ↳ `name` | string | Zertifizierungsname |
|
||||
| ↳ `authority` | string | Ausstellende Behörde |
|
||||
| ↳ `url` | string | Zertifizierungs-URL |
|
||||
| `skills` | array | Liste der Fähigkeiten |
|
||||
| `languages` | array | Liste der Sprachen |
|
||||
| `locale` | string | Profil-Locale \(z. B. en_US\) |
|
||||
| `version` | number | Profilversionsnummer |
|
||||
|
||||
### `enrich_email_to_person_lite`
|
||||
|
||||
Rufen Sie grundlegende LinkedIn-Profilinformationen über eine E-Mail-Adresse ab. Eine schlankere Version mit nur den wichtigsten Daten.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich API-Schlüssel |
|
||||
| `email` | string | Ja | E-Mail-Adresse für die Suche \(z. B. john.doe@company.com\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `name` | string | Vollständiger Name |
|
||||
| `firstName` | string | Vorname |
|
||||
| `lastName` | string | Nachname |
|
||||
| `email` | string | E-Mail-Adresse |
|
||||
| `title` | string | Berufsbezeichnung |
|
||||
| `location` | string | Standort |
|
||||
| `company` | string | Aktuelles Unternehmen |
|
||||
| `companyLocation` | string | Unternehmensstandort |
|
||||
| `companyLinkedIn` | string | LinkedIn-URL des Unternehmens |
|
||||
| `profileId` | string | LinkedIn-Profil-ID |
|
||||
| `schoolName` | string | Schulname |
|
||||
| `schoolUrl` | string | Schul-URL |
|
||||
| `linkedInUrl` | string | LinkedIn-Profil-URL |
|
||||
| `photoUrl` | string | Profilfoto-URL |
|
||||
| `followerCount` | number | Anzahl der Follower |
|
||||
| `connectionCount` | number | Anzahl der Kontakte |
|
||||
| `languages` | array | Gesprochene Sprachen |
|
||||
| `projects` | array | Projekte |
|
||||
| `certifications` | array | Zertifizierungen |
|
||||
| `volunteerExperience` | array | Ehrenamtliche Tätigkeiten |
|
||||
|
||||
### `enrich_linkedin_profile`
|
||||
|
||||
Reichern Sie eine LinkedIn-Profil-URL mit detaillierten Informationen an, einschließlich Positionen, Ausbildung und Social-Media-Kennzahlen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich API-Schlüssel |
|
||||
| `url` | string | Ja | LinkedIn-Profil-URL \(z. B. linkedin.com/in/williamhgates\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `profileId` | string | LinkedIn-Profil-ID |
|
||||
| `firstName` | string | Vorname |
|
||||
| `lastName` | string | Nachname |
|
||||
| `subTitle` | string | Profil-Untertitel/Überschrift |
|
||||
| `profilePicture` | string | Profilbild-URL |
|
||||
| `backgroundImage` | string | Hintergrundbild-URL |
|
||||
| `industry` | string | Branche |
|
||||
| `location` | string | Standort |
|
||||
| `followersCount` | number | Anzahl der Follower |
|
||||
| `connectionsCount` | number | Anzahl der Kontakte |
|
||||
| `premium` | boolean | Ob das Konto Premium ist |
|
||||
| `influencer` | boolean | Ob das Konto ein Influencer ist |
|
||||
| `positions` | array | Berufspositionen |
|
||||
| ↳ `title` | string | Berufsbezeichnung |
|
||||
| ↳ `company` | string | Firmenname |
|
||||
| ↳ `companyLogo` | string | Firmenlogo-URL |
|
||||
| ↳ `startDate` | string | Startdatum |
|
||||
| ↳ `endDate` | string | Enddatum |
|
||||
| ↳ `location` | string | Standort |
|
||||
| `education` | array | Bildungshistorie |
|
||||
| ↳ `school` | string | Schulname |
|
||||
| ↳ `degree` | string | Abschluss |
|
||||
| ↳ `fieldOfStudy` | string | Studienrichtung |
|
||||
| ↳ `startDate` | string | Startdatum |
|
||||
| ↳ `endDate` | string | Enddatum |
|
||||
| `websites` | array | Persönliche Websites |
|
||||
|
||||
### `enrich_find_email`
|
||||
|
||||
Person finden
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich API-Schlüssel |
|
||||
| `fullName` | string | Ja | Vollständiger Name der Person \(z. B. Max Mustermann\) |
|
||||
| `companyDomain` | string | Ja | Unternehmens-Domain \(z. B. beispiel.de\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `email` | string | Gefundene E-Mail-Adresse |
|
||||
| `firstName` | string | Vorname |
|
||||
| `lastName` | string | Nachname |
|
||||
| `domain` | string | Unternehmens-Domain |
|
||||
| `found` | boolean | Ob eine E-Mail gefunden wurde |
|
||||
| `acceptAll` | boolean | Ob die Domain alle E-Mails akzeptiert |
|
||||
|
||||
### `enrich_linkedin_to_work_email`
|
||||
|
||||
Geschäftliche E-Mail-Adresse aus einer LinkedIn-Profil-URL finden.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich API-Schlüssel |
|
||||
| `linkedinProfile` | string | Ja | LinkedIn-Profil-URL \(z. B. https://www.linkedin.com/in/williamhgates\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `email` | string | Gefundene geschäftliche E-Mail-Adresse |
|
||||
| `found` | boolean | Ob eine E-Mail gefunden wurde |
|
||||
| `status` | string | Anfragestatus \(in_progress oder completed\) |
|
||||
|
||||
### `enrich_linkedin_to_personal_email`
|
||||
|
||||
Private E-Mail-Adresse aus einer LinkedIn-Profil-URL finden.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `linkedinProfile` | string | Ja | LinkedIn-Profil-URL \(z. B. linkedin.com/in/benutzername\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `email` | string | Persönliche E-Mail-Adresse |
|
||||
| `found` | boolean | Ob eine E-Mail-Adresse gefunden wurde |
|
||||
| `status` | string | Anfragestatus |
|
||||
|
||||
### `enrich_phone_finder`
|
||||
|
||||
Finden Sie eine Telefonnummer anhand einer LinkedIn-Profil-URL.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `linkedinProfile` | string | Ja | LinkedIn-Profil-URL \(z. B. linkedin.com/in/williamhgates\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `profileUrl` | string | LinkedIn-Profil-URL |
|
||||
| `mobileNumber` | string | Gefundene Mobiltelefonnummer |
|
||||
| `found` | boolean | Ob eine Telefonnummer gefunden wurde |
|
||||
| `status` | string | Anfragestatus \(in_progress oder completed\) |
|
||||
|
||||
### `enrich_email_to_phone`
|
||||
|
||||
Finden Sie eine Telefonnummer, die mit einer E-Mail-Adresse verknüpft ist.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `email` | string | Ja | Zu suchende E-Mail-Adresse \(z. B. john.doe@example.com\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `email` | string | Nachgeschlagene E-Mail-Adresse |
|
||||
| `mobileNumber` | string | Gefundene Mobiltelefonnummer |
|
||||
| `found` | boolean | Ob eine Telefonnummer gefunden wurde |
|
||||
| `status` | string | Anfragestatus \(in_progress oder completed\) |
|
||||
|
||||
### `enrich_verify_email`
|
||||
|
||||
Überprüfen Sie eine E-Mail-Adresse auf Zustellbarkeit, einschließlich Catch-All-Erkennung und Anbieteridentifikation.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `email` | string | Ja | Zu überprüfende E-Mail-Adresse \(z. B. john.doe@example.com\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `email` | string | Überprüfte E-Mail-Adresse |
|
||||
| `status` | string | Überprüfungsstatus |
|
||||
| `result` | string | Zustellbarkeitsergebnis \(deliverable, undeliverable usw.\) |
|
||||
| `confidenceScore` | number | Konfidenzwert \(0-100\) |
|
||||
| `smtpProvider` | string | E-Mail-Dienstanbieter \(z. B. Google, Microsoft\) |
|
||||
| `mailDisposable` | boolean | Ob die E-Mail von einem Wegwerf-Anbieter stammt |
|
||||
| `mailAcceptAll` | boolean | Ob die Domain eine Catch-All-Domain ist |
|
||||
| `free` | boolean | Ob die E-Mail einen kostenlosen E-Mail-Dienst verwendet |
|
||||
|
||||
### `enrich_disposable_email_check`
|
||||
|
||||
Überprüfen Sie, ob eine E-Mail-Adresse von einem Wegwerf- oder temporären E-Mail-Anbieter stammt. Gibt einen Score und Validierungsdetails zurück.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `email` | string | Ja | Zu überprüfende E-Mail-Adresse \(z. B. john.doe@example.com\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `email` | string | Geprüfte E-Mail-Adresse |
|
||||
| `score` | number | Validierungsbewertung \(0-100\) |
|
||||
| `testsPassed` | string | Anzahl bestandener Tests \(z. B. "3/3"\) |
|
||||
| `passed` | boolean | Ob die E-Mail alle Validierungstests bestanden hat |
|
||||
| `reason` | string | Grund für Fehler, falls E-Mail nicht bestanden hat |
|
||||
| `mailServerIp` | string | IP-Adresse des Mailservers |
|
||||
| `mxRecords` | array | MX-Einträge für die Domain |
|
||||
| ↳ `host` | string | MX-Eintrag-Host |
|
||||
| ↳ `pref` | number | MX-Eintrag-Präferenz |
|
||||
|
||||
### `enrich_email_to_ip`
|
||||
|
||||
Ermitteln Sie eine IP-Adresse, die mit einer E-Mail-Adresse verknüpft ist.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `email` | string | Ja | Zu suchende E-Mail-Adresse \(z. B. john.doe@example.com\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `email` | string | Gesuchte E-Mail-Adresse |
|
||||
| `ip` | string | Zugehörige IP-Adresse |
|
||||
| `found` | boolean | Ob eine IP-Adresse gefunden wurde |
|
||||
|
||||
### `enrich_ip_to_company`
|
||||
|
||||
Identifizieren Sie ein Unternehmen anhand einer IP-Adresse mit detaillierten firmografischen Informationen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `ip` | string | Ja | Zu suchende IP-Adresse \(z. B. 86.92.60.221\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `name` | string | Firmenname |
|
||||
| `legalName` | string | Rechtlicher Firmenname |
|
||||
| `domain` | string | Primäre Domain |
|
||||
| `domainAliases` | array | Domain-Aliase |
|
||||
| `sector` | string | Geschäftsbereich |
|
||||
| `industry` | string | Branche |
|
||||
| `phone` | string | Telefonnummer |
|
||||
| `employees` | number | Anzahl der Mitarbeiter |
|
||||
| `revenue` | string | Geschätzter Umsatz |
|
||||
| `location` | json | Firmenstandort |
|
||||
| ↳ `city` | string | Stadt |
|
||||
| ↳ `state` | string | Bundesland |
|
||||
| ↳ `country` | string | Land |
|
||||
| ↳ `timezone` | string | Zeitzone |
|
||||
| `linkedInUrl` | string | LinkedIn-Unternehmens-URL |
|
||||
| `twitterUrl` | string | Twitter-URL |
|
||||
| `facebookUrl` | string | Facebook-URL |
|
||||
|
||||
### `enrich_company_lookup`
|
||||
|
||||
Umfassende Unternehmensinformationen nach Name oder Domain abrufen, einschließlich Finanzierung, Standort und Social-Media-Profile.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `name` | string | Nein | Firmenname \(z. B. Google\) |
|
||||
| `domain` | string | Nein | Firmendomain \(z. B. google.com\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `name` | string | Firmenname |
|
||||
| `universalName` | string | Universeller Firmenname |
|
||||
| `companyId` | string | Firmen-ID |
|
||||
| `description` | string | Firmenbeschreibung |
|
||||
| `phone` | string | Telefonnummer |
|
||||
| `linkedInUrl` | string | LinkedIn-Unternehmens-URL |
|
||||
| `websiteUrl` | string | Firmenwebsite |
|
||||
| `followers` | number | Anzahl der LinkedIn-Follower |
|
||||
| `staffCount` | number | Anzahl der Mitarbeiter |
|
||||
| `foundedDate` | string | Gründungsdatum |
|
||||
| `type` | string | Unternehmenstyp |
|
||||
| `industries` | array | Branchen |
|
||||
| `specialties` | array | Unternehmensspezialisierungen |
|
||||
| `headquarters` | json | Hauptsitz |
|
||||
| ↳ `city` | string | Stadt |
|
||||
| ↳ `country` | string | Land |
|
||||
| ↳ `postalCode` | string | Postleitzahl |
|
||||
| ↳ `line1` | string | Adresszeile 1 |
|
||||
| `logo` | string | Firmenlogo-URL |
|
||||
| `coverImage` | string | Titelbild-URL |
|
||||
| `fundingRounds` | array | Finanzierungshistorie |
|
||||
| ↳ `roundType` | string | Finanzierungsrunde |
|
||||
| ↳ `amount` | number | Eingeworbener Betrag |
|
||||
| ↳ `currency` | string | Währung |
|
||||
| ↳ `investors` | array | Investoren |
|
||||
|
||||
### `enrich_company_funding`
|
||||
|
||||
Rufen Sie die Finanzierungshistorie, Traffic-Metriken und Führungskräfteinformationen eines Unternehmens nach Domain ab.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich API-Schlüssel |
|
||||
| `domain` | string | Ja | Unternehmens-Domain \(z. B. example.com\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `legalName` | string | Rechtlicher Unternehmensname |
|
||||
| `employeeCount` | number | Anzahl der Mitarbeiter |
|
||||
| `headquarters` | string | Hauptsitz |
|
||||
| `industry` | string | Branche |
|
||||
| `totalFundingRaised` | number | Gesamte eingeworbene Finanzierung |
|
||||
| `fundingRounds` | array | Finanzierungsrunden |
|
||||
| ↳ `roundType` | string | Rundentyp |
|
||||
| ↳ `amount` | number | Eingeworbener Betrag |
|
||||
| ↳ `date` | string | Datum |
|
||||
| ↳ `investors` | array | Investoren |
|
||||
| `monthlyVisits` | number | Monatliche Website-Besuche |
|
||||
| `trafficChange` | number | Traffic-Veränderung in Prozent |
|
||||
| `itSpending` | number | Geschätzte IT-Ausgaben in USD |
|
||||
| `executives` | array | Führungsteam |
|
||||
| ↳ `name` | string | Name |
|
||||
| ↳ `title` | string | Titel |
|
||||
|
||||
### `enrich_company_revenue`
|
||||
|
||||
Rufen Sie Umsatzdaten, CEO-Informationen und Wettbewerbsanalysen eines Unternehmens nach Domain ab.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich API-Schlüssel |
|
||||
| `domain` | string | Ja | Unternehmens-Domain \(z. B. clay.io\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companyName` | string | Firmenname |
|
||||
| `shortDescription` | string | Kurze Firmenbeschreibung |
|
||||
| `fullSummary` | string | Vollständige Firmenzusammenfassung |
|
||||
| `revenue` | string | Firmenumsatz |
|
||||
| `revenueMin` | number | Minimale Umsatzschätzung |
|
||||
| `revenueMax` | number | Maximale Umsatzschätzung |
|
||||
| `employeeCount` | number | Anzahl der Mitarbeiter |
|
||||
| `founded` | string | Gründungsjahr |
|
||||
| `ownership` | string | Eigentumsform |
|
||||
| `status` | string | Firmenstatus \(z. B. Aktiv\) |
|
||||
| `website` | string | Firmenwebsite-URL |
|
||||
| `ceo` | json | CEO-Informationen |
|
||||
| ↳ `name` | string | CEO-Name |
|
||||
| ↳ `designation` | string | CEO-Bezeichnung/Titel |
|
||||
| ↳ `rating` | number | CEO-Bewertung |
|
||||
| `socialLinks` | json | Social-Media-Links |
|
||||
| ↳ `linkedIn` | string | LinkedIn-URL |
|
||||
| ↳ `twitter` | string | Twitter-URL |
|
||||
| ↳ `facebook` | string | Facebook-URL |
|
||||
| `totalFunding` | string | Gesamte eingeworbene Finanzierung |
|
||||
| `fundingRounds` | number | Anzahl der Finanzierungsrunden |
|
||||
| `competitors` | array | Wettbewerber |
|
||||
| ↳ `name` | string | Name des Wettbewerbers |
|
||||
| ↳ `revenue` | string | Umsatz |
|
||||
| ↳ `employeeCount` | number | Mitarbeiterzahl |
|
||||
| ↳ `headquarters` | string | Hauptsitz |
|
||||
|
||||
### `enrich_search_people`
|
||||
|
||||
Suche nach Fachkräften anhand verschiedener Kriterien wie Name, Titel, Fähigkeiten, Ausbildung und Unternehmen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich API-Schlüssel |
|
||||
| `firstName` | string | Nein | Vorname |
|
||||
| `lastName` | string | Nein | Nachname |
|
||||
| `summary` | string | Nein | Schlüsselwörter für berufliche Zusammenfassung |
|
||||
| `subTitle` | string | Nein | Berufsbezeichnung/Untertitel |
|
||||
| `locationCountry` | string | Nein | Land |
|
||||
| `locationCity` | string | Nein | Stadt |
|
||||
| `locationState` | string | Nein | Bundesland/Provinz |
|
||||
| `influencer` | boolean | Nein | Nur nach Influencern filtern |
|
||||
| `premium` | boolean | Nein | Nur nach Premium-Konten filtern |
|
||||
| `language` | string | Nein | Hauptsprache |
|
||||
| `industry` | string | Nein | Branche |
|
||||
| `currentJobTitles` | json | Nein | Aktuelle Berufsbezeichnungen \(Array\) |
|
||||
| `pastJobTitles` | json | Nein | Frühere Berufsbezeichnungen \(Array\) |
|
||||
| `skills` | json | Nein | Zu suchende Fähigkeiten \(Array\) |
|
||||
| `schoolNames` | json | Nein | Schulnamen \(Array\) |
|
||||
| `certifications` | json | Nein | Zertifizierungen zum Filtern \(Array\) |
|
||||
| `degreeNames` | json | Nein | Abschlussnamen zum Filtern \(Array\) |
|
||||
| `studyFields` | json | Nein | Studienfächer zum Filtern \(Array\) |
|
||||
| `currentCompanies` | json | Nein | Aktuelle Unternehmens-IDs zum Filtern \(Array von Zahlen\) |
|
||||
| `pastCompanies` | json | Nein | Frühere Unternehmens-IDs zum Filtern \(Array von Zahlen\) |
|
||||
| `currentPage` | number | Nein | Seitennummer \(Standard: 1\) |
|
||||
| `pageSize` | number | Nein | Ergebnisse pro Seite \(Standard: 20\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `currentPage` | number | Aktuelle Seitennummer |
|
||||
| `totalPage` | number | Gesamtanzahl der Seiten |
|
||||
| `pageSize` | number | Ergebnisse pro Seite |
|
||||
| `profiles` | array | Suchergebnisse |
|
||||
| ↳ `profileIdentifier` | string | Profil-ID |
|
||||
| ↳ `givenName` | string | Vorname |
|
||||
| ↳ `familyName` | string | Nachname |
|
||||
| ↳ `currentPosition` | string | Aktuelle Berufsbezeichnung |
|
||||
| ↳ `profileImage` | string | Profilbild-URL |
|
||||
| ↳ `externalProfileUrl` | string | LinkedIn-URL |
|
||||
| ↳ `city` | string | Stadt |
|
||||
| ↳ `country` | string | Land |
|
||||
| ↳ `expertSkills` | array | Fähigkeiten |
|
||||
|
||||
### `enrich_search_company`
|
||||
|
||||
Suche nach Unternehmen anhand verschiedener Kriterien wie Name, Branche, Standort und Größe.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `name` | string | Nein | Unternehmensname |
|
||||
| `website` | string | Nein | Unternehmenswebsite-URL |
|
||||
| `tagline` | string | Nein | Unternehmens-Slogan |
|
||||
| `type` | string | Nein | Unternehmenstyp \(z. B. Privat, Öffentlich\) |
|
||||
| `description` | string | Nein | Schlüsselwörter der Unternehmensbeschreibung |
|
||||
| `industries` | json | Nein | Branchen zum Filtern \(Array\) |
|
||||
| `locationCountry` | string | Nein | Land |
|
||||
| `locationCity` | string | Nein | Stadt |
|
||||
| `postalCode` | string | Nein | Postleitzahl |
|
||||
| `locationCountryList` | json | Nein | Mehrere Länder zum Filtern \(Array\) |
|
||||
| `locationCityList` | json | Nein | Mehrere Städte zum Filtern \(Array\) |
|
||||
| `specialities` | json | Nein | Unternehmensspezialisierungen \(Array\) |
|
||||
| `followers` | number | Nein | Mindestanzahl an Followern |
|
||||
| `staffCount` | number | Nein | Maximale Mitarbeiterzahl |
|
||||
| `staffCountMin` | number | Nein | Minimale Mitarbeiterzahl |
|
||||
| `staffCountMax` | number | Nein | Maximale Mitarbeiterzahl |
|
||||
| `currentPage` | number | Nein | Seitennummer \(Standard: 1\) |
|
||||
| `pageSize` | number | Nein | Ergebnisse pro Seite \(Standard: 20\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `currentPage` | number | Aktuelle Seitennummer |
|
||||
| `totalPage` | number | Gesamtanzahl der Seiten |
|
||||
| `pageSize` | number | Ergebnisse pro Seite |
|
||||
| `companies` | array | Suchergebnisse |
|
||||
| ↳ `companyName` | string | Firmenname |
|
||||
| ↳ `tagline` | string | Firmen-Slogan |
|
||||
| ↳ `webAddress` | string | Website-URL |
|
||||
| ↳ `industries` | array | Branchen |
|
||||
| ↳ `teamSize` | number | Teamgröße |
|
||||
| ↳ `linkedInProfile` | string | LinkedIn-URL |
|
||||
|
||||
### `enrich_search_company_employees`
|
||||
|
||||
Suche nach Mitarbeitern in bestimmten Unternehmen nach Standort und Berufsbezeichnung.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `companyIds` | json | Nein | Array von Firmen-IDs, in denen gesucht werden soll |
|
||||
| `country` | string | Nein | Länderfilter \(z. B. Vereinigte Staaten\) |
|
||||
| `city` | string | Nein | Stadtfilter \(z. B. San Francisco\) |
|
||||
| `state` | string | Nein | Bundesland-Filter \(z. B. Kalifornien\) |
|
||||
| `jobTitles` | json | Nein | Berufsbezeichnungen zum Filtern \(Array\) |
|
||||
| `page` | number | Nein | Seitennummer \(Standard: 1\) |
|
||||
| `pageSize` | number | Nein | Ergebnisse pro Seite \(Standard: 10\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `currentPage` | number | Aktuelle Seitennummer |
|
||||
| `totalPage` | number | Gesamtanzahl der Seiten |
|
||||
| `pageSize` | number | Anzahl der Ergebnisse pro Seite |
|
||||
| `profiles` | array | Mitarbeiterprofile |
|
||||
| ↳ `profileIdentifier` | string | Profil-ID |
|
||||
| ↳ `givenName` | string | Vorname |
|
||||
| ↳ `familyName` | string | Nachname |
|
||||
| ↳ `currentPosition` | string | Aktuelle Berufsbezeichnung |
|
||||
| ↳ `profileImage` | string | Profilbild-URL |
|
||||
| ↳ `externalProfileUrl` | string | LinkedIn-URL |
|
||||
| ↳ `city` | string | Stadt |
|
||||
| ↳ `country` | string | Land |
|
||||
| ↳ `expertSkills` | array | Fähigkeiten |
|
||||
|
||||
### `enrich_search_similar_companies`
|
||||
|
||||
Finden Sie Unternehmen, die einem bestimmten Unternehmen ähnlich sind, anhand der LinkedIn-URL mit Filtern für Standort und Größe.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich API-Schlüssel |
|
||||
| `url` | string | Ja | LinkedIn-Unternehmens-URL \(z. B. linkedin.com/company/google\) |
|
||||
| `accountLocation` | json | Nein | Nach Standorten filtern \(Array von Ländernamen\) |
|
||||
| `employeeSizeType` | string | Nein | Filtertyp für Mitarbeiterzahl \(z. B. RANGE\) |
|
||||
| `employeeSizeRange` | json | Nein | Bereiche der Mitarbeiterzahl \(Array von \{start, end\}-Objekten\) |
|
||||
| `page` | number | Nein | Seitennummer \(Standard: 1\) |
|
||||
| `num` | number | Nein | Anzahl der Ergebnisse pro Seite |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | Ähnliche Unternehmen |
|
||||
| ↳ `url` | string | LinkedIn-URL |
|
||||
| ↳ `name` | string | Unternehmensname |
|
||||
| ↳ `universalName` | string | Universeller Name |
|
||||
| ↳ `type` | string | Unternehmenstyp |
|
||||
| ↳ `description` | string | Beschreibung |
|
||||
| ↳ `phone` | string | Telefonnummer |
|
||||
| ↳ `website` | string | Website-URL |
|
||||
| ↳ `logo` | string | Logo-URL |
|
||||
| ↳ `foundedYear` | number | Gründungsjahr |
|
||||
| ↳ `staffTotal` | number | Gesamtzahl der Mitarbeiter |
|
||||
| ↳ `industries` | array | Branchen |
|
||||
| ↳ `relevancyScore` | number | Relevanzbewertung |
|
||||
| ↳ `relevancyValue` | string | Relevanzwert |
|
||||
|
||||
### `enrich_sales_pointer_people`
|
||||
|
||||
Erweiterte Personensuche mit komplexen Filtern für Standort, Unternehmensgröße, Seniorität, Erfahrung und mehr.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `page` | number | Ja | Seitennummer \(beginnt bei 1\) |
|
||||
| `filters` | json | Ja | Array von Filterobjekten. Jeder Filter hat einen Typ \(z. B. POSTAL_CODE, COMPANY_HEADCOUNT\), Werte \(Array mit id, text, selectionType: INCLUDED/EXCLUDED\) und optional selectedSubFilter |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `data` | array | Personenergebnisse |
|
||||
| ↳ `name` | string | Vollständiger Name |
|
||||
| ↳ `summary` | string | Berufliche Zusammenfassung |
|
||||
| ↳ `location` | string | Standort |
|
||||
| ↳ `profilePicture` | string | Profilbild-URL |
|
||||
| ↳ `linkedInUrn` | string | LinkedIn-URN |
|
||||
| ↳ `positions` | array | Berufspositionen |
|
||||
| ↳ `education` | array | Ausbildung |
|
||||
| `pagination` | json | Paginierungsinformationen |
|
||||
| ↳ `totalCount` | number | Gesamtergebnisse |
|
||||
| ↳ `returnedCount` | number | Zurückgegebene Anzahl |
|
||||
| ↳ `start` | number | Startposition |
|
||||
| ↳ `limit` | number | Limit |
|
||||
|
||||
### `enrich_search_posts`
|
||||
|
||||
Durchsuchen Sie LinkedIn-Beiträge nach Schlüsselwörtern mit Datumsfilterung.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `keywords` | string | Ja | Suchbegriffe \(z. B. "KI-Automatisierung"\) |
|
||||
| `datePosted` | string | Nein | Zeitfilter \(z. B. past_week, past_month\) |
|
||||
| `page` | number | Nein | Seitennummer \(Standard: 1\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `count` | number | Gesamtanzahl der Ergebnisse |
|
||||
| `posts` | array | Suchergebnisse |
|
||||
| ↳ `url` | string | Beitrags-URL |
|
||||
| ↳ `postId` | string | Beitrags-ID |
|
||||
| ↳ `author` | object | Autoreninformationen |
|
||||
| ↳ `name` | string | Autorenname |
|
||||
| ↳ `headline` | string | Autoren-Headline |
|
||||
| ↳ `linkedInUrl` | string | LinkedIn-URL des Autors |
|
||||
| ↳ `profileImage` | string | Profilbild des Autors |
|
||||
| ↳ `timestamp` | string | Zeitstempel des Beitrags |
|
||||
| ↳ `textContent` | string | Textinhalt des Beitrags |
|
||||
| ↳ `hashtags` | array | Hashtags |
|
||||
| ↳ `mediaUrls` | array | Medien-URLs |
|
||||
| ↳ `reactions` | number | Anzahl der Reaktionen |
|
||||
| ↳ `commentsCount` | number | Anzahl der Kommentare |
|
||||
|
||||
### `enrich_get_post_details`
|
||||
|
||||
Detaillierte Informationen zu einem LinkedIn-Beitrag anhand der URL abrufen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `url` | string | Ja | LinkedIn-Beitrags-URL |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `postId` | string | Beitrags-ID |
|
||||
| `author` | json | Autoreninformationen |
|
||||
| ↳ `name` | string | Autorenname |
|
||||
| ↳ `headline` | string | Autoren-Headline |
|
||||
| ↳ `linkedInUrl` | string | LinkedIn-URL des Autors |
|
||||
| ↳ `profileImage` | string | Profilbild des Autors |
|
||||
| `timestamp` | string | Zeitstempel des Beitrags |
|
||||
| `textContent` | string | Textinhalt des Beitrags |
|
||||
| `hashtags` | array | Hashtags |
|
||||
| `mediaUrls` | array | Medien-URLs |
|
||||
| `reactions` | number | Anzahl der Reaktionen |
|
||||
| `commentsCount` | number | Anzahl der Kommentare |
|
||||
|
||||
### `enrich_search_post_reactions`
|
||||
|
||||
Reaktionen auf einen LinkedIn-Beitrag mit Filterung nach Reaktionstyp abrufen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich API-Schlüssel |
|
||||
| `postUrn` | string | Ja | LinkedIn-Aktivitäts-URN \(z. B. urn:li:activity:7231931952839196672\) |
|
||||
| `reactionType` | string | Ja | Reaktionstyp-Filter: all, like, love, celebrate, insightful oder funny \(Standard: all\) |
|
||||
| `page` | number | Ja | Seitennummer \(beginnt bei 1\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `page` | number | Aktuelle Seitennummer |
|
||||
| `totalPage` | number | Gesamtanzahl der Seiten |
|
||||
| `count` | number | Anzahl der zurückgegebenen Reaktionen |
|
||||
| `reactions` | array | Reaktionen |
|
||||
| ↳ `reactionType` | string | Art der Reaktion |
|
||||
| ↳ `reactor` | object | Person, die reagiert hat |
|
||||
| ↳ `name` | string | Name |
|
||||
| ↳ `subTitle` | string | Berufsbezeichnung |
|
||||
| ↳ `profileId` | string | Profil-ID |
|
||||
| ↳ `profilePicture` | string | Profilbild-URL |
|
||||
| ↳ `linkedInUrl` | string | LinkedIn-URL |
|
||||
|
||||
### `enrich_search_post_comments`
|
||||
|
||||
Kommentare zu einem LinkedIn-Beitrag abrufen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich API-Schlüssel |
|
||||
| `postUrn` | string | Ja | LinkedIn-Aktivitäts-URN \(z. B. urn:li:activity:7191163324208705536\) |
|
||||
| `page` | number | Nein | Seitennummer \(beginnt bei 1, Standard: 1\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `page` | number | Aktuelle Seitennummer |
|
||||
| `totalPage` | number | Gesamtanzahl der Seiten |
|
||||
| `count` | number | Anzahl der zurückgegebenen Kommentare |
|
||||
| `comments` | array | Kommentare |
|
||||
| ↳ `activityId` | string | Kommentar-Aktivitäts-ID |
|
||||
| ↳ `commentary` | string | Kommentartext |
|
||||
| ↳ `linkedInUrl` | string | Link zum Kommentar |
|
||||
| ↳ `commenter` | object | Informationen zum Kommentator |
|
||||
| ↳ `profileId` | string | Profil-ID |
|
||||
| ↳ `firstName` | string | Vorname |
|
||||
| ↳ `lastName` | string | Nachname |
|
||||
| ↳ `subTitle` | string | Untertitel/Überschrift |
|
||||
| ↳ `profilePicture` | string | Profilbild-URL |
|
||||
| ↳ `backgroundImage` | string | Hintergrundbild-URL |
|
||||
| ↳ `entityUrn` | string | Entity-URN |
|
||||
| ↳ `objectUrn` | string | Objekt-URN |
|
||||
| ↳ `profileType` | string | Profiltyp |
|
||||
| ↳ `reactionBreakdown` | object | Reaktionen auf den Kommentar |
|
||||
| ↳ `likes` | number | Anzahl der Likes |
|
||||
| ↳ `empathy` | number | Anzahl der Empathie-Reaktionen |
|
||||
| ↳ `other` | number | Anzahl der sonstigen Reaktionen |
|
||||
|
||||
### `enrich_search_people_activities`
|
||||
|
||||
Person abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `profileId` | string | Ja | LinkedIn-Profil-ID |
|
||||
| `activityType` | string | Ja | Aktivitätstyp: posts, comments oder articles |
|
||||
| `paginationToken` | string | Nein | Paginierungs-Token für die nächste Ergebnisseite |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `paginationToken` | string | Token zum Abrufen der nächsten Seite |
|
||||
| `activityType` | string | Typ der zurückgegebenen Aktivitäten |
|
||||
| `activities` | array | Aktivitäten |
|
||||
| ↳ `activityId` | string | Aktivitäts-ID |
|
||||
| ↳ `commentary` | string | Textinhalt der Aktivität |
|
||||
| ↳ `linkedInUrl` | string | Link zur Aktivität |
|
||||
| ↳ `timeElapsed` | string | Verstrichene Zeit seit der Aktivität |
|
||||
| ↳ `numReactions` | number | Gesamtanzahl der Reaktionen |
|
||||
| ↳ `author` | object | Informationen zum Autor der Aktivität |
|
||||
| ↳ `name` | string | Name des Autors |
|
||||
| ↳ `profileId` | string | Profil-ID |
|
||||
| ↳ `profilePicture` | string | URL des Profilbilds |
|
||||
| ↳ `reactionBreakdown` | object | Reaktionen |
|
||||
| ↳ `likes` | number | Likes |
|
||||
| ↳ `empathy` | number | Empathie-Reaktionen |
|
||||
| ↳ `other` | number | Sonstige Reaktionen |
|
||||
| ↳ `attachments` | array | Anhang-URLs |
|
||||
|
||||
### `enrich_search_company_activities`
|
||||
|
||||
Unternehmen abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `companyId` | string | Ja | LinkedIn-Unternehmens-ID |
|
||||
| `activityType` | string | Ja | Aktivitätstyp: Posts, Kommentare oder Artikel |
|
||||
| `paginationToken` | string | Nein | Paginierungs-Token für die nächste Ergebnisseite |
|
||||
| `offset` | number | Nein | Anzahl der zu überspringenden Datensätze \(Standard: 0\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `paginationToken` | string | Token zum Abrufen der nächsten Seite |
|
||||
| `activityType` | string | Typ der zurückgegebenen Aktivitäten |
|
||||
| `activities` | array | Aktivitäten |
|
||||
| ↳ `activityId` | string | Aktivitäts-ID |
|
||||
| ↳ `commentary` | string | Textinhalt der Aktivität |
|
||||
| ↳ `linkedInUrl` | string | Link zur Aktivität |
|
||||
| ↳ `timeElapsed` | string | Verstrichene Zeit seit der Aktivität |
|
||||
| ↳ `numReactions` | number | Gesamtanzahl der Reaktionen |
|
||||
| ↳ `author` | object | Informationen zum Autor der Aktivität |
|
||||
| ↳ `name` | string | Name des Autors |
|
||||
| ↳ `profileId` | string | Profil-ID |
|
||||
| ↳ `profilePicture` | string | URL des Profilbilds |
|
||||
| ↳ `reactionBreakdown` | object | Reaktionen |
|
||||
| ↳ `likes` | number | Likes |
|
||||
| ↳ `empathy` | number | Empathie-Reaktionen |
|
||||
| ↳ `other` | number | Sonstige Reaktionen |
|
||||
| ↳ `attachments` | array | Anhänge |
|
||||
|
||||
### `enrich_reverse_hash_lookup`
|
||||
|
||||
Wandelt einen MD5-E-Mail-Hash zurück in die ursprüngliche E-Mail-Adresse und den Anzeigenamen um.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich-API-Schlüssel |
|
||||
| `hash` | string | Ja | MD5-Hash-Wert zum Nachschlagen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `hash` | string | MD5-Hash, der nachgeschlagen wurde |
|
||||
| `email` | string | Ursprüngliche E-Mail-Adresse |
|
||||
| `displayName` | string | Anzeigename, der mit der E-Mail verknüpft ist |
|
||||
| `found` | boolean | Ob eine E-Mail für den Hash gefunden wurde |
|
||||
|
||||
### `enrich_search_logo`
|
||||
|
||||
Ruft die URL eines Firmenlogos anhand der Domain ab.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Enrich API-Schlüssel |
|
||||
| `url` | string | Ja | Firmendomain \(z. B. google.com\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `logoUrl` | string | URL zum Abrufen des Firmenlogos |
|
||||
| `domain` | string | Domain, die nachgeschlagen wurde |
|
||||
@@ -0,0 +1,145 @@
|
||||
---
|
||||
title: Exa
|
||||
description: Suche mit Exa AI
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="exa"
|
||||
color="#1F40ED"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Exa](https://exa.ai/) ist eine KI-gestützte Suchmaschine, die speziell für Entwickler und Forscher konzipiert wurde und hochrelevante und aktuelle Informationen aus dem gesamten Web liefert. Sie kombiniert fortschrittliche semantische Suchfunktionen mit KI-Verständnis, um genauere und kontextuell relevantere Ergebnisse als herkömmliche Suchmaschinen zu liefern.
|
||||
|
||||
Mit Exa können Sie:
|
||||
|
||||
- **Mit natürlicher Sprache suchen**: Informationen mit konversationellen Anfragen und Fragen finden
|
||||
- **Präzise Ergebnisse erhalten**: Hochrelevante Suchergebnisse mit semantischem Verständnis erhalten
|
||||
- **Auf aktuelle Informationen zugreifen**: Aktuelle Informationen aus dem gesamten Web abrufen
|
||||
- **Ähnliche Inhalte finden**: Verwandte Ressourcen basierend auf Inhaltsähnlichkeit entdecken
|
||||
- **Webseiteninhalte extrahieren**: Den vollständigen Text von Webseiten abrufen und verarbeiten
|
||||
- **Fragen mit Quellenangaben beantworten**: Fragen stellen und direkte Antworten mit unterstützenden Quellen erhalten
|
||||
- **Rechercheaufgaben durchführen**: Mehrstufige Recherche-Workflows automatisieren, um Informationen zu sammeln, zu synthetisieren und zusammenzufassen
|
||||
|
||||
In Sim ermöglicht die Exa-Integration Ihren Agenten, im Web nach Informationen zu suchen, Inhalte von bestimmten URLs abzurufen, ähnliche Ressourcen zu finden, Fragen mit Quellenangaben zu beantworten und Rechercheaufgaben durchzuführen – alles programmatisch über API-Aufrufe. Dies ermöglicht Ihren Agenten den Zugriff auf Echtzeit-Informationen aus dem Internet und verbessert ihre Fähigkeit, genaue, aktuelle und relevante Antworten zu liefern. Die Integration ist besonders wertvoll für Rechercheaufgaben, Informationssammlung, Content-Discovery und die Beantwortung von Fragen, die aktuelle Informationen aus dem gesamten Web erfordern.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Gebrauchsanweisung
|
||||
|
||||
Integrieren Sie Exa in den Workflow. Kann suchen, Inhalte abrufen, ähnliche Links finden, Fragen beantworten und Recherchen durchführen. Erfordert API-Schlüssel.
|
||||
|
||||
## Tools
|
||||
|
||||
### `exa_search`
|
||||
|
||||
Durchsuchen Sie das Web mit Exa AI. Liefert relevante Suchergebnisse mit Titeln, URLs und Textausschnitten.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Ja | Die auszuführende Suchanfrage |
|
||||
| `numResults` | number | Nein | Anzahl der zurückzugebenden Ergebnisse \(Standard: 10, max: 25\) |
|
||||
| `useAutoprompt` | boolean | Nein | Ob Autoprompt zur Verbesserung der Anfrage verwendet werden soll \(Standard: false\) |
|
||||
| `type` | string | Nein | Suchtyp: neural, keyword, auto oder fast \(Standard: auto\) |
|
||||
| `includeDomains` | string | Nein | Kommagetrennte Liste von Domains, die in den Ergebnissen enthalten sein sollen |
|
||||
| `excludeDomains` | string | Nein | Kommagetrennte Liste von Domains, die aus den Ergebnissen ausgeschlossen werden sollen |
|
||||
| `category` | string | Nein | Nach Kategorie filtern: company, research paper, news, pdf, github, tweet, personal site, linkedin profile, financial report |
|
||||
| `text` | boolean | Nein | Vollständigen Textinhalt in Ergebnissen einschließen \(Standard: false\) |
|
||||
| `highlights` | boolean | Nein | Hervorgehobene Ausschnitte in Ergebnissen einschließen \(Standard: false\) |
|
||||
| `summary` | boolean | Nein | KI-generierte Zusammenfassungen in Ergebnissen einschließen \(Standard: false\) |
|
||||
| `livecrawl` | string | Nein | Live-Crawling-Modus: never \(Standard\), fallback, always oder preferred \(immer livecrawl versuchen, bei Fehlschlag auf Cache zurückgreifen\) |
|
||||
| `apiKey` | string | Ja | Exa AI API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | Suchergebnisse mit Titeln, URLs und Textausschnitten |
|
||||
|
||||
### `exa_get_contents`
|
||||
|
||||
Ruft den Inhalt von Webseiten mit Exa AI ab. Gibt den Titel, Textinhalt und optionale Zusammenfassungen für jede URL zurück.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `urls` | string | Ja | Kommagetrennte Liste von URLs, von denen Inhalte abgerufen werden sollen |
|
||||
| `text` | boolean | Nein | Wenn true, gibt den vollständigen Seitentext mit Standardeinstellungen zurück. Wenn false, deaktiviert die Textrückgabe. |
|
||||
| `summaryQuery` | string | Nein | Anfrage zur Steuerung der Zusammenfassungserstellung |
|
||||
| `subpages` | number | Nein | Anzahl der Unterseiten, die von den bereitgestellten URLs gecrawlt werden sollen |
|
||||
| `subpageTarget` | string | Nein | Kommagetrennte Schlüsselwörter zur Zielausrichtung auf bestimmte Unterseiten \(z.B. "docs,tutorial,about"\) |
|
||||
| `highlights` | boolean | Nein | Hervorgehobene Ausschnitte in Ergebnissen einschließen \(Standard: false\) |
|
||||
| `livecrawl` | string | Nein | Live-Crawling-Modus: never \(Standard\), fallback, always oder preferred \(immer livecrawl versuchen, bei Fehlschlag auf Cache zurückgreifen\) |
|
||||
| `apiKey` | string | Ja | Exa AI API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `results` | array | Abgerufene Inhalte von URLs mit Titel, Text und Zusammenfassungen |
|
||||
|
||||
### `exa_find_similar_links`
|
||||
|
||||
Finde Webseiten, die einer bestimmten URL ähnlich sind, mit Exa AI. Gibt eine Liste ähnlicher Links mit Titeln und Textausschnitten zurück.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `url` | string | Ja | Die URL, für die ähnliche Links gefunden werden sollen |
|
||||
| `numResults` | number | Nein | Anzahl der zurückzugebenden ähnlichen Links \(Standard: 10, max: 25\) |
|
||||
| `text` | boolean | Nein | Ob der vollständige Text der ähnlichen Seiten eingeschlossen werden soll |
|
||||
| `includeDomains` | string | Nein | Kommagetrennte Liste von Domains, die in den Ergebnissen enthalten sein sollen |
|
||||
| `excludeDomains` | string | Nein | Kommagetrennte Liste von Domains, die aus den Ergebnissen ausgeschlossen werden sollen |
|
||||
| `excludeSourceDomain` | boolean | Nein | Die Quell-Domain aus den Ergebnissen ausschließen \(Standard: false\) |
|
||||
| `highlights` | boolean | Nein | Hervorgehobene Ausschnitte in Ergebnissen einschließen \(Standard: false\) |
|
||||
| `summary` | boolean | Nein | KI-generierte Zusammenfassungen in Ergebnissen einschließen \(Standard: false\) |
|
||||
| `livecrawl` | string | Nein | Live-Crawling-Modus: never \(Standard\), fallback, always oder preferred \(versucht immer livecrawl, fällt auf Cache zurück, wenn es fehlschlägt\) |
|
||||
| `apiKey` | string | Ja | Exa AI API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `similarLinks` | array | Gefundene ähnliche Links mit Titeln, URLs und Textausschnitten |
|
||||
|
||||
### `exa_answer`
|
||||
|
||||
Erhalte eine KI-generierte Antwort auf eine Frage mit Quellenangaben aus dem Web mit Exa AI.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Ja | Die zu beantwortende Frage |
|
||||
| `text` | boolean | Nein | Ob der vollständige Text der Antwort einbezogen werden soll |
|
||||
| `apiKey` | string | Ja | Exa AI API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `answer` | string | KI-generierte Antwort auf die Frage |
|
||||
| `citations` | array | Quellen und Zitierungen für die Antwort |
|
||||
|
||||
### `exa_research`
|
||||
|
||||
Führe umfassende Recherchen mit KI durch, um detaillierte Berichte mit Quellenangaben zu erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Ja | Rechercheabfrage oder Thema |
|
||||
| `model` | string | Nein | Recherchemodell: exa-research-fast, exa-research (Standard) oder exa-research-pro |
|
||||
| `apiKey` | string | Ja | Exa AI API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `research` | array | Umfassende Forschungsergebnisse mit Quellenangaben und Zusammenfassungen |
|
||||
@@ -0,0 +1,49 @@
|
||||
---
|
||||
title: Datei
|
||||
description: Mehrere Dateien lesen und parsen
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="file_v4"
|
||||
color="#40916C"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
Das Datei-Parser-Tool bietet eine leistungsstarke Möglichkeit, Inhalte aus verschiedenen Dateiformaten zu extrahieren und zu verarbeiten, wodurch Dokumentendaten einfach in Ihre Agent-Workflows integriert werden können. Dieses Tool unterstützt mehrere Dateiformate und kann Dateien mit einer Größe von bis zu 200 MB verarbeiten.
|
||||
|
||||
Mit dem Datei-Parser können Sie:
|
||||
|
||||
- **Mehrere Dateiformate verarbeiten**: Text aus PDFs, CSVs, Word-Dokumenten (DOCX), Textdateien und mehr extrahieren
|
||||
- **Große Dateien verarbeiten**: Dokumente mit einer Größe von bis zu 200 MB verarbeiten
|
||||
- **Dateien von URLs parsen**: Inhalte direkt aus online gehosteten Dateien extrahieren, indem Sie deren URLs angeben
|
||||
- **Mehrere Dateien gleichzeitig verarbeiten**: Mehrere Dateien in einem einzigen Vorgang hochladen und parsen
|
||||
- **Strukturierte Daten extrahieren**: Formatierung und Struktur der Originaldokumente wenn möglich beibehalten
|
||||
|
||||
Das Datei-Parser-Tool ist besonders nützlich für Szenarien, in denen Ihre Agenten mit Dokumenteninhalten arbeiten müssen, wie z.B. bei der Analyse von Berichten, der Extraktion von Daten aus Tabellenkalkulationen oder der Verarbeitung von Text aus verschiedenen Dokumentenquellen. Es vereinfacht den Prozess, Dokumenteninhalte für Ihre Agenten verfügbar zu machen, sodass sie genauso einfach mit in Dateien gespeicherten Informationen arbeiten können wie mit direkter Texteingabe.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Gebrauchsanweisung
|
||||
|
||||
Datei in den Workflow integrieren. Kann eine Datei manuell hochladen oder eine Datei-URL einfügen.
|
||||
|
||||
## Tools
|
||||
|
||||
### `file_parser`
|
||||
|
||||
Parsen einer oder mehrerer hochgeladener Dateien oder Dateien von URLs (Text, PDF, CSV, Bilder usw.)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `filePath` | string | Ja | Pfad zu der/den Datei(en). Kann ein einzelner Pfad, URL oder ein Array von Pfaden sein. |
|
||||
| `fileType` | string | Nein | Typ der zu parsenden Datei (wird automatisch erkannt, wenn nicht angegeben) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `files` | array | Array der geparsten Dateien |
|
||||
| `combinedContent` | string | Kombinierter Inhalt aller geparsten Dateien |
|
||||
@@ -0,0 +1,173 @@
|
||||
---
|
||||
title: Firecrawl
|
||||
description: Scrapen, suchen, crawlen, mappen und extrahieren von Webdaten
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="firecrawl"
|
||||
color="#181C1E"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Firecrawl](https://firecrawl.dev/) ist eine leistungsstarke Web-Scraping- und Content-Extraktions-API, die sich nahtlos in Sim integriert und Entwicklern ermöglicht, saubere, strukturierte Inhalte von jeder Website zu extrahieren. Diese Integration bietet eine einfache Möglichkeit, Webseiten in nutzbare Datenformate wie Markdown und HTML umzuwandeln und dabei die wesentlichen Inhalte zu bewahren.
|
||||
|
||||
Mit Firecrawl in Sim können Sie:
|
||||
|
||||
- **Saubere Inhalte extrahieren**: Entfernen Sie Werbung, Navigationselemente und andere Ablenkungen, um nur den Hauptinhalt zu erhalten
|
||||
- **In strukturierte Formate umwandeln**: Transformieren Sie Webseiten in Markdown, HTML oder JSON
|
||||
- **Metadaten erfassen**: Extrahieren Sie SEO-Metadaten, Open Graph-Tags und andere Seiteninformationen
|
||||
- **JavaScript-lastige Seiten verarbeiten**: Verarbeiten Sie Inhalte von modernen Webanwendungen, die auf JavaScript basieren
|
||||
- **Inhalte filtern**: Konzentrieren Sie sich auf bestimmte Teile einer Seite mit CSS-Selektoren
|
||||
- **Skalierbar verarbeiten**: Bewältigen Sie umfangreiche Scraping-Anforderungen mit einer zuverlässigen API
|
||||
- **Im Web suchen**: Führen Sie intelligente Websuchen durch und erhalten Sie strukturierte Ergebnisse
|
||||
- **Ganze Websites crawlen**: Durchsuchen Sie mehrere Seiten einer Website und aggregieren Sie deren Inhalte
|
||||
|
||||
In Sim ermöglicht die Firecrawl-Integration Ihren Agenten, programmatisch auf Webinhalte zuzugreifen und diese als Teil ihrer Workflows zu verarbeiten. Unterstützte Operationen umfassen:
|
||||
|
||||
- **Scrape**: Extrahieren Sie strukturierte Inhalte (Markdown, HTML, Metadaten) von einer einzelnen Webseite.
|
||||
- **Search**: Durchsuchen Sie das Web nach Informationen mit Firecrawls intelligenten Suchfunktionen.
|
||||
- **Crawl**: Durchsuchen Sie mehrere Seiten einer Website und erhalten Sie strukturierte Inhalte und Metadaten für jede Seite.
|
||||
|
||||
Dies ermöglicht Ihren Agenten, Informationen von Websites zu sammeln, strukturierte Daten zu extrahieren und diese Informationen zu nutzen, um Entscheidungen zu treffen oder Erkenntnisse zu gewinnen – ohne sich mit den Komplexitäten des rohen HTML-Parsings oder der Browser-Automatisierung auseinandersetzen zu müssen. Konfigurieren Sie einfach den Firecrawl-Block mit Ihrem API-Schlüssel, wählen Sie die Operation (Scrape, Search oder Crawl) und geben Sie die relevanten Parameter an. Ihre Agenten können sofort mit Webinhalten in einem sauberen, strukturierten Format arbeiten.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integrieren Sie Firecrawl in den Workflow. Scrapen Sie Seiten, durchsuchen Sie das Web, crawlen Sie ganze Websites, erfassen Sie URL-Strukturen und extrahieren Sie strukturierte Daten mit KI.
|
||||
|
||||
## Tools
|
||||
|
||||
### `firecrawl_scrape`
|
||||
|
||||
Extrahieren Sie strukturierte Inhalte von Webseiten mit umfassender Metadaten-Unterstützung. Konvertiert Inhalte in Markdown oder HTML und erfasst dabei SEO-Metadaten, Open Graph-Tags und Seiteninformationen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `url` | string | Ja | Die URL, von der Inhalte gescrapt werden sollen |
|
||||
| `scrapeOptions` | json | Nein | Optionen für das Content-Scraping |
|
||||
| `apiKey` | string | Ja | Firecrawl API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `markdown` | string | Seiteninhalt im Markdown-Format |
|
||||
| `html` | string | Roher HTML-Inhalt der Seite |
|
||||
| `metadata` | object | Seiten-Metadaten einschließlich SEO- und Open Graph-Informationen |
|
||||
|
||||
### `firecrawl_search`
|
||||
|
||||
Suche nach Informationen im Web mit Firecrawl
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Ja | Die zu verwendende Suchanfrage |
|
||||
| `apiKey` | string | Ja | Firecrawl API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `data` | array | Suchergebnisdaten |
|
||||
|
||||
### `firecrawl_crawl`
|
||||
|
||||
Crawlen Sie ganze Websites und extrahieren Sie strukturierte Inhalte von allen zugänglichen Seiten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `url` | string | Ja | Die zu crawlende Website-URL |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zu crawlenden Seiten \(Standard: 100\) |
|
||||
| `onlyMainContent` | boolean | Nein | Nur Hauptinhalt von Seiten extrahieren |
|
||||
| `apiKey` | string | Ja | Firecrawl API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pages` | array | Array von gecrawlten Seiten mit ihrem Inhalt und Metadaten |
|
||||
|
||||
### `firecrawl_map`
|
||||
|
||||
Erhalten Sie schnell und zuverlässig eine vollständige Liste aller URLs einer Website. Nützlich, um alle Seiten einer Website zu entdecken, ohne sie zu crawlen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `url` | string | Ja | Die Basis-URL, von der Links erfasst und entdeckt werden sollen |
|
||||
| `search` | string | Nein | Filtert Ergebnisse nach Relevanz zu einem Suchbegriff \(z.B. "blog"\) |
|
||||
| `sitemap` | string | Nein | Steuert die Sitemap-Nutzung: "skip", "include" \(Standard\) oder "only" |
|
||||
| `includeSubdomains` | boolean | Nein | Ob URLs von Subdomains einbezogen werden sollen \(Standard: true\) |
|
||||
| `ignoreQueryParameters` | boolean | Nein | URLs mit Query-Strings ausschließen \(Standard: true\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Links \(max: 100.000, Standard: 5.000\) |
|
||||
| `timeout` | number | Nein | Timeout der Anfrage in Millisekunden |
|
||||
| `location` | json | Nein | Geografischer Kontext für Proxying \(Land, Sprachen\) |
|
||||
| `apiKey` | string | Ja | Firecrawl API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob der Mapping-Vorgang erfolgreich war |
|
||||
| `links` | array | Array der entdeckten URLs von der Website |
|
||||
|
||||
### `firecrawl_extract`
|
||||
|
||||
Extrahieren Sie strukturierte Daten aus vollständigen Webseiten mithilfe von natürlichsprachlichen Anweisungen und JSON-Schema. Leistungsstarke Agenten-Funktion für intelligente Datenextraktion.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `urls` | json | Ja | Array von URLs, aus denen Daten extrahiert werden sollen \(unterstützt Glob-Format\) |
|
||||
| `prompt` | string | Nein | Natürlichsprachliche Anleitung für den Extraktionsprozess |
|
||||
| `schema` | json | Nein | JSON-Schema, das die Struktur der zu extrahierenden Daten definiert |
|
||||
| `enableWebSearch` | boolean | Nein | Websuche aktivieren, um ergänzende Informationen zu finden \(Standard: false\) |
|
||||
| `ignoreSitemap` | boolean | Nein | Sitemap.xml-Dateien beim Scannen ignorieren \(Standard: false\) |
|
||||
| `includeSubdomains` | boolean | Nein | Scanning auf Subdomains erweitern \(Standard: true\) |
|
||||
| `showSources` | boolean | Nein | Datenquellen in der Antwort zurückgeben \(Standard: false\) |
|
||||
| `ignoreInvalidURLs` | boolean | Nein | Ungültige URLs im Array überspringen \(Standard: true\) |
|
||||
| `scrapeOptions` | json | Nein | Erweiterte Scraping-Konfigurationsoptionen |
|
||||
| `apiKey` | string | Ja | Firecrawl API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob der Extraktionsvorgang erfolgreich war |
|
||||
| `data` | object | Extrahierte strukturierte Daten gemäß dem Schema oder der Eingabeaufforderung |
|
||||
|
||||
### `firecrawl_agent`
|
||||
|
||||
Autonomer Web-Datenextraktions-Agent. Sucht und sammelt Informationen basierend auf natürlichsprachlichen Anweisungen, ohne dass spezifische URLs erforderlich sind.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `prompt` | string | Ja | Natürlichsprachliche Beschreibung der zu extrahierenden Daten \(max. 10.000 Zeichen\) |
|
||||
| `urls` | json | Nein | Optionales Array von URLs, auf die sich der Agent konzentrieren soll |
|
||||
| `schema` | json | Nein | JSON-Schema, das die Struktur der zu extrahierenden Daten definiert |
|
||||
| `maxCredits` | number | Nein | Maximale Credits, die für diese Agent-Aufgabe verwendet werden sollen |
|
||||
| `strictConstrainToURLs` | boolean | Nein | Wenn true, besucht der Agent nur URLs, die im urls-Array angegeben sind |
|
||||
| `apiKey` | string | Ja | Firecrawl API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob die Agent-Operation erfolgreich war |
|
||||
| `status` | string | Aktueller Status des Agent-Jobs \(processing, completed, failed\) |
|
||||
| `data` | object | Vom Agent extrahierte Daten |
|
||||
| `creditsUsed` | number | Anzahl der von dieser Agent-Aufgabe verbrauchten Credits |
|
||||
| `expiresAt` | string | Zeitstempel, wann die Ergebnisse ablaufen \(24 Stunden\) |
|
||||
| `sources` | object | Array der vom Agent verwendeten Quell-URLs |
|
||||
@@ -0,0 +1,228 @@
|
||||
---
|
||||
title: Fireflies
|
||||
description: Interagieren Sie mit Fireflies.ai-Besprechungstranskripten und -aufzeichnungen
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="fireflies_v2"
|
||||
color="#100730"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Fireflies.ai](https://fireflies.ai/) ist eine Plattform für Besprechungstranskription und -intelligenz, die sich in Sim integriert und es Ihren Agenten ermöglicht, direkt mit Besprechungsaufzeichnungen, Transkripten und Erkenntnissen über No-Code-Automatisierungen zu arbeiten.
|
||||
|
||||
Die Fireflies-Integration in Sim bietet Tools für:
|
||||
|
||||
- **Besprechungstranskripte auflisten:** Rufen Sie mehrere Besprechungen und deren Zusammenfassungsinformationen für Ihr Team oder Konto ab.
|
||||
- **Vollständige Transkriptdetails abrufen:** Greifen Sie auf detaillierte Transkripte zu, einschließlich Zusammenfassungen, Aktionspunkten, Themen und Teilnehmeranalysen für jede Besprechung.
|
||||
- **Audio oder Video hochladen:** Laden Sie Audio-/Videodateien hoch oder geben Sie URLs zur Transkription an – optional können Sie Sprache, Titel, Teilnehmer festlegen und automatisierte Besprechungsnotizen erhalten.
|
||||
- **Transkripte durchsuchen:** Finden Sie Besprechungen nach Stichwort, Teilnehmer, Moderator oder Zeitraum, um relevante Diskussionen schnell zu lokalisieren.
|
||||
- **Transkripte löschen:** Entfernen Sie bestimmte Besprechungstranskripte aus Ihrem Fireflies-Workspace.
|
||||
- **Soundbites (Bites) erstellen:** Extrahieren und markieren Sie wichtige Momente aus Transkripten als Audio- oder Videoclips.
|
||||
- **Workflows bei Transkriptionsabschluss auslösen:** Aktivieren Sie Sim-Workflows automatisch, wenn eine Fireflies-Besprechungstranskription abgeschlossen ist, mithilfe des bereitgestellten Webhook-Triggers – dies ermöglicht Echtzeit-Automatisierungen und Benachrichtigungen basierend auf neuen Besprechungsdaten.
|
||||
|
||||
Durch die Kombination dieser Funktionen können Sie Aktionen nach Besprechungen optimieren, strukturierte Erkenntnisse extrahieren, Benachrichtigungen automatisieren, Aufzeichnungen verwalten und benutzerdefinierte Workflows rund um die Anrufe Ihrer Organisation orchestrieren – alles sicher unter Verwendung Ihres API-Schlüssels und Ihrer Fireflies-Anmeldedaten.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integrieren Sie Fireflies.ai in den Workflow. Verwalten Sie Besprechungstranskripte, fügen Sie Bots zu Live-Besprechungen hinzu, erstellen Sie Soundbites und mehr. Kann auch Workflows auslösen, wenn Transkriptionen abgeschlossen sind.
|
||||
|
||||
## Tools
|
||||
|
||||
### `fireflies_list_transcripts`
|
||||
|
||||
Meeting-Transkripte von Fireflies.ai mit optionaler Filterung auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies API-Schlüssel |
|
||||
| `keyword` | string | Nein | Suchbegriff im Meeting-Titel oder Transkript |
|
||||
| `fromDate` | string | Nein | Transkripte ab diesem Datum filtern \(ISO 8601-Format\) |
|
||||
| `toDate` | string | Nein | Transkripte bis zu diesem Datum filtern \(ISO 8601-Format\) |
|
||||
| `hostEmail` | string | Nein | Nach E-Mail-Adresse des Meeting-Hosts filtern |
|
||||
| `participants` | string | Nein | Nach E-Mail-Adressen der Teilnehmer filtern \(durch Komma getrennt\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Transkripte \(max. 50\) |
|
||||
| `skip` | number | Nein | Anzahl der zu überspringenden Transkripte für Paginierung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `transcripts` | array | Liste der Transkripte |
|
||||
| `count` | number | Anzahl der zurückgegebenen Transkripte |
|
||||
|
||||
### `fireflies_get_transcript`
|
||||
|
||||
Ein einzelnes Transkript mit vollständigen Details einschließlich Zusammenfassung, Aktionspunkten und Analysen abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies API-Schlüssel |
|
||||
| `transcriptId` | string | Ja | Die abzurufende Transkript-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `transcript` | object | Das Transkript mit vollständigen Details |
|
||||
|
||||
### `fireflies_get_user`
|
||||
|
||||
Ruft Benutzerinformationen von Fireflies.ai ab. Gibt den aktuellen Benutzer zurück, wenn keine ID angegeben ist.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies-API-Schlüssel |
|
||||
| `userId` | string | Nein | Abzurufende Benutzer-ID \(optional, Standardwert ist der Inhaber des API-Schlüssels\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | object | Benutzerinformationen |
|
||||
|
||||
### `fireflies_list_users`
|
||||
|
||||
Listet alle Benutzer in Ihrem Fireflies.ai-Team auf
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies-API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Liste der Teammitglieder |
|
||||
|
||||
### `fireflies_upload_audio`
|
||||
|
||||
Lädt eine Audiodatei-URL zur Transkription zu Fireflies.ai hoch
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies-API-Schlüssel |
|
||||
| `audioFile` | file | Nein | Audio-/Videodatei zur Transkription hochladen |
|
||||
| `audioUrl` | string | Nein | Öffentliche HTTPS-URL der Audio-/Videodatei \(MP3, MP4, WAV, M4A, OGG\) |
|
||||
| `title` | string | Nein | Titel für das Meeting/Transkript |
|
||||
| `webhook` | string | Nein | Webhook-URL zur Benachrichtigung, wenn die Transkription abgeschlossen ist |
|
||||
| `language` | string | Nein | Sprachcode für die Transkription \(z. B. „es" für Spanisch, „de" für Deutsch\) |
|
||||
| `attendees` | string | Nein | Teilnehmer im JSON-Format: \[\{"displayName": "Name", "email": "email@example.com"\}\] |
|
||||
| `clientReferenceId` | string | Nein | Benutzerdefinierte Referenz-ID zur Nachverfolgung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob der Upload erfolgreich war |
|
||||
| `title` | string | Titel des hochgeladenen Meetings |
|
||||
| `message` | string | Statusmeldung von Fireflies |
|
||||
|
||||
### `fireflies_delete_transcript`
|
||||
|
||||
Ein Transkript von Fireflies.ai löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies API-Schlüssel |
|
||||
| `transcriptId` | string | Ja | Die zu löschende Transkript-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob das Transkript erfolgreich gelöscht wurde |
|
||||
|
||||
### `fireflies_add_to_live_meeting`
|
||||
|
||||
Fügen Sie den Fireflies.ai-Bot zu einem laufenden Meeting hinzu, um aufzuzeichnen und zu transkribieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies API-Schlüssel |
|
||||
| `meetingLink` | string | Ja | Gültige Meeting-URL \(Zoom, Google Meet, Microsoft Teams, etc.\) |
|
||||
| `title` | string | Nein | Titel für das Meeting \(max. 256 Zeichen\) |
|
||||
| `meetingPassword` | string | Nein | Passwort für das Meeting, falls erforderlich \(max. 32 Zeichen\) |
|
||||
| `duration` | number | Nein | Meetingdauer in Minuten \(15–120, Standard: 60\) |
|
||||
| `language` | string | Nein | Sprachcode für die Transkription \(z. B. "en", "es", "de"\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob der Bot erfolgreich zum Meeting hinzugefügt wurde |
|
||||
|
||||
### `fireflies_create_bite`
|
||||
|
||||
Erstellen Sie einen Soundbite/Highlight aus einem bestimmten Zeitbereich in einem Transkript
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies API-Schlüssel |
|
||||
| `transcriptId` | string | Ja | ID des Transkripts, aus dem der Bite erstellt werden soll |
|
||||
| `startTime` | number | Ja | Startzeit des Bites in Sekunden |
|
||||
| `endTime` | number | Ja | Endzeit des Bites in Sekunden |
|
||||
| `name` | string | Nein | Name für den Bite \(max. 256 Zeichen\) |
|
||||
| `mediaType` | string | Nein | Medientyp: "video" oder "audio" |
|
||||
| `summary` | string | Nein | Zusammenfassung für den Bite \(max. 500 Zeichen\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `bite` | object | Details des erstellten Bites |
|
||||
|
||||
### `fireflies_list_bites`
|
||||
|
||||
Soundbites/Highlights von Fireflies.ai auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies API-Schlüssel |
|
||||
| `transcriptId` | string | Nein | Bites für ein bestimmtes Transkript filtern |
|
||||
| `mine` | boolean | Nein | Nur Bites zurückgeben, die dem Besitzer des API-Schlüssels gehören \(Standard: true\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Bites \(max. 50\) |
|
||||
| `skip` | number | Nein | Anzahl der zu überspringenden Bites für die Paginierung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `bites` | array | Liste der Bites/Soundbites |
|
||||
|
||||
### `fireflies_list_contacts`
|
||||
|
||||
Alle Kontakte aus Ihren Fireflies.ai-Meetings auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Fireflies-API-Schlüssel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Liste der Kontakte aus Meetings |
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,424 @@
|
||||
---
|
||||
title: GitLab
|
||||
description: Interagiere mit GitLab-Projekten, Issues, Merge Requests und Pipelines
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="gitlab"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[GitLab](https://gitlab.com/) ist eine umfassende DevOps-Plattform, die Teams ermöglicht, ihren Software-Entwicklungszyklus zu verwalten, zusammenzuarbeiten und zu automatisieren. Mit GitLab kannst du mühelos Quellcodeverwaltung, CI/CD, Reviews und Zusammenarbeit in einer einzigen Anwendung handhaben.
|
||||
|
||||
Mit GitLab in Sim kannst du:
|
||||
|
||||
- **Projekte und Repositories verwalten**: Liste und rufe deine GitLab-Projekte ab, greife auf Details zu und organisiere deine Repositories
|
||||
- **Mit Issues arbeiten**: Issues auflisten, erstellen und kommentieren, um Arbeit zu verfolgen und effektiv zusammenzuarbeiten
|
||||
- **Merge Requests bearbeiten**: Überprüfe, erstelle und verwalte Merge Requests für Codeänderungen und Peer-Reviews
|
||||
- **CI/CD-Pipelines automatisieren**: Starte, überwache und interagiere mit GitLab-Pipelines als Teil deiner Automatisierungsabläufe
|
||||
- **Mit Kommentaren zusammenarbeiten**: Füge Kommentare zu Issues oder Merge Requests hinzu für eine effiziente Kommunikation innerhalb deines Teams
|
||||
|
||||
Mit Sims GitLab-Integration können deine Agenten programmatisch mit deinen GitLab-Projekten interagieren. Automatisiere Projektverwaltung, Issue-Tracking, Code-Reviews und Pipeline-Operationen nahtlos in deinen Workflows, optimiere deinen Software-Entwicklungsprozess und verbessere die Zusammenarbeit in deinem Team.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Integriere GitLab in den Workflow. Kann Projekte, Issues, Merge Requests, Pipelines verwalten und Kommentare hinzufügen. Unterstützt alle grundlegenden GitLab DevOps-Operationen.
|
||||
|
||||
## Tools
|
||||
|
||||
### `gitlab_list_projects`
|
||||
|
||||
GitLab-Projekte auflisten, auf die der authentifizierte Benutzer Zugriff hat
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `owned` | boolean | Nein | Beschränkung auf Projekte, die dem aktuellen Benutzer gehören |
|
||||
| `membership` | boolean | Nein | Beschränkung auf Projekte, in denen der aktuelle Benutzer Mitglied ist |
|
||||
| `search` | string | Nein | Projekte nach Namen durchsuchen |
|
||||
| `visibility` | string | Nein | Nach Sichtbarkeit filtern \(public, internal, private\) |
|
||||
| `orderBy` | string | Nein | Nach Feld sortieren \(id, name, path, created_at, updated_at, last_activity_at\) |
|
||||
| `sort` | string | Nein | Sortierrichtung \(asc, desc\) |
|
||||
| `perPage` | number | Nein | Anzahl der Ergebnisse pro Seite \(Standard 20, max 100\) |
|
||||
| `page` | number | Nein | Seitennummer für Paginierung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `projects` | array | Liste der GitLab-Projekte |
|
||||
| `total` | number | Gesamtanzahl der Projekte |
|
||||
|
||||
### `gitlab_get_project`
|
||||
|
||||
Details zu einem bestimmten GitLab-Projekt abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad \(z.B. "namespace/project"\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `project` | object | Die GitLab-Projektdetails |
|
||||
|
||||
### `gitlab_list_issues`
|
||||
|
||||
Issues in einem GitLab-Projekt auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
|
||||
| `state` | string | Nein | Nach Status filtern \(opened, closed, all\) |
|
||||
| `labels` | string | Nein | Kommagetrennte Liste von Label-Namen |
|
||||
| `assigneeId` | number | Nein | Nach Bearbeiter-Benutzer-ID filtern |
|
||||
| `milestoneTitle` | string | Nein | Nach Meilenstein-Titel filtern |
|
||||
| `search` | string | Nein | Issues nach Titel und Beschreibung durchsuchen |
|
||||
| `orderBy` | string | Nein | Sortieren nach Feld \(created_at, updated_at\) |
|
||||
| `sort` | string | Nein | Sortierrichtung \(asc, desc\) |
|
||||
| `perPage` | number | Nein | Anzahl der Ergebnisse pro Seite \(Standard 20, max 100\) |
|
||||
| `page` | number | Nein | Seitennummer für Paginierung |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `issues` | array | Liste der GitLab-Issues |
|
||||
| `total` | number | Gesamtanzahl der Issues |
|
||||
|
||||
### `gitlab_get_issue`
|
||||
|
||||
Details zu einem bestimmten GitLab-Issue abrufen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
|
||||
| `issueIid` | number | Ja | Issue-Nummer innerhalb des Projekts \(die # in der GitLab-UI angezeigt\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `issue` | object | Die GitLab-Issue-Details |
|
||||
|
||||
### `gitlab_create_issue`
|
||||
|
||||
Ein neues Issue in einem GitLab-Projekt erstellen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
|
||||
| `title` | string | Ja | Issue-Titel |
|
||||
| `description` | string | Nein | Issue-Beschreibung \(Markdown unterstützt\) |
|
||||
| `labels` | string | Nein | Kommagetrennte Liste von Label-Namen |
|
||||
| `assigneeIds` | array | Nein | Array von Benutzer-IDs für die Zuweisung |
|
||||
| `milestoneId` | number | Nein | Meilenstein-ID für die Zuweisung |
|
||||
| `dueDate` | string | Nein | Fälligkeitsdatum im Format JJJJ-MM-TT |
|
||||
| `confidential` | boolean | Nein | Ob das Issue vertraulich ist |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `issue` | object | Das erstellte GitLab-Issue |
|
||||
|
||||
### `gitlab_update_issue`
|
||||
|
||||
Ein bestehendes Issue in einem GitLab-Projekt aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
|
||||
| `issueIid` | number | Ja | Interne Issue-ID (IID) |
|
||||
| `title` | string | Nein | Neuer Issue-Titel |
|
||||
| `description` | string | Nein | Neue Issue-Beschreibung (Markdown unterstützt) |
|
||||
| `stateEvent` | string | Nein | Status-Event (close oder reopen) |
|
||||
| `labels` | string | Nein | Kommagetrennte Liste von Label-Namen |
|
||||
| `assigneeIds` | array | Nein | Array von Benutzer-IDs für die Zuweisung |
|
||||
| `milestoneId` | number | Nein | Meilenstein-ID für die Zuweisung |
|
||||
| `dueDate` | string | Nein | Fälligkeitsdatum im Format JJJJ-MM-TT |
|
||||
| `confidential` | boolean | Nein | Ob das Issue vertraulich ist |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `issue` | object | Das aktualisierte GitLab-Issue |
|
||||
|
||||
### `gitlab_delete_issue`
|
||||
|
||||
Ein Issue aus einem GitLab-Projekt löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
|
||||
| `issueIid` | number | Ja | Interne Issue-ID (IID) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | Ob das Issue erfolgreich gelöscht wurde |
|
||||
|
||||
### `gitlab_create_issue_note`
|
||||
|
||||
Einen Kommentar zu einem GitLab-Issue hinzufügen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
|
||||
| `issueIid` | number | Ja | Interne Issue-ID (IID) |
|
||||
| `body` | string | Ja | Kommentartext (Markdown unterstützt) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `note` | object | Der erstellte Kommentar |
|
||||
|
||||
### `gitlab_list_merge_requests`
|
||||
|
||||
Merge-Requests in einem GitLab-Projekt auflisten
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
|
||||
| `state` | string | Nein | Nach Status filtern (opened, closed, merged, all) |
|
||||
| `labels` | string | Nein | Kommagetrennte Liste von Label-Namen |
|
||||
| `sourceBranch` | string | Nein | Nach Quell-Branch filtern |
|
||||
| `targetBranch` | string | Nein | Nach Ziel-Branch filtern |
|
||||
| `orderBy` | string | Nein | Sortieren nach Feld (created_at, updated_at) |
|
||||
| `sort` | string | Nein | Sortierrichtung (asc, desc) |
|
||||
| `perPage` | number | Nein | Anzahl der Ergebnisse pro Seite (Standard 20, max 100) |
|
||||
| `page` | number | Nein | Seitennummer für Paginierung |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `mergeRequests` | array | Liste der GitLab Merge-Requests |
|
||||
| `total` | number | Gesamtanzahl der Merge-Requests |
|
||||
|
||||
### `gitlab_get_merge_request`
|
||||
|
||||
Details zu einem bestimmten GitLab Merge-Request abrufen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
|
||||
| `mergeRequestIid` | number | Ja | Interne ID des Merge-Requests \(IID\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `mergeRequest` | object | Die Details des GitLab Merge-Requests |
|
||||
|
||||
### `gitlab_create_merge_request`
|
||||
|
||||
Einen neuen Merge-Request in einem GitLab-Projekt erstellen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
|
||||
| `sourceBranch` | string | Ja | Name des Quellbranches |
|
||||
| `targetBranch` | string | Ja | Name des Zielbranches |
|
||||
| `title` | string | Ja | Titel des Merge-Requests |
|
||||
| `description` | string | Nein | Beschreibung des Merge-Requests \(Markdown unterstützt\) |
|
||||
| `labels` | string | Nein | Kommagetrennte Liste von Label-Namen |
|
||||
| `assigneeIds` | array | Nein | Array von Benutzer-IDs für die Zuweisung |
|
||||
| `milestoneId` | number | Nein | Meilenstein-ID für die Zuweisung |
|
||||
| `removeSourceBranch` | boolean | Nein | Quellbranch nach dem Merge löschen |
|
||||
| `squash` | boolean | Nein | Commits beim Merge zusammenfassen |
|
||||
| `draft` | boolean | Nein | Als Entwurf markieren \(in Bearbeitung\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `mergeRequest` | object | Der erstellte GitLab Merge Request |
|
||||
|
||||
### `gitlab_update_merge_request`
|
||||
|
||||
Einen bestehenden Merge Request in einem GitLab-Projekt aktualisieren
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Yes | Projekt-ID oder URL-kodierter Pfad |
|
||||
| `mergeRequestIid` | number | Yes | Interne ID des Merge Requests \(IID\) |
|
||||
| `title` | string | No | Neuer Titel des Merge Requests |
|
||||
| `description` | string | No | Neue Beschreibung des Merge Requests |
|
||||
| `stateEvent` | string | No | Status-Event \(close oder reopen\) |
|
||||
| `labels` | string | No | Kommagetrennte Liste von Label-Namen |
|
||||
| `assigneeIds` | array | No | Array von Benutzer-IDs für die Zuweisung |
|
||||
| `milestoneId` | number | No | Meilenstein-ID für die Zuweisung |
|
||||
| `targetBranch` | string | No | Neuer Ziel-Branch |
|
||||
| `removeSourceBranch` | boolean | No | Quell-Branch nach dem Merge löschen |
|
||||
| `squash` | boolean | No | Commits beim Merge zusammenfassen |
|
||||
| `draft` | boolean | No | Als Entwurf markieren \(work in progress\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `mergeRequest` | object | Der aktualisierte GitLab Merge Request |
|
||||
|
||||
### `gitlab_merge_merge_request`
|
||||
|
||||
Einen Merge Request in einem GitLab-Projekt zusammenführen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Yes | Projekt-ID oder URL-kodierter Pfad |
|
||||
| `mergeRequestIid` | number | Yes | Interne ID des Merge Requests \(IID\) |
|
||||
| `mergeCommitMessage` | string | No | Benutzerdefinierte Merge-Commit-Nachricht |
|
||||
| `squashCommitMessage` | string | No | Benutzerdefinierte Squash-Commit-Nachricht |
|
||||
| `squash` | boolean | No | Commits vor dem Merge zusammenfassen |
|
||||
| `shouldRemoveSourceBranch` | boolean | No | Quell-Branch nach dem Merge löschen |
|
||||
| `mergeWhenPipelineSucceeds` | boolean | No | Merge durchführen, wenn Pipeline erfolgreich ist |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `mergeRequest` | object | Der zusammengeführte GitLab Merge Request |
|
||||
|
||||
### `gitlab_create_merge_request_note`
|
||||
|
||||
Einen Kommentar zu einem GitLab Merge Request hinzufügen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-kodierter Pfad |
|
||||
| `mergeRequestIid` | number | Ja | Interne ID des Merge Requests \(IID\) |
|
||||
| `body` | string | Ja | Kommentartext \(Markdown wird unterstützt\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `note` | object | Der erstellte Kommentar |
|
||||
|
||||
### `gitlab_list_pipelines`
|
||||
|
||||
Pipelines in einem GitLab-Projekt auflisten
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-kodierter Pfad |
|
||||
| `ref` | string | Nein | Nach Ref filtern \(Branch oder Tag\) |
|
||||
| `status` | string | Nein | Nach Status filtern \(created, waiting_for_resource, preparing, pending, running, success, failed, canceled, skipped, manual, scheduled\) |
|
||||
| `orderBy` | string | Nein | Sortieren nach Feld \(id, status, ref, updated_at, user_id\) |
|
||||
| `sort` | string | Nein | Sortierrichtung \(asc, desc\) |
|
||||
| `perPage` | number | Nein | Anzahl der Ergebnisse pro Seite \(Standard 20, max 100\) |
|
||||
| `page` | number | Nein | Seitennummer für Paginierung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pipelines` | array | Liste der GitLab-Pipelines |
|
||||
| `total` | number | Gesamtanzahl der Pipelines |
|
||||
|
||||
### `gitlab_get_pipeline`
|
||||
|
||||
Details zu einer bestimmten GitLab-Pipeline abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
|
||||
| `pipelineId` | number | Ja | Pipeline-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pipeline` | object | Die GitLab-Pipeline-Details |
|
||||
|
||||
### `gitlab_create_pipeline`
|
||||
|
||||
Eine neue Pipeline in einem GitLab-Projekt auslösen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
|
||||
| `ref` | string | Ja | Branch oder Tag, auf dem die Pipeline ausgeführt werden soll |
|
||||
| `variables` | array | Nein | Array von Variablen für die Pipeline \(jede mit key, value und optionalem variable_type\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pipeline` | object | Die erstellte GitLab-Pipeline |
|
||||
|
||||
### `gitlab_retry_pipeline`
|
||||
|
||||
Eine fehlgeschlagene GitLab-Pipeline wiederholen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
|
||||
| `pipelineId` | number | Ja | Pipeline-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pipeline` | object | Die wiederholte GitLab-Pipeline |
|
||||
|
||||
### `gitlab_cancel_pipeline`
|
||||
|
||||
Eine laufende GitLab-Pipeline abbrechen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `projectId` | string | Ja | Projekt-ID oder URL-codierter Pfad |
|
||||
| `pipelineId` | number | Ja | Pipeline-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `pipeline` | object | Die abgebrochene GitLab-Pipeline |
|
||||
@@ -0,0 +1,266 @@
|
||||
---
|
||||
title: Gmail
|
||||
description: Gmail-Nachrichten senden, lesen, suchen und verschieben oder
|
||||
Workflows durch Gmail-Ereignisse auslösen
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="gmail"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Gmail](https://gmail.com) ist Googles beliebter E-Mail-Dienst, der eine robuste Plattform zum Senden, Empfangen und Verwalten von E-Mail-Kommunikation bietet. Mit über 1,8 Milliarden aktiven Nutzern weltweit bietet Gmail eine funktionsreiche Erfahrung mit leistungsstarken Suchfunktionen, Organisationstools und Integrationsoptionen.
|
||||
|
||||
Mit Gmail können Sie:
|
||||
|
||||
- **E-Mails senden und empfangen**: Kommunizieren Sie mit Kontakten über eine übersichtliche, intuitive Benutzeroberfläche
|
||||
- **Nachrichten organisieren**: Verwenden Sie Labels, Ordner und Filter, um Ihren Posteingang zu organisieren
|
||||
- **Effizient suchen**: Finden Sie bestimmte Nachrichten schnell mit Googles leistungsstarker Suchtechnologie
|
||||
- **Workflows automatisieren**: Erstellen Sie Filter und Regeln, um eingehende E-Mails automatisch zu verarbeiten
|
||||
- **Von überall zugreifen**: Nutzen Sie Gmail geräteübergreifend mit synchronisierten Inhalten und Einstellungen
|
||||
- **Mit anderen Diensten integrieren**: Verbinden Sie sich mit Google Kalender, Drive und anderen Produktivitätstools
|
||||
|
||||
In Sim ermöglicht die Gmail-Integration Ihren Agenten, E-Mails programmgesteuert mit umfassenden Automatisierungsfunktionen zu verwalten. Dies erlaubt leistungsstarke Automatisierungsszenarien wie das Senden von Benachrichtigungen, die Verarbeitung eingehender Nachrichten, das Extrahieren von Informationen aus E-Mails und die Verwaltung von Kommunikationsabläufen im großen Maßstab. Ihre Agenten können:
|
||||
|
||||
- **Verfassen und senden**: Personalisierte E-Mails mit Anhängen erstellen und an Empfänger senden
|
||||
- **Lesen und suchen**: Bestimmte Nachrichten mit Gmails Abfragesyntax finden und Inhalte extrahieren
|
||||
- **Intelligent organisieren**: Nachrichten als gelesen/ungelesen markieren, E-Mails archivieren oder aus dem Archiv holen und Labels verwalten
|
||||
- **Posteingang aufräumen**: Nachrichten löschen, E-Mails zwischen Labels verschieben und einen leeren Posteingang pflegen
|
||||
- **Workflows auslösen**: In Echtzeit auf neue E-Mails hören und reaktionsfähige Workflows ermöglichen, die auf eingehende Nachrichten reagieren
|
||||
|
||||
Diese Integration überbrückt die Lücke zwischen Ihren KI-Workflows und E-Mail-Kommunikationen und ermöglicht eine nahtlose Interaktion mit einer der weltweit am häufigsten genutzten Kommunikationsplattformen. Ob Sie Kundenservice-Antworten automatisieren, Belege verarbeiten, Abonnements verwalten oder Teamkommunikation koordinieren - die Gmail-Integration bietet alle Werkzeuge, die Sie für eine umfassende E-Mail-Automatisierung benötigen.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Integrieren Sie Gmail in den Workflow. Kann E-Mails senden, lesen, suchen und verschieben. Kann im Trigger-Modus verwendet werden, um einen Workflow auszulösen, wenn eine neue E-Mail empfangen wird.
|
||||
|
||||
## Tools
|
||||
|
||||
### `gmail_send`
|
||||
|
||||
E-Mails mit Gmail senden
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `to` | string | Ja | E-Mail-Adresse des Empfängers |
|
||||
| `subject` | string | Nein | Betreff der E-Mail |
|
||||
| `body` | string | Ja | Inhalt der E-Mail |
|
||||
| `contentType` | string | Nein | Inhaltstyp für den E-Mail-Text (text oder html) |
|
||||
| `threadId` | string | Nein | Thread-ID für Antworten (für Threading) |
|
||||
| `replyToMessageId` | string | Nein | Gmail-Nachrichten-ID für Antworten - verwenden Sie das "id"-Feld aus den Gmail-Leseergebnissen (nicht die RFC "messageId") |
|
||||
| `cc` | string | Nein | CC-Empfänger (durch Kommas getrennt) |
|
||||
| `bcc` | string | Nein | BCC-Empfänger (durch Kommas getrennt) |
|
||||
| `attachments` | file[] | Nein | Dateien, die an die E-Mail angehängt werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Erfolgsmeldung |
|
||||
| `metadata` | object | E-Mail-Metadaten |
|
||||
|
||||
### `gmail_draft`
|
||||
|
||||
E-Mail-Entwürfe in Gmail erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `to` | string | Ja | E-Mail-Adresse des Empfängers |
|
||||
| `subject` | string | Nein | Betreff der E-Mail |
|
||||
| `body` | string | Ja | Inhalt der E-Mail |
|
||||
| `contentType` | string | Nein | Inhaltstyp für den E-Mail-Text (text oder html) |
|
||||
| `threadId` | string | Nein | Thread-ID für Antworten (für Threading) |
|
||||
| `replyToMessageId` | string | Nein | Gmail-Nachrichten-ID für Antworten - verwenden Sie das "id"-Feld aus den Gmail-Leseergebnissen (nicht die RFC "messageId") |
|
||||
| `cc` | string | Nein | CC-Empfänger (durch Kommas getrennt) |
|
||||
| `bcc` | string | Nein | BCC-Empfänger (durch Kommas getrennt) |
|
||||
| `attachments` | file[] | Nein | Dateien, die an den E-Mail-Entwurf angehängt werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Erfolgsmeldung |
|
||||
| `metadata` | object | Entwurfs-Metadaten |
|
||||
|
||||
### `gmail_read`
|
||||
|
||||
E-Mails aus Gmail lesen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Nein | ID der zu lesenden Nachricht |
|
||||
| `folder` | string | Nein | Ordner/Label, aus dem E-Mails gelesen werden sollen |
|
||||
| `unreadOnly` | boolean | Nein | Nur ungelesene Nachrichten abrufen |
|
||||
| `maxResults` | number | Nein | Maximale Anzahl abzurufender Nachrichten \(Standard: 1, max: 10\) |
|
||||
| `includeAttachments` | boolean | Nein | E-Mail-Anhänge herunterladen und einschließen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Textinhalt der E-Mail |
|
||||
| `metadata` | json | Metadaten der E-Mail |
|
||||
| `attachments` | file[] | Anhänge der E-Mail |
|
||||
|
||||
### `gmail_search`
|
||||
|
||||
E-Mails in Gmail durchsuchen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Ja | Suchanfrage für E-Mails |
|
||||
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Zusammenfassung der Suchergebnisse |
|
||||
| `metadata` | object | Such-Metadaten |
|
||||
|
||||
### `gmail_move`
|
||||
|
||||
E-Mails zwischen Gmail-Labels/Ordnern verschieben
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Ja | ID der zu verschiebenden Nachricht |
|
||||
| `addLabelIds` | string | Ja | Kommagetrennte Label-IDs zum Hinzufügen \(z.B. INBOX, Label_123\) |
|
||||
| `removeLabelIds` | string | Nein | Kommagetrennte Label-IDs zum Entfernen \(z.B. INBOX, SPAM\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Erfolgsmeldung |
|
||||
| `metadata` | object | E-Mail-Metadaten |
|
||||
|
||||
### `gmail_mark_read`
|
||||
|
||||
Eine Gmail-Nachricht als gelesen markieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Ja | ID der als gelesen zu markierenden Nachricht |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Erfolgsmeldung |
|
||||
| `metadata` | object | E-Mail-Metadaten |
|
||||
|
||||
### `gmail_mark_unread`
|
||||
|
||||
Eine Gmail-Nachricht als ungelesen markieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Ja | ID der Nachricht, die als ungelesen markiert werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Erfolgsmeldung |
|
||||
| `metadata` | object | E-Mail-Metadaten |
|
||||
|
||||
### `gmail_archive`
|
||||
|
||||
Eine Gmail-Nachricht archivieren (aus dem Posteingang entfernen)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Ja | ID der zu archivierenden Nachricht |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Erfolgsmeldung |
|
||||
| `metadata` | object | E-Mail-Metadaten |
|
||||
|
||||
### `gmail_unarchive`
|
||||
|
||||
Eine Gmail-Nachricht aus dem Archiv holen (zurück in den Posteingang verschieben)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Ja | ID der Nachricht, die aus dem Archiv geholt werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Erfolgsmeldung |
|
||||
| `metadata` | object | E-Mail-Metadaten |
|
||||
|
||||
### `gmail_delete`
|
||||
|
||||
Eine Gmail-Nachricht löschen (in den Papierkorb verschieben)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Ja | ID der zu löschenden Nachricht |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Erfolgsmeldung |
|
||||
| `metadata` | object | E-Mail-Metadaten |
|
||||
|
||||
### `gmail_add_label`
|
||||
|
||||
Label(s) zu einer Gmail-Nachricht hinzufügen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Ja | ID der Nachricht, zu der Labels hinzugefügt werden sollen |
|
||||
| `labelIds` | string | Ja | Durch Kommas getrennte Label-IDs zum Hinzufügen \(z.B. INBOX, Label_123\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Erfolgsmeldung |
|
||||
| `metadata` | object | E-Mail-Metadaten |
|
||||
|
||||
### `gmail_remove_label`
|
||||
|
||||
Label(s) von einer Gmail-Nachricht entfernen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `messageId` | string | Ja | ID der Nachricht, von der Labels entfernt werden sollen |
|
||||
| `labelIds` | string | Ja | Durch Kommas getrennte Label-IDs zum Entfernen \(z.B. INBOX, Label_123\) |
|
||||
|
||||
#### Ausgabe
|
||||
@@ -0,0 +1,92 @@
|
||||
---
|
||||
title: Google Books
|
||||
description: Buchinformationen suchen und abrufen
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="google_books"
|
||||
color="#FFFFFF"
|
||||
/>
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Suchen Sie nach Büchern über die Google Books API. Finden Sie Bände nach Titel, Autor, ISBN oder Stichwörtern und rufen Sie detaillierte Informationen zu bestimmten Büchern ab, einschließlich Beschreibungen, Bewertungen und Veröffentlichungsdetails.
|
||||
|
||||
## Tools
|
||||
|
||||
### `google_books_volume_search`
|
||||
|
||||
Suchen Sie nach Büchern über die Google Books API
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Google Books API-Schlüssel |
|
||||
| `query` | string | Ja | Suchanfrage. Unterstützt spezielle Schlüsselwörter: intitle:, inauthor:, inpublisher:, subject:, isbn: |
|
||||
| `filter` | string | Nein | Ergebnisse nach Verfügbarkeit filtern \(partial, full, free-ebooks, paid-ebooks, ebooks\) |
|
||||
| `printType` | string | Nein | Auf Drucktyp beschränken \(all, books, magazines\) |
|
||||
| `orderBy` | string | Nein | Sortierreihenfolge \(relevance, newest\) |
|
||||
| `startIndex` | number | Nein | Index des ersten zurückzugebenden Ergebnisses \(für Paginierung\) |
|
||||
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(1-40\) |
|
||||
| `langRestrict` | string | Nein | Ergebnisse auf eine bestimmte Sprache beschränken \(ISO 639-1-Code\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `totalItems` | number | Gesamtanzahl der übereinstimmenden Ergebnisse |
|
||||
| `volumes` | array | Liste der übereinstimmenden Bände |
|
||||
| ↳ `id` | string | Band-ID |
|
||||
| ↳ `title` | string | Buchtitel |
|
||||
| ↳ `subtitle` | string | Buchuntertitel |
|
||||
| ↳ `authors` | array | Liste der Autoren |
|
||||
| ↳ `publisher` | string | Verlagsname |
|
||||
| ↳ `publishedDate` | string | Veröffentlichungsdatum |
|
||||
| ↳ `description` | string | Buchbeschreibung |
|
||||
| ↳ `pageCount` | number | Anzahl der Seiten |
|
||||
| ↳ `categories` | array | Buchkategorien |
|
||||
| ↳ `averageRating` | number | Durchschnittliche Bewertung \(1-5\) |
|
||||
| ↳ `ratingsCount` | number | Anzahl der Bewertungen |
|
||||
| ↳ `language` | string | Sprachcode |
|
||||
| ↳ `previewLink` | string | Link zur Vorschau auf Google Books |
|
||||
| ↳ `infoLink` | string | Link zur Infoseite |
|
||||
| ↳ `thumbnailUrl` | string | URL des Buchcover-Thumbnails |
|
||||
| ↳ `isbn10` | string | ISBN-10-Kennung |
|
||||
| ↳ `isbn13` | string | ISBN-13-Kennung |
|
||||
|
||||
### `google_books_volume_details`
|
||||
|
||||
Detaillierte Informationen über ein bestimmtes Buchvolumen abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Google Books API-Schlüssel |
|
||||
| `volumeId` | string | Ja | Die ID des abzurufenden Volumens |
|
||||
| `projection` | string | Nein | Projektionsebene \(full, lite\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Volumen-ID |
|
||||
| `title` | string | Buchtitel |
|
||||
| `subtitle` | string | Buchuntertitel |
|
||||
| `authors` | array | Liste der Autoren |
|
||||
| `publisher` | string | Verlagsname |
|
||||
| `publishedDate` | string | Veröffentlichungsdatum |
|
||||
| `description` | string | Buchbeschreibung |
|
||||
| `pageCount` | number | Anzahl der Seiten |
|
||||
| `categories` | array | Buchkategorien |
|
||||
| `averageRating` | number | Durchschnittliche Bewertung \(1-5\) |
|
||||
| `ratingsCount` | number | Anzahl der Bewertungen |
|
||||
| `language` | string | Sprachcode |
|
||||
| `previewLink` | string | Link zur Vorschau auf Google Books |
|
||||
| `infoLink` | string | Link zur Infoseite |
|
||||
| `thumbnailUrl` | string | URL des Buchcover-Thumbnails |
|
||||
| `isbn10` | string | ISBN-10-Kennung |
|
||||
| `isbn13` | string | ISBN-13-Kennung |
|
||||
@@ -0,0 +1,283 @@
|
||||
---
|
||||
title: Google Kalender
|
||||
description: Google Kalender-Ereignisse verwalten
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="google_calendar"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Google Kalender](https://calendar.google.com) ist Googles leistungsstarker Kalender- und Planungsdienst, der eine umfassende Plattform für die Verwaltung von Ereignissen, Meetings und Terminen bietet. Mit nahtloser Integration in Googles Ökosystem und weitverbreiteter Nutzung bietet Google Kalender robuste Funktionen für persönliche und berufliche Planungsbedürfnisse.
|
||||
|
||||
Mit Google Kalender können Sie:
|
||||
|
||||
- **Ereignisse erstellen und verwalten**: Planen Sie Meetings, Termine und Erinnerungen mit detaillierten Informationen
|
||||
- **Kalendereinladungen versenden**: Benachrichtigen und koordinieren Sie automatisch mit Teilnehmern durch E-Mail-Einladungen
|
||||
- **Ereigniserstellung mit natürlicher Sprache**: Fügen Sie schnell Ereignisse mit Umgangssprache hinzu, wie "Meeting mit John morgen um 15 Uhr"
|
||||
- **Ereignisse anzeigen und suchen**: Finden und greifen Sie einfach auf Ihre geplanten Ereignisse über mehrere Kalender hinweg zu
|
||||
- **Mehrere Kalender verwalten**: Organisieren Sie verschiedene Arten von Ereignissen über verschiedene Kalender hinweg
|
||||
|
||||
In Sim ermöglicht die Google Kalender-Integration Ihren Agenten, Kalenderereignisse programmatisch zu erstellen, zu lesen und zu verwalten. Dies ermöglicht leistungsstarke Automatisierungsszenarien wie das Planen von Meetings, das Versenden von Kalendereinladungen, das Überprüfen der Verfügbarkeit und das Verwalten von Ereignisdetails. Ihre Agenten können Ereignisse mit natürlichsprachlicher Eingabe erstellen, automatisierte Kalendereinladungen an Teilnehmer senden, Ereignisinformationen abrufen und bevorstehende Ereignisse auflisten. Diese Integration überbrückt die Lücke zwischen Ihren KI-Workflows und der Kalenderverwaltung und ermöglicht eine nahtlose Planungsautomatisierung und Koordination mit einer der weltweit am häufigsten genutzten Kalenderplattformen.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integriert Google Kalender in den Workflow. Kann Kalenderereignisse erstellen, lesen, aktualisieren und auflisten. Erfordert OAuth.
|
||||
|
||||
## Tools
|
||||
|
||||
### `google_calendar_create`
|
||||
|
||||
Erstellt ein neues Ereignis in Google Kalender
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `calendarId` | string | Nein | Kalender-ID (standardmäßig primary) |
|
||||
| `summary` | string | Ja | Ereignistitel/Zusammenfassung |
|
||||
| `description` | string | Nein | Ereignisbeschreibung |
|
||||
| `location` | string | Nein | Ereignisort |
|
||||
| `startDateTime` | string | Ja | Startdatum und -uhrzeit. MUSS Zeitzonen-Offset enthalten (z.B. 2025-06-03T10:00:00-08:00) ODER timeZone-Parameter bereitstellen |
|
||||
| `endDateTime` | string | Ja | Enddatum und -uhrzeit. MUSS Zeitzonen-Offset enthalten (z.B. 2025-06-03T11:00:00-08:00) ODER timeZone-Parameter bereitstellen |
|
||||
| `timeZone` | string | Nein | Zeitzone (z.B. America/Los_Angeles). Erforderlich, wenn datetime keinen Offset enthält. Standardmäßig America/Los_Angeles, wenn nicht angegeben. |
|
||||
| `attendees` | array | Nein | Array von E-Mail-Adressen der Teilnehmer |
|
||||
| `sendUpdates` | string | Nein | Wie Updates an Teilnehmer gesendet werden: all, externalOnly oder none |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Bestätigungsnachricht zur Ereigniserstellung |
|
||||
| `metadata` | json | Metadaten des erstellten Ereignisses einschließlich ID, Status und Details |
|
||||
|
||||
### `google_calendar_list`
|
||||
|
||||
Ereignisse aus Google Kalender auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `calendarId` | string | Nein | Kalender-ID \(standardmäßig primary\) |
|
||||
| `timeMin` | string | Nein | Untere Grenze für Ereignisse \(RFC3339-Zeitstempel, z.B. 2025-06-03T00:00:00Z\) |
|
||||
| `timeMax` | string | Nein | Obere Grenze für Ereignisse \(RFC3339-Zeitstempel, z.B. 2025-06-04T00:00:00Z\) |
|
||||
| `orderBy` | string | Nein | Reihenfolge der zurückgegebenen Ereignisse \(startTime oder updated\) |
|
||||
| `showDeleted` | boolean | Nein | Gelöschte Ereignisse einbeziehen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Zusammenfassung der gefundenen Ereignisanzahl |
|
||||
| `metadata` | json | Liste der Ereignisse mit Paginierungstoken und Ereignisdetails |
|
||||
|
||||
### `google_calendar_get`
|
||||
|
||||
Ein bestimmtes Ereignis aus Google Kalender abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `calendarId` | string | Nein | Kalender-ID (standardmäßig primary) |
|
||||
| `eventId` | string | Ja | Ereignis-ID zum Abrufen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Bestätigungsnachricht zum Abrufen des Ereignisses |
|
||||
| `metadata` | json | Ereignisdetails einschließlich ID, Status, Zeiten und Teilnehmer |
|
||||
|
||||
### `google_calendar_quick_add`
|
||||
|
||||
Ereignisse aus natürlichsprachlichem Text erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `calendarId` | string | Nein | Kalender-ID (standardmäßig primary) |
|
||||
| `text` | string | Ja | Natürlichsprachlicher Text, der das Ereignis beschreibt (z.B. "Meeting mit John morgen um 15 Uhr") |
|
||||
| `attendees` | array | Nein | Array von E-Mail-Adressen der Teilnehmer (auch durch Komma getrennte Zeichenfolge akzeptiert) |
|
||||
| `sendUpdates` | string | Nein | Wie Updates an Teilnehmer gesendet werden: all, externalOnly oder none |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Bestätigungsnachricht zur Ereigniserstellung aus natürlicher Sprache |
|
||||
| `metadata` | json | Metadaten des erstellten Ereignisses einschließlich analysierter Details |
|
||||
|
||||
### `google_calendar_invite`
|
||||
|
||||
Teilnehmer zu einem bestehenden Google Kalender-Ereignis einladen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `calendarId` | string | Nein | Kalender-ID (standardmäßig primär) |
|
||||
| `eventId` | string | Ja | Ereignis-ID, zu der Teilnehmer eingeladen werden sollen |
|
||||
| `attendees` | array | Ja | Array von E-Mail-Adressen der einzuladenden Teilnehmer |
|
||||
| `sendUpdates` | string | Nein | Wie Updates an Teilnehmer gesendet werden: all, externalOnly oder none |
|
||||
| `replaceExisting` | boolean | Nein | Ob bestehende Teilnehmer ersetzt oder hinzugefügt werden sollen (standardmäßig false) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Bestätigungsnachricht für die Teilnehmereinladung mit E-Mail-Zustellungsstatus |
|
||||
| `metadata` | json | Aktualisierte Ereignismetadaten einschließlich Teilnehmerliste und Details |
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `tools`
|
||||
- Typ: `google_calendar`
|
||||
|
||||
Ein Ereignis in einen anderen Kalender verschieben. Gibt nur API-konforme Felder zurück.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `calendarId` | string | Nein | Quell-Google-Kalender-ID (z. B. primary oder calendar@group.calendar.google.com) |
|
||||
| `eventId` | string | Ja | Google-Kalender-Ereignis-ID, die verschoben werden soll |
|
||||
| `destinationCalendarId` | string | Ja | Ziel-Google-Kalender-ID |
|
||||
| `sendUpdates` | string | Nein | Wie Updates an Teilnehmer gesendet werden: all, externalOnly oder none |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Ereignis-ID |
|
||||
| `htmlLink` | string | Ereignis-Link |
|
||||
| `status` | string | Ereignisstatus |
|
||||
| `summary` | string | Ereignistitel |
|
||||
| `description` | string | Ereignisbeschreibung |
|
||||
| `location` | string | Ereignisort |
|
||||
| `start` | json | Ereignisstart |
|
||||
| `end` | json | Ereignisende |
|
||||
| `attendees` | json | Ereignisteilnehmer |
|
||||
| `creator` | json | Ereignisersteller |
|
||||
| `organizer` | json | Ereignisorganisator |
|
||||
|
||||
### `google_calendar_instances`
|
||||
|
||||
Instanzen eines wiederkehrenden Ereignisses aus Google Kalender abrufen. Gibt nur API-konforme Felder zurück.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `calendarId` | string | Nein | Google-Kalender-ID (z. B. primary oder calendar@group.calendar.google.com) |
|
||||
| `eventId` | string | Ja | ID des wiederkehrenden Ereignisses, dessen Instanzen abgerufen werden sollen |
|
||||
| `timeMin` | string | Nein | Untere Grenze für Instanzen (RFC3339-Zeitstempel, z. B. 2025-06-03T00:00:00Z) |
|
||||
| `timeMax` | string | Nein | Obere Grenze für Instanzen (RFC3339-Zeitstempel, z. B. 2025-06-04T00:00:00Z) |
|
||||
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Instanzen (Standard 250, max. 2500) |
|
||||
| `pageToken` | string | Nein | Token zum Abrufen nachfolgender Ergebnisseiten |
|
||||
| `showDeleted` | boolean | Nein | Gelöschte Instanzen einschließen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `nextPageToken` | string | Nächstes Seiten-Token |
|
||||
| `timeZone` | string | Kalender-Zeitzone |
|
||||
| `instances` | json | Liste der wiederkehrenden Ereignisinstanzen |
|
||||
|
||||
### `google_calendar_list_calendars`
|
||||
|
||||
Alle Kalender des Benutzers auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `minAccessRole` | string | Nein | Minimale Zugriffsrolle für zurückgegebene Kalender: freeBusyReader, reader, writer oder owner |
|
||||
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Kalender (Standard 100, max. 250) |
|
||||
| `pageToken` | string | Nein | Token zum Abrufen nachfolgender Ergebnisseiten |
|
||||
| `showDeleted` | boolean | Nein | Gelöschte Kalender einschließen |
|
||||
| `showHidden` | boolean | Nein | Ausgeblendete Kalender einschließen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `nextPageToken` | string | Nächstes Seiten-Token |
|
||||
| `calendars` | array | Liste der Kalender |
|
||||
| ↳ `id` | string | Kalender-ID |
|
||||
| ↳ `summary` | string | Kalendertitel |
|
||||
| ↳ `description` | string | Kalenderbeschreibung |
|
||||
| ↳ `location` | string | Kalenderort |
|
||||
| ↳ `timeZone` | string | Kalender-Zeitzone |
|
||||
| ↳ `accessRole` | string | Zugriffsrolle für den Kalender |
|
||||
| ↳ `backgroundColor` | string | Kalender-Hintergrundfarbe |
|
||||
| ↳ `foregroundColor` | string | Kalender-Vordergrundfarbe |
|
||||
| ↳ `primary` | boolean | Ob dies der Hauptkalender ist |
|
||||
| ↳ `hidden` | boolean | Ob der Kalender ausgeblendet ist |
|
||||
| ↳ `selected` | boolean | Ob der Kalender ausgewählt ist |
|
||||
|
||||
### `google_calendar_quick_add`
|
||||
|
||||
Ereignisse aus natürlichsprachlichem Text erstellen. Gibt nur API-konforme Felder zurück.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `calendarId` | string | Nein | Google Kalender-ID (z. B. primary oder calendar@group.calendar.google.com) |
|
||||
| `text` | string | Ja | Natürlichsprachlicher Text, der das Ereignis beschreibt (z. B. "Meeting mit John morgen um 15 Uhr") |
|
||||
| `attendees` | array | Nein | Array von E-Mail-Adressen der Teilnehmer (kommagetrennte Zeichenkette wird ebenfalls akzeptiert) |
|
||||
| `sendUpdates` | string | Nein | Wie Updates an Teilnehmer gesendet werden: all, externalOnly oder none |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Ereignis-ID |
|
||||
| `htmlLink` | string | Ereignis-Link |
|
||||
| `status` | string | Ereignisstatus |
|
||||
| `summary` | string | Ereignistitel |
|
||||
| `description` | string | Ereignisbeschreibung |
|
||||
| `location` | string | Ereignisort |
|
||||
| `start` | json | Ereignisstart |
|
||||
| `end` | json | Ereignisende |
|
||||
| `attendees` | json | Ereignisteilnehmer |
|
||||
| `creator` | json | Ereignisersteller |
|
||||
| `organizer` | json | Ereignisorganisator |
|
||||
|
||||
### `google_calendar_invite`
|
||||
|
||||
Teilnehmer zu einem bestehenden Google Kalender-Ereignis einladen. Gibt nur API-konforme Felder zurück.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `calendarId` | string | Nein | Google Kalender-ID (z. B. primary oder calendar@group.calendar.google.com) |
|
||||
| `eventId` | string | Ja | Google Kalender-Ereignis-ID, zu der Teilnehmer eingeladen werden sollen |
|
||||
| `attendees` | array | Ja | Array von E-Mail-Adressen der einzuladenden Teilnehmer |
|
||||
| `sendUpdates` | string | Nein | Wie Updates an Teilnehmer gesendet werden: all, externalOnly oder none |
|
||||
| `replaceExisting` | boolean | Nein | Ob bestehende Teilnehmer ersetzt oder hinzugefügt werden sollen (Standard ist false) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Ereignis-ID |
|
||||
| `htmlLink` | string | Ereignis-Link |
|
||||
| `status` | string | Ereignisstatus |
|
||||
| `summary` | string | Ereignistitel |
|
||||
| `description` | string | Ereignisbeschreibung |
|
||||
| `location` | string | Ereignisort |
|
||||
| `start` | json | Ereignisbeginn |
|
||||
| `end` | json | Ereignisende |
|
||||
| `attendees` | json | Ereignisteilnehmer |
|
||||
| `creator` | json | Ereignisersteller |
|
||||
| `organizer` | json | Ereignisorganisator |
|
||||
@@ -0,0 +1,104 @@
|
||||
---
|
||||
title: Google Docs
|
||||
description: Dokumente lesen, schreiben und erstellen
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="google_docs"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Google Docs](https://docs.google.com) ist ein leistungsstarker cloudbasierter Dienst zur Dokumentenerstellung und -bearbeitung, der es Benutzern ermöglicht, Dokumente in Echtzeit zu erstellen, zu bearbeiten und gemeinsam daran zu arbeiten. Als Teil der Google-Produktivitätssuite bietet Google Docs eine vielseitige Plattform für Textdokumente mit umfangreichen Formatierungs-, Kommentierungs- und Freigabefunktionen.
|
||||
|
||||
Erfahren Sie, wie Sie das Google Docs "Lesen"-Tool in Sim integrieren, um mühelos Daten aus Ihren Dokumenten abzurufen und in Ihre Workflows zu integrieren. Dieses Tutorial führt Sie durch die Verbindung mit Google Docs, die Einrichtung von Datenabfragen und die Verwendung dieser Informationen zur Automatisierung von Prozessen in Echtzeit. Perfekt für die Synchronisierung von Live-Daten mit Ihren Agenten.
|
||||
|
||||
<iframe
|
||||
width="100%"
|
||||
height="400"
|
||||
src="https://www.youtube.com/embed/f41gy9rBHhE"
|
||||
title="Use the Google Docs Read tool in Sim"
|
||||
frameBorder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
></iframe>
|
||||
|
||||
Erfahren Sie, wie Sie das Google Docs "Aktualisieren"-Tool in Sim integrieren, um mühelos Inhalte in Ihren Dokumenten über Ihre Workflows hinzuzufügen. Dieses Tutorial führt Sie durch die Verbindung mit Google Docs, die Konfiguration von Datenschreibvorgängen und die Verwendung dieser Informationen zur nahtlosen Automatisierung von Dokumentaktualisierungen. Perfekt für die Pflege dynamischer Echtzeit-Dokumentation mit minimalem Aufwand.
|
||||
|
||||
<iframe
|
||||
width="100%"
|
||||
height="400"
|
||||
src="https://www.youtube.com/embed/L64ROHS2ivA"
|
||||
title="Use the Google Docs Update tool in Sim"
|
||||
frameBorder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
></iframe>
|
||||
|
||||
Erfahren Sie, wie Sie das Google Docs "Erstellen"-Tool in Sim integrieren, um mühelos neue Dokumente über Ihre Workflows zu generieren. Dieses Tutorial führt Sie durch die Verbindung mit Google Docs, die Einrichtung der Dokumentenerstellung und die Verwendung von Workflow-Daten zur automatischen Befüllung von Inhalten. Perfekt für die Rationalisierung der Dokumentenerstellung und die Steigerung der Produktivität.
|
||||
|
||||
<iframe
|
||||
width="100%"
|
||||
height="400"
|
||||
src="https://www.youtube.com/embed/lWpHH4qddWk"
|
||||
title="Verwenden Sie das Google Docs Erstellungstool in Sim"
|
||||
frameBorder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
></iframe>
|
||||
|
||||
Mit Google Docs können Sie:
|
||||
|
||||
- **Dokumente erstellen und bearbeiten**: Textdokumente mit umfassenden Formatierungsoptionen entwickeln
|
||||
- **In Echtzeit zusammenarbeiten**: Gleichzeitig mit mehreren Benutzern am selben Dokument arbeiten
|
||||
- **Änderungen verfolgen**: Versionsverlauf anzeigen und frühere Versionen wiederherstellen
|
||||
- **Kommentieren und vorschlagen**: Feedback geben und Änderungen vorschlagen, ohne den Originalinhalt zu verändern
|
||||
- **Von überall zugreifen**: Google Docs geräteübergreifend nutzen mit automatischer Cloud-Synchronisierung
|
||||
- **Offline arbeiten**: Ohne Internetverbindung weiterarbeiten, wobei Änderungen synchronisiert werden, sobald Sie wieder online sind
|
||||
- **Mit anderen Diensten integrieren**: Verbindung mit Google Drive, Sheets, Slides und Drittanbieteranwendungen herstellen
|
||||
|
||||
In Sim ermöglicht die Google Docs-Integration Ihren Agenten, direkt programmatisch mit Dokumentinhalten zu interagieren. Dies erlaubt leistungsstarke Automatisierungsszenarien wie Dokumenterstellung, Inhaltsextraktion, kollaboratives Bearbeiten und Dokumentenverwaltung. Ihre Agenten können bestehende Dokumente lesen, um Informationen zu extrahieren, in Dokumente schreiben, um Inhalte zu aktualisieren, und neue Dokumente von Grund auf erstellen. Diese Integration überbrückt die Lücke zwischen Ihren KI-Workflows und der Dokumentenverwaltung und ermöglicht eine nahtlose Interaktion mit einer der weltweit am häufigsten genutzten Dokumentenplattformen. Durch die Verbindung von Sim mit Google Docs können Sie Dokumenten-Workflows automatisieren, Berichte generieren, Erkenntnisse aus Dokumenten extrahieren und Dokumentationen pflegen - alles durch Ihre intelligenten Agenten.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Integrieren Sie Google Docs in den Workflow. Kann Dokumente lesen, schreiben und erstellen. Erfordert OAuth.
|
||||
|
||||
## Tools
|
||||
|
||||
### `google_docs_read`
|
||||
|
||||
Inhalte aus einem Google Docs-Dokument lesen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `documentId` | string | Ja | Die ID des zu lesenden Dokuments |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `content` | string | Extrahierter Textinhalt des Dokuments |
|
||||
| `metadata` | json | Dokument-Metadaten einschließlich ID, Titel und URL |
|
||||
|
||||
### `google_docs_write`
|
||||
|
||||
Inhalte in einem Google Docs-Dokument schreiben oder aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `documentId` | string | Ja | Die ID des Dokuments, in das geschrieben werden soll |
|
||||
| `content` | string | Ja | Der Inhalt, der in das Dokument geschrieben werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `updatedContent` | boolean | Gibt an, ob der Dokumentinhalt erfolgreich aktualisiert wurde |
|
||||
| `metadata` | json | Aktualisierte Dokument-Metadaten einschließlich ID, Titel und URL |
|
||||
@@ -0,0 +1,393 @@
|
||||
---
|
||||
title: Google Drive
|
||||
description: Dateien erstellen, hochladen und auflisten
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="google_drive"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Google Drive](https://drive.google.com) ist Googles Cloud-Speicher- und Dateisynchronisierungsdienst, der es Benutzern ermöglicht, Dateien zu speichern, Dateien über verschiedene Geräte zu synchronisieren und Dateien mit anderen zu teilen. Als Kernkomponente des Produktivitätsökosystems von Google bietet Google Drive robuste Speicher-, Organisations- und Kollaborationsfunktionen.
|
||||
|
||||
Erfahren Sie, wie Sie das Google Drive-Tool in Sim integrieren, um mühelos Informationen aus Ihrem Drive durch Ihre Workflows abzurufen. Dieses Tutorial führt Sie durch die Verbindung mit Google Drive, die Einrichtung des Datenabrufs und die Verwendung gespeicherter Dokumente und Dateien zur Verbesserung der Automatisierung. Perfekt für die Synchronisierung wichtiger Daten mit Ihren Agenten in Echtzeit.
|
||||
|
||||
<iframe
|
||||
width="100%"
|
||||
height="400"
|
||||
src="https://www.youtube.com/embed/cRoRr4b-EAs"
|
||||
title="Use the Google Drive tool in Sim"
|
||||
frameBorder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
></iframe>
|
||||
|
||||
Mit Google Drive können Sie:
|
||||
|
||||
- **Dateien in der Cloud speichern**: Laden Sie Ihre Dateien hoch und greifen Sie von überall mit Internetzugang darauf zu
|
||||
- **Inhalte organisieren**: Erstellen Sie Ordner, verwenden Sie Farbcodierung und implementieren Sie Namenskonventionen
|
||||
- **Teilen und zusammenarbeiten**: Steuern Sie Zugriffsberechtigungen und arbeiten Sie gleichzeitig an Dateien
|
||||
- **Effizient suchen**: Finden Sie Dateien schnell mit Googles leistungsstarker Suchtechnologie
|
||||
- **Zugriff über verschiedene Geräte**: Nutzen Sie Google Drive auf Desktop-, Mobil- und Webplattformen
|
||||
- **Integration mit anderen Diensten**: Verbinden Sie sich mit Google Docs, Sheets, Slides und Anwendungen von Drittanbietern
|
||||
|
||||
In Sim ermöglicht die Google Drive-Integration Ihren Agenten, direkt und programmatisch mit Ihrem Cloud-Speicher zu interagieren. Dies erlaubt leistungsstarke Automatisierungsszenarien wie Dateiverwaltung, Inhaltsorganisation und Dokumenten-Workflows. Ihre Agenten können neue Dateien in bestimmte Ordner hochladen, bestehende Dateien herunterladen, um deren Inhalte zu verarbeiten, und Ordnerinhalte auflisten, um durch Ihre Speicherstruktur zu navigieren. Diese Integration überbrückt die Lücke zwischen Ihren KI-Workflows und Ihrem Dokumentenverwaltungssystem und ermöglicht nahtlose Dateioperationen ohne manuelle Eingriffe. Durch die Verbindung von Sim mit Google Drive können Sie dateibasierte Workflows automatisieren, Dokumente intelligent verwalten und Cloud-Speicheroperationen in die Fähigkeiten Ihres Agenten integrieren.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Integrieren Sie Google Drive in den Workflow. Kann Dateien erstellen, hochladen und auflisten. Erfordert OAuth.
|
||||
|
||||
## Tools
|
||||
|
||||
### `google_drive_upload`
|
||||
|
||||
Eine Datei zu Google Drive hochladen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `fileName` | string | Ja | Der Name der hochzuladenden Datei |
|
||||
| `file` | file | Nein | Binärdatei zum Hochladen (UserFile-Objekt) |
|
||||
| `content` | string | Nein | Textinhalt zum Hochladen (verwenden Sie entweder diesen ODER file, nicht beides) |
|
||||
| `mimeType` | string | Nein | Der MIME-Typ der hochzuladenden Datei (wird automatisch aus der Datei erkannt, wenn nicht angegeben) |
|
||||
| `folderSelector` | string | Nein | Wählen Sie den Ordner aus, in den die Datei hochgeladen werden soll |
|
||||
| `folderId` | string | Nein | Die ID des Ordners, in den die Datei hochgeladen werden soll (interne Verwendung) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | json | Metadaten der hochgeladenen Datei einschließlich ID, Name und Links |
|
||||
|
||||
### `google_drive_create_folder`
|
||||
|
||||
Einen neuen Ordner in Google Drive erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `fileName` | string | Ja | Name des zu erstellenden Ordners |
|
||||
| `folderSelector` | string | Nein | Wählen Sie den übergeordneten Ordner aus, in dem der Ordner erstellt werden soll |
|
||||
| `folderId` | string | Nein | ID des übergeordneten Ordners \(interne Verwendung\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | json | Metadaten des erstellten Ordners einschließlich ID, Name und Informationen zum übergeordneten Ordner |
|
||||
|
||||
### `google_drive_download`
|
||||
|
||||
Eine Datei von Google Drive herunterladen (exportiert Google Workspace-Dateien automatisch)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `fileId` | string | Ja | Die ID der herunterzuladenden Datei |
|
||||
| `mimeType` | string | Nein | Der MIME-Typ, in den Google Workspace-Dateien exportiert werden sollen (optional) |
|
||||
| `fileName` | string | Nein | Optionale Überschreibung des Dateinamens |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | file | Heruntergeladene Datei, die in den Ausführungsdateien gespeichert ist |
|
||||
|
||||
### `google_drive_list`
|
||||
|
||||
Dateien und Ordner in Google Drive auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `folderSelector` | string | Nein | Wählen Sie den Ordner aus, aus dem Dateien aufgelistet werden sollen |
|
||||
| `folderId` | string | Nein | Die ID des Ordners, aus dem Dateien aufgelistet werden sollen (interne Verwendung) |
|
||||
| `query` | string | Nein | Suchbegriff, um Dateien nach Namen zu filtern (z.B. "budget" findet Dateien mit "budget" im Namen). Verwenden Sie hier KEINE Google Drive-Abfragesyntax - geben Sie einfach einen einfachen Suchbegriff ein. |
|
||||
| `pageSize` | number | Nein | Die maximale Anzahl der zurückzugebenden Dateien (Standard: 100) |
|
||||
| `pageToken` | string | Nein | Das Seitentoken für die Paginierung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `files` | json | Array von Metadatenobjekten der Dateien aus dem angegebenen Ordner |
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `tools`
|
||||
- Typ: `google_drive`
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | file | Heruntergeladene Datei, gespeichert in Ausführungsdateien |
|
||||
| `metadata` | object | Vollständige Dateimetadaten von Google Drive |
|
||||
| ↳ `id` | string | Google Drive-Datei-ID |
|
||||
| ↳ `kind` | string | Ressourcentyp-Kennung |
|
||||
| ↳ `name` | string | Dateiname |
|
||||
| ↳ `mimeType` | string | MIME-Typ |
|
||||
| ↳ `description` | string | Dateibeschreibung |
|
||||
| ↳ `originalFilename` | string | Original hochgeladener Dateiname |
|
||||
| ↳ `fullFileExtension` | string | Vollständige Dateierweiterung |
|
||||
| ↳ `fileExtension` | string | Dateierweiterung |
|
||||
| ↳ `owners` | json | Liste der Dateieigentümer |
|
||||
| ↳ `permissions` | json | Dateiberechtigungen |
|
||||
| ↳ `permissionIds` | json | Berechtigungs-IDs |
|
||||
| ↳ `shared` | boolean | Ob Datei geteilt ist |
|
||||
| ↳ `ownedByMe` | boolean | Ob im Besitz des aktuellen Benutzers |
|
||||
| ↳ `writersCanShare` | boolean | Ob Autoren teilen können |
|
||||
| ↳ `viewersCanCopyContent` | boolean | Ob Betrachter kopieren können |
|
||||
| ↳ `copyRequiresWriterPermission` | boolean | Ob Kopieren Autorenberechtigung erfordert |
|
||||
| ↳ `sharingUser` | json | Benutzer, der die Datei geteilt hat |
|
||||
| ↳ `starred` | boolean | Ob Datei mit Stern markiert ist |
|
||||
| ↳ `trashed` | boolean | Ob Datei im Papierkorb ist |
|
||||
| ↳ `explicitlyTrashed` | boolean | Ob explizit in Papierkorb verschoben |
|
||||
| ↳ `appProperties` | json | App-spezifische Eigenschaften |
|
||||
| ↳ `createdTime` | string | Dateierstellungszeit |
|
||||
| ↳ `modifiedTime` | string | Letzte Änderungszeit |
|
||||
| ↳ `modifiedByMeTime` | string | Wann vom aktuellen Benutzer geändert |
|
||||
| ↳ `viewedByMeTime` | string | Wann zuletzt vom aktuellen Benutzer angesehen |
|
||||
| ↳ `sharedWithMeTime` | string | Wann mit aktuellem Benutzer geteilt |
|
||||
| ↳ `lastModifyingUser` | json | Benutzer, der die Datei zuletzt geändert hat |
|
||||
| ↳ `viewedByMe` | boolean | Ob vom aktuellen Benutzer angesehen |
|
||||
| ↳ `modifiedByMe` | boolean | Ob vom aktuellen Benutzer geändert |
|
||||
| ↳ `webViewLink` | string | URL zum Anzeigen im Browser |
|
||||
| ↳ `webContentLink` | string | Direkte Download-URL |
|
||||
| ↳ `iconLink` | string | URL zum Dateisymbol |
|
||||
| ↳ `thumbnailLink` | string | URL zum Vorschaubild |
|
||||
| ↳ `exportLinks` | json | Exportformat-Links |
|
||||
| ↳ `size` | string | Dateigröße in Bytes |
|
||||
| ↳ `quotaBytesUsed` | string | Verwendetes Speicherkontingent |
|
||||
| ↳ `md5Checksum` | string | MD5-Hash |
|
||||
| ↳ `sha1Checksum` | string | SHA-1-Hash |
|
||||
| ↳ `sha256Checksum` | string | SHA-256-Hash |
|
||||
| ↳ `parents` | json | Übergeordnete Ordner-IDs |
|
||||
| ↳ `spaces` | json | Bereiche, die Datei enthalten |
|
||||
| ↳ `driveId` | string | Geteilte Laufwerk-ID |
|
||||
| ↳ `capabilities` | json | Benutzerfähigkeiten für Datei |
|
||||
| ↳ `version` | string | Versionsnummer |
|
||||
| ↳ `headRevisionId` | string | Hauptrevisions-ID |
|
||||
| ↳ `hasThumbnail` | boolean | Ob Vorschaubild vorhanden |
|
||||
| ↳ `thumbnailVersion` | string | Vorschaubild-Version |
|
||||
| ↳ `imageMediaMetadata` | json | Bildspezifische Metadaten |
|
||||
| ↳ `videoMediaMetadata` | json | Videospezifische Metadaten |
|
||||
| ↳ `isAppAuthorized` | boolean | Ob von anfragender App erstellt |
|
||||
| ↳ `contentRestrictions` | json | Inhaltsbeschränkungen |
|
||||
| ↳ `linkShareMetadata` | json | Link-Freigabe-Metadaten |
|
||||
| ↳ `revisions` | json | Dateirevisionshistorie \(nur erste 100 Revisionen\) |
|
||||
|
||||
### `google_drive_copy`
|
||||
|
||||
Erstellen Sie eine Kopie einer Datei in Google Drive
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `fileId` | string | Ja | Die ID der zu kopierenden Datei |
|
||||
| `newName` | string | Nein | Name für die kopierte Datei (Standard: "Kopie von [ursprünglicher Name]") |
|
||||
| `destinationFolderId` | string | Nein | ID des Ordners, in dem die Kopie abgelegt werden soll (Standard: gleicher Speicherort wie das Original) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | json | Die Metadaten der kopierten Datei |
|
||||
| ↳ `id` | string | Google Drive-Datei-ID der Kopie |
|
||||
| ↳ `kind` | string | Ressourcentyp-Kennung |
|
||||
| ↳ `name` | string | Dateiname |
|
||||
| ↳ `mimeType` | string | MIME-Typ |
|
||||
| ↳ `webViewLink` | string | URL zum Anzeigen im Browser |
|
||||
| ↳ `parents` | json | IDs der übergeordneten Ordner |
|
||||
| ↳ `createdTime` | string | Erstellungszeit der Datei |
|
||||
| ↳ `modifiedTime` | string | Zeitpunkt der letzten Änderung |
|
||||
| ↳ `owners` | json | Liste der Dateieigentümer |
|
||||
| ↳ `size` | string | Dateigröße in Bytes |
|
||||
|
||||
### `google_drive_update`
|
||||
|
||||
Aktualisieren Sie Dateimetadaten in Google Drive (umbenennen, verschieben, mit Stern markieren, Beschreibung hinzufügen)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `fileId` | string | Ja | Die ID der zu aktualisierenden Datei |
|
||||
| `name` | string | Nein | Neuer Name für die Datei |
|
||||
| `description` | string | Nein | Neue Beschreibung für die Datei |
|
||||
| `addParents` | string | Nein | Durch Kommas getrennte Liste von IDs übergeordneter Ordner, die hinzugefügt werden sollen (verschiebt die Datei in diese Ordner) |
|
||||
| `removeParents` | string | Nein | Durch Kommas getrennte Liste von IDs übergeordneter Ordner, die entfernt werden sollen |
|
||||
| `starred` | boolean | Nein | Ob die Datei mit einem Stern markiert oder die Markierung entfernt werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | json | Die aktualisierten Dateimetadaten |
|
||||
| ↳ `id` | string | Google Drive-Datei-ID |
|
||||
| ↳ `kind` | string | Ressourcentyp-Kennung |
|
||||
| ↳ `name` | string | Dateiname |
|
||||
| ↳ `mimeType` | string | MIME-Typ |
|
||||
| ↳ `description` | string | Dateibeschreibung |
|
||||
| ↳ `starred` | boolean | Ob die Datei mit Stern markiert ist |
|
||||
| ↳ `webViewLink` | string | URL zum Anzeigen im Browser |
|
||||
| ↳ `parents` | json | IDs der übergeordneten Ordner |
|
||||
| ↳ `modifiedTime` | string | Zeitpunkt der letzten Änderung |
|
||||
|
||||
### `google_drive_trash`
|
||||
|
||||
Eine Datei in den Papierkorb von Google Drive verschieben (kann später wiederhergestellt werden)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `fileId` | string | Ja | Die ID der Datei, die in den Papierkorb verschoben werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | json | Die Metadaten der gelöschten Datei |
|
||||
| ↳ `id` | string | Google Drive-Datei-ID |
|
||||
| ↳ `kind` | string | Ressourcentyp-Kennung |
|
||||
| ↳ `name` | string | Dateiname |
|
||||
| ↳ `mimeType` | string | MIME-Typ |
|
||||
| ↳ `trashed` | boolean | Ob sich die Datei im Papierkorb befindet (sollte true sein) |
|
||||
| ↳ `trashedTime` | string | Zeitpunkt, zu dem die Datei gelöscht wurde |
|
||||
| ↳ `webViewLink` | string | URL zum Anzeigen im Browser |
|
||||
|
||||
### `google_drive_delete`
|
||||
|
||||
Eine Datei dauerhaft aus Google Drive löschen (umgeht den Papierkorb)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `fileId` | string | Ja | Die ID der Datei, die dauerhaft gelöscht werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deleted` | boolean | Ob die Datei erfolgreich gelöscht wurde |
|
||||
| `fileId` | string | Die ID der gelöschten Datei |
|
||||
|
||||
### `google_drive_share`
|
||||
|
||||
Eine Datei mit einem Benutzer, einer Gruppe, einer Domain teilen oder öffentlich machen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `fileId` | string | Ja | Die ID der Datei, die geteilt werden soll |
|
||||
| `type` | string | Ja | Art des Empfängers: user, group, domain oder anyone |
|
||||
| `role` | string | Ja | Berechtigungsrolle: owner \(Eigentümerschaft übertragen\), organizer \(nur freigegebenes Laufwerk\), fileOrganizer \(nur freigegebenes Laufwerk\), writer \(bearbeiten\), commenter \(ansehen und kommentieren\), reader \(nur ansehen\) |
|
||||
| `email` | string | Nein | E-Mail-Adresse des Benutzers oder der Gruppe \(erforderlich für type=user oder type=group\) |
|
||||
| `domain` | string | Nein | Domain, mit der geteilt werden soll \(erforderlich für type=domain\) |
|
||||
| `transferOwnership` | boolean | Nein | Erforderlich, wenn die Rolle owner ist. Überträgt die Eigentümerschaft an den angegebenen Benutzer. |
|
||||
| `moveToNewOwnersRoot` | boolean | Nein | Beim Übertragen der Eigentümerschaft die Datei in den Stammordner von „Meine Ablage" des neuen Eigentümers verschieben. |
|
||||
| `sendNotification` | boolean | Nein | Ob eine E-Mail-Benachrichtigung gesendet werden soll \(Standard: true\) |
|
||||
| `emailMessage` | string | Nein | Benutzerdefinierte Nachricht, die in die Benachrichtigungs-E-Mail aufgenommen werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `permission` | json | Die Details der erstellten Berechtigung |
|
||||
| ↳ `id` | string | Berechtigungs-ID |
|
||||
| ↳ `type` | string | Empfängertyp \(user, group, domain, anyone\) |
|
||||
| ↳ `role` | string | Berechtigungsrolle |
|
||||
| ↳ `emailAddress` | string | E-Mail des Empfängers |
|
||||
| ↳ `displayName` | string | Anzeigename des Empfängers |
|
||||
| ↳ `domain` | string | Domain des Empfängers |
|
||||
| ↳ `expirationTime` | string | Ablaufzeit |
|
||||
| ↳ `deleted` | boolean | Ob der Empfänger gelöscht wurde |
|
||||
|
||||
### `google_drive_unshare`
|
||||
|
||||
Eine Berechtigung von einer Datei entfernen (Zugriff widerrufen)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `fileId` | string | Ja | Die ID der Datei, deren Berechtigungen geändert werden sollen |
|
||||
| `permissionId` | string | Ja | Die ID der zu entfernenden Berechtigung \(verwenden Sie list_permissions, um diese zu finden\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `removed` | boolean | Ob die Berechtigung erfolgreich entfernt wurde |
|
||||
| `fileId` | string | Die ID der Datei |
|
||||
| `permissionId` | string | Die ID der entfernten Berechtigung |
|
||||
|
||||
### `google_drive_list_permissions`
|
||||
|
||||
Alle Berechtigungen (wer hat Zugriff) für eine Datei in Google Drive auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `fileId` | string | Ja | Die ID der Datei, für die Berechtigungen aufgelistet werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `permissions` | array | Liste der Berechtigungen für die Datei |
|
||||
| ↳ `id` | string | Berechtigungs-ID \(zum Entfernen der Berechtigung verwenden\) |
|
||||
| ↳ `type` | string | Empfängertyp \(user, group, domain, anyone\) |
|
||||
| ↳ `role` | string | Berechtigungsrolle \(owner, organizer, fileOrganizer, writer, commenter, reader\) |
|
||||
| ↳ `emailAddress` | string | E-Mail des Empfängers |
|
||||
| ↳ `displayName` | string | Anzeigename des Empfängers |
|
||||
| ↳ `photoLink` | string | Foto-URL des Empfängers |
|
||||
| ↳ `domain` | string | Domain des Empfängers |
|
||||
| ↳ `expirationTime` | string | Ablaufzeitpunkt der Berechtigung |
|
||||
| ↳ `deleted` | boolean | Ob das Empfängerkonto gelöscht wurde |
|
||||
| ↳ `allowFileDiscovery` | boolean | Ob die Datei vom Empfänger auffindbar ist |
|
||||
| ↳ `pendingOwner` | boolean | Ob eine Eigentumsübertragung aussteht |
|
||||
| ↳ `permissionDetails` | json | Details zu geerbten Berechtigungen |
|
||||
| `nextPageToken` | string | Token zum Abrufen der nächsten Seite von Berechtigungen |
|
||||
|
||||
### `google_drive_get_about`
|
||||
|
||||
Informationen über den Benutzer und sein Google Drive abrufen (Speicherkontingent, Funktionen)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `user` | json | Informationen über den authentifizierten Benutzer |
|
||||
| ↳ `displayName` | string | Anzeigename des Benutzers |
|
||||
| ↳ `emailAddress` | string | E-Mail-Adresse des Benutzers |
|
||||
| ↳ `photoLink` | string | URL zum Profilfoto des Benutzers |
|
||||
| ↳ `permissionId` | string | Berechtigungs-ID des Benutzers |
|
||||
| ↳ `me` | boolean | Ob dies der authentifizierte Benutzer ist |
|
||||
| `storageQuota` | json | Informationen zum Speicherkontingent in Bytes |
|
||||
| ↳ `limit` | string | Gesamtes Speicherlimit in Bytes \(null für unbegrenzt\) |
|
||||
| ↳ `usage` | string | Insgesamt verwendeter Speicher in Bytes |
|
||||
| ↳ `usageInDrive` | string | Von Drive-Dateien verwendeter Speicher in Bytes |
|
||||
| ↳ `usageInDriveTrash` | string | Von gelöschten Dateien verwendeter Speicher in Bytes |
|
||||
| `canCreateDrives` | boolean | Ob der Benutzer geteilte Ablagen erstellen kann |
|
||||
| `importFormats` | json | Zuordnung von MIME-Typen, die importiert werden können, und ihren Zielformaten |
|
||||
| `exportFormats` | json | Zuordnung von Google Workspace-MIME-Typen und ihren exportierbaren Formaten |
|
||||
| `maxUploadSize` | string | Maximale Upload-Größe in Bytes |
|
||||
@@ -0,0 +1,244 @@
|
||||
---
|
||||
title: Google Forms
|
||||
description: Antworten aus einem Google-Formular lesen
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="google_forms"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Google Forms](https://forms.google.com) ist Googles Online-Umfrage- und Formular-Tool, mit dem Benutzer Formulare erstellen, Antworten sammeln und Ergebnisse analysieren können. Als Teil der Google-Produktivitätssuite macht Google Forms es einfach, Informationen, Feedback und Daten von Benutzern zu sammeln.
|
||||
|
||||
Erfahren Sie, wie Sie das Google Forms-Tool in Sim integrieren, um Formularantworten automatisch in Ihren Workflows zu lesen und zu verarbeiten. Dieses Tutorial führt Sie durch die Verbindung mit Google Forms, das Abrufen von Antworten und die Nutzung der gesammelten Daten zur Automatisierung. Perfekt für die Synchronisierung von Umfrageergebnissen, Registrierungen oder Feedback mit Ihren Agenten in Echtzeit.
|
||||
|
||||
Mit Google Forms können Sie:
|
||||
|
||||
- **Umfragen und Formulare erstellen**: Entwerfen Sie benutzerdefinierte Formulare für Feedback, Registrierung, Quizze und mehr
|
||||
- **Antworten automatisch sammeln**: Erfassen Sie Daten von Benutzern in Echtzeit
|
||||
- **Ergebnisse analysieren**: Sehen Sie sich Antworten in Google Forms an oder exportieren Sie sie nach Google Sheets für weitere Analysen
|
||||
- **Einfach zusammenarbeiten**: Teilen Sie Formulare und arbeiten Sie mit anderen zusammen, um Fragen zu erstellen und zu überprüfen
|
||||
- **Mit anderen Google-Diensten integrieren**: Verbinden Sie sich mit Google Sheets, Drive und mehr
|
||||
|
||||
In Sim ermöglicht die Google Forms-Integration Ihren Agenten den programmatischen Zugriff auf Formularantworten. Dies ermöglicht leistungsstarke Automatisierungsszenarien wie die Verarbeitung von Umfragedaten, das Auslösen von Workflows basierend auf neuen Einreichungen und die Synchronisierung von Formularergebnissen mit anderen Tools. Ihre Agenten können alle Antworten für ein Formular abrufen, eine bestimmte Antwort abrufen und die Daten nutzen, um intelligente Automatisierung zu steuern. Durch die Verbindung von Sim mit Google Forms können Sie die Datenerfassung automatisieren, die Feedback-Verarbeitung optimieren und Formularantworten in die Fähigkeiten Ihres Agenten integrieren.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Gebrauchsanweisung
|
||||
|
||||
Integrieren Sie Google Forms in Ihren Workflow. Geben Sie eine Formular-ID an, um Antworten aufzulisten, oder geben Sie eine Antwort-ID an, um eine einzelne Antwort abzurufen. Erfordert OAuth.
|
||||
|
||||
## Tools
|
||||
|
||||
### `google_forms_get_responses`
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| formId | string | Ja | Die ID des Google-Formulars |
|
||||
| responseId | string | Nein | Falls angegeben, wird diese spezifische Antwort zurückgegeben |
|
||||
| pageSize | number | Nein | Maximale Anzahl der zurückzugebenden Antworten (der Dienst kann weniger zurückgeben). Standardwert ist 5000 |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `data` | json | Antwort oder Liste von Antworten |
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `tools`
|
||||
- Typ: `google_forms`
|
||||
|
||||
Ruft eine Formularstruktur einschließlich ihrer Elemente, Einstellungen und Metadaten ab
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `formId` | string | Ja | Die ID des abzurufenden Google-Formulars |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `formId` | string | Die Formular-ID |
|
||||
| `title` | string | Der für Befragte sichtbare Formulartitel |
|
||||
| `description` | string | Die Formularbeschreibung |
|
||||
| `documentTitle` | string | Der in Drive sichtbare Dokumenttitel |
|
||||
| `responderUri` | string | Die URI zum Teilen mit Befragten |
|
||||
| `linkedSheetId` | string | Die ID der verknüpften Google-Tabelle |
|
||||
| `revisionId` | string | Die Revisions-ID des Formulars |
|
||||
| `items` | array | Die Formularelemente (Fragen, Abschnitte usw.) |
|
||||
| ↳ `itemId` | string | Element-ID |
|
||||
| ↳ `title` | string | Elementtitel |
|
||||
| ↳ `description` | string | Elementbeschreibung |
|
||||
| `settings` | json | Formulareinstellungen |
|
||||
| `publishSettings` | json | Formularveröffentlichungseinstellungen |
|
||||
|
||||
### `google_forms_create_form`
|
||||
|
||||
Erstellt ein neues Google-Formular mit einem Titel
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `title` | string | Ja | Der für Befragte sichtbare Titel des Formulars |
|
||||
| `documentTitle` | string | Nein | Der in Drive sichtbare Dokumenttitel (standardmäßig der Formulartitel) |
|
||||
| `unpublished` | boolean | Nein | Falls true, wird ein unveröffentlichtes Formular erstellt, das keine Antworten akzeptiert |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `formId` | string | Die ID des erstellten Formulars |
|
||||
| `title` | string | Der Formulartitel |
|
||||
| `documentTitle` | string | Der Dokumenttitel in Drive |
|
||||
| `responderUri` | string | Die URI zum Teilen mit Befragten |
|
||||
| `revisionId` | string | Die Revisions-ID des Formulars |
|
||||
|
||||
### `google_forms_batch_update`
|
||||
|
||||
Mehrere Aktualisierungen auf ein Formular anwenden (Elemente hinzufügen, Informationen aktualisieren, Einstellungen ändern usw.)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `formId` | string | Ja | Google Forms Formular-ID |
|
||||
| `requests` | json | Ja | Array von Aktualisierungsanfragen (updateFormInfo, updateSettings, createItem, updateItem, moveItem, deleteItem) |
|
||||
| `includeFormInResponse` | boolean | Nein | Ob das aktualisierte Formular in der Antwort zurückgegeben werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `replies` | array | Die Antworten von jeder Aktualisierungsanfrage |
|
||||
| `writeControl` | object | Schreibsteuerungsinformationen mit Revisions-IDs |
|
||||
| ↳ `requiredRevisionId` | string | Erforderliche Revisions-ID zur Konflikterkennung |
|
||||
| ↳ `targetRevisionId` | string | Ziel-Revisions-ID |
|
||||
| `form` | object | Das aktualisierte Formular (falls includeFormInResponse true war) |
|
||||
| ↳ `formId` | string | Die Formular-ID |
|
||||
| ↳ `info` | object | Formularinformationen mit Titel und Beschreibung |
|
||||
| ↳ `title` | string | Der für Befragte sichtbare Formulartitel |
|
||||
| ↳ `description` | string | Die Formularbeschreibung |
|
||||
| ↳ `documentTitle` | string | Der in Drive sichtbare Dokumenttitel |
|
||||
| ↳ `settings` | object | Formulareinstellungen |
|
||||
| ↳ `quizSettings` | object | Quiz-Einstellungen |
|
||||
| ↳ `isQuiz` | boolean | Ob das Formular ein Quiz ist |
|
||||
| ↳ `emailCollectionType` | string | E-Mail-Erfassungstyp |
|
||||
| ↳ `revisionId` | string | Die Revisions-ID des Formulars |
|
||||
| ↳ `responderUri` | string | Die URI zum Teilen mit Befragten |
|
||||
| ↳ `linkedSheetId` | string | Die ID des verknüpften Google Sheets |
|
||||
| ↳ `publishSettings` | object | Formularveröffentlichungseinstellungen |
|
||||
| ↳ `publishState` | object | Aktueller Veröffentlichungsstatus |
|
||||
| ↳ `isPublished` | boolean | Ob das Formular veröffentlicht ist |
|
||||
| ↳ `isAcceptingResponses` | boolean | Ob das Formular Antworten akzeptiert |
|
||||
|
||||
### `google_forms_set_publish_settings`
|
||||
|
||||
Aktualisiert die Veröffentlichungseinstellungen eines Formulars (veröffentlichen/zurückziehen, Antworten akzeptieren)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `formId` | string | Ja | Google Forms Formular-ID |
|
||||
| `isPublished` | boolean | Ja | Ob das Formular veröffentlicht und für andere sichtbar ist |
|
||||
| `isAcceptingResponses` | boolean | Nein | Ob das Formular Antworten akzeptiert \(wird auf false gesetzt, wenn isPublished false ist\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `formId` | string | Die Formular-ID |
|
||||
| `publishSettings` | json | Die aktualisierten Veröffentlichungseinstellungen |
|
||||
| ↳ `publishState` | object | Der Veröffentlichungsstatus |
|
||||
| ↳ `isPublished` | boolean | Ob das Formular veröffentlicht ist |
|
||||
| ↳ `isAcceptingResponses` | boolean | Ob das Formular Antworten akzeptiert |
|
||||
|
||||
### `google_forms_create_watch`
|
||||
|
||||
Erstellt eine Benachrichtigungsüberwachung für Formularänderungen (Schemaänderungen oder neue Antworten)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `formId` | string | Ja | Google Forms Formular-ID zur Überwachung |
|
||||
| `eventType` | string | Ja | Zu überwachender Ereignistyp: SCHEMA \(Formularänderungen\) oder RESPONSES \(neue Einreichungen\) |
|
||||
| `topicName` | string | Ja | Der Cloud Pub/Sub Topic-Name \(Format: projects/\{project\}/topics/\{topic\}\) |
|
||||
| `watchId` | string | Nein | Benutzerdefinierte Watch-ID \(4-63 Zeichen, Kleinbuchstaben, Zahlen, Bindestriche\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Die Watch-ID |
|
||||
| `eventType` | string | Der überwachte Ereignistyp |
|
||||
| `topicName` | string | Das Cloud Pub/Sub-Thema |
|
||||
| `createTime` | string | Zeitpunkt der Erstellung der Watch |
|
||||
| `expireTime` | string | Ablaufzeitpunkt der Watch \(7 Tage nach Erstellung\) |
|
||||
| `state` | string | Der Watch-Status \(ACTIVE, SUSPENDED\) |
|
||||
|
||||
### `google_forms_list_watches`
|
||||
|
||||
Alle Benachrichtigungs-Watches für ein Formular auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `formId` | string | Ja | Google Forms Formular-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `watches` | array | Liste der Watches für das Formular |
|
||||
| ↳ `id` | string | Watch-ID |
|
||||
| ↳ `eventType` | string | Ereignistyp \(SCHEMA oder RESPONSES\) |
|
||||
| ↳ `createTime` | string | Zeitpunkt der Erstellung der Watch |
|
||||
| ↳ `expireTime` | string | Ablaufzeitpunkt der Watch |
|
||||
| ↳ `state` | string | Watch-Status |
|
||||
|
||||
### `google_forms_delete_watch`
|
||||
|
||||
Eine Benachrichtigungs-Watch von einem Formular löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `formId` | string | Ja | Google Forms Formular-ID |
|
||||
| `watchId` | string | Ja | Zu löschende Watch-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deleted` | boolean | Ob die Überwachung erfolgreich gelöscht wurde |
|
||||
|
||||
### `google_forms_renew_watch`
|
||||
|
||||
Verlängert eine Benachrichtigungsüberwachung um weitere 7 Tage
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `formId` | string | Ja | Google Forms Formular-ID |
|
||||
| `watchId` | string | Ja | Zu verlängernde Überwachungs-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Die Überwachungs-ID |
|
||||
| `eventType` | string | Der überwachte Ereignistyp |
|
||||
| `expireTime` | string | Die neue Ablaufzeit |
|
||||
| `state` | string | Der Überwachungsstatus |
|
||||
@@ -0,0 +1,417 @@
|
||||
---
|
||||
title: Google Groups
|
||||
description: Google Workspace-Gruppen und deren Mitglieder verwalten
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="google_groups"
|
||||
color="#E8F0FE"
|
||||
/>
|
||||
|
||||
## Gebrauchsanweisung
|
||||
|
||||
Verbinden Sie sich mit Google Workspace, um Gruppen und deren Mitglieder mit der Admin SDK Directory API zu erstellen, zu aktualisieren und zu verwalten.
|
||||
|
||||
## Tools
|
||||
|
||||
### `google_groups_list_groups`
|
||||
|
||||
Alle Gruppen in einer Google Workspace-Domain auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `customer` | string | Nein | Kunden-ID oder "my_customer" für die Domain des authentifizierten Benutzers |
|
||||
| `domain` | string | Nein | Domainname zum Filtern von Gruppen |
|
||||
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(1-200\) |
|
||||
| `pageToken` | string | Nein | Token für Paginierung |
|
||||
| `query` | string | Nein | Suchabfrage zum Filtern von Gruppen \(z.B. "email:admin*"\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `groups` | json | Array von Gruppenobjekten |
|
||||
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
### `google_groups_get_group`
|
||||
|
||||
Details einer bestimmten Google-Gruppe nach E-Mail oder Gruppen-ID abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `group` | json | Gruppenobjekt |
|
||||
|
||||
### `google_groups_create_group`
|
||||
|
||||
Eine neue Google-Gruppe in der Domain erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `email` | string | Ja | E-Mail-Adresse für die neue Gruppe (z.B. team@yourdomain.com) |
|
||||
| `name` | string | Ja | Anzeigename für die Gruppe |
|
||||
| `description` | string | Nein | Beschreibung der Gruppe |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `group` | json | Erstelltes Gruppenobjekt |
|
||||
|
||||
### `google_groups_update_group`
|
||||
|
||||
Eine bestehende Google-Gruppe aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
|
||||
| `name` | string | Nein | Neuer Anzeigename für die Gruppe |
|
||||
| `description` | string | Nein | Neue Beschreibung für die Gruppe |
|
||||
| `email` | string | Nein | Neue E-Mail-Adresse für die Gruppe |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `group` | json | Aktualisiertes Gruppenobjekt |
|
||||
|
||||
### `google_groups_delete_group`
|
||||
|
||||
Eine Google-Gruppe löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID zum Löschen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgsmeldung |
|
||||
|
||||
### `google_groups_list_members`
|
||||
|
||||
Alle Mitglieder einer Google-Gruppe auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
|
||||
| `maxResults` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(1-200\) |
|
||||
| `pageToken` | string | Nein | Token für Seitenumbruch |
|
||||
| `roles` | string | Nein | Nach Rollen filtern \(durch Komma getrennt: OWNER, MANAGER, MEMBER\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `members` | json | Array von Mitgliederobjekten |
|
||||
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
### `google_groups_get_member`
|
||||
|
||||
Details eines bestimmten Mitglieds in einer Google-Gruppe abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
|
||||
| `memberKey` | string | Ja | E-Mail-Adresse des Mitglieds oder eindeutige Mitglieds-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `member` | json | Mitgliederobjekt |
|
||||
|
||||
### `google_groups_add_member`
|
||||
|
||||
Ein neues Mitglied zu einer Google-Gruppe hinzufügen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
|
||||
| `email` | string | Ja | E-Mail-Adresse des hinzuzufügenden Mitglieds |
|
||||
| `role` | string | Nein | Rolle für das Mitglied \(MEMBER, MANAGER oder OWNER\). Standardmäßig MEMBER. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `member` | json | Hinzugefügtes Mitgliederobjekt |
|
||||
|
||||
### `google_groups_remove_member`
|
||||
|
||||
Ein Mitglied aus einer Google-Gruppe entfernen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
|
||||
| `memberKey` | string | Ja | E-Mail-Adresse oder eindeutige ID des zu entfernenden Mitglieds |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Erfolgsmeldung |
|
||||
|
||||
### `google_groups_update_member`
|
||||
|
||||
Ein Mitglied aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
|
||||
| `memberKey` | string | Ja | E-Mail-Adresse des Mitglieds oder eindeutige Mitglieds-ID |
|
||||
| `role` | string | Ja | Neue Rolle für das Mitglied \(MEMBER, MANAGER oder OWNER\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `member` | json | Aktualisiertes Mitgliederobjekt |
|
||||
|
||||
### `google_groups_has_member`
|
||||
|
||||
Prüfen, ob ein Benutzer Mitglied einer Google-Gruppe ist
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupKey` | string | Ja | E-Mail-Adresse der Gruppe oder eindeutige Gruppen-ID |
|
||||
| `memberKey` | string | Ja | Zu prüfende E-Mail-Adresse des Mitglieds oder eindeutige Mitglieds-ID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `isMember` | boolean | Gibt an, ob der Benutzer ein Mitglied der Gruppe ist |
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `tools`
|
||||
- Typ: `google_groups`
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupKey` | string | Ja | Gruppenkennung. Kann die E-Mail-Adresse der Gruppe \(z. B. team@example.com\) oder die eindeutige Gruppen-ID sein |
|
||||
| `memberKey` | string | Ja | Zu prüfende Mitgliederkennung. Kann die E-Mail-Adresse des Mitglieds \(z. B. user@example.com\) oder die eindeutige Mitglieds-ID sein |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `isMember` | boolean | Gibt an, ob der Benutzer ein Mitglied der Gruppe ist |
|
||||
|
||||
### `google_groups_list_aliases`
|
||||
|
||||
Alle E-Mail-Aliase für eine Google-Gruppe auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupKey` | string | Ja | Gruppenkennung. Kann die E-Mail-Adresse der Gruppe \(z. B. team@example.com\) oder die eindeutige Gruppen-ID sein |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `aliases` | array | Liste der E-Mail-Aliase für die Gruppe |
|
||||
| ↳ `id` | string | Eindeutige Gruppenkennung |
|
||||
| ↳ `primaryEmail` | string | Primäre E-Mail-Adresse der Gruppe |
|
||||
| ↳ `alias` | string | Alias-E-Mail-Adresse |
|
||||
| ↳ `kind` | string | API-Ressourcentyp |
|
||||
| ↳ `etag` | string | Ressourcenversionskennung |
|
||||
|
||||
### `google_groups_add_alias`
|
||||
|
||||
Einen E-Mail-Alias zu einer Google-Gruppe hinzufügen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupKey` | string | Ja | Gruppenkennung. Kann die E-Mail-Adresse der Gruppe \(z. B. team@example.com\) oder die eindeutige Gruppen-ID sein |
|
||||
| `alias` | string | Ja | Der E-Mail-Alias, der zur Gruppe hinzugefügt werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Eindeutige Gruppenkennung |
|
||||
| `primaryEmail` | string | Primäre E-Mail-Adresse der Gruppe |
|
||||
| `alias` | string | Der hinzugefügte Alias |
|
||||
| `kind` | string | API-Ressourcentyp |
|
||||
| `etag` | string | Ressourcenversionskennung |
|
||||
|
||||
### `google_groups_remove_alias`
|
||||
|
||||
Einen E-Mail-Alias von einer Google-Gruppe entfernen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupKey` | string | Ja | Gruppenkennung. Kann die E-Mail-Adresse der Gruppe \(z. B. team@example.com\) oder die eindeutige Gruppen-ID sein |
|
||||
| `alias` | string | Ja | Der E-Mail-Alias, der aus der Gruppe entfernt werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deleted` | boolean | Gibt an, ob der Alias erfolgreich gelöscht wurde |
|
||||
|
||||
### `google_groups_get_settings`
|
||||
|
||||
Die Einstellungen für eine Google-Gruppe abrufen, einschließlich Zugriffsberechtigungen, Moderation und Veröffentlichungsoptionen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupEmail` | string | Ja | Die E-Mail-Adresse der Gruppe \(z. B. team@example.com\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `email` | string | Die E-Mail-Adresse der Gruppe |
|
||||
| `name` | string | Der Gruppenname \(max. 75 Zeichen\) |
|
||||
| `description` | string | Die Gruppenbeschreibung \(max. 4096 Zeichen\) |
|
||||
| `whoCanJoin` | string | Wer der Gruppe beitreten kann \(ANYONE_CAN_JOIN, ALL_IN_DOMAIN_CAN_JOIN, INVITED_CAN_JOIN, CAN_REQUEST_TO_JOIN\) |
|
||||
| `whoCanViewMembership` | string | Wer die Gruppenmitgliedschaft anzeigen kann |
|
||||
| `whoCanViewGroup` | string | Wer Gruppennachrichten anzeigen kann |
|
||||
| `whoCanPostMessage` | string | Wer Nachrichten in der Gruppe veröffentlichen kann |
|
||||
| `allowExternalMembers` | string | Ob externe Benutzer Mitglieder sein können |
|
||||
| `allowWebPosting` | string | Ob Web-Veröffentlichung erlaubt ist |
|
||||
| `primaryLanguage` | string | Die primäre Sprache der Gruppe |
|
||||
| `isArchived` | string | Ob Nachrichten archiviert werden |
|
||||
| `archiveOnly` | string | Ob die Gruppe nur archiviert ist \(inaktiv\) |
|
||||
| `messageModerationLevel` | string | Nachrichtenmoderationsebene |
|
||||
| `spamModerationLevel` | string | Spam-Behandlungsebene \(ALLOW, MODERATE, SILENTLY_MODERATE, REJECT\) |
|
||||
| `replyTo` | string | Standard-Antwortziel |
|
||||
| `customReplyTo` | string | Benutzerdefinierte E-Mail für Antworten |
|
||||
| `includeCustomFooter` | string | Ob eine benutzerdefinierte Fußzeile eingefügt werden soll |
|
||||
| `customFooterText` | string | Benutzerdefinierter Fußzeilentext \(max. 1000 Zeichen\) |
|
||||
| `sendMessageDenyNotification` | string | Ob Ablehnungsbenachrichtigungen gesendet werden sollen |
|
||||
| `defaultMessageDenyNotificationText` | string | Standard-Ablehnungsnachrichtentext |
|
||||
| `membersCanPostAsTheGroup` | string | Ob Mitglieder als Gruppe veröffentlichen können |
|
||||
| `includeInGlobalAddressList` | string | Ob in der globalen Adressliste enthalten |
|
||||
| `whoCanLeaveGroup` | string | Wer die Gruppe verlassen kann |
|
||||
| `whoCanContactOwner` | string | Wer den Gruppeninhaber kontaktieren kann |
|
||||
| `favoriteRepliesOnTop` | string | Ob bevorzugte Antworten oben erscheinen |
|
||||
| `whoCanApproveMembers` | string | Wer neue Mitglieder genehmigen kann |
|
||||
| `whoCanBanUsers` | string | Wer Benutzer sperren kann |
|
||||
| `whoCanModerateMembers` | string | Wer Mitglieder verwalten kann |
|
||||
| `whoCanModerateContent` | string | Wer Inhalte moderieren kann |
|
||||
| `whoCanAssistContent` | string | Wer bei Inhaltsmetadaten unterstützen kann |
|
||||
| `enableCollaborativeInbox` | string | Ob der kollaborative Posteingang aktiviert ist |
|
||||
| `whoCanDiscoverGroup` | string | Wer die Gruppe entdecken kann |
|
||||
| `defaultSender` | string | Standard-Absenderidentität \(DEFAULT_SELF oder GROUP\) |
|
||||
|
||||
### `google_groups_update_settings`
|
||||
|
||||
Aktualisieren Sie die Einstellungen für eine Google-Gruppe, einschließlich Zugriffsberechtigungen, Moderation und Veröffentlichungsoptionen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `groupEmail` | string | Ja | Die E-Mail-Adresse der Gruppe \(z. B. team@example.com\) |
|
||||
| `name` | string | Nein | Der Gruppenname \(max. 75 Zeichen\) |
|
||||
| `description` | string | Nein | Die Gruppenbeschreibung \(max. 4096 Zeichen\) |
|
||||
| `whoCanJoin` | string | Nein | Wer kann beitreten: ANYONE_CAN_JOIN, ALL_IN_DOMAIN_CAN_JOIN, INVITED_CAN_JOIN, CAN_REQUEST_TO_JOIN |
|
||||
| `whoCanViewMembership` | string | Nein | Wer kann Mitgliedschaft einsehen: ALL_IN_DOMAIN_CAN_VIEW, ALL_MEMBERS_CAN_VIEW, ALL_MANAGERS_CAN_VIEW |
|
||||
| `whoCanViewGroup` | string | Nein | Wer kann Gruppennachrichten einsehen: ANYONE_CAN_VIEW, ALL_IN_DOMAIN_CAN_VIEW, ALL_MEMBERS_CAN_VIEW, ALL_MANAGERS_CAN_VIEW |
|
||||
| `whoCanPostMessage` | string | Nein | Wer kann posten: NONE_CAN_POST, ALL_MANAGERS_CAN_POST, ALL_MEMBERS_CAN_POST, ALL_OWNERS_CAN_POST, ALL_IN_DOMAIN_CAN_POST, ANYONE_CAN_POST |
|
||||
| `allowExternalMembers` | string | Nein | Ob externe Benutzer Mitglieder sein können: true oder false |
|
||||
| `allowWebPosting` | string | Nein | Ob Web-Posting erlaubt ist: true oder false |
|
||||
| `primaryLanguage` | string | Nein | Die Hauptsprache der Gruppe \(z. B. de\) |
|
||||
| `isArchived` | string | Nein | Ob Nachrichten archiviert werden: true oder false |
|
||||
| `archiveOnly` | string | Nein | Ob die Gruppe nur archiviert \(inaktiv\) ist: true oder false |
|
||||
| `messageModerationLevel` | string | Nein | Nachrichtenmoderation: MODERATE_ALL_MESSAGES, MODERATE_NON_MEMBERS, MODERATE_NEW_MEMBERS, MODERATE_NONE |
|
||||
| `spamModerationLevel` | string | Nein | Spam-Behandlung: ALLOW, MODERATE, SILENTLY_MODERATE, REJECT |
|
||||
| `replyTo` | string | Nein | Standard-Antwort: REPLY_TO_CUSTOM, REPLY_TO_SENDER, REPLY_TO_LIST, REPLY_TO_OWNER, REPLY_TO_IGNORE, REPLY_TO_MANAGERS |
|
||||
| `customReplyTo` | string | Nein | Benutzerdefinierte E-Mail für Antworten \(wenn replyTo REPLY_TO_CUSTOM ist\) |
|
||||
| `includeCustomFooter` | string | Nein | Ob benutzerdefinierte Fußzeile eingefügt werden soll: true oder false |
|
||||
| `customFooterText` | string | Nein | Benutzerdefinierter Fußzeilentext \(max. 1000 Zeichen\) |
|
||||
| `sendMessageDenyNotification` | string | Nein | Ob Ablehnungsbenachrichtigungen gesendet werden sollen: true oder false |
|
||||
| `defaultMessageDenyNotificationText` | string | Nein | Standard-Ablehnungsnachrichtentext |
|
||||
| `membersCanPostAsTheGroup` | string | Nein | Ob Mitglieder als Gruppe posten können: true oder false |
|
||||
| `includeInGlobalAddressList` | string | Nein | Ob in der globalen Adressliste enthalten: true oder false |
|
||||
| `whoCanLeaveGroup` | string | Nein | Wer kann austreten: ALL_MANAGERS_CAN_LEAVE, ALL_MEMBERS_CAN_LEAVE, NONE_CAN_LEAVE |
|
||||
| `whoCanContactOwner` | string | Nein | Wer kann Inhaber kontaktieren: ALL_IN_DOMAIN_CAN_CONTACT, ALL_MANAGERS_CAN_CONTACT, ALL_MEMBERS_CAN_CONTACT, ANYONE_CAN_CONTACT |
|
||||
| `favoriteRepliesOnTop` | string | Nein | Ob bevorzugte Antworten oben erscheinen: true oder false |
|
||||
| `whoCanApproveMembers` | string | Nein | Wer kann Mitglieder genehmigen: ALL_OWNERS_CAN_APPROVE, ALL_MANAGERS_CAN_APPROVE, ALL_MEMBERS_CAN_APPROVE, NONE_CAN_APPROVE |
|
||||
| `whoCanBanUsers` | string | Nein | Wer kann Benutzer sperren: OWNERS_ONLY, OWNERS_AND_MANAGERS, NONE |
|
||||
| `whoCanModerateMembers` | string | Nein | Wer kann Mitglieder verwalten: OWNERS_ONLY, OWNERS_AND_MANAGERS, ALL_MEMBERS, NONE |
|
||||
| `whoCanModerateContent` | string | Nein | Wer kann Inhalte moderieren: OWNERS_ONLY, OWNERS_AND_MANAGERS, ALL_MEMBERS, NONE |
|
||||
| `whoCanAssistContent` | string | Nein | Wer kann bei Inhaltsmetadaten unterstützen: OWNERS_ONLY, OWNERS_AND_MANAGERS, ALL_MEMBERS, NONE |
|
||||
| `enableCollaborativeInbox` | string | Nein | Ob kollaborativer Posteingang aktiviert ist: true oder false |
|
||||
| `whoCanDiscoverGroup` | string | Nein | Wer kann entdecken: ANYONE_CAN_DISCOVER, ALL_IN_DOMAIN_CAN_DISCOVER, ALL_MEMBERS_CAN_DISCOVER |
|
||||
| `defaultSender` | string | Nein | Standard-Absender: DEFAULT_SELF oder GROUP |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `email` | string | Die E-Mail-Adresse der Gruppe |
|
||||
| `name` | string | Der Gruppenname |
|
||||
| `description` | string | Die Gruppenbeschreibung |
|
||||
| `whoCanJoin` | string | Wer der Gruppe beitreten kann |
|
||||
| `whoCanViewMembership` | string | Wer die Gruppenmitgliedschaft einsehen kann |
|
||||
| `whoCanViewGroup` | string | Wer Gruppennachrichten einsehen kann |
|
||||
| `whoCanPostMessage` | string | Wer Nachrichten in der Gruppe posten kann |
|
||||
| `allowExternalMembers` | string | Ob externe Benutzer Mitglieder sein können |
|
||||
| `allowWebPosting` | string | Ob Web-Posting erlaubt ist |
|
||||
| `primaryLanguage` | string | Die Hauptsprache der Gruppe |
|
||||
| `isArchived` | string | Ob Nachrichten archiviert werden |
|
||||
| `archiveOnly` | string | Ob die Gruppe nur zum Archivieren dient |
|
||||
| `messageModerationLevel` | string | Moderationsstufe für Nachrichten |
|
||||
| `spamModerationLevel` | string | Spam-Behandlungsstufe |
|
||||
| `replyTo` | string | Standard-Antwortziel |
|
||||
| `customReplyTo` | string | Benutzerdefinierte E-Mail für Antworten |
|
||||
| `includeCustomFooter` | string | Ob eine benutzerdefinierte Fußzeile eingefügt werden soll |
|
||||
| `customFooterText` | string | Text der benutzerdefinierten Fußzeile |
|
||||
| `sendMessageDenyNotification` | string | Ob Ablehnungsbenachrichtigungen gesendet werden sollen |
|
||||
| `defaultMessageDenyNotificationText` | string | Text der Standard-Ablehnungsnachricht |
|
||||
| `membersCanPostAsTheGroup` | string | Ob Mitglieder als Gruppe posten können |
|
||||
| `includeInGlobalAddressList` | string | Ob in der globalen Adressliste enthalten |
|
||||
| `whoCanLeaveGroup` | string | Wer die Gruppe verlassen kann |
|
||||
| `whoCanContactOwner` | string | Wer den Gruppeninhaber kontaktieren kann |
|
||||
| `favoriteRepliesOnTop` | string | Ob bevorzugte Antworten oben erscheinen |
|
||||
| `whoCanApproveMembers` | string | Wer neue Mitglieder genehmigen kann |
|
||||
| `whoCanBanUsers` | string | Wer Benutzer sperren kann |
|
||||
| `whoCanModerateMembers` | string | Wer Mitglieder verwalten kann |
|
||||
| `whoCanModerateContent` | string | Wer Inhalte moderieren kann |
|
||||
| `whoCanAssistContent` | string | Wer bei Inhalts-Metadaten unterstützen kann |
|
||||
| `enableCollaborativeInbox` | string | Ob der gemeinsame Posteingang aktiviert ist |
|
||||
| `whoCanDiscoverGroup` | string | Wer die Gruppe entdecken kann |
|
||||
| `defaultSender` | string | Standard-Absenderidentität |
|
||||
@@ -0,0 +1,445 @@
|
||||
---
|
||||
title: Google Maps
|
||||
description: Geocodierung, Routenplanung, Orte und Entfernungsberechnungen
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="google_maps"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Google Maps](https://maps.google.com) ist eine umfassende Plattform, die eine Vielzahl von APIs für Kartierung, Geocodierung, Routenplanung, Orte, Umweltdaten und mehr bietet. Über Sim können Ihre Agenten wichtige Google Maps Platform APIs nutzen, um eine Vielzahl standortbasierter Workflows zu automatisieren.
|
||||
|
||||
**Die folgenden Google Maps APIs sind in dieser Integration enthalten:**
|
||||
|
||||
- **Geocoding API:** Wandelt Adressen in Breiten- und Längengrade um und führt Reverse-Geocodierung durch.
|
||||
- **Directions API:** Berechnet Routen und Wegbeschreibungen für Auto, Fußgänger, Fahrrad oder öffentliche Verkehrsmittel zwischen Standorten.
|
||||
- **Distance Matrix API:** Berechnet Reiseentfernungen und -zeiten für mehrere Kombinationen von Start- und Zielorten.
|
||||
- **Places API:** Sucht nach Orten (Unternehmen, Sehenswürdigkeiten, Einrichtungen) nach Name, Typ oder Nähe.
|
||||
- **Place Details API:** Ruft detaillierte Informationen für einen bestimmten Ort ab, wie Adresse, Bewertungen, Öffnungszeiten und Kontaktinformationen.
|
||||
- **Elevation API:** Ermittelt Höhendaten (Höhe über dem Meeresspiegel) für beliebige Standorte weltweit.
|
||||
- **Time Zone API:** Ruft Zeitzoneninformationen für jeden geografischen Standort ab.
|
||||
- **Air Quality API:** Ruft Echtzeit-Luftqualitätsdaten für bestimmte Koordinaten ab.
|
||||
|
||||
Mit diesen APIs können Ihre Sim-Agenten die Standortsuche und -anreicherung automatisieren, optimale Routen und Lieferungen planen, Zeiten und Entfernungen schätzen, Ortsdaten analysieren, Datensätze mit geografischem Kontext anreichern, Umweltbedingungen abrufen und mehr – alles ohne manuelle Arbeit oder externe Tools.
|
||||
|
||||
Wenn Sie Funktionen benötigen, die über das hier Aufgeführte hinausgehen, oder Unterstützung für zusätzliche Google Maps APIs anfordern möchten, lassen Sie es uns wissen!
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integrieren Sie Google Maps Platform APIs in Ihren Workflow. Unterstützt Geocodierung von Adressen zu Koordinaten, Reverse-Geocodierung, Abrufen von Wegbeschreibungen zwischen Standorten, Berechnung von Distanzmatrizen, Suche nach Orten, Abrufen von Ortsdetails, Höhendaten und Zeitzoneninformationen.
|
||||
|
||||
## Tools
|
||||
|
||||
### `google_maps_air_quality`
|
||||
|
||||
Aktuelle Luftqualitätsdaten für einen Standort abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Google Maps API-Schlüssel mit aktivierter Air Quality API |
|
||||
| `lat` | number | Ja | Breitengradkoordinate |
|
||||
| `lng` | number | Ja | Längengradkoordinate |
|
||||
| `languageCode` | string | Nein | Sprachcode für die Antwort \(z. B. "en", "es"\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `dateTime` | string | Zeitstempel der Luftqualitätsdaten |
|
||||
| `regionCode` | string | Regionscode für den Standort |
|
||||
| `indexes` | array | Array von Luftqualitätsindizes |
|
||||
| ↳ `code` | string | Indexcode \(z. B. "uaqi", "usa_epa"\) |
|
||||
| ↳ `displayName` | string | Anzeigename des Index |
|
||||
| ↳ `aqi` | number | Luftqualitätsindexwert |
|
||||
| ↳ `aqiDisplay` | string | Formatierte AQI-Anzeigezeichenfolge |
|
||||
| ↳ `color` | object | RGB-Farbe für die AQI-Stufe |
|
||||
| ↳ `category` | string | Kategoriebeschreibung \(z. B. "Gut", "Mäßig"\) |
|
||||
| ↳ `dominantPollutant` | string | Der dominierende Schadstoff |
|
||||
| `pollutants` | array | Array von Schadstoffkonzentrationen |
|
||||
| ↳ `code` | string | Schadstoffcode \(z. B. "pm25", "o3"\) |
|
||||
| ↳ `displayName` | string | Anzeigename |
|
||||
| ↳ `fullName` | string | Vollständiger Schadstoffname |
|
||||
| ↳ `concentration` | object | Konzentrationsinformationen |
|
||||
| ↳ `value` | number | Konzentrationswert |
|
||||
| ↳ `units` | string | Einheiten \(z. B. "PARTS_PER_BILLION"\) |
|
||||
| ↳ `additionalInfo` | object | Zusätzliche Informationen über Quellen und Auswirkungen |
|
||||
| `healthRecommendations` | object | Gesundheitsempfehlungen für verschiedene Bevölkerungsgruppen |
|
||||
|
||||
### `google_maps_directions`
|
||||
|
||||
Wegbeschreibung und Routeninformationen zwischen zwei Standorten abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
|
||||
| `origin` | string | Ja | Startort \(Adresse oder lat,lng\) |
|
||||
| `destination` | string | Ja | Zielort \(Adresse oder lat,lng\) |
|
||||
| `mode` | string | Nein | Reisemodus: driving, walking, bicycling oder transit |
|
||||
| `avoid` | string | Nein | Zu vermeidende Merkmale: tolls, highways oder ferries |
|
||||
| `waypoints` | json | Nein | Array von Zwischenwegpunkten |
|
||||
| `units` | string | Nein | Einheitensystem: metric oder imperial |
|
||||
| `language` | string | Nein | Sprachcode für Ergebnisse \(z. B. en, es, fr\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `routes` | array | Alle verfügbaren Routen |
|
||||
| ↳ `summary` | string | Routenzusammenfassung \(Hauptstraßennamen\) |
|
||||
| ↳ `legs` | array | Routenabschnitte \(Segmente zwischen Wegpunkten\) |
|
||||
| ↳ `overviewPolyline` | string | Kodierte Polylinie für die gesamte Route |
|
||||
| ↳ `warnings` | array | Routenwarnungen |
|
||||
| ↳ `waypointOrder` | array | Optimierte Wegpunktreihenfolge \(falls angefordert\) |
|
||||
| `distanceText` | string | Gesamtentfernung als lesbarer Text \(z. B. „5,2 km"\) |
|
||||
| `distanceMeters` | number | Gesamtentfernung in Metern |
|
||||
| `durationText` | string | Gesamtdauer als lesbarer Text \(z. B. „15 Min."\) |
|
||||
| `durationSeconds` | number | Gesamtdauer in Sekunden |
|
||||
| `startAddress` | string | Aufgelöste Startadresse |
|
||||
| `endAddress` | string | Aufgelöste Zieladresse |
|
||||
| `steps` | array | Schritt-für-Schritt-Navigationsanweisungen |
|
||||
| ↳ `instruction` | string | Navigationsanweisung \(HTML entfernt\) |
|
||||
| ↳ `distanceText` | string | Schrittentfernung als Text |
|
||||
| ↳ `distanceMeters` | number | Schrittentfernung in Metern |
|
||||
| ↳ `durationText` | string | Schrittdauer als Text |
|
||||
| ↳ `durationSeconds` | number | Schrittdauer in Sekunden |
|
||||
| ↳ `startLocation` | object | Startkoordinaten des Schritts |
|
||||
| ↳ `endLocation` | object | Endkoordinaten des Schritts |
|
||||
| ↳ `travelMode` | string | Reisemodus für diesen Schritt |
|
||||
| ↳ `maneuver` | string | Manövertyp \(turn-left usw.\) |
|
||||
| `polyline` | string | Kodierte Polylinie für die Hauptroute |
|
||||
|
||||
### `google_maps_distance_matrix`
|
||||
|
||||
Berechnung von Reiseentfernung und -zeit zwischen mehreren Start- und Zielorten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
|
||||
| `origin` | string | Ja | Startort \(Adresse oder lat,lng\) |
|
||||
| `destinations` | json | Ja | Array von Zielorten |
|
||||
| `mode` | string | Nein | Reisemodus: driving, walking, bicycling oder transit |
|
||||
| `avoid` | string | Nein | Zu vermeidende Merkmale: tolls, highways oder ferries |
|
||||
| `units` | string | Nein | Einheitensystem: metric oder imperial |
|
||||
| `language` | string | Nein | Sprachcode für Ergebnisse \(z. B. en, es, fr\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `originAddresses` | array | Aufgelöste Startadressen |
|
||||
| `destinationAddresses` | array | Aufgelöste Zieladressen |
|
||||
| `rows` | array | Distanzmatrix-Zeilen \(eine pro Startort\) |
|
||||
| ↳ `elements` | array | Elemente \(eines pro Zielort\) |
|
||||
| ↳ `distanceText` | string | Entfernung als Text \(z. B. "5,2 km"\) |
|
||||
| ↳ `distanceMeters` | number | Entfernung in Metern |
|
||||
| ↳ `durationText` | string | Dauer als Text \(z. B. "15 Min."\) |
|
||||
| ↳ `durationSeconds` | number | Dauer in Sekunden |
|
||||
| ↳ `durationInTrafficText` | string | Dauer im Verkehr als Text |
|
||||
| ↳ `durationInTrafficSeconds` | number | Dauer im Verkehr in Sekunden |
|
||||
| ↳ `status` | string | Elementstatus \(OK, NOT_FOUND, ZERO_RESULTS\) |
|
||||
|
||||
### `google_maps_elevation`
|
||||
|
||||
Höhendaten für einen Standort abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
|
||||
| `lat` | number | Ja | Breitengradkoordinate |
|
||||
| `lng` | number | Ja | Längengradkoordinate |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `elevation` | number | Höhe in Metern über dem Meeresspiegel \(negativ für darunter\) |
|
||||
| `lat` | number | Breitengrad der Höhenmessung |
|
||||
| `lng` | number | Längengrad der Höhenmessung |
|
||||
| `resolution` | number | Maximale Entfernung zwischen Datenpunkten \(Meter\), aus denen die Höhe interpoliert wurde |
|
||||
|
||||
### `google_maps_geocode`
|
||||
|
||||
Eine Adresse in geografische Koordinaten (Breiten- und Längengrad) umwandeln
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
|
||||
| `address` | string | Ja | Die zu geokodierende Adresse |
|
||||
| `language` | string | Nein | Sprachcode für Ergebnisse \(z. B. en, es, fr\) |
|
||||
| `region` | string | Nein | Regionspräferenz als ccTLD-Code \(z. B. us, uk\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `formattedAddress` | string | Die formatierte Adresszeichenfolge |
|
||||
| `lat` | number | Breitengradkoordinate |
|
||||
| `lng` | number | Längengradkoordinate |
|
||||
| `location` | json | Standortobjekt mit lat und lng |
|
||||
| `placeId` | string | Google Place ID für diesen Standort |
|
||||
| `addressComponents` | array | Detaillierte Adresskomponenten |
|
||||
| ↳ `longName` | string | Vollständiger Name der Komponente |
|
||||
| ↳ `shortName` | string | Abgekürzter Name |
|
||||
| ↳ `types` | array | Komponententypen |
|
||||
| `locationType` | string | Standortgenauigkeitstyp \(ROOFTOP, RANGE_INTERPOLATED, etc.\) |
|
||||
|
||||
### `google_maps_geolocate`
|
||||
|
||||
Geolokalisierung eines Geräts mithilfe von WLAN-Zugangspunkten, Mobilfunkmasten oder IP-Adresse
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Google Maps API-Schlüssel mit aktivierter Geolocation API |
|
||||
| `homeMobileCountryCode` | number | Nein | Heimat-Mobilfunkländercode \(MCC\) |
|
||||
| `homeMobileNetworkCode` | number | Nein | Heimat-Mobilfunknetzcode \(MNC\) |
|
||||
| `radioType` | string | Nein | Funktyp: lte, gsm, cdma, wcdma oder nr |
|
||||
| `carrier` | string | Nein | Name des Mobilfunkanbieters |
|
||||
| `considerIp` | boolean | Nein | Ob IP-Adresse für Geolokalisierung verwendet werden soll \(Standard: true\) |
|
||||
| `cellTowers` | array | Nein | Array von Mobilfunkmast-Objekten mit cellId, locationAreaCode, mobileCountryCode, mobileNetworkCode |
|
||||
| `wifiAccessPoints` | array | Nein | Array von WLAN-Zugangspunkt-Objekten mit macAddress \(erforderlich\), signalStrength usw. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `lat` | number | Breitengrad-Koordinate |
|
||||
| `lng` | number | Längengrad-Koordinate |
|
||||
| `accuracy` | number | Genauigkeitsradius in Metern |
|
||||
|
||||
### `google_maps_place_details`
|
||||
|
||||
Detaillierte Informationen über einen bestimmten Ort abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
|
||||
| `placeId` | string | Ja | Google Place ID |
|
||||
| `fields` | string | Nein | Kommagetrennte Liste der zurückzugebenden Felder |
|
||||
| `language` | string | Nein | Sprachcode für Ergebnisse \(z. B. en, es, fr\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `placeId` | string | Google Place ID |
|
||||
| `name` | string | Name des Ortes |
|
||||
| `formattedAddress` | string | Formatierte Straßenadresse |
|
||||
| `lat` | number | Breitengrad-Koordinate |
|
||||
| `lng` | number | Längengrad-Koordinate |
|
||||
| `types` | array | Ortstypen \(z. B. Restaurant, Café\) |
|
||||
| `rating` | number | Durchschnittliche Bewertung \(1,0 bis 5,0\) |
|
||||
| `userRatingsTotal` | number | Gesamtanzahl der Nutzerbewertungen |
|
||||
| `priceLevel` | number | Preisniveau \(0=Kostenlos, 1=Günstig, 2=Moderat, 3=Teuer, 4=Sehr teuer\) |
|
||||
| `website` | string | Website-URL des Ortes |
|
||||
| `phoneNumber` | string | Lokal formatierte Telefonnummer |
|
||||
| `internationalPhoneNumber` | string | International formatierte Telefonnummer |
|
||||
| `openNow` | boolean | Ob der Ort derzeit geöffnet ist |
|
||||
| `weekdayText` | array | Öffnungszeiten formatiert nach Wochentag |
|
||||
| `reviews` | array | Nutzerbewertungen \(bis zu 5 relevanteste\) |
|
||||
| ↳ `authorName` | string | Name des Bewerters |
|
||||
| ↳ `authorUrl` | string | Profil-URL des Bewerters |
|
||||
| ↳ `profilePhotoUrl` | string | Foto-URL des Bewerters |
|
||||
| ↳ `rating` | number | Vergebene Bewertung \(1-5\) |
|
||||
| ↳ `text` | string | Bewertungstext |
|
||||
| ↳ `time` | number | Zeitstempel der Bewertung \(Unix-Epoche\) |
|
||||
| ↳ `relativeTimeDescription` | string | Relative Zeit \(z. B. „vor einem Monat"\) |
|
||||
| `photos` | array | Fotos des Ortes |
|
||||
| ↳ `photoReference` | string | Foto-Referenz für Place Photos API |
|
||||
| ↳ `height` | number | Fotohöhe in Pixeln |
|
||||
| ↳ `width` | number | Fotobreite in Pixeln |
|
||||
| ↳ `htmlAttributions` | array | Erforderliche Quellenangaben |
|
||||
| `url` | string | Google Maps-URL für den Ort |
|
||||
| `utcOffset` | number | UTC-Offset in Minuten |
|
||||
| `vicinity` | string | Vereinfachte Adresse \(Stadtteil/Straße\) |
|
||||
| `businessStatus` | string | Geschäftsstatus \(OPERATIONAL, CLOSED_TEMPORARILY, CLOSED_PERMANENTLY\) |
|
||||
|
||||
### `google_maps_places_search`
|
||||
|
||||
Orte mithilfe einer Textabfrage suchen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
|
||||
| `query` | string | Ja | Suchabfrage \(z. B. "Restaurants am Times Square"\) |
|
||||
| `location` | json | Nein | Standort zur Gewichtung der Ergebnisse \(\{lat, lng\}\) |
|
||||
| `radius` | number | Nein | Suchradius in Metern |
|
||||
| `type` | string | Nein | Ortstyp-Filter \(z. B. restaurant, cafe, hotel\) |
|
||||
| `language` | string | Nein | Sprachcode für Ergebnisse \(z. B. en, es, fr\) |
|
||||
| `region` | string | Nein | Regionsgewichtung als ccTLD-Code \(z. B. us, uk\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `places` | array | Liste der gefundenen Orte |
|
||||
| ↳ `placeId` | string | Google Place ID |
|
||||
| ↳ `name` | string | Ortsname |
|
||||
| ↳ `formattedAddress` | string | Formatierte Adresse |
|
||||
| ↳ `lat` | number | Breitengrad |
|
||||
| ↳ `lng` | number | Längengrad |
|
||||
| ↳ `types` | array | Ortstypen |
|
||||
| ↳ `rating` | number | Durchschnittliche Bewertung \(1-5\) |
|
||||
| ↳ `userRatingsTotal` | number | Anzahl der Bewertungen |
|
||||
| ↳ `priceLevel` | number | Preisniveau \(0-4\) |
|
||||
| ↳ `openNow` | boolean | Ob derzeit geöffnet |
|
||||
| ↳ `photoReference` | string | Fotoreferenz für Photos API |
|
||||
| ↳ `businessStatus` | string | Geschäftsstatus |
|
||||
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
### `google_maps_reverse_geocode`
|
||||
|
||||
Geografische Koordinaten (Breiten- und Längengrad) in eine lesbare Adresse umwandeln
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
|
||||
| `lat` | number | Ja | Breitengrad-Koordinate |
|
||||
| `lng` | number | Ja | Längengrad-Koordinate |
|
||||
| `language` | string | Nein | Sprachcode für Ergebnisse \(z. B. en, es, fr\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `formattedAddress` | string | Die formatierte Adresszeichenfolge |
|
||||
| `placeId` | string | Google Place ID für diesen Standort |
|
||||
| `addressComponents` | array | Detaillierte Adresskomponenten |
|
||||
| ↳ `longName` | string | Vollständiger Name der Komponente |
|
||||
| ↳ `shortName` | string | Abgekürzter Name |
|
||||
| ↳ `types` | array | Komponententypen |
|
||||
| `types` | array | Adresstypen \(z. B. street_address, route\) |
|
||||
|
||||
### `google_maps_snap_to_roads`
|
||||
|
||||
GPS-Koordinaten auf das nächstgelegene Straßensegment ausrichten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Google Maps API-Schlüssel mit aktivierter Roads API |
|
||||
| `path` | string | Ja | Durch Pipe getrennte Liste von Breiten-/Längengrad-Koordinaten \(z. B. "60.170880,24.942795\|60.170879,24.942796"\) |
|
||||
| `interpolate` | boolean | Nein | Ob zusätzliche Punkte entlang der Straße interpoliert werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `snappedPoints` | array | Array von ausgerichteten Punkten auf Straßen |
|
||||
| ↳ `location` | object | Ausgerichtete Standortkoordinaten |
|
||||
| ↳ `lat` | number | Breitengrad |
|
||||
| ↳ `lng` | number | Längengrad |
|
||||
| ↳ `originalIndex` | number | Index im ursprünglichen Pfad \(falls nicht interpoliert\) |
|
||||
| ↳ `placeId` | string | Place ID für dieses Straßensegment |
|
||||
| `warningMessage` | string | Warnmeldung, falls vorhanden \(z. B. wenn Punkte nicht ausgerichtet werden konnten\) |
|
||||
|
||||
### `google_maps_speed_limits`
|
||||
|
||||
Geschwindigkeitsbegrenzungen für Straßenabschnitte abrufen. Erfordert entweder Pfadkoordinaten oder placeIds.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Google Maps API-Schlüssel mit aktivierter Roads API |
|
||||
| `path` | string | Nein | Pipe-getrennte Liste von Breiten-/Längengrad-Koordinaten \(erforderlich, wenn placeIds nicht angegeben\) |
|
||||
| `placeIds` | array | Nein | Array von Place-IDs für Straßenabschnitte \(erforderlich, wenn path nicht angegeben\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `speedLimits` | array | Array von Geschwindigkeitsbegrenzungen für Straßenabschnitte |
|
||||
| ↳ `placeId` | string | Place-ID für den Straßenabschnitt |
|
||||
| ↳ `speedLimit` | number | Wert der Geschwindigkeitsbegrenzung |
|
||||
| ↳ `units` | string | Einheit der Geschwindigkeitsbegrenzung \(KPH oder MPH\) |
|
||||
| `snappedPoints` | array | Array von angepassten Punkten, die den Geschwindigkeitsbegrenzungen entsprechen |
|
||||
| ↳ `location` | object | Angepasste Standortkoordinaten |
|
||||
| ↳ `lat` | number | Breitengrad |
|
||||
| ↳ `lng` | number | Längengrad |
|
||||
| ↳ `originalIndex` | number | Index im ursprünglichen Pfad |
|
||||
| ↳ `placeId` | string | Place-ID für diesen Straßenabschnitt |
|
||||
|
||||
### `google_maps_timezone`
|
||||
|
||||
Zeitzoneninformationen für einen Standort abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Google Maps API-Schlüssel |
|
||||
| `lat` | number | Ja | Breitengrad-Koordinate |
|
||||
| `lng` | number | Ja | Längengrad-Koordinate |
|
||||
| `timestamp` | number | Nein | Unix-Zeitstempel zur Bestimmung des DST-Offsets \(Standard: aktuelle Zeit\) |
|
||||
| `language` | string | Nein | Sprachcode für Zeitzonennamen \(z. B. en, es, fr\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `timeZoneId` | string | IANA-Zeitzonen-ID \(z. B. "America/New_York", "Europe/London"\) |
|
||||
| `timeZoneName` | string | Lokalisierter Zeitzonenname \(z. B. "Östliche Sommerzeit"\) |
|
||||
| `rawOffset` | number | UTC-Versatz in Sekunden \(ohne Sommerzeit\) |
|
||||
| `dstOffset` | number | Sommerzeitversatz in Sekunden \(0, wenn keine Sommerzeit\) |
|
||||
| `totalOffsetSeconds` | number | Gesamter UTC-Versatz in Sekunden \(rawOffset + dstOffset\) |
|
||||
| `totalOffsetHours` | number | Gesamter UTC-Versatz in Stunden \(z. B. -5 für EST, -4 für EDT\) |
|
||||
|
||||
### `google_maps_validate_address`
|
||||
|
||||
Postanschrift validieren und standardisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Google Maps API-Schlüssel mit aktivierter Address Validation API |
|
||||
| `address` | string | Ja | Die zu validierende Adresse \(als einzelne Zeichenfolge\) |
|
||||
| `regionCode` | string | Nein | ISO 3166-1 Alpha-2-Ländercode \(z. B. "US", "CA"\) |
|
||||
| `locality` | string | Nein | Stadt- oder Ortsname |
|
||||
| `enableUspsCass` | boolean | Nein | USPS CASS-Validierung für US-Adressen aktivieren |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `formattedAddress` | string | Die standardisierte formatierte Adresse |
|
||||
| `lat` | number | Breitengradkoordinate |
|
||||
| `lng` | number | Längengradkoordinate |
|
||||
| `placeId` | string | Google Place ID für diese Adresse |
|
||||
| `addressComplete` | boolean | Ob die Adresse vollständig und zustellbar ist |
|
||||
| `hasUnconfirmedComponents` | boolean | Ob einige Adresskomponenten nicht bestätigt werden konnten |
|
||||
| `hasInferredComponents` | boolean | Ob einige Komponenten abgeleitet wurden \(nicht in der Eingabe\) |
|
||||
| `hasReplacedComponents` | boolean | Ob einige Komponenten durch kanonische Werte ersetzt wurden |
|
||||
| `validationGranularity` | string | Granularität der Validierung \(PREMISE, SUB_PREMISE, ROUTE usw.\) |
|
||||
| `geocodeGranularity` | string | Granularität des Geocode-Ergebnisses |
|
||||
| `addressComponents` | array | Detaillierte Adresskomponenten |
|
||||
| ↳ `longName` | string | Vollständiger Name der Komponente |
|
||||
| ↳ `shortName` | string | Abgekürzter Name |
|
||||
| ↳ `types` | array | Komponententypen |
|
||||
| `missingComponentTypes` | array | Typen von Adresskomponenten, die fehlen |
|
||||
| `unconfirmedComponentTypes` | array | Typen von Komponenten, die nicht bestätigt werden konnten |
|
||||
| `unresolvedTokens` | array | Eingabe-Tokens, die nicht aufgelöst werden konnten |
|
||||
@@ -0,0 +1,47 @@
|
||||
---
|
||||
title: Google Suche
|
||||
description: Das Web durchsuchen
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="google_search"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Google Search](https://www.google.com) ist die weltweit am häufigsten genutzte Suchmaschine, die Zugang zu Milliarden von Webseiten und Informationsquellen bietet. Google Search verwendet ausgeklügelte Algorithmen, um relevante Suchergebnisse basierend auf Nutzeranfragen zu liefern, was es zu einem unverzichtbaren Werkzeug für die Informationssuche im Internet macht.
|
||||
|
||||
Erfahren Sie, wie Sie das Google Search-Tool in Sim integrieren können, um mühelos Echtzeit-Suchergebnisse in Ihren Workflows abzurufen. Dieses Tutorial führt Sie durch die Verbindung mit Google Search, die Konfiguration von Suchanfragen und die Nutzung von Live-Daten zur Verbesserung der Automatisierung. Perfekt, um Ihre Agenten mit aktuellen Informationen und intelligenterer Entscheidungsfindung auszustatten.
|
||||
|
||||
<iframe
|
||||
width="100%"
|
||||
height="400"
|
||||
src="https://www.youtube.com/embed/1B7hV9b5UMQ"
|
||||
title="Verwenden Sie das Google Search-Tool in Sim"
|
||||
frameBorder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
></iframe>
|
||||
|
||||
Mit Google Search können Sie:
|
||||
|
||||
- **Relevante Informationen finden**: Zugriff auf Milliarden von Webseiten mit Googles leistungsstarken Suchalgorithmen
|
||||
- **Spezifische Ergebnisse erhalten**: Verwenden Sie Suchoperatoren, um Ihre Anfragen zu verfeinern und gezielt auszurichten
|
||||
- **Vielfältige Inhalte entdecken**: Finden Sie Texte, Bilder, Videos, Nachrichten und andere Inhaltstypen
|
||||
- **Auf Wissensgraphen zugreifen**: Erhalten Sie strukturierte Informationen über Personen, Orte und Dinge
|
||||
- **Suchfunktionen nutzen**: Nutzen Sie spezialisierte Suchwerkzeuge wie Taschenrechner, Einheitenumrechner und mehr
|
||||
|
||||
In Sim ermöglicht die Google Search-Integration Ihren Agenten, das Web programmatisch zu durchsuchen und Suchergebnisse in ihre Workflows einzubinden. Dies ermöglicht leistungsstarke Automatisierungsszenarien wie Recherche, Faktenprüfung, Datensammlung und Informationssynthese. Ihre Agenten können Suchanfragen formulieren, relevante Ergebnisse abrufen und Informationen aus diesen Ergebnissen extrahieren, um Entscheidungen zu treffen oder Erkenntnisse zu gewinnen. Diese Integration überbrückt die Lücke zwischen Ihren KI-Workflows und den umfangreichen Informationen, die im Web verfügbar sind, und ermöglicht Ihren Agenten den Zugriff auf aktuelle Informationen aus dem gesamten Internet. Durch die Verbindung von Sim mit Google Search können Sie Agenten erstellen, die mit den neuesten Informationen auf dem Laufenden bleiben, Fakten überprüfen, Recherchen durchführen und Benutzern relevante Webinhalte bereitstellen - alles ohne Ihren Workflow zu verlassen.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Gebrauchsanweisung
|
||||
|
||||
Integriert Google-Suche in den Workflow. Kann im Web suchen. Erfordert API-Schlüssel.
|
||||
|
||||
## Tools
|
||||
|
||||
### `google_search`
|
||||
|
||||
Durchsuchen des Webs mit der Custom Search API
|
||||
@@ -0,0 +1,326 @@
|
||||
---
|
||||
title: Google Sheets
|
||||
description: Daten lesen, schreiben und aktualisieren
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="google_sheets"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Google Sheets](https://sheets.google.com) ist eine leistungsstarke cloudbasierte Tabellenkalkulationsanwendung, mit der Benutzer Tabellenkalkulationen in Echtzeit erstellen, bearbeiten und gemeinsam daran arbeiten können. Als Teil der Google-Produktivitätssuite bietet Google Sheets eine vielseitige Plattform für Datenorganisation, -analyse und -visualisierung mit robusten Formatierungs-, Formel- und Freigabefunktionen.
|
||||
|
||||
Erfahren Sie, wie Sie das Google Sheets "Lesen"-Tool in Sim integrieren, um mühelos Daten aus Ihren Tabellenkalkulationen abzurufen und in Ihre Workflows zu integrieren. Dieses Tutorial führt Sie durch die Verbindung mit Google Sheets, die Einrichtung von Datenabfragen und die Verwendung dieser Informationen zur Automatisierung von Prozessen in Echtzeit. Perfekt für die Synchronisierung von Live-Daten mit Ihren Agenten.
|
||||
|
||||
<iframe
|
||||
width="100%"
|
||||
height="400"
|
||||
src="https://www.youtube.com/embed/xxP7MZRuq_0"
|
||||
title="Verwenden des Google Sheets Lese-Tools in Sim"
|
||||
frameBorder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
></iframe>
|
||||
|
||||
Entdecken Sie, wie Sie das Google Sheets "Schreiben"-Tool in Sim verwenden können, um automatisch Daten aus Ihren Workflows an Ihre Google Sheets zu senden. Dieses Tutorial behandelt die Einrichtung der Integration, die Konfiguration von Schreibvorgängen und die nahtlose Aktualisierung Ihrer Tabellen während der Ausführung von Workflows. Perfekt für die Führung von Echtzeit-Aufzeichnungen ohne manuelle Eingabe.
|
||||
|
||||
<iframe
|
||||
width="100%"
|
||||
height="400"
|
||||
src="https://www.youtube.com/embed/cO86qTj7qeY"
|
||||
title="Verwenden des Google Sheets Schreib-Tools in Sim"
|
||||
frameBorder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
></iframe>
|
||||
|
||||
Erfahren Sie, wie Sie das Google Sheets "Aktualisieren"-Tool in Sim nutzen können, um bestehende Einträge in Ihren Tabellenkalkulationen basierend auf der Workflow-Ausführung zu ändern. Dieses Tutorial zeigt die Einrichtung der Aktualisierungslogik, das Mapping von Datenfeldern und die sofortige Synchronisierung von Änderungen. Perfekt, um Ihre Daten aktuell und konsistent zu halten.
|
||||
|
||||
<iframe
|
||||
width="100%"
|
||||
height="400"
|
||||
src="https://www.youtube.com/embed/95by2fL9yn4"
|
||||
title="Verwenden Sie das Google Sheets Update-Tool in Sim"
|
||||
frameBorder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
></iframe>
|
||||
|
||||
Erfahren Sie, wie Sie das Google Sheets "Append"-Tool in Sim verwenden können, um mühelos neue Datenzeilen während der Workflow-Ausführung zu Ihren Tabellen hinzuzufügen. Dieses Tutorial führt Sie durch die Einrichtung der Integration, die Konfiguration von Append-Aktionen und die Sicherstellung eines reibungslosen Datenwachstums. Perfekt für die Erweiterung von Datensätzen ohne manuellen Aufwand!
|
||||
|
||||
<iframe
|
||||
width="100%"
|
||||
height="400"
|
||||
src="https://www.youtube.com/embed/8DgNvLBCsAo"
|
||||
title="Verwenden Sie das Google Sheets Append-Tool in Sim"
|
||||
frameBorder="0"
|
||||
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
|
||||
allowFullScreen
|
||||
></iframe>
|
||||
|
||||
Mit Google Sheets können Sie:
|
||||
|
||||
- **Tabellen erstellen und bearbeiten**: Entwickeln Sie datengesteuerte Dokumente mit umfassenden Formatierungs- und Berechnungsoptionen
|
||||
- **In Echtzeit zusammenarbeiten**: Arbeiten Sie gleichzeitig mit mehreren Benutzern an derselben Tabelle
|
||||
- **Daten analysieren**: Verwenden Sie Formeln, Funktionen und Pivot-Tabellen, um Ihre Daten zu verarbeiten und zu verstehen
|
||||
- **Informationen visualisieren**: Erstellen Sie Diagramme, Grafiken und bedingte Formatierungen, um Daten visuell darzustellen
|
||||
- **Überall zugreifen**: Nutzen Sie Google Sheets geräteübergreifend mit automatischer Cloud-Synchronisierung
|
||||
- **Offline arbeiten**: Arbeiten Sie ohne Internetverbindung weiter, wobei Änderungen synchronisiert werden, sobald Sie wieder online sind
|
||||
- **Mit anderen Diensten integrieren**: Verbinden Sie mit Google Drive, Forms und Drittanbieteranwendungen
|
||||
|
||||
In Sim ermöglicht die Google Sheets-Integration Ihren Agenten, direkt programmatisch mit Tabellendaten zu interagieren. Dies ermöglicht leistungsstarke Automatisierungsszenarien wie Datenextraktion, -analyse, -berichterstattung und -verwaltung. Ihre Agenten können bestehende Tabellen lesen, um Informationen zu extrahieren, in Tabellen schreiben, um Daten zu aktualisieren, und neue Tabellen von Grund auf erstellen. Diese Integration überbrückt die Lücke zwischen Ihren KI-Workflows und der Datenverwaltung und ermöglicht eine nahtlose Interaktion mit strukturierten Daten. Durch die Verbindung von Sim mit Google Sheets können Sie Daten-Workflows automatisieren, Berichte generieren, Erkenntnisse aus Daten gewinnen und aktuelle Informationen pflegen - alles durch Ihre intelligenten Agenten. Die Integration unterstützt verschiedene Datenformate und Bereichsspezifikationen, was sie flexibel genug macht, um unterschiedliche Datenverwaltungsanforderungen zu erfüllen, während die kollaborative und zugängliche Natur von Google Sheets erhalten bleibt.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integriert Google Sheets in den Workflow. Kann Daten lesen, schreiben, anhängen und aktualisieren. Erfordert OAuth.
|
||||
|
||||
## Tools
|
||||
|
||||
### `google_sheets_read`
|
||||
|
||||
Daten aus einer Google Sheets-Tabelle lesen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `spreadsheetId` | string | Ja | Die ID der Tabelle \(zu finden in der URL: docs.google.com/spreadsheets/d/\{SPREADSHEET_ID\}/edit\). |
|
||||
| `range` | string | Nein | Der A1-Notationsbereich zum Lesen \(z.B. "Sheet1!A1:D10", "A1:B5"\). Standardmäßig wird das erste Tabellenblatt A1:Z1000 verwendet, wenn nicht angegeben. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `data` | json | Tabellendaten einschließlich Bereich und Zellwerte |
|
||||
| `metadata` | json | Tabellenmetadaten einschließlich ID und URL |
|
||||
|
||||
### `google_sheets_write`
|
||||
|
||||
Daten in eine Google Sheets-Tabelle schreiben
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `spreadsheetId` | string | Ja | Die ID der Tabelle |
|
||||
| `range` | string | Nein | Der A1-Notationsbereich, in den geschrieben werden soll \(z.B. "Sheet1!A1:D10", "A1:B5"\) |
|
||||
| `values` | array | Ja | Die zu schreibenden Daten als 2D-Array \(z.B. \[\["Name", "Alter"\], \["Alice", 30\], \["Bob", 25\]\]\) oder Array von Objekten. |
|
||||
| `valueInputOption` | string | Nein | Das Format der zu schreibenden Daten |
|
||||
| `includeValuesInResponse` | boolean | Nein | Ob die geschriebenen Werte in der Antwort enthalten sein sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `updatedRange` | string | Bereich der aktualisierten Zellen |
|
||||
| `updatedRows` | number | Anzahl der aktualisierten Zeilen |
|
||||
| `updatedColumns` | number | Anzahl der aktualisierten Spalten |
|
||||
| `updatedCells` | number | Anzahl der aktualisierten Zellen |
|
||||
| `metadata` | json | Tabellenmetadaten einschließlich ID und URL |
|
||||
|
||||
### `google_sheets_update`
|
||||
|
||||
Daten in einer Google Sheets-Tabelle aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `spreadsheetId` | string | Ja | Die ID der zu aktualisierenden Tabelle |
|
||||
| `range` | string | Nein | Der A1-Notationsbereich, der aktualisiert werden soll \(z.B. "Sheet1!A1:D10", "A1:B5"\) |
|
||||
| `values` | array | Ja | Die zu aktualisierenden Daten als 2D-Array \(z.B. \[\["Name", "Alter"\], \["Alice", 30\]\]\) oder Array von Objekten. |
|
||||
| `valueInputOption` | string | Nein | Das Format der zu aktualisierenden Daten |
|
||||
| `includeValuesInResponse` | boolean | Nein | Ob die aktualisierten Werte in der Antwort enthalten sein sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `updatedRange` | string | Bereich der aktualisierten Zellen |
|
||||
| `updatedRows` | number | Anzahl der aktualisierten Zeilen |
|
||||
| `updatedColumns` | number | Anzahl der aktualisierten Spalten |
|
||||
| `updatedCells` | number | Anzahl der aktualisierten Zellen |
|
||||
| `metadata` | json | Tabellen-Metadaten einschließlich ID und URL |
|
||||
|
||||
### `google_sheets_append`
|
||||
|
||||
Daten am Ende einer Google Sheets-Tabelle anhängen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `spreadsheetId` | string | Ja | Die ID der Tabelle, an die angehängt werden soll |
|
||||
| `range` | string | Nein | Der A1-Notationsbereich, an den angehängt werden soll (z.B. "Sheet1", "Sheet1!A:D") |
|
||||
| `values` | array | Ja | Die anzuhängenden Daten als 2D-Array (z.B. [["Alice", 30], ["Bob", 25]]) oder Array von Objekten |
|
||||
| `valueInputOption` | string | Nein | Das Format der anzuhängenden Daten |
|
||||
| `insertDataOption` | string | Nein | Wie die Daten eingefügt werden sollen (OVERWRITE oder INSERT_ROWS) |
|
||||
| `includeValuesInResponse` | boolean | Nein | Ob die angehängten Werte in der Antwort enthalten sein sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `tableRange` | string | Bereich der Tabelle, in dem Daten angehängt wurden |
|
||||
| `updatedRange` | string | Bereich der Zellen, die aktualisiert wurden |
|
||||
| `updatedRows` | number | Anzahl der aktualisierten Zeilen |
|
||||
| `updatedColumns` | number | Anzahl der aktualisierten Spalten |
|
||||
| `updatedCells` | number | Anzahl der aktualisierten Zellen |
|
||||
| `metadata` | json | Tabellenkalkulationsmetadaten einschließlich ID und URL |
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `tools`
|
||||
- Typ: `google_sheets`
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `spreadsheetId` | string | Ja | Google Sheets-Tabellenkalkulations-ID |
|
||||
| `includeGridData` | boolean | Nein | Ob Rasterdaten \(Zellwerte\) einbezogen werden sollen. Standardmäßig false. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `spreadsheetId` | string | Die Tabellenkalkulations-ID |
|
||||
| `title` | string | Der Titel der Tabellenkalkulation |
|
||||
| `locale` | string | Das Gebietsschema der Tabellenkalkulation |
|
||||
| `timeZone` | string | Die Zeitzone der Tabellenkalkulation |
|
||||
| `spreadsheetUrl` | string | URL zur Tabellenkalkulation |
|
||||
| `sheets` | array | Liste der Tabellenblätter in der Tabellenkalkulation |
|
||||
| ↳ `sheetId` | number | Die Tabellenblatt-ID |
|
||||
| ↳ `title` | string | Der Titel/Name des Tabellenblatts |
|
||||
| ↳ `index` | number | Der Tabellenblatt-Index \(Position\) |
|
||||
| ↳ `rowCount` | number | Anzahl der Zeilen im Tabellenblatt |
|
||||
| ↳ `columnCount` | number | Anzahl der Spalten im Tabellenblatt |
|
||||
| ↳ `hidden` | boolean | Ob das Tabellenblatt ausgeblendet ist |
|
||||
|
||||
### `google_sheets_create_spreadsheet`
|
||||
|
||||
Erstellt eine neue Google Sheets-Tabellenkalkulation
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `title` | string | Ja | Der Titel der neuen Tabellenkalkulation |
|
||||
| `sheetTitles` | json | Nein | Array von Tabellenblattnamen, die erstellt werden sollen \(z. B. \["Tabelle1", "Daten", "Zusammenfassung"\]\). Standardmäßig ein einzelnes "Tabelle1". |
|
||||
| `locale` | string | Nein | Das Gebietsschema der Tabellenkalkulation \(z. B. "de_DE"\) |
|
||||
| `timeZone` | string | Nein | Die Zeitzone der Tabellenkalkulation \(z. B. "Europe/Berlin"\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `spreadsheetId` | string | Die ID der erstellten Tabellenkalkulation |
|
||||
| `title` | string | Der Titel der erstellten Tabellenkalkulation |
|
||||
| `spreadsheetUrl` | string | URL zur erstellten Tabellenkalkulation |
|
||||
| `sheets` | array | Liste der in der Tabellenkalkulation erstellten Tabellenblätter |
|
||||
| ↳ `sheetId` | number | Die Tabellenblatt-ID |
|
||||
| ↳ `title` | string | Der Tabellenblatt-Titel/-Name |
|
||||
| ↳ `index` | number | Der Tabellenblatt-Index \(Position\) |
|
||||
|
||||
### `google_sheets_batch_get`
|
||||
|
||||
Liest mehrere Bereiche aus einer Google Sheets-Tabellenkalkulation in einer einzigen Anfrage
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `spreadsheetId` | string | Ja | Google Sheets-Tabellenkalkulationskennung |
|
||||
| `ranges` | json | Ja | Array von zu lesenden Bereichen \(z. B. \["Tabelle1!A1:D10", "Tabelle2!A1:B5"\]\). Jeder Bereich sollte den Tabellenblattnamen enthalten. |
|
||||
| `majorDimension` | string | Nein | Die Hauptdimension der Werte: "ROWS" \(Standard\) oder "COLUMNS" |
|
||||
| `valueRenderOption` | string | Nein | Wie Werte dargestellt werden sollen: "FORMATTED_VALUE" \(Standard\), "UNFORMATTED_VALUE" oder "FORMULA" |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `spreadsheetId` | string | Die Tabellenkalkulationskennung |
|
||||
| `valueRanges` | array | Array von Wertebereichen, die aus der Tabellenkalkulation gelesen wurden |
|
||||
| ↳ `range` | string | Der Bereich, der gelesen wurde |
|
||||
| ↳ `majorDimension` | string | Hauptdimension \(ROWS oder COLUMNS\) |
|
||||
| ↳ `values` | array | Die Zellwerte als 2D-Array |
|
||||
| `metadata` | json | Tabellenkalkulationsmetadaten einschließlich ID und URL |
|
||||
| ↳ `spreadsheetId` | string | Google Sheets-Tabellenkalkulationskennung |
|
||||
| ↳ `spreadsheetUrl` | string | Tabellenkalkulations-URL |
|
||||
|
||||
### `google_sheets_batch_update`
|
||||
|
||||
Mehrere Bereiche in einer Google Sheets-Tabelle in einer einzigen Anfrage aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `spreadsheetId` | string | Ja | Google Sheets-Tabellen-ID |
|
||||
| `data` | json | Ja | Array von Wertebereichen, die aktualisiert werden sollen. Jedes Element sollte "range" \(z. B. "Sheet1!A1:D10"\) und "values" \(2D-Array\) enthalten. |
|
||||
| `valueInputOption` | string | Nein | Wie Eingabedaten interpretiert werden sollen: "RAW" oder "USER_ENTERED" \(Standard\). USER_ENTERED analysiert Formeln. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `spreadsheetId` | string | Die Tabellen-ID |
|
||||
| `totalUpdatedRows` | number | Gesamtanzahl der aktualisierten Zeilen |
|
||||
| `totalUpdatedColumns` | number | Gesamtanzahl der aktualisierten Spalten |
|
||||
| `totalUpdatedCells` | number | Gesamtanzahl der aktualisierten Zellen |
|
||||
| `totalUpdatedSheets` | number | Gesamtanzahl der aktualisierten Tabellenblätter |
|
||||
| `responses` | array | Array von Aktualisierungsantworten für jeden Bereich |
|
||||
| ↳ `spreadsheetId` | string | Die Tabellen-ID |
|
||||
| ↳ `updatedRange` | string | Der Bereich, der aktualisiert wurde |
|
||||
| ↳ `updatedRows` | number | Anzahl der in diesem Bereich aktualisierten Zeilen |
|
||||
| ↳ `updatedColumns` | number | Anzahl der in diesem Bereich aktualisierten Spalten |
|
||||
| ↳ `updatedCells` | number | Anzahl der in diesem Bereich aktualisierten Zellen |
|
||||
| `metadata` | json | Tabellenmetadaten einschließlich ID und URL |
|
||||
| ↳ `spreadsheetId` | string | Google Sheets-Tabellen-ID |
|
||||
| ↳ `spreadsheetUrl` | string | Tabellen-URL |
|
||||
|
||||
### `google_sheets_batch_clear`
|
||||
|
||||
Mehrere Bereiche in einer Google Sheets-Tabelle mit einer einzigen Anfrage löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | ----------- | ------------- |
|
||||
| `spreadsheetId` | string | Ja | Google Sheets-Tabellen-ID |
|
||||
| `ranges` | json | Ja | Array der zu löschenden Bereiche (z. B. ["Sheet1!A1:D10", "Sheet2!A1:B5"]). Jeder Bereich muss den Blattnamen enthalten. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ------------- |
|
||||
| `spreadsheetId` | string | Die Tabellen-ID |
|
||||
| `clearedRanges` | array | Array der gelöschten Bereiche |
|
||||
| `metadata` | json | Tabellenmetadaten einschließlich ID und URL |
|
||||
| ↳ `spreadsheetId` | string | Google Sheets-Tabellen-ID |
|
||||
| ↳ `spreadsheetUrl` | string | Tabellen-URL |
|
||||
|
||||
### `google_sheets_copy_sheet`
|
||||
|
||||
Ein Blatt von einer Tabelle in eine andere kopieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | ----------- | ------------- |
|
||||
| `sourceSpreadsheetId` | string | Ja | Quell-Google-Sheets-Tabellen-ID |
|
||||
| `sheetId` | number | Ja | Die ID des zu kopierenden Blatts (numerische ID, nicht der Blattname). Verwenden Sie "Get Spreadsheet", um Blatt-IDs zu finden. |
|
||||
| `destinationSpreadsheetId` | string | Ja | Die ID der Zieltabelle, in die das Blatt kopiert wird |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ------------- |
|
||||
| `sheetId` | number | Die ID des neu erstellten Blatts in der Zieltabelle |
|
||||
| `title` | string | Der Titel des kopierten Blatts |
|
||||
| `index` | number | Der Index (Position) des kopierten Blatts |
|
||||
| `sheetType` | string | Der Typ des Blatts (GRID, CHART usw.) |
|
||||
| `destinationSpreadsheetId` | string | Die ID der Zieltabelle |
|
||||
| `destinationSpreadsheetUrl` | string | URL zur Zieltabelle |
|
||||
@@ -0,0 +1,348 @@
|
||||
---
|
||||
title: Google Slides
|
||||
description: Präsentationen lesen, schreiben und erstellen
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="google_slides"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Google Slides](https://slides.google.com) ist eine dynamische cloudbasierte Präsentationsanwendung, mit der Benutzer in Echtzeit Präsentationen erstellen, bearbeiten, gemeinsam daran arbeiten und präsentieren können. Als Teil der Google-Produktivitätssuite bietet Google Slides eine flexible Plattform zum Gestalten ansprechender Präsentationen, zur Zusammenarbeit mit anderen und zum nahtlosen Teilen von Inhalten über die Cloud.
|
||||
|
||||
Erfahren Sie, wie Sie die Google Slides-Tools in Sim integrieren können, um Präsentationen mühelos als Teil Ihrer automatisierten Workflows zu verwalten. Mit Sim können Sie Google Slides-Präsentationen direkt über Ihre Agenten und automatisierten Prozesse lesen, schreiben, erstellen und aktualisieren, wodurch es einfach wird, aktuelle Informationen zu liefern, benutzerdefinierte Berichte zu generieren oder Marken-Präsentationen programmatisch zu erstellen.
|
||||
|
||||
Mit Google Slides können Sie:
|
||||
|
||||
- **Präsentationen erstellen und bearbeiten**: Gestalten Sie visuell ansprechende Folien mit Designs, Layouts und Multimedia-Inhalten
|
||||
- **In Echtzeit zusammenarbeiten**: Arbeiten Sie gleichzeitig mit Teammitgliedern, kommentieren Sie, weisen Sie Aufgaben zu und erhalten Sie Live-Feedback zu Präsentationen
|
||||
- **Überall präsentieren**: Zeigen Sie Präsentationen online oder offline an, teilen Sie Links oder veröffentlichen Sie im Web
|
||||
- **Bilder und umfangreiche Inhalte hinzufügen**: Fügen Sie Bilder, Grafiken, Diagramme und Videos ein, um Ihre Präsentationen ansprechend zu gestalten
|
||||
- **Mit anderen Diensten integrieren**: Verbinden Sie sich nahtlos mit Google Drive, Docs, Sheets und anderen Drittanbieter-Tools
|
||||
- **Von jedem Gerät aus zugreifen**: Nutzen Sie Google Slides auf Desktop-Computern, Laptops, Tablets und mobilen Geräten für maximale Flexibilität
|
||||
|
||||
In Sim ermöglicht die Google Slides-Integration Ihren Agenten, direkt programmatisch mit Präsentationsdateien zu interagieren. Automatisieren Sie Aufgaben wie das Lesen von Folieninhalten, das Einfügen neuer Folien oder Bilder, das Ersetzen von Text in einer gesamten Präsentation, das Erstellen neuer Präsentationen und das Abrufen von Folien-Miniaturansichten. Dies ermöglicht Ihnen, die Inhaltserstellung zu skalieren, Präsentationen aktuell zu halten und sie in automatisierte Dokumenten-Workflows einzubetten. Durch die Verbindung von Sim mit Google Slides ermöglichen Sie KI-gestütztes Präsentationsmanagement – so wird es einfach, Präsentationen ohne manuellen Aufwand zu generieren, zu aktualisieren oder Informationen daraus zu extrahieren.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Integrieren Sie Google Slides in den Workflow. Kann Präsentationen lesen, schreiben, erstellen, Text ersetzen, Folien hinzufügen, Bilder einfügen und Vorschaubilder abrufen.
|
||||
|
||||
## Tools
|
||||
|
||||
### `google_slides_read`
|
||||
|
||||
Inhalte aus einer Google Slides-Präsentation lesen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `presentationId` | string | Ja | Die ID der zu lesenden Präsentation |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `slides` | json | Array von Folien mit ihren Inhalten |
|
||||
| `metadata` | json | Präsentationsmetadaten einschließlich ID, Titel und URL |
|
||||
|
||||
### `google_slides_write`
|
||||
|
||||
Inhalte in einer Google Slides-Präsentation schreiben oder aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `presentationId` | string | Ja | Die ID der Präsentation, in die geschrieben werden soll |
|
||||
| `content` | string | Ja | Der Inhalt, der in die Folie geschrieben werden soll |
|
||||
| `slideIndex` | number | Nein | Der Index der Folie, in die geschrieben werden soll \(standardmäßig die erste Folie\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `updatedContent` | boolean | Gibt an, ob der Präsentationsinhalt erfolgreich aktualisiert wurde |
|
||||
| `metadata` | json | Aktualisierte Präsentationsmetadaten einschließlich ID, Titel und URL |
|
||||
|
||||
### `google_slides_create`
|
||||
|
||||
Eine neue Google Slides-Präsentation erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `title` | string | Ja | Der Titel der zu erstellenden Präsentation |
|
||||
| `content` | string | Nein | Der Inhalt, der zur ersten Folie hinzugefügt werden soll |
|
||||
| `folderSelector` | string | Nein | Wählen Sie den Ordner aus, in dem die Präsentation erstellt werden soll |
|
||||
| `folderId` | string | Nein | Die ID des Ordners, in dem die Präsentation erstellt werden soll \(interne Verwendung\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `metadata` | json | Metadaten der erstellten Präsentation einschließlich ID, Titel und URL |
|
||||
|
||||
### `google_slides_replace_all_text`
|
||||
|
||||
Suchen und ersetzen aller Textvorkommen in einer Google Slides-Präsentation
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `presentationId` | string | Ja | Die ID der Präsentation |
|
||||
| `findText` | string | Ja | Der zu suchende Text (z.B. \{\{placeholder\}\}) |
|
||||
| `replaceText` | string | Ja | Der Text, durch den ersetzt werden soll |
|
||||
| `matchCase` | boolean | Nein | Ob die Suche Groß-/Kleinschreibung berücksichtigen soll (Standard: true) |
|
||||
| `pageObjectIds` | string | Nein | Kommagetrennte Liste von Folienobjekt-IDs, um Ersetzungen auf bestimmte Folien zu beschränken (leer lassen für alle Folien) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `occurrencesChanged` | number | Anzahl der Textvorkommen, die ersetzt wurden |
|
||||
| `metadata` | json | Operationsmetadaten einschließlich Präsentations-ID und URL |
|
||||
|
||||
### `google_slides_add_slide`
|
||||
|
||||
Eine neue Folie mit einem bestimmten Layout zu einer Google Slides-Präsentation hinzufügen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `presentationId` | string | Ja | Die ID der Präsentation |
|
||||
| `layout` | string | Nein | Das vordefinierte Layout für die Folie (BLANK, TITLE, TITLE_AND_BODY, TITLE_ONLY, SECTION_HEADER, usw.). Standard ist BLANK. |
|
||||
| `insertionIndex` | number | Nein | Der optionale nullbasierte Index, der angibt, wo die Folie eingefügt werden soll. Wenn nicht angegeben, wird die Folie am Ende hinzugefügt. |
|
||||
| `placeholderIdMappings` | string | Nein | JSON-Array von Platzhalter-Zuordnungen, um Platzhaltern benutzerdefinierte Objekt-IDs zuzuweisen. Format: \[\{"layoutPlaceholder":\{"type":"TITLE"\},"objectId":"custom_title_id"\}\] |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `slideId` | string | Die Objekt-ID der neu erstellten Folie |
|
||||
| `metadata` | json | Operationsmetadaten einschließlich Präsentations-ID, Layout und URL |
|
||||
|
||||
### `google_slides_add_image`
|
||||
|
||||
Ein Bild in eine bestimmte Folie einer Google Slides-Präsentation einfügen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `presentationId` | string | Ja | Die ID der Präsentation |
|
||||
| `pageObjectId` | string | Ja | Die Objekt-ID der Folie/Seite, zu der das Bild hinzugefügt werden soll |
|
||||
| `imageUrl` | string | Ja | Die öffentlich zugängliche URL des Bildes \(muss PNG, JPEG oder GIF sein, max. 50MB\) |
|
||||
| `width` | number | Nein | Breite des Bildes in Punkten \(Standard: 300\) |
|
||||
| `height` | number | Nein | Höhe des Bildes in Punkten \(Standard: 200\) |
|
||||
| `positionX` | number | Nein | X-Position vom linken Rand in Punkten \(Standard: 100\) |
|
||||
| `positionY` | number | Nein | Y-Position vom oberen Rand in Punkten \(Standard: 100\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `imageId` | string | Die Objekt-ID des neu erstellten Bildes |
|
||||
| `metadata` | json | Operationsmetadaten einschließlich Präsentations-ID und Bild-URL |
|
||||
|
||||
### `google_slides_get_thumbnail`
|
||||
|
||||
Ein Vorschaubild einer bestimmten Folie in einer Google Slides-Präsentation generieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `presentationId` | string | Ja | Die ID der Präsentation |
|
||||
| `pageObjectId` | string | Ja | Die Objekt-ID der Folie/Seite, für die ein Thumbnail erstellt werden soll |
|
||||
| `thumbnailSize` | string | Nein | Die Größe des Thumbnails: SMALL \(200px\), MEDIUM \(800px\) oder LARGE \(1600px\). Standardmäßig MEDIUM. |
|
||||
| `mimeType` | string | Nein | Der MIME-Typ des Thumbnail-Bildes: PNG oder GIF. Standardmäßig PNG. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contentUrl` | string | URL zum Thumbnail-Bild \(gültig für 30 Minuten\) |
|
||||
| `width` | number | Breite des Thumbnails in Pixeln |
|
||||
| `height` | number | Höhe des Thumbnails in Pixeln |
|
||||
| `metadata` | json | Operationsmetadaten einschließlich Präsentations-ID und Seitenobjekt-ID |
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `tools`
|
||||
- Typ: `google_slides`
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `presentationId` | string | Ja | Die ID der Präsentation |
|
||||
| `pageObjectId` | string | Ja | Die Objekt-ID der Folie/Seite, die abgerufen werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `objectId` | string | Die Objekt-ID der Seite |
|
||||
| `pageType` | string | Der Typ der Seite \(SLIDE, MASTER, LAYOUT, NOTES, NOTES_MASTER\) |
|
||||
| `pageElements` | array | Array von Seitenelementen \(Formen, Bilder, Tabellen usw.\) auf dieser Seite |
|
||||
| `slideProperties` | object | Eigenschaften, die spezifisch für Folien sind \(Layout, Master, Notizen\) |
|
||||
| ↳ `layoutObjectId` | string | Objekt-ID des Layouts, auf dem diese Folie basiert |
|
||||
| ↳ `masterObjectId` | string | Objekt-ID des Masters, auf dem diese Folie basiert |
|
||||
| ↳ `notesPage` | json | Die Notizenseite, die mit der Folie verknüpft ist |
|
||||
| `metadata` | object | Operationsmetadaten einschließlich Präsentations-ID und URL |
|
||||
| ↳ `presentationId` | string | Die Präsentations-ID |
|
||||
| ↳ `url` | string | URL zur Präsentation |
|
||||
|
||||
### `google_slides_delete_object`
|
||||
|
||||
Löschen Sie ein Seitenelement (Form, Bild, Tabelle usw.) oder eine gesamte Folie aus einer Google Slides-Präsentation
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `presentationId` | string | Ja | Die ID der Präsentation |
|
||||
| `objectId` | string | Ja | Die Objekt-ID des Elements oder der Folie, das/die gelöscht werden soll |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deleted` | boolean | Ob das Objekt erfolgreich gelöscht wurde |
|
||||
| `objectId` | string | Die Objekt-ID, die gelöscht wurde |
|
||||
| `metadata` | object | Operationsmetadaten einschließlich Präsentations-ID und URL |
|
||||
| ↳ `presentationId` | string | Die Präsentations-ID |
|
||||
| ↳ `url` | string | URL zur Präsentation |
|
||||
|
||||
### `google_slides_duplicate_object`
|
||||
|
||||
Dupliziert ein Objekt (Folie, Form, Bild, Tabelle usw.) in einer Google Slides-Präsentation
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `presentationId` | string | Ja | Google Slides-Präsentations-ID |
|
||||
| `objectId` | string | Ja | Die Objekt-ID des zu duplizierenden Elements oder der Folie |
|
||||
| `objectIds` | string | Nein | Optionales JSON-Objekt, das Quellobjekt-IDs (innerhalb der zu duplizierenden Folie) neuen Objekt-IDs für die Duplikate zuordnet. Format: \{"sourceId1":"newId1","sourceId2":"newId2"\} |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `duplicatedObjectId` | string | Die Objekt-ID des neu erstellten Duplikats |
|
||||
| `metadata` | object | Operationsmetadaten einschließlich Präsentations-ID und Quellobjekt-ID |
|
||||
| ↳ `presentationId` | string | Die Präsentations-ID |
|
||||
| ↳ `sourceObjectId` | string | Die ursprüngliche Objekt-ID, die dupliziert wurde |
|
||||
| ↳ `url` | string | URL zur Präsentation |
|
||||
|
||||
### `google_slides_update_slides_position`
|
||||
|
||||
Verschiebt eine oder mehrere Folien an eine neue Position in einer Google Slides-Präsentation
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `presentationId` | string | Ja | Die ID der Google Slides-Präsentation |
|
||||
| `slideObjectIds` | string | Ja | Kommagetrennte Liste von Folienobjekt-IDs, die verschoben werden sollen. Die Folien behalten ihre relative Reihenfolge bei. |
|
||||
| `insertionIndex` | number | Ja | Der nullbasierte Index, an den die Folien verschoben werden sollen. Alle Folien mit Indizes größer oder gleich diesem werden nach rechts verschoben. |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `moved` | boolean | Ob die Folien erfolgreich verschoben wurden |
|
||||
| `slideObjectIds` | array | Die Folienobjekt-IDs, die verschoben wurden |
|
||||
| `insertionIndex` | number | Der Index, an den die Folien verschoben wurden |
|
||||
| `metadata` | object | Operationsmetadaten einschließlich Präsentations-ID und URL |
|
||||
| ↳ `presentationId` | string | Die Präsentations-ID |
|
||||
| ↳ `url` | string | URL zur Präsentation |
|
||||
|
||||
### `google_slides_create_table`
|
||||
|
||||
Erstellt eine neue Tabelle auf einer Folie in einer Google Slides-Präsentation
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `presentationId` | string | Ja | Die ID der Google Slides-Präsentation |
|
||||
| `pageObjectId` | string | Ja | Die Objekt-ID der Folie/Seite, zu der die Tabelle hinzugefügt werden soll |
|
||||
| `rows` | number | Ja | Anzahl der Zeilen in der Tabelle \(mindestens 1\) |
|
||||
| `columns` | number | Ja | Anzahl der Spalten in der Tabelle \(mindestens 1\) |
|
||||
| `width` | number | Nein | Breite der Tabelle in Punkten \(Standard: 400\) |
|
||||
| `height` | number | Nein | Höhe der Tabelle in Punkten \(Standard: 200\) |
|
||||
| `positionX` | number | Nein | X-Position vom linken Rand in Punkten \(Standard: 100\) |
|
||||
| `positionY` | number | Nein | Y-Position vom oberen Rand in Punkten \(Standard: 100\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `tableId` | string | Die Objekt-ID der neu erstellten Tabelle |
|
||||
| `rows` | number | Anzahl der Zeilen in der Tabelle |
|
||||
| `columns` | number | Anzahl der Spalten in der Tabelle |
|
||||
| `metadata` | object | Operationsmetadaten einschließlich Präsentations-ID und Seitenobjekt-ID |
|
||||
| ↳ `presentationId` | string | Die Präsentations-ID |
|
||||
| ↳ `pageObjectId` | string | Die Seitenobjekt-ID, auf der die Tabelle erstellt wurde |
|
||||
| ↳ `url` | string | URL zur Präsentation |
|
||||
|
||||
### `google_slides_create_shape`
|
||||
|
||||
Erstellt eine Form (Rechteck, Ellipse, Textfeld, Pfeil usw.) auf einer Folie in einer Google Slides-Präsentation
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `presentationId` | string | Ja | Die ID der Google Slides-Präsentation |
|
||||
| `pageObjectId` | string | Ja | Die Objekt-ID der Folie/Seite, zu der die Form hinzugefügt werden soll |
|
||||
| `shapeType` | string | Ja | Der Typ der zu erstellenden Form. Gängige Typen: TEXT_BOX, RECTANGLE, ROUND_RECTANGLE, ELLIPSE, TRIANGLE, DIAMOND, STAR_5, ARROW_EAST, HEART, CLOUD |
|
||||
| `width` | number | Nein | Breite der Form in Punkten \(Standard: 200\) |
|
||||
| `height` | number | Nein | Höhe der Form in Punkten \(Standard: 100\) |
|
||||
| `positionX` | number | Nein | X-Position vom linken Rand in Punkten \(Standard: 100\) |
|
||||
| `positionY` | number | Nein | Y-Position vom oberen Rand in Punkten \(Standard: 100\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `shapeId` | string | Die Objekt-ID der neu erstellten Form |
|
||||
| `shapeType` | string | Der Typ der Form, die erstellt wurde |
|
||||
| `metadata` | object | Operationsmetadaten einschließlich Präsentations-ID und Seitenobjekt-ID |
|
||||
| ↳ `presentationId` | string | Die Präsentations-ID |
|
||||
| ↳ `pageObjectId` | string | Die Seitenobjekt-ID, auf der die Form erstellt wurde |
|
||||
| ↳ `url` | string | URL zur Präsentation |
|
||||
|
||||
### `google_slides_insert_text`
|
||||
|
||||
Fügt Text in eine Form oder Tabellenzelle in einer Google Slides-Präsentation ein. Verwenden Sie dies, um Text zu Textfeldern, Formen oder Tabellenzellen hinzuzufügen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `presentationId` | string | Ja | Google Slides-Präsentations-ID |
|
||||
| `objectId` | string | Ja | Die Objekt-ID der Form oder Tabellenzelle, in die Text eingefügt werden soll. Verwenden Sie für Tabellenzellen die Zellobjekt-ID. |
|
||||
| `text` | string | Ja | Der einzufügende Text |
|
||||
| `insertionIndex` | number | Nein | Der nullbasierte Index, an dem der Text eingefügt werden soll. Wenn nicht angegeben, wird der Text am Anfang eingefügt \(Index 0\). |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `inserted` | boolean | Ob der Text erfolgreich eingefügt wurde |
|
||||
| `objectId` | string | Die Objekt-ID, in die der Text eingefügt wurde |
|
||||
| `text` | string | Der Text, der eingefügt wurde |
|
||||
| `metadata` | object | Operationsmetadaten einschließlich Präsentations-ID und URL |
|
||||
| ↳ `presentationId` | string | Die Präsentations-ID |
|
||||
| ↳ `url` | string | URL zur Präsentation |
|
||||
@@ -0,0 +1,175 @@
|
||||
---
|
||||
title: Google Vault
|
||||
description: Suchen, exportieren und verwalten von Sperren/Exporten für
|
||||
Vault-Angelegenheiten
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="google_vault"
|
||||
color="#E8F0FE"
|
||||
/>
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Verbinden Sie Google Vault, um Exporte zu erstellen, Exporte aufzulisten und Sperren innerhalb von Angelegenheiten zu verwalten.
|
||||
|
||||
## Tools
|
||||
|
||||
### `google_vault_create_matters_export`
|
||||
|
||||
Einen Export in einer Angelegenheit erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `matterId` | string | Ja | Keine Beschreibung |
|
||||
| `exportName` | string | Ja | Keine Beschreibung |
|
||||
| `corpus` | string | Ja | Zu exportierender Datenkorpus \(MAIL, DRIVE, GROUPS, HANGOUTS_CHAT, VOICE\) |
|
||||
| `accountEmails` | string | Nein | Kommagetrennte Liste von Benutzer-E-Mails zur Eingrenzung des Exports |
|
||||
| `orgUnitId` | string | Nein | Organisationseinheit-ID zur Eingrenzung des Exports \(Alternative zu E-Mails\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `export` | json | Erstelltes Export-Objekt |
|
||||
|
||||
### `google_vault_list_matters_export`
|
||||
|
||||
Exporte für eine Angelegenheit auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `matterId` | string | Ja | Keine Beschreibung |
|
||||
| `pageSize` | number | Nein | Keine Beschreibung |
|
||||
| `pageToken` | string | Nein | Keine Beschreibung |
|
||||
| `exportId` | string | Nein | Keine Beschreibung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `exports` | json | Array von Export-Objekten |
|
||||
| `export` | json | Einzelnes Export-Objekt \(wenn exportId angegeben ist\) |
|
||||
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
### `google_vault_download_export_file`
|
||||
|
||||
Eine einzelne Datei aus einem Google Vault-Export herunterladen (GCS-Objekt)
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `matterId` | string | Ja | Keine Beschreibung |
|
||||
| `bucketName` | string | Ja | Keine Beschreibung |
|
||||
| `objectName` | string | Ja | Keine Beschreibung |
|
||||
| `fileName` | string | Nein | Keine Beschreibung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `file` | file | Heruntergeladene Vault-Exportdatei in den Ausführungsdateien gespeichert |
|
||||
|
||||
### `google_vault_create_matters_holds`
|
||||
|
||||
Eine Aufbewahrung in einer Angelegenheit erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `matterId` | string | Ja | Keine Beschreibung |
|
||||
| `holdName` | string | Ja | Keine Beschreibung |
|
||||
| `corpus` | string | Ja | Datenkorpus zur Aufbewahrung \(MAIL, DRIVE, GROUPS, HANGOUTS_CHAT, VOICE\) |
|
||||
| `accountEmails` | string | Nein | Kommagetrennte Liste von Benutzer-E-Mails, die aufbewahrt werden sollen |
|
||||
| `orgUnitId` | string | Nein | Organisationseinheit-ID zur Aufbewahrung \(Alternative zu Konten\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `hold` | json | Erstelltes Hold-Objekt |
|
||||
|
||||
### `google_vault_list_matters_holds`
|
||||
|
||||
Aufbewahrungen für eine Angelegenheit auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `matterId` | string | Ja | Keine Beschreibung |
|
||||
| `pageSize` | number | Nein | Keine Beschreibung |
|
||||
| `pageToken` | string | Nein | Keine Beschreibung |
|
||||
| `holdId` | string | Nein | Keine Beschreibung |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `holds` | json | Array von Hold-Objekten |
|
||||
| `hold` | json | Einzelnes Hold-Objekt \(wenn holdId angegeben ist\) |
|
||||
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
### `google_vault_create_matters`
|
||||
|
||||
Einen neuen Fall in Google Vault erstellen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `name` | string | Ja | Keine Beschreibung |
|
||||
| `description` | string | Nein | Keine Beschreibung |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `matter` | json | Erstelltes Matter-Objekt |
|
||||
|
||||
### `google_vault_list_matters`
|
||||
|
||||
Fälle auflisten oder einen bestimmten Fall abrufen, wenn matterId angegeben ist
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `pageSize` | number | Nein | Keine Beschreibung |
|
||||
| `pageToken` | string | Nein | Keine Beschreibung |
|
||||
| `matterId` | string | Nein | Keine Beschreibung |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `matters` | json | Array von Matter-Objekten |
|
||||
| `matter` | json | Einzelnes Matter-Objekt \(wenn matterId angegeben ist\) |
|
||||
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
|
||||
|
||||
## Hinweise
|
||||
|
||||
- Kategorie: `tools`
|
||||
- Typ: `google_vault`
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `pageSize` | number | Nein | Anzahl der Angelegenheiten, die pro Seite zurückgegeben werden sollen |
|
||||
| `pageToken` | string | Nein | Token für Paginierung |
|
||||
| `matterId` | string | Nein | Optionale Angelegenheits-ID zum Abrufen einer bestimmten Angelegenheit \(z. B. "12345678901234567890"\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `matters` | json | Array von Angelegenheitsobjekten |
|
||||
| `matter` | json | Einzelnes Angelegenheitsobjekt \(wenn matterId angegeben ist\) |
|
||||
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite |
|
||||
@@ -0,0 +1,499 @@
|
||||
---
|
||||
title: Grafana
|
||||
description: Interagiere mit Grafana-Dashboards, Alarmen und Anmerkungen
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="grafana"
|
||||
color="#E0E0E0"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Grafana](https://grafana.com/) ist eine führende Open-Source-Plattform für Monitoring, Observability und Visualisierung. Sie ermöglicht Benutzern, Daten aus verschiedenen Quellen abzufragen, zu visualisieren, zu überwachen und zu analysieren, was sie zu einem wesentlichen Werkzeug für Infrastruktur- und Anwendungsmonitoring macht.
|
||||
|
||||
Mit Grafana kannst du:
|
||||
|
||||
- **Daten visualisieren**: Dashboards erstellen und anpassen, um Metriken, Logs und Traces in Echtzeit anzuzeigen
|
||||
- **Gesundheit und Status überwachen**: Den Zustand deiner Grafana-Instanz und verbundener Datenquellen überprüfen
|
||||
- **Alarme und Anmerkungen verwalten**: Alarmregeln einrichten, Benachrichtigungen verwalten und Dashboards mit wichtigen Ereignissen versehen
|
||||
- **Inhalte organisieren**: Dashboards und Datenquellen in Ordnern organisieren für besseres Zugriffsmanagement
|
||||
|
||||
In Sim ermöglicht die Grafana-Integration deinen Agenten, direkt über die API mit deiner Grafana-Instanz zu interagieren, was Aktionen wie folgende ermöglicht:
|
||||
|
||||
- Überprüfung des Gesundheitsstatus von Grafana-Server, Datenbank und Datenquellen
|
||||
- Abrufen, Auflisten und Verwalten von Dashboards, Alarmregeln, Anmerkungen, Datenquellen und Ordnern
|
||||
- Automatisierung der Überwachung deiner Infrastruktur durch Integration von Grafana-Daten und Alarmen in deine Workflow-Automatisierungen
|
||||
|
||||
Diese Fähigkeiten ermöglichen es Sim-Agenten, Systeme zu überwachen, proaktiv auf Alarme zu reagieren und die Zuverlässigkeit und Sichtbarkeit deiner Dienste zu gewährleisten – alles als Teil deiner automatisierten Workflows.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Integriere Grafana in Workflows. Verwalte Dashboards, Alarme, Anmerkungen, Datenquellen, Ordner und überwache den Gesundheitsstatus.
|
||||
|
||||
## Tools
|
||||
|
||||
### `grafana_get_dashboard`
|
||||
|
||||
Ein Dashboard anhand seiner UID abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service Account Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
| `dashboardUid` | string | Ja | Die UID des abzurufenden Dashboards |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `dashboard` | json | Das vollständige Dashboard-JSON-Objekt |
|
||||
| `meta` | json | Dashboard-Metadaten \(Version, Berechtigungen usw.\) |
|
||||
|
||||
### `grafana_list_dashboards`
|
||||
|
||||
Suchen und auflisten aller Dashboards
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service Account Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
| `query` | string | Nein | Suchanfrage zum Filtern von Dashboards nach Titel |
|
||||
| `tag` | string | Nein | Nach Tag filtern \(kommagetrennt für mehrere Tags\) |
|
||||
| `folderIds` | string | Nein | Nach Ordner-IDs filtern \(kommagetrennt\) |
|
||||
| `starred` | boolean | Nein | Nur mit Stern markierte Dashboards zurückgeben |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Dashboards |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `dashboards` | array | Liste der Dashboard-Suchergebnisse |
|
||||
|
||||
### `grafana_create_dashboard`
|
||||
|
||||
Ein neues Dashboard erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service Account Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
| `title` | string | Ja | Der Titel des neuen Dashboards |
|
||||
| `folderUid` | string | Nein | Die UID des Ordners, in dem das Dashboard erstellt werden soll |
|
||||
| `tags` | string | Nein | Kommagetrennte Liste von Tags |
|
||||
| `timezone` | string | Nein | Dashboard-Zeitzone \(z.B. browser, utc\) |
|
||||
| `refresh` | string | Nein | Auto-Aktualisierungsintervall \(z.B. 5s, 1m, 5m\) |
|
||||
| `panels` | string | Nein | JSON-Array von Panel-Konfigurationen |
|
||||
| `overwrite` | boolean | Nein | Vorhandenes Dashboard mit gleichem Titel überschreiben |
|
||||
| `message` | string | Nein | Commit-Nachricht für die Dashboard-Version |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | number | Die numerische ID des erstellten Dashboards |
|
||||
| `uid` | string | Die UID des erstellten Dashboards |
|
||||
| `url` | string | Der URL-Pfad zum Dashboard |
|
||||
| `status` | string | Status der Operation \(success\) |
|
||||
| `version` | number | Die Versionsnummer des Dashboards |
|
||||
| `slug` | string | URL-freundlicher Slug des Dashboards |
|
||||
|
||||
### `grafana_update_dashboard`
|
||||
|
||||
Aktualisiert ein bestehendes Dashboard. Ruft das aktuelle Dashboard ab und führt Ihre Änderungen zusammen.
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service Account Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
| `dashboardUid` | string | Ja | Die UID des zu aktualisierenden Dashboards |
|
||||
| `title` | string | Nein | Neuer Titel für das Dashboard |
|
||||
| `folderUid` | string | Nein | Neue Ordner-UID, um das Dashboard zu verschieben |
|
||||
| `tags` | string | Nein | Kommagetrennte Liste neuer Tags |
|
||||
| `timezone` | string | Nein | Dashboard-Zeitzone \(z.B. browser, utc\) |
|
||||
| `refresh` | string | Nein | Auto-Refresh-Intervall \(z.B. 5s, 1m, 5m\) |
|
||||
| `panels` | string | Nein | JSON-Array von Panel-Konfigurationen |
|
||||
| `overwrite` | boolean | Nein | Überschreiben auch bei Versionskonflikten |
|
||||
| `message` | string | Nein | Commit-Nachricht für diese Version |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | number | Die numerische ID des aktualisierten Dashboards |
|
||||
| `uid` | string | Die UID des aktualisierten Dashboards |
|
||||
| `url` | string | Der URL-Pfad zum Dashboard |
|
||||
| `status` | string | Status der Operation \(success\) |
|
||||
| `version` | number | Die neue Versionsnummer des Dashboards |
|
||||
| `slug` | string | URL-freundlicher Slug des Dashboards |
|
||||
|
||||
### `grafana_delete_dashboard`
|
||||
|
||||
Löschen eines Dashboards anhand seiner UID
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service Account Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
| `dashboardUid` | string | Ja | Die UID des zu löschenden Dashboards |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `title` | string | Der Titel des gelöschten Dashboards |
|
||||
| `message` | string | Bestätigungsnachricht |
|
||||
| `id` | number | Die ID des gelöschten Dashboards |
|
||||
|
||||
### `grafana_list_alert_rules`
|
||||
|
||||
Alle Alarmregeln in der Grafana-Instanz auflisten
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service Account Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `rules` | array | Liste der Alarmregeln |
|
||||
|
||||
### `grafana_get_alert_rule`
|
||||
|
||||
Eine bestimmte Alarmregel anhand ihrer UID abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service Account Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
| `alertRuleUid` | string | Ja | Die UID der abzurufenden Alarmregel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `uid` | string | Alarmregel-UID |
|
||||
| `title` | string | Alarmregel-Titel |
|
||||
| `condition` | string | Alarmbedingung |
|
||||
| `data` | json | Alarmregel-Abfragedaten |
|
||||
| `folderUID` | string | Übergeordnete Ordner-UID |
|
||||
| `ruleGroup` | string | Regelgruppenname |
|
||||
| `noDataState` | string | Status, wenn keine Daten zurückgegeben werden |
|
||||
| `execErrState` | string | Status bei Ausführungsfehler |
|
||||
| `annotations` | json | Alarmanmerkungen |
|
||||
| `labels` | json | Alarmlabels |
|
||||
|
||||
### `grafana_create_alert_rule`
|
||||
|
||||
Eine neue Alarmregel erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service Account Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
| `title` | string | Ja | Der Titel der Alarmregel |
|
||||
| `folderUid` | string | Ja | Die UID des Ordners, in dem der Alarm erstellt werden soll |
|
||||
| `ruleGroup` | string | Ja | Der Name der Regelgruppe |
|
||||
| `condition` | string | Ja | Die refId der Abfrage oder des Ausdrucks, der als Alarmbedingung verwendet werden soll |
|
||||
| `data` | string | Ja | JSON-Array von Abfrage-/Ausdrucksdatenobjekten |
|
||||
| `forDuration` | string | Nein | Wartezeit vor dem Auslösen \(z.B. 5m, 1h\) |
|
||||
| `noDataState` | string | Nein | Status, wenn keine Daten zurückgegeben werden \(NoData, Alerting, OK\) |
|
||||
| `execErrState` | string | Nein | Status bei Ausführungsfehler \(Alerting, OK\) |
|
||||
| `annotations` | string | Nein | JSON-Objekt von Anmerkungen |
|
||||
| `labels` | string | Nein | JSON-Objekt von Labels |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `uid` | string | Die UID der erstellten Alarmregel |
|
||||
| `title` | string | Titel der Alarmregel |
|
||||
| `folderUID` | string | UID des übergeordneten Ordners |
|
||||
| `ruleGroup` | string | Name der Regelgruppe |
|
||||
|
||||
### `grafana_update_alert_rule`
|
||||
|
||||
Aktualisiert eine bestehende Alarmregel. Ruft die aktuelle Regel ab und führt Ihre Änderungen zusammen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service-Account-Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL (z.B. https://your-grafana.com) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
| `alertRuleUid` | string | Ja | Die UID der zu aktualisierenden Alarmregel |
|
||||
| `title` | string | Nein | Neuer Titel für die Alarmregel |
|
||||
| `folderUid` | string | Nein | Neue Ordner-UID, um den Alarm zu verschieben |
|
||||
| `ruleGroup` | string | Nein | Neuer Name der Regelgruppe |
|
||||
| `condition` | string | Nein | Neue Bedingung refId |
|
||||
| `data` | string | Nein | Neues JSON-Array von Abfrage-/Ausdrucksdatenobjekten |
|
||||
| `forDuration` | string | Nein | Wartezeit vor dem Auslösen (z.B. 5m, 1h) |
|
||||
| `noDataState` | string | Nein | Status, wenn keine Daten zurückgegeben werden (NoData, Alerting, OK) |
|
||||
| `execErrState` | string | Nein | Status bei Ausführungsfehler (Alerting, OK) |
|
||||
| `annotations` | string | Nein | JSON-Objekt von Anmerkungen |
|
||||
| `labels` | string | Nein | JSON-Objekt von Labels |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `uid` | string | Die UID der aktualisierten Alarmregel |
|
||||
| `title` | string | Titel der Alarmregel |
|
||||
| `folderUID` | string | UID des übergeordneten Ordners |
|
||||
| `ruleGroup` | string | Name der Regelgruppe |
|
||||
|
||||
### `grafana_delete_alert_rule`
|
||||
|
||||
Löschen einer Alarmregel anhand ihrer UID
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service-Account-Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
| `alertRuleUid` | string | Ja | Die UID der zu löschenden Alarmregel |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Bestätigungsnachricht |
|
||||
|
||||
### `grafana_list_contact_points`
|
||||
|
||||
Alle Alarmbenachrichtigungs-Kontaktpunkte auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service-Account-Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contactPoints` | array | Liste der Kontaktpunkte |
|
||||
|
||||
### `grafana_create_annotation`
|
||||
|
||||
Eine Anmerkung auf einem Dashboard oder als globale Anmerkung erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service Account Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
| `text` | string | Ja | Der Textinhalt der Anmerkung |
|
||||
| `tags` | string | Nein | Kommagetrennte Liste von Tags |
|
||||
| `dashboardUid` | string | Ja | UID des Dashboards, zu dem die Anmerkung hinzugefügt werden soll |
|
||||
| `panelId` | number | Nein | ID des Panels, zu dem die Anmerkung hinzugefügt werden soll |
|
||||
| `time` | number | Nein | Startzeit in Epochenmillisekunden \(standardmäßig jetzt\) |
|
||||
| `timeEnd` | number | Nein | Endzeit in Epochenmillisekunden \(für Bereichsanmerkungen\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | number | Die ID der erstellten Anmerkung |
|
||||
| `message` | string | Bestätigungsnachricht |
|
||||
|
||||
### `grafana_list_annotations`
|
||||
|
||||
Anmerkungen nach Zeitraum, Dashboard oder Tags abfragen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service Account Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
| `from` | number | Nein | Startzeit in Epochenmillisekunden |
|
||||
| `to` | number | Nein | Endzeit in Epochenmillisekunden |
|
||||
| `dashboardUid` | string | Ja | Dashboard-UID, von der Anmerkungen abgefragt werden sollen |
|
||||
| `panelId` | number | Nein | Nach Panel-ID filtern |
|
||||
| `tags` | string | Nein | Kommagetrennte Liste von Tags zum Filtern |
|
||||
| `type` | string | Nein | Nach Typ filtern \(alert oder annotation\) |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Anmerkungen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `annotations` | array | Liste der Anmerkungen |
|
||||
|
||||
### `grafana_update_annotation`
|
||||
|
||||
Eine vorhandene Anmerkung aktualisieren
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service-Account-Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
| `annotationId` | number | Ja | Die ID der zu aktualisierenden Anmerkung |
|
||||
| `text` | string | Ja | Neuer Textinhalt für die Anmerkung |
|
||||
| `tags` | string | Nein | Kommagetrennte Liste neuer Tags |
|
||||
| `time` | number | Nein | Neue Startzeit in Epochenmillisekunden |
|
||||
| `timeEnd` | number | Nein | Neue Endzeit in Epochenmillisekunden |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | number | Die ID der aktualisierten Anmerkung |
|
||||
| `message` | string | Bestätigungsnachricht |
|
||||
|
||||
### `grafana_delete_annotation`
|
||||
|
||||
Eine Anmerkung anhand ihrer ID löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service-Account-Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
| `annotationId` | number | Ja | Die ID der zu löschenden Anmerkung |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | Bestätigungsnachricht |
|
||||
|
||||
### `grafana_list_data_sources`
|
||||
|
||||
Alle in Grafana konfigurierten Datenquellen auflisten
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service Account Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `dataSources` | array | Liste der Datenquellen |
|
||||
|
||||
### `grafana_get_data_source`
|
||||
|
||||
Eine Datenquelle anhand ihrer ID oder UID abrufen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service Account Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Multi-Org-Grafana-Instanzen |
|
||||
| `dataSourceId` | string | Ja | Die ID oder UID der abzurufenden Datenquelle |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | number | Datenquellen-ID |
|
||||
| `uid` | string | Datenquellen-UID |
|
||||
| `name` | string | Name der Datenquelle |
|
||||
| `type` | string | Typ der Datenquelle |
|
||||
| `url` | string | Verbindungs-URL der Datenquelle |
|
||||
| `database` | string | Datenbankname \(falls zutreffend\) |
|
||||
| `isDefault` | boolean | Ob dies die Standard-Datenquelle ist |
|
||||
| `jsonData` | json | Zusätzliche Konfiguration der Datenquelle |
|
||||
|
||||
### `grafana_list_folders`
|
||||
|
||||
Alle Ordner in Grafana auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service Account Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Grafana-Instanzen mit mehreren Organisationen |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ordner |
|
||||
| `page` | number | Nein | Seitennummer für Paginierung |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `folders` | array | Liste der Ordner |
|
||||
|
||||
### `grafana_create_folder`
|
||||
|
||||
Einen neuen Ordner in Grafana erstellen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grafana Service Account Token |
|
||||
| `baseUrl` | string | Ja | Grafana-Instanz-URL \(z.B. https://your-grafana.com\) |
|
||||
| `organizationId` | string | Nein | Organisations-ID für Grafana-Instanzen mit mehreren Organisationen |
|
||||
| `title` | string | Ja | Der Titel des neuen Ordners |
|
||||
| `uid` | string | Nein | Optionale UID für den Ordner \(wird automatisch generiert, wenn nicht angegeben\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Type | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | number | Die numerische ID des erstellten Ordners |
|
||||
| `uid` | string | Die UID des erstellten Ordners |
|
||||
| `title` | string | Der Titel des erstellten Ordners |
|
||||
| `url` | string | Der URL-Pfad zum Ordner |
|
||||
| `hasAcl` | boolean | Ob der Ordner benutzerdefinierte ACL-Berechtigungen hat |
|
||||
| `canSave` | boolean | Ob der aktuelle Benutzer den Ordner speichern kann |
|
||||
| `canEdit` | boolean | Ob der aktuelle Benutzer den Ordner bearbeiten kann |
|
||||
| `canAdmin` | boolean | Ob der aktuelle Benutzer Administratorrechte für den Ordner hat |
|
||||
| `canDelete` | boolean | Ob der aktuelle Benutzer den Ordner löschen kann |
|
||||
| `createdBy` | string | Benutzername desjenigen, der den Ordner erstellt hat |
|
||||
| `created` | string | Zeitstempel, wann der Ordner erstellt wurde |
|
||||
| `updatedBy` | string | Benutzername desjenigen, der den Ordner zuletzt aktualisiert hat |
|
||||
| `updated` | string | Zeitstempel, wann der Ordner zuletzt aktualisiert wurde |
|
||||
| `version` | number | Versionsnummer des Ordners |
|
||||
@@ -0,0 +1,213 @@
|
||||
---
|
||||
title: Grain
|
||||
description: Zugriff auf Meeting-Aufzeichnungen, Transkripte und KI-Zusammenfassungen
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="grain"
|
||||
color="#F6FAF9"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Grain](https://grain.com/) ist eine moderne Plattform zum Erfassen, Speichern und Teilen von Meeting-Aufzeichnungen, Transkripten, Highlights und KI-gestützten Zusammenfassungen. Grain ermöglicht es Teams, Gespräche in umsetzbare Erkenntnisse zu verwandeln und alle über wichtige Momente aus Meetings auf dem Laufenden zu halten.
|
||||
|
||||
Mit Grain können Sie:
|
||||
|
||||
- **Auf durchsuchbare Aufzeichnungen und Transkripte zugreifen**: Finden und überprüfen Sie jedes Meeting nach Stichwort, Teilnehmer oder Thema.
|
||||
- **Highlights und Clips teilen**: Erfassen Sie wichtige Momente und teilen Sie kurze Video-/Audio-Highlights in Ihrem Team oder in Workflows.
|
||||
- **KI-generierte Zusammenfassungen erhalten**: Erstellen Sie automatisch Meeting-Zusammenfassungen, Aktionspunkte und wichtige Erkenntnisse mithilfe der fortschrittlichen KI von Grain.
|
||||
- **Meetings nach Team oder Typ organisieren**: Taggen und kategorisieren Sie Aufzeichnungen für einfachen Zugriff und Reporting.
|
||||
|
||||
Die Sim-Grain-Integration ermöglicht es Ihren Agenten:
|
||||
|
||||
- Meeting-Aufzeichnungen und Details nach flexiblen Filtern (Datum/Uhrzeit, Teilnehmer, Team usw.) aufzulisten, zu suchen und abzurufen.
|
||||
- Auf KI-Zusammenfassungen, Teilnehmer, Highlights und andere Metadaten für Meetings zuzugreifen, um Automatisierungen oder Analysen zu unterstützen.
|
||||
- Workflows auszulösen, sobald neue Meetings verarbeitet, Zusammenfassungen generiert oder Highlights über Grain-Webhooks erstellt werden.
|
||||
- Grain-Daten einfach in andere Tools zu überführen oder Teammitglieder zu benachrichtigen, sobald etwas Wichtiges in einem Meeting passiert.
|
||||
|
||||
Ob Sie Follow-up-Aktionen automatisieren, wichtige Gespräche dokumentieren oder Erkenntnisse in Ihrer Organisation sichtbar machen möchten – Grain und Sim machen es einfach, Meeting-Intelligence mit Ihren Workflows zu verbinden.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanweisungen
|
||||
|
||||
Integrieren Sie Grain in Ihren Workflow. Greifen Sie auf Meeting-Aufzeichnungen, Transkripte, Highlights und KI-generierte Zusammenfassungen zu. Kann auch Workflows basierend auf Grain-Webhook-Ereignissen auslösen.
|
||||
|
||||
## Tools
|
||||
|
||||
### `grain_list_recordings`
|
||||
|
||||
Aufzeichnungen von Grain mit optionalen Filtern und Paginierung auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grain API-Schlüssel \(Personal Access Token\) |
|
||||
| `cursor` | string | Nein | Paginierungs-Cursor für nächste Seite |
|
||||
| `beforeDatetime` | string | Nein | Nur Aufzeichnungen vor diesem ISO8601-Zeitstempel |
|
||||
| `afterDatetime` | string | Nein | Nur Aufzeichnungen nach diesem ISO8601-Zeitstempel |
|
||||
| `participantScope` | string | Nein | Filter: "internal" oder "external" |
|
||||
| `titleSearch` | string | Nein | Suchbegriff zum Filtern nach Aufzeichnungstitel |
|
||||
| `teamId` | string | Nein | Nach Team-UUID filtern |
|
||||
| `meetingTypeId` | string | Nein | Nach Meeting-Typ-UUID filtern |
|
||||
| `includeHighlights` | boolean | Nein | Highlights/Clips in Antwort einschließen |
|
||||
| `includeParticipants` | boolean | Nein | Teilnehmerliste in Antwort einschließen |
|
||||
| `includeAiSummary` | boolean | Nein | KI-generierte Zusammenfassung einschließen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `recordings` | array | Array von Aufzeichnungsobjekten |
|
||||
|
||||
### `grain_get_recording`
|
||||
|
||||
Details einer einzelnen Aufzeichnung nach ID abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grain API-Schlüssel \(Personal Access Token\) |
|
||||
| `recordingId` | string | Ja | Die Aufzeichnungs-UUID |
|
||||
| `includeHighlights` | boolean | Nein | Highlights/Clips einschließen |
|
||||
| `includeParticipants` | boolean | Nein | Teilnehmerliste einschließen |
|
||||
| `includeAiSummary` | boolean | Nein | KI-Zusammenfassung einschließen |
|
||||
| `includeCalendarEvent` | boolean | Nein | Kalenderereignisdaten einschließen |
|
||||
| `includeHubspot` | boolean | Nein | HubSpot-Verknüpfungen einschließen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Aufnahme-UUID |
|
||||
| `title` | string | Aufnahmetitel |
|
||||
| `start_datetime` | string | ISO8601-Startzeitstempel |
|
||||
| `end_datetime` | string | ISO8601-Endzeitstempel |
|
||||
| `duration_ms` | number | Dauer in Millisekunden |
|
||||
| `media_type` | string | audio, transcript oder video |
|
||||
| `source` | string | Aufnahmequelle \(zoom, meet, teams, etc.\) |
|
||||
| `url` | string | URL zur Ansicht in Grain |
|
||||
| `thumbnail_url` | string | Vorschaubild-URL |
|
||||
| `tags` | array | Array von Tag-Strings |
|
||||
| `teams` | array | Teams, zu denen die Aufnahme gehört |
|
||||
| `meeting_type` | object | Meeting-Typ-Informationen \(id, name, scope\) |
|
||||
| `highlights` | array | Highlights \(falls enthalten\) |
|
||||
| `participants` | array | Teilnehmer \(falls enthalten\) |
|
||||
| `ai_summary` | object | KI-Zusammenfassungstext \(falls enthalten\) |
|
||||
| `calendar_event` | object | Kalenderereignisdaten \(falls enthalten\) |
|
||||
| `hubspot` | object | HubSpot-Verknüpfungen \(falls enthalten\) |
|
||||
|
||||
### `grain_get_transcript`
|
||||
|
||||
Vollständiges Transkript einer Aufnahme abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grain-API-Schlüssel \(Personal Access Token\) |
|
||||
| `recordingId` | string | Ja | Die Aufnahme-UUID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `transcript` | array | Array von Transkriptabschnitten |
|
||||
|
||||
### `grain_list_teams`
|
||||
|
||||
Alle Teams im Workspace auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grain API-Schlüssel \(Personal Access Token\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `teams` | array | Array von Team-Objekten |
|
||||
|
||||
### `grain_list_meeting_types`
|
||||
|
||||
Alle Meeting-Typen im Workspace auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grain API-Schlüssel \(Personal Access Token\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `meeting_types` | array | Array von Meeting-Typ-Objekten |
|
||||
|
||||
### `grain_create_hook`
|
||||
|
||||
Einen Webhook erstellen, um Aufzeichnungs-Events zu empfangen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grain API-Schlüssel \(Personal Access Token\) |
|
||||
| `hookUrl` | string | Ja | Webhook-Endpunkt-URL \(muss mit 2xx antworten\) |
|
||||
| `filterBeforeDatetime` | string | Nein | Filter: Aufzeichnungen vor diesem Datum |
|
||||
| `filterAfterDatetime` | string | Nein | Filter: Aufzeichnungen nach diesem Datum |
|
||||
| `filterParticipantScope` | string | Nein | Filter: "internal" oder "external" |
|
||||
| `filterTeamId` | string | Nein | Filter: spezifische Team-UUID |
|
||||
| `filterMeetingTypeId` | string | Nein | Filter: spezifischer Meeting-Typ |
|
||||
| `includeHighlights` | boolean | Nein | Highlights in Webhook-Payload einschließen |
|
||||
| `includeParticipants` | boolean | Nein | Teilnehmer in Webhook-Payload einschließen |
|
||||
| `includeAiSummary` | boolean | Nein | KI-Zusammenfassung in Webhook-Payload einschließen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `id` | string | Hook-UUID |
|
||||
| `enabled` | boolean | Ob der Hook aktiv ist |
|
||||
| `hook_url` | string | Die Webhook-URL |
|
||||
| `filter` | object | Angewendete Filter |
|
||||
| `include` | object | Enthaltene Felder |
|
||||
| `inserted_at` | string | ISO8601-Erstellungszeitstempel |
|
||||
|
||||
### `grain_list_hooks`
|
||||
|
||||
Alle Webhooks für das Konto auflisten
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grain-API-Schlüssel \(Personal Access Token\) |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `hooks` | array | Array von Hook-Objekten |
|
||||
|
||||
### `grain_delete_hook`
|
||||
|
||||
Einen Webhook anhand der ID löschen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `apiKey` | string | Ja | Grain-API-Schlüssel \(Personal Access Token\) |
|
||||
| `hookId` | string | Ja | Die zu löschende Hook-UUID |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `success` | boolean | True, wenn der Webhook erfolgreich gelöscht wurde |
|
||||
@@ -0,0 +1,131 @@
|
||||
---
|
||||
title: Greptile
|
||||
description: KI-gestützte Codebase-Suche und Fragen & Antworten
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="greptile"
|
||||
color="#e5e5e5"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[Greptile](https://greptile.com/) ist ein KI-gestütztes Entwicklertool zum Durchsuchen und Abfragen von Quellcode über ein oder mehrere Repositories hinweg. Greptile ermöglicht es Entwicklern, komplexe Fragen zur Codebase schnell in natürlicher Sprache zu beantworten, relevante Dateien oder Symbole zu finden und Einblicke in unbekannten oder Legacy-Code zu gewinnen.
|
||||
|
||||
Mit Greptile können Sie:
|
||||
|
||||
- **Komplexe Fragen zu Ihrer Codebase in natürlicher Sprache stellen**: Erhalten Sie KI-generierte Antworten zu Architektur, Verwendungsmustern oder spezifischen Implementierungen.
|
||||
- **Relevanten Code, Dateien oder Funktionen sofort finden**: Suchen Sie mit Schlüsselwörtern oder natürlichsprachlichen Abfragen und springen Sie direkt zu passenden Zeilen, Dateien oder Codeblöcken.
|
||||
- **Abhängigkeiten und Beziehungen verstehen**: Entdecken Sie, wo Funktionen aufgerufen werden, wie Module miteinander verbunden sind oder wo APIs in großen Codebasen verwendet werden.
|
||||
- **Onboarding und Code-Exploration beschleunigen**: Arbeiten Sie sich schnell in neue Projekte ein oder debuggen Sie knifflige Probleme, ohne tiefgreifenden Vorkontext zu benötigen.
|
||||
|
||||
Die Sim Greptile-Integration ermöglicht es Ihren KI-Agenten:
|
||||
|
||||
- Private und öffentliche Repositories mithilfe der fortschrittlichen Sprachmodelle von Greptile abzufragen und zu durchsuchen.
|
||||
- Kontextuell relevante Code-Snippets, Dateiverweise und Erklärungen abzurufen, um Code-Reviews, Dokumentation und Entwicklungsworkflows zu unterstützen.
|
||||
- Automatisierungen in Sim-Workflows basierend auf Such-/Abfrageergebnissen auszulösen oder Code-Intelligenz direkt in Ihre Prozesse einzubetten.
|
||||
|
||||
Egal, ob Sie die Produktivität von Entwicklern beschleunigen, Dokumentation automatisieren oder das Verständnis Ihres Teams für eine komplexe Codebase verbessern möchten – Greptile und Sim bieten nahtlosen Zugriff auf Code-Intelligenz und Suche, genau dort, wo Sie sie benötigen.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Fragen Sie Codebasen mit natürlicher Sprache über Greptile ab und durchsuchen Sie sie. Erhalten Sie KI-generierte Antworten zu Ihrem Code, finden Sie relevante Dateien und verstehen Sie komplexe Codebasen.
|
||||
|
||||
## Tools
|
||||
|
||||
### `greptile_query`
|
||||
|
||||
Durchsuchen Sie Repositories in natürlicher Sprache und erhalten Sie Antworten mit relevanten Code-Referenzen. Greptile nutzt KI, um Ihre Codebasis zu verstehen und Fragen zu beantworten.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Ja | Frage in natürlicher Sprache zur Codebasis |
|
||||
| `repositories` | string | Ja | Kommagetrennte Liste von Repositories. Format: "github:branch:owner/repo" oder nur "owner/repo" \(Standard ist github:main\) |
|
||||
| `sessionId` | string | Nein | Sitzungs-ID für Gesprächskontinuität |
|
||||
| `genius` | boolean | Nein | Genius-Modus für gründlichere Analyse aktivieren \(langsamer, aber genauer\) |
|
||||
| `apiKey` | string | Ja | Greptile-API-Schlüssel |
|
||||
| `githubToken` | string | Ja | GitHub Personal Access Token mit Lesezugriff auf Repositories |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `message` | string | KI-generierte Antwort auf die Anfrage |
|
||||
| `sources` | array | Relevante Code-Referenzen, die die Antwort unterstützen |
|
||||
|
||||
### `greptile_search`
|
||||
|
||||
Durchsuchen Sie Repositories in natürlicher Sprache und erhalten Sie relevante Code-Referenzen ohne Generierung einer Antwort. Nützlich zum Auffinden spezifischer Code-Stellen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `query` | string | Ja | Suchanfrage in natürlicher Sprache zum Auffinden relevanten Codes |
|
||||
| `repositories` | string | Ja | Kommagetrennte Liste von Repositories. Format: "github:branch:owner/repo" oder nur "owner/repo" \(Standard ist github:main\) |
|
||||
| `sessionId` | string | Nein | Sitzungs-ID für Gesprächskontinuität |
|
||||
| `genius` | boolean | Nein | Genius-Modus für gründlichere Suche aktivieren \(langsamer, aber genauer\) |
|
||||
| `apiKey` | string | Ja | Greptile-API-Schlüssel |
|
||||
| `githubToken` | string | Ja | GitHub Personal Access Token mit Lesezugriff auf Repositories |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `sources` | array | Relevante Code-Referenzen, die zur Suchanfrage passen |
|
||||
|
||||
### `greptile_index_repo`
|
||||
|
||||
Übermitteln Sie ein Repository zur Indexierung durch Greptile. Die Indexierung muss abgeschlossen sein, bevor das Repository abgefragt werden kann. Kleine Repositories benötigen 3-5 Minuten, größere können über eine Stunde dauern.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `remote` | string | Ja | Git-Remote-Typ: github oder gitlab |
|
||||
| `repository` | string | Ja | Repository im Format owner/repo \(z. B. "facebook/react"\) |
|
||||
| `branch` | string | Ja | Zu indexierender Branch \(z. B. "main" oder "master"\) |
|
||||
| `reload` | boolean | Nein | Neuindexierung erzwingen, auch wenn bereits indexiert |
|
||||
| `notify` | boolean | Nein | E-Mail-Benachrichtigung senden, wenn Indexierung abgeschlossen ist |
|
||||
| `apiKey` | string | Ja | Greptile-API-Schlüssel |
|
||||
| `githubToken` | string | Ja | GitHub Personal Access Token mit Lesezugriff auf Repository |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `repositoryId` | string | Eindeutige Kennung für das indexierte Repository \(Format: remote:branch:owner/repo\) |
|
||||
| `statusEndpoint` | string | URL-Endpunkt zur Überprüfung des Indexierungsstatus |
|
||||
| `message` | string | Statusmeldung über den Indexierungsvorgang |
|
||||
|
||||
### `greptile_status`
|
||||
|
||||
Überprüfen Sie den Indexierungsstatus eines Repositories. Verwenden Sie dies, um zu verifizieren, ob ein Repository abfragebereit ist, oder um den Indexierungsfortschritt zu überwachen.
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `remote` | string | Ja | Git-Remote-Typ: github oder gitlab |
|
||||
| `repository` | string | Ja | Repository im Format owner/repo \(z. B. "facebook/react"\) |
|
||||
| `branch` | string | Ja | Branch-Name \(z. B. "main" oder "master"\) |
|
||||
| `apiKey` | string | Ja | Greptile-API-Schlüssel |
|
||||
| `githubToken` | string | Ja | GitHub Personal Access Token mit Lesezugriff auf das Repository |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `repository` | string | Repository-Name \(owner/repo\) |
|
||||
| `remote` | string | Git-Remote \(github/gitlab\) |
|
||||
| `branch` | string | Branch-Name |
|
||||
| `private` | boolean | Ob das Repository privat ist |
|
||||
| `status` | string | Indexierungsstatus: submitted, cloning, processing, completed oder failed |
|
||||
| `filesProcessed` | number | Anzahl der bisher verarbeiteten Dateien |
|
||||
| `numFiles` | number | Gesamtanzahl der Dateien im Repository |
|
||||
| `sampleQuestions` | array | Beispielfragen für das indexierte Repository |
|
||||
| `sha` | string | Git-Commit-SHA der indexierten Version |
|
||||
@@ -0,0 +1,289 @@
|
||||
---
|
||||
title: HubSpot
|
||||
description: Interagieren Sie mit HubSpot CRM oder lösen Sie Workflows von
|
||||
HubSpot-Ereignissen aus
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="hubspot"
|
||||
color="#FF7A59"
|
||||
/>
|
||||
|
||||
{/* MANUAL-CONTENT-START:intro */}
|
||||
[HubSpot](https://www.hubspot.com) ist eine umfassende CRM-Plattform, die eine vollständige Suite von Marketing-, Vertriebs- und Kundenservice-Tools bietet, um Unternehmen beim besseren Wachstum zu unterstützen. Mit seinen leistungsstarken Automatisierungsfunktionen und umfangreicher API ist HubSpot zu einer der weltweit führenden CRM-Plattformen geworden, die Unternehmen aller Größen und Branchen bedient.
|
||||
|
||||
HubSpot CRM bietet eine komplette Lösung für die Verwaltung von Kundenbeziehungen, vom ersten Kontakt bis zum langfristigen Kundenerfolg. Die Plattform kombiniert Kontaktverwaltung, Deal-Tracking, Marketing-Automatisierung und Kundenservice-Tools in einem einheitlichen System, das Teams dabei hilft, aufeinander abgestimmt und auf den Kundenerfolg fokussiert zu bleiben.
|
||||
|
||||
Zu den wichtigsten Funktionen von HubSpot CRM gehören:
|
||||
|
||||
- Kontakt- & Unternehmensverwaltung: Umfassende Datenbank zur Speicherung und Organisation von Kunden- und Interessenteninformationen
|
||||
- Deal-Pipeline: Visuelle Vertriebspipeline zur Verfolgung von Verkaufschancen durch anpassbare Phasen
|
||||
- Marketing-Events: Verfolgen und Verwalten von Marketingkampagnen und Veranstaltungen mit detaillierter Attribution
|
||||
- Ticket-Management: Kundenservice-Ticketsystem zur Verfolgung und Lösung von Kundenproblemen
|
||||
- Angebote & Artikelpositionen: Erstellen und Verwalten von Verkaufsangeboten mit detaillierten Produktpositionen
|
||||
- Benutzer- & Teamverwaltung: Teams organisieren, Verantwortlichkeiten zuweisen und Benutzeraktivitäten auf der gesamten Plattform verfolgen
|
||||
|
||||
In Sim ermöglicht die HubSpot-Integration Ihren KI-Agenten eine nahtlose Interaktion mit Ihren CRM-Daten und die Automatisierung wichtiger Geschäftsprozesse. Dies schafft leistungsstarke Möglichkeiten für intelligente Lead-Qualifizierung, automatisierte Kontaktanreicherung, Deal-Management, Kundenservice-Automatisierung und Datensynchronisierung in Ihrem Tech-Stack. Die Integration ermöglicht Agenten das Erstellen, Abrufen, Aktualisieren und Durchsuchen aller wichtigen HubSpot-Objekte und ermöglicht so anspruchsvolle Workflows, die auf CRM-Ereignisse reagieren, die Datenqualität aufrechterhalten und sicherstellen, dass Ihr Team über die aktuellsten Kundeninformationen verfügt. Durch die Verbindung von Sim mit HubSpot können Sie KI-Agenten erstellen, die automatisch Leads qualifizieren, Support-Tickets weiterleiten, Deal-Phasen basierend auf Kundeninteraktionen aktualisieren, Angebote generieren und Ihre CRM-Daten mit anderen Geschäftssystemen synchronisieren – was letztendlich die Teamproduktivität steigert und die Kundenerfahrung verbessert.
|
||||
{/* MANUAL-CONTENT-END */}
|
||||
|
||||
## Nutzungsanleitung
|
||||
|
||||
Integrieren Sie HubSpot in Ihren Workflow. Verwalten Sie Kontakte, Unternehmen, Deals, Tickets und andere CRM-Objekte mit leistungsstarken Automatisierungsfunktionen. Kann im Trigger-Modus verwendet werden, um Workflows zu starten, wenn Kontakte erstellt, gelöscht oder aktualisiert werden.
|
||||
|
||||
## Tools
|
||||
|
||||
### `hubspot_get_users`
|
||||
|
||||
Alle Benutzer vom HubSpot-Konto abrufen
|
||||
|
||||
#### Input
|
||||
|
||||
| Parameter | Type | Required | Description |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `limit` | string | No | Anzahl der zurückzugebenden Ergebnisse \(Standard: 100\) |
|
||||
|
||||
#### Output
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `users` | array | Array von HubSpot-Benutzerobjekten |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `hubspot_list_contacts`
|
||||
|
||||
Alle Kontakte vom HubSpot-Konto mit Paginierungsunterstützung abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `limit` | string | Nein | Maximale Anzahl von Ergebnissen pro Seite \(max. 100, Standard 100\) |
|
||||
| `after` | string | Nein | Paginierungscursor für die nächste Ergebnisseite |
|
||||
| `properties` | string | Nein | Kommagetrennte Liste der zurückzugebenden Eigenschaften \(z.B. "email,firstname,lastname"\) |
|
||||
| `associations` | string | Nein | Kommagetrennte Liste der Objekttypen, für die zugehörige IDs abgerufen werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Array von HubSpot-Kontaktobjekten |
|
||||
| `paging` | object | Paginierungsinformationen |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `hubspot_get_contact`
|
||||
|
||||
Einen einzelnen Kontakt anhand von ID oder E-Mail aus HubSpot abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `contactId` | string | Ja | Die ID oder E-Mail des abzurufenden Kontakts |
|
||||
| `idProperty` | string | Nein | Eigenschaft, die als eindeutiger Identifikator verwendet werden soll \(z.B. "email"\). Falls nicht angegeben, wird die Datensatz-ID verwendet |
|
||||
| `properties` | string | Nein | Kommagetrennte Liste der zurückzugebenden Eigenschaften |
|
||||
| `associations` | string | Nein | Kommagetrennte Liste der Objekttypen, für die zugehörige IDs abgerufen werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | HubSpot-Kontaktobjekt mit Eigenschaften |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `hubspot_create_contact`
|
||||
|
||||
Erstellt einen neuen Kontakt in HubSpot. Erfordert mindestens eines der folgenden Felder: E-Mail, Vorname oder Nachname
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `properties` | object | Ja | Kontakteigenschaften als JSON-Objekt. Muss mindestens eines der folgenden Felder enthalten: E-Mail, Vorname oder Nachname |
|
||||
| `associations` | array | Nein | Array von Verknüpfungen, die mit dem Kontakt erstellt werden sollen \(z.B. Unternehmen, Deals\). Jedes Objekt sollte "to" \(mit "id"\) und "types" \(mit "associationCategory" und "associationTypeId"\) enthalten |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Erstelltes HubSpot-Kontaktobjekt |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `hubspot_update_contact`
|
||||
|
||||
Aktualisiert einen bestehenden Kontakt in HubSpot anhand von ID oder E-Mail
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `contactId` | string | Ja | Die ID oder E-Mail des zu aktualisierenden Kontakts |
|
||||
| `idProperty` | string | Nein | Eigenschaft, die als eindeutiger Identifikator verwendet werden soll \(z.B. "email"\). Wenn nicht angegeben, wird die Datensatz-ID verwendet |
|
||||
| `properties` | object | Ja | Zu aktualisierende Kontakteigenschaften als JSON-Objekt |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contact` | object | Aktualisiertes HubSpot-Kontaktobjekt |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `hubspot_search_contacts`
|
||||
|
||||
Suche nach Kontakten in HubSpot mit Filtern, Sortierung und Abfragen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `filterGroups` | array | Nein | Array von Filtergruppen. Jede Gruppe enthält Filter mit propertyName, operator und value |
|
||||
| `sorts` | array | Nein | Array von Sortierobjekten mit propertyName und direction ("ASCENDING" oder "DESCENDING") |
|
||||
| `query` | string | Nein | Suchabfragestring |
|
||||
| `properties` | array | Nein | Array von Eigenschaftsnamen, die zurückgegeben werden sollen |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse (max. 100) |
|
||||
| `after` | string | Nein | Paginierungscursor für die nächste Seite |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `contacts` | array | Array übereinstimmender HubSpot-Kontaktobjekte |
|
||||
| `total` | number | Gesamtanzahl übereinstimmender Kontakte |
|
||||
| `paging` | object | Paginierungsinformationen |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `hubspot_list_companies`
|
||||
|
||||
Alle Unternehmen aus dem HubSpot-Konto mit Paginierungsunterstützung abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `limit` | string | Nein | Maximale Anzahl der Ergebnisse pro Seite (max. 100, Standard 100) |
|
||||
| `after` | string | Nein | Paginierungscursor für die nächste Ergebnisseite |
|
||||
| `properties` | string | Nein | Kommagetrennte Liste der zurückzugebenden Eigenschaften |
|
||||
| `associations` | string | Nein | Kommagetrennte Liste der Objekttypen, für die zugehörige IDs abgerufen werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | Array von HubSpot-Unternehmensobjekten |
|
||||
| `paging` | object | Paginierungsinformationen |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `hubspot_get_company`
|
||||
|
||||
Ruft ein einzelnes Unternehmen anhand der ID oder Domain von HubSpot ab
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `companyId` | string | Ja | Die ID oder Domain des abzurufenden Unternehmens |
|
||||
| `idProperty` | string | Nein | Eigenschaft, die als eindeutiger Identifikator verwendet wird (z.B. "domain"). Falls nicht angegeben, wird die Datensatz-ID verwendet |
|
||||
| `properties` | string | Nein | Kommagetrennte Liste der zurückzugebenden Eigenschaften |
|
||||
| `associations` | string | Nein | Kommagetrennte Liste der Objekttypen, für die zugehörige IDs abgerufen werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | HubSpot-Unternehmensobjekt mit Eigenschaften |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `hubspot_create_company`
|
||||
|
||||
Erstellt ein neues Unternehmen in HubSpot
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `properties` | object | Ja | Unternehmensdaten als JSON-Objekt (z.B. Name, Domain, Stadt, Branche) |
|
||||
| `associations` | array | Nein | Array von Verknüpfungen, die mit dem Unternehmen erstellt werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Erstelltes HubSpot-Unternehmensobjekt |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `hubspot_update_company`
|
||||
|
||||
Aktualisiert ein bestehendes Unternehmen in HubSpot anhand der ID oder Domain
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `companyId` | string | Ja | Die ID oder Domain des zu aktualisierenden Unternehmens |
|
||||
| `idProperty` | string | Nein | Eigenschaft, die als eindeutiger Identifikator verwendet wird (z.B. "domain"). Falls nicht angegeben, wird die Datensatz-ID verwendet |
|
||||
| `properties` | object | Ja | Zu aktualisierende Unternehmensdaten als JSON-Objekt |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `company` | object | Aktualisiertes HubSpot-Unternehmensobjekt |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `hubspot_search_companies`
|
||||
|
||||
Suche nach Unternehmen in HubSpot mit Filtern, Sortierung und Abfragen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `filterGroups` | array | Nein | Array von Filtergruppen. Jede Gruppe enthält Filter mit propertyName, operator und value |
|
||||
| `sorts` | array | Nein | Array von Sortierobjekten mit propertyName und direction ("ASCENDING" oder "DESCENDING") |
|
||||
| `query` | string | Nein | Suchabfragestring |
|
||||
| `properties` | array | Nein | Array von Eigenschaftsnamen, die zurückgegeben werden sollen |
|
||||
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse (max. 100) |
|
||||
| `after` | string | Nein | Paginierungscursor für die nächste Seite |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `companies` | array | Array übereinstimmender HubSpot-Unternehmensobjekte |
|
||||
| `total` | number | Gesamtzahl übereinstimmender Unternehmen |
|
||||
| `paging` | object | Paginierungsinformationen |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
|
||||
### `hubspot_list_deals`
|
||||
|
||||
Alle Deals vom HubSpot-Konto mit Paginierungsunterstützung abrufen
|
||||
|
||||
#### Eingabe
|
||||
|
||||
| Parameter | Typ | Erforderlich | Beschreibung |
|
||||
| --------- | ---- | -------- | ----------- |
|
||||
| `limit` | string | Nein | Maximale Anzahl von Ergebnissen pro Seite (max. 100, Standard 100) |
|
||||
| `after` | string | Nein | Paginierungscursor für die nächste Ergebnisseite |
|
||||
| `properties` | string | Nein | Kommagetrennte Liste der zurückzugebenden Eigenschaften |
|
||||
| `associations` | string | Nein | Kommagetrennte Liste der Objekttypen, für die zugehörige IDs abgerufen werden sollen |
|
||||
|
||||
#### Ausgabe
|
||||
|
||||
| Parameter | Typ | Beschreibung |
|
||||
| --------- | ---- | ----------- |
|
||||
| `deals` | array | Array von HubSpot-Deal-Objekten |
|
||||
| `paging` | object | Paginierungsinformationen |
|
||||
| `metadata` | object | Operationsmetadaten |
|
||||
| `success` | boolean | Erfolgsstatus der Operation |
|
||||
@@ -0,0 +1,53 @@
|
||||
---
|
||||
title: Hugging Face
|
||||
description: Use Hugging Face Inference API
|
||||
---
|
||||
|
||||
import { BlockInfoCard } from "@/components/ui/block-info-card"
|
||||
|
||||
<BlockInfoCard
|
||||
type="huggingface"
|
||||
color="#0B0F19"
|
||||
/>
|
||||
|
||||
{/* 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 |
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user