Compare commits

...

141 Commits

Author SHA1 Message Date
Waleed
174f6a48a6 v0.4.8: more blog 2025-10-06 13:22:22 -07:00
Waleed
c2f0a95802 fix(blog): center footer, fix dark mode, fix avatar (#1559) 2025-10-06 13:20:12 -07:00
Waleed
4dc4073452 v0.4.7: blog 2025-10-06 12:35:29 -07:00
Emir Karabeg
d9b70087c4 feat(blog): created first page (#1550)
* feat(blog): created first page

* feat(building): first draft blog complete
2025-10-06 12:25:07 -07:00
Waleed
07fd9c3a4a feat(posthog): added posthog provider instead of using nextjs instrumentation (#1555)
* fix(posthog): make instrumentation client not use next-runtime-env

* feat(posthog): added posthog provider
2025-10-06 10:59:46 -07:00
Waleed
377b84e18c v0.4.6: kb improvements, posthog fixes 2025-10-05 21:48:32 -07:00
Waleed
223ecda80e fix(posthog): add rewrites for posthog reverse proxy routes unconditionally, remove unused POSTHOG_ENABLED envvar (#1548) 2025-10-05 21:27:03 -07:00
Waleed
7dde01e74b fix(kb): force kb uploads to use serve route (#1547) 2025-10-05 17:50:21 -07:00
Vikhyath Mondreti
b768ca845e v0.4.5: copilot updates, kb improvements, payment failure fix 2025-10-04 16:37:41 -07:00
Waleed
86ed32ea10 feat(kb): added json/yaml parser+chunker, added dedicated csv chunker (#1539)
* feat(kb): added json/yaml parser+chunker, added dedicated csv chunker

* ack PR comments

* improved kb upload
2025-10-04 14:59:21 -07:00
Vikhyath Mondreti
0e838940f1 fix(copilot): targeted auto-layout for copilot edits + custom tool persistence (#1546)
* fix autolayout and custom tools persistence

* fix

* fix preserving positions within subflow

* more fixes

* fix resizing

* consolidate constants
2025-10-04 14:52:37 -07:00
Siddharth Ganesan
7cc9a23f99 fix(copilot): tool renaming 2025-10-04 11:52:20 -07:00
Vikhyath Mondreti
c42d2a32f3 feat(copilot): fix context / json parsing edge cases (#1542)
* Add get ops examples

* input format incorrectly created by copilot should not crash workflow

* fix tool edits triggering overall delta

* fix(db): add more options for SSL connection, add envvar for base64 db cert (#1533)

* fix trigger additions

* fix nested outputs for triggers

* add condition subblock sanitization

* fix custom tools json

* Model selector

* fix response format sanitization

* remove dead code

* fix export sanitization

* Update migration

* fix import race cond

* Copilot settings

* fix response format

* stop loops/parallels copilot generation from breaking diff view

* fix lint

* Apply suggestion from @greptile-apps[bot]

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* fix tests

* fix lint

---------

Co-authored-by: Siddharth Ganesan <siddharthganesan@gmail.com>
Co-authored-by: Waleed <walif6@gmail.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2025-10-03 19:08:57 -07:00
Vikhyath Mondreti
4da355d269 fix(billing-blocked): block platform usage if payment fails for regular subs as well (#1541) 2025-10-03 12:17:53 -07:00
Waleed
2175fd1106 v0.4.4: database config updates 2025-10-02 20:08:09 -07:00
Waleed
10692b5e5a fix(db): remove overly complex db connection logic (#1538) 2025-10-02 19:54:32 -07:00
Waleed
62298bf094 fix(db): added database config to drizzle.config in app container (#1536) 2025-10-02 18:09:27 -07:00
Waleed
5f1518ffd9 fix(db): added SSL config to migrations container (#1535) 2025-10-02 18:04:31 -07:00
Waleed
cae0e85826 v0.4.3: posthog, docs updates, search modal improvements 2025-10-02 17:02:48 -07:00
Waleed
fa9c97816b fix(db): add more options for SSL connection, add envvar for base64 db cert (#1533) 2025-10-02 15:53:45 -07:00
Vikhyath Mondreti
4bc37db547 feat(copilot): JSON sanitization logic + operations sequence diff correctness (#1521)
* add state sending capability

* progress

* add ability to add title and description to workflow state

* progress in language

* fix

* cleanup code

* fix type issue

* fix subflow deletion case

* Workflow console tool

* fix lint

---------

Co-authored-by: Siddharth Ganesan <siddharthganesan@gmail.com>
2025-10-02 15:11:03 -07:00
Waleed
15138629cb improvement(performance): remove writes to workflow updated_at on position updates for blocks, edges, & subflows (#1531)
* improvement(performance): remove writes to workflow updated_at on position updates for blocks, edges, & subflows

* update query pattern for logs routes
2025-10-02 11:53:50 -07:00
Waleed
ace83ebcae feat(cmdk): added knowledgebases to the cmdk modal (#1530) 2025-10-01 21:21:42 -07:00
Waleed
b33ae5bff9 fix(fumadocs): fixed client-side export on fumadocs (#1529) 2025-10-01 20:52:20 -07:00
Waleed
dc6052578d fix(kb): removed filename constraint from knowledgebase doc names (#1527) 2025-10-01 20:39:56 -07:00
Waleed
4adbae03e7 chore(deps): update fumadocs (#1525) 2025-10-01 20:28:12 -07:00
Vikhyath Mondreti
3509ce8ce4 fix(autolayout): type issue if workflow deployed + remove dead state code (#1524)
* fix(autolayout): type issue if workflow deployed

* remove dead code hasActiveWebhook field
2025-10-01 20:18:29 -07:00
Waleed
7aae108b87 feat(posthog): added posthog for analytics (#1523)
* feat(posthog): added posthog for analytics

* added envvars to env.ts
2025-10-01 20:12:26 -07:00
Waleed
980a6d8347 improvement(db): enforce SSL everywhere where a DB connection is established (#1522)
* improvement(db): enforce SSL everywhere where a DB connection is established

* remove extraneous comment
2025-10-01 19:09:08 -07:00
Vikhyath Mondreti
745eaff622 v0.4.2: autolayout improvements, variable resolution, CI/CD, deployed chat, router block fixes 2025-10-01 17:27:35 -07:00
Vikhyath Mondreti
35d857ef2e fix(trigger): inject project id env var in correctly (#1520) 2025-10-01 17:16:28 -07:00
Waleed
6e63eafb79 improvement(db): remove vercel, remove railway, remove crons, improve DB connection config (#1519)
* improvement(db): remove vercel, remove railway, remove crons, improve DB connection config

* remove NEXT_PUBLIC_VERCEL_URL

* remove db url fallbacks

* remove railway & more vercel stuff

---------

Co-authored-by: waleed <waleed>
2025-10-01 16:37:13 -07:00
Waleed
896f7bb0a0 fix(ci): update trigger.dev ci to only push to staging on merge to staging & for prod as well (#1518) 2025-10-01 13:22:04 -07:00
Waleed
97f69a24e1 fix(redirects): update middleware to allow access to /chat regardless of auth status (#1516) 2025-10-01 10:46:18 -07:00
Waleed
1a2c4040aa improvement(trigger): increase maxDuration for background tasks to 10 min to match sync API executions (#1504)
* improvement(trigger): increase maxDuration for background tasks to 10 min to match sync API executions

* add trigger proj id
2025-10-01 10:40:18 -07:00
Vikhyath Mondreti
4ad9be0836 fix(router): use getBaseUrl() helper (#1515)
* fix(router): use getBaseUrl() helper

* add existence check
2025-10-01 10:39:57 -07:00
Vikhyath Mondreti
0bf2bce368 improvement(var-resolution): resolve variables with block name check and consolidate code (#1469)
* improvement(var-resolution): resolve variables with block name check and consolidate code

* fix tests

* fix type error

* fix var highlighting in kb tags

* fix kb tags
2025-09-30 19:20:35 -07:00
Vikhyath Mondreti
0d881ecc00 fix(deployed-version-check): check deployed version existence pre-queuing (#1508)
* fix(deployed-version-check): check deployed version existence pre-queuing

* fix tests

* fix edge case
2025-09-30 19:20:21 -07:00
Siddharth Ganesan
7e6a5dc7e2 Fix/remove trigger promotion (#1513)
* Revert trigger promotion

* Move trigger

* Fix ci
2025-09-30 18:29:28 -07:00
Siddharth Ganesan
c1a3500bde fix(ci): capture correct deployment version output (#1512)
* Capture correct deployment version output

* Add trigger access token to each step

* Use correct arn
2025-09-30 16:36:19 -07:00
Siddharth Ganesan
561b6f2778 fix(ci): fix trigger version capture 2025-09-30 16:20:25 -07:00
Siddharth Ganesan
cdfee16b8a Fix trigger ci creds (#1510) 2025-09-30 14:03:38 -07:00
Siddharth Ganesan
9f6cb1becf fix(ci): trigger permissions 2025-09-30 13:53:02 -07:00
Siddharth Ganesan
dca8745c44 fix(ci): add skip promotion to trigger ci 2025-09-30 13:37:07 -07:00
Vikhyath Mondreti
c35c8d1f31 improvement(autolayout): use live block heights / widths for autolayout to prevent overlaps (#1505)
* improvement(autolayout): use live block heights / widths for autolayout to prevent overlaps

* improve layering algo for multiple trigger setting

* remove console logs

* add type annotation
2025-09-30 13:24:19 -07:00
Siddharth Ganesan
87c00cec6d improvement(ci): trigger.dev pushes (#1506)
* Fix trigger workflow ci

* Update trigger location
2025-09-30 13:22:24 -07:00
Vikhyath Mondreti
17edf0405b improvement(triggers): uuid, autolayout, copilot context (#1503)
* make trigger select uuid consistent with sidebar selection

* add trigger allowed flag for core triggers

* fix autolayout with new triggers
2025-09-30 11:31:54 -07:00
Siddharth Ganesan
79461840c3 fix(migrations): make sso migration idempotent 2025-09-30 11:04:44 -07:00
Siddharth Ganesan
e76fc8c2da Remove migrations ci (#1501) 2025-09-30 10:43:41 -07:00
Waleed
e9150a53e3 feat(i18n): update translations (#1496) 2025-09-30 09:44:50 -07:00
Waleed
f9f84111cb v0.4.1: docker fixes, deployed state improvements 2025-09-30 01:16:28 -07:00
Waleed
01ffee8e7c fix(deployed): support internal JWT for deployed child workflow executions (#1498) 2025-09-30 01:14:32 -07:00
Siddharth Ganesan
367189fe15 fix(ci): fix docker manifest build (#1495) 2025-09-29 20:57:00 -07:00
Siddharth Ganesan
7de9e5fb19 fix(ci): fix docker manifest build 2025-09-29 20:55:52 -07:00
Siddharth Ganesan
10652eb9b8 v0.4.0: copilot v1, triggers, sso/saml support, version control 2025-09-29 20:27:23 -07:00
Waleed
010753d170 chore(docs): remove remaining yml references from docs (#1492) 2025-09-29 20:13:44 -07:00
Waleed
bf1c178282 feat(sso): add support for login with SAML/SSO (#1489)
* feat(sso): added login with SAML/SSO

* restore env

* fixed login styling

* upgrade deps, update UI

* more styling improvements

* reran migrations, tested with script

* improvement(auth): created SSO page

* improvement(auth): remove email option for SSO if not enabled

* cleanup

* cleaned up, added documentation for SSO/SAML config + tested registering either one with script and UI form

* cleanup

* ack PR comments

* move sso known providers to consts

---------

Co-authored-by: waleed <waleed>
Co-authored-by: Emir Karabeg <emirkarabeg@berkeley.edu>
2025-09-29 20:05:26 -07:00
Siddharth Ganesan
6a664663cf fix(copilot): deprecate yaml, json import/export, deprecate build_workflow tool, convert copilot to json-based (#1488)
* Temp commit

* Edit workflow self contained

* Remove build_workflow

* Base bad version

* fix lint

* Sanitize workflows for copilot

* Fixes

* Fix import/export buttons

* fix autolayout

* fix lint

* fix training logic to work with json

* Add claude sonnet 4.5 to copilot

* Lint

* Update copilot url

* Update default model and fix build errors

* Fix tests

---------

Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
2025-09-29 19:12:08 -07:00
Siddharth Ganesan
333442909b Fix copilot diff (#1485) 2025-09-29 13:12:10 -07:00
Waleed
67c993d743 fix(ci): remove atomic updates for trigger (#1478) 2025-09-27 22:37:28 -07:00
Waleed
38dd2d0f23 improvement(ci): ensure atomicity in trigger deploys, improve overall ci organization (#1477)
* improvement(chat): deployed chat no longer uses subdomains, uses sim.ai/chat/[identifier]

* improvement(ci): ensure atomicity in trigger deploys, improve overall ci organization

* Revert "improvement(chat): deployed chat no longer uses subdomains, uses sim.ai/chat/[identifier]"

This reverts commit c68c052601.

---------

Co-authored-by: waleed <waleed>
2025-09-27 22:11:06 -07:00
Adam Gough
5ee6345120 Fix(google drive): google sheets creating a file (#1476)
* fixed upload to google drive with sheets

* cleanup, remove unneeded scope
2025-09-27 20:48:01 -07:00
Waleed
dd1985c99c improvement(chat): deployed chat no longer uses subdomains, uses sim.ai/chat/[identifier] (#1474)
* improvement(chat): deployed chat no longer uses subdomains, uses sim.ai/chat/[identifier]

* ui fix

* added back validate route, remove backwards compatibility for subdomain redirects

* cleanup

* cleanup

* add chat page to conditional theme layout, and remove custom chat css

* consolidate theme providers

* ack pr commnets

---------

Co-authored-by: waleed <waleed>
2025-09-27 17:32:10 -07:00
Waleed
39356f3d74 fix(ui): standardized 404, chat, and invite pages (#1472)
* improvement(chat): deployed chat no longer uses subdomains, uses sim.ai/chat/[identifier]

* fix(ui): standardized 404, chat, and invite pages

* Revert "improvement(chat): deployed chat no longer uses subdomains, uses sim.ai/chat/[identifier]"

* fixed ui for 404 page
2025-09-27 14:03:24 -07:00
Waleed
1ec5b1bdad improvement(deps): remove vercel speed insights (#1470)
* improvement(chat): deployed chat no longer uses subdomains, uses sim.ai/chat/[identifier]

* improvement(deps): remove vercel speed insights

* Revert "improvement(chat): deployed chat no longer uses subdomains, uses sim.ai/chat/[identifier]"

This reverts commit c68c052601.

---------

Co-authored-by: waleed <waleed>
2025-09-27 11:52:19 -07:00
Waleed
bcc75376e5 feat(permissions): allow users to deploy workflows in all workspaces they are an admin in (#1463)
* feat(permissions): allow admin workspace users to deploy workflows in workspaces they don't own

* fixed failing test

* added additional routes

* remove overly complex, unecessary test and fixed docs formatting

* follow DRY
2025-09-26 19:58:11 -07:00
Adam Gough
448e9ea835 fix(tools): fixed supabase order by (#1467)
Co-authored-by: Adam Gough <adamgough@Mac.attlocal.net>
2025-09-26 19:26:50 -07:00
Waleed
a63f3a3d8d improvement(copilot): added session context checks in copilot tool calls (#1466)
* improvement(copilot): added session context checks in copilot tool calls

* remove extraneous comments, remove the ability to view copilot API keys after creation

* updated skeleton

---------

Co-authored-by: waleed <waleed>
2025-09-26 19:04:49 -07:00
Waleed
3ff6509028 feat(i18n): update translations (#1465)
* feat(i18n): update translations

* fixed french i18n error

---------
2025-09-26 19:01:22 -07:00
Vikhyath Mondreti
2ae30f1399 add google vault to landing page footer (#1464) 2025-09-26 16:38:24 -07:00
Vikhyath Mondreti
0e65a8a31d feat(trigger-docs): new trigger docs, function block rce imports fix (#1462)
* fix(sidebar): draggable cursor on sidebar when switching workflows (#1276)

* remove inline css for edge labels

* fix remote code execution imports for javascript

* add docs for new triggers

* fix

* fix draggable link

---------

Co-authored-by: Waleed Latif <walif6@gmail.com>
Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
Co-authored-by: Adam Gough <77861281+aadamgough@users.noreply.github.com>
Co-authored-by: Adam Gough <adamgough@Mac.attlocal.net>
Co-authored-by: Siddharth Ganesan <33737564+Sg312@users.noreply.github.com>
2025-09-26 16:23:52 -07:00
Waleed
d1f5c69e6b fix(envvars): use getEnv for isHosted check since it is client-side (#1461) 2025-09-26 12:50:51 -07:00
Waleed
c468ecbc72 feat(i18n): update translations (#1460) 2025-09-26 12:21:28 -07:00
Adam Gough
97257ca49f Feat(google vault): added google vault tool (#1459)
* first push pre testing

* toosl working

* progress

* bun run lint

* added doc

* changed google client ID and secret back

* cleaned up oauth

* removed comment

* removed any and added manual content

---------

Co-authored-by: Adam Gough <adamgough@Mac.attlocal.net>
2025-09-26 11:13:58 -07:00
Waleed
6daeb77740 feat(turbo): added turborepo, tailwind v3 (#1458) 2025-09-25 21:18:51 -07:00
Waleed
f79e87e4c2 improvement(parallel): update parallel subflow to support conditional routing (#1444)
* improvement(parallel): update parallel subblock to support conditional routing

* ignore disconnected blocks in parallel/loop

* added utils

* fix z-index issues with edges in subflow

* fixed aggregation of results from loop & parallel blocks

* feat(manual-trigger): add manual trigger (#1452)

* feat(manual-trigger): add manual trigger

* consolidate input format extraction

* exclude triggers from console logs + deployed chat error surfacing

* works

* centralize error messages + logging for deployed chat

* fix(css-config): use correct version (#1453)

* fix(css-config): use correct version

* fix lint

* improvement(parallel): update parallel subblock to support conditional routing

* ignore disconnected blocks in parallel/loop

* added utils

* fix z-index issues with edges in subflow

* fixed aggregation of results from loop & parallel blocks

* change z index within component and remvoe global css

* fix cascade deletion subflows sockets case

* improve results array for subflows

* fix onedgeclick inside subflows

* fix test

---------

Co-authored-by: waleed <waleed>
Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
Co-authored-by: Vikhyath Mondreti <vikhyathvikku@gmail.com>
2025-09-25 18:31:34 -07:00
Waleed
18599ac3c3 fix(tailwind): revert tailwind back to v3 for main app (#1456)
* fix(css): fix css build issue

* fix(postcss): revert back to tailwind v3

* bun.lock update
2025-09-25 18:04:40 -07:00
Waleed
e49cde7766 fix(ci): modify docs embeddings ci to only run on english documentation (#1455) 2025-09-25 17:52:00 -07:00
Waleed
7146ce512d feat(ci): use blacksmith for ci (#1454)
* feat(ci): use blacksmith for ci

* consolidate ecr + ghcr builds for linux/amd64
2025-09-25 17:37:12 -07:00
Vikhyath Mondreti
1b7e883b10 fix(css-config): use correct version (#1453)
* fix(css-config): use correct version

* fix lint
2025-09-25 16:42:31 -07:00
Vikhyath Mondreti
e03c036a10 feat(manual-trigger): add manual trigger (#1452)
* feat(manual-trigger): add manual trigger

* consolidate input format extraction

* exclude triggers from console logs + deployed chat error surfacing

* works

* centralize error messages + logging for deployed chat
2025-09-25 16:29:50 -07:00
Siddharth Ganesan
7e8ac5c27f fix(ci): docker (#1451)
* Docker ci 2

* Bun issues

* bun lock
2025-09-25 13:23:06 -07:00
Siddharth Ganesan
c12b3d2550 Remove double calling of ci (#1450) 2025-09-25 12:39:39 -07:00
Siddharth Ganesan
d381a69c9f feat(ci): consolidate ci, make db migrations dependent on ecr success, remove turbopack for staging/prod builds (#1449)
* Remove turbopack

* Fix ci errors

* Sim agent import fix

* Lint

* Ci orchestration

* Lint

* Ci updates

* Tdz fix for generate

* Remove logger

* Fix imports

* Lint
2025-09-25 12:26:25 -07:00
Vikhyath Mondreti
928581f387 feat(deployments): make deployed state source of truth for non-manual executions + versioning (#1242)
* feat(deployments): make deployed state source of truth for non-manual executions + versioning

* fix lint

* fix test

* add script to migrate to deployed vesions

* fix deployed chat

* address greptile commands

* Remove 84th migration files to prepare for regeneration

* fix script + update migration

* fix script

* cleanup typing

* use shared helper

* fix tests

* fix duplicate route

* revert migrations prep

* add migration back

* add workflow in workflow block func

* fix UI

* fix lint

* make migration idempotent

* remove migrations

* add migrations back'

* adjust script to reuse helper

* add test webhook URL functionality

* consolidate test URL + prod URL code for webhooks

* fixes

* update trigger config save with correct dependencies

* make frozen canvas respect trigger mode

* chore(db): remove latest migration 0088, snapshot, journal entry; delete migrate-deployment-versions script

* separate parent id cleanup migration

* chore(db): remove 0089 migration, snapshot, and prune journal entry

* chore(db): generate 0090 migration after removing 0089 and merging staging

* fix

* chore(db): remove 0090 migration, snapshot, and prune journal entry

* chore(db): generate 0091 migration after merging staging and restoring idempotency flow

* fix some imports

* remove dead code

* fix tests

* remove comment

* working test url functionality restored

* works

* some styling changes

* make deploy text accurate

* chore(db): remove latest migration 0091 and snapshot; update journal before merging staging

* db(migrations): generate 0093_medical_sentinel and snapshots after merging staging

* reconcile with other merge

* fix trigger test

* remove extra use effect

* fix test url"

* don't swallow serializer errors

* fix lint

* fix tests

* fix tests

* expose root for generic webhook

* root access for webhook

* add is workflow ready check correctly
2025-09-24 20:28:09 -07:00
Siddharth Ganesan
2c7c8d582e Add dh login (#1448) 2025-09-24 18:20:45 -07:00
Siddharth Ganesan
426873245f feat(infra): add ci for aws image push (#1447)
* Stash

* Ci for aws v1

* Fix ecr
2025-09-24 17:45:26 -07:00
Siddharth Ganesan
ca6ff7edb6 feat(infra): add staging docker image 2025-09-24 15:18:40 -07:00
Vikhyath Mondreti
094dae3d3f feat(copilot): add training interface (#1445)
* progress

* cleanup UI

* progress

* fix trigger mode in yaml + copilot side

* persist user settings

* wrap operations correctly

* add trigger mode to add op

* remove misplaced comment

* add sent notification

* remove unused tab:
2025-09-24 14:19:11 -07:00
Emir Karabeg
2ee27f972e improvement: remove sentry dependency (#1435)
* improvement: remove Sentry

* update bun.lock
2025-09-24 10:46:59 -07:00
Waleed
0b2ef5e3a6 chore(deps): added entities dependency (#1441) 2025-09-24 10:43:41 -07:00
Waleed
67ac3ff84b chore(deps): upgrade turborepo (#1439) 2025-09-23 21:36:10 -07:00
Waleed
8ed2c5ec53 feat(i18n): update translations (#1437) 2025-09-23 18:56:42 -07:00
Vikhyath Mondreti
2ace06f239 fix build error 2025-09-23 18:31:25 -07:00
Waleed
20a272c8c3 chore(deps): remove unused deps, reduce overall dependencies & size (#1436)
Co-authored-by: waleed <waleed>
2025-09-23 17:39:38 -07:00
Waleed
0d86eaa3a1 fix(usage): persist cost multiplier at provider level instead of also at the logger level (#1433)
* feat(changelog): added changelog

* fix(usage): persist cost multiplier at provider level

* Revert "feat(changelog): added changelog"

This reverts commit 885d10c4d9.

---------

Co-authored-by: waleed <waleed>
2025-09-23 17:11:29 -07:00
Vikhyath Mondreti
aa0a33e60f Revert "feat(traceroot): add traceroot logger" (#1434)
This reverts commit 6d1b172a3e.
2025-09-23 16:59:49 -07:00
Vikhyath Mondreti
603b5471a3 fix(copilot): null check simplified (#1431) 2025-09-23 16:03:32 -07:00
Vikhyath Mondreti
ab8d822edf fix(copilot): restore subblock options (#1430) 2025-09-23 15:56:56 -07:00
Waleed
5bb9b46554 improvement(subflows): support multiple blocks in parallel subflow, enhance logs to group by iteration for parallels/loop (#1429)
* feat(changelog): added changelog

* move avatar icons in changelog

* improvement(parallels): support multiple blocks in parallel subflow, enhance logs to group by iteration for parallels/loops

* restore env

* added tests

* lint

* update drizzle

---------

Co-authored-by: waleed <waleed>
2025-09-23 15:25:05 -07:00
Waleed
994eb8db2a feat(i18n): added japanese and german translations (#1428)
* feat(changelog): added changelog

* feat(i18n): added japanese and german translations

* reordered

---------

Co-authored-by: waleed <waleed>
2025-09-23 15:13:31 -07:00
Vikhyath Mondreti
fbb164db98 improvement(copilot): add best practices for core blocks (#1427)
* improvement(copilot): add best practices for blocks

* fix kb, api

* Update apps/sim/blocks/blocks/memory.ts

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* address comments

* remove non deterministic test

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2025-09-23 13:11:41 -07:00
Vikhyath Mondreti
dd8f633f9f fix(instrumentation): open telemetry init (#1426) 2025-09-23 11:06:40 -07:00
Vikhyath Mondreti
6d1b172a3e feat(traceroot): add traceroot logger 2025-09-23 10:39:52 -07:00
Vikhyath Mondreti
b7876ca466 improvement(copilot): structured metadata context + start block deprecation (#1362)
* progress

* progress

* deploy command update

* add trigger mode modal

* fix trigger icons'

* fix corners for add trigger card

* update serialization error visual in console

* works

* improvement(copilot-context): structured context for copilot

* forgot long description

* Update metadata params

* progress

* add better workflow ux

* progress

* highlighting works

* trigger card

* default agent workflow change

* fix build error

* remove any casts

* address greptile comments

* Diff input format

* address greptile comments

* improvement: ui/ux

* improvement: changed to vertical scrolling

* fix(workflow): ensure new blocks from sidebar click/drag use getUniqueBlockName (with semantic trigger base when applicable)

* Validation + build/edit mark complete

* fix trigger dropdown

* Copilot stuff (lots of it)

* Temp update prod dns

* fix trigger check

* fix

* fix trigger mode check

* Fix yaml imports

* Fix autolayout error

* fix deployed chat

* Fix copilot input text overflow

* fix trigger mode persistence in addBlock with enableTriggerMode flag passed in

* Lint

* Fix failing tests

* Reset ishosted

* Lint

* input format for legacy starter

* Fix executor

---------

Co-authored-by: Siddharth Ganesan <siddharthganesan@gmail.com>
Co-authored-by: Emir Karabeg <emirkarabeg@berkeley.edu>
2025-09-22 23:24:50 -07:00
Waleed
68df95906f feat(changelog): added changelog and gh action to auto-release (#1423)
* feat(changelog): added changelog

* finished changelog

* updated metadata

* reverted env

* cleanup

---------

Co-authored-by: waleed <waleed>
2025-09-22 21:35:21 -07:00
Waleed
760219dcce feat(i18n): update translations (#1421) 2025-09-22 19:52:51 -07:00
Waleed
f1b83c1988 feat(tools): added resend email sender (#1420) 2025-09-22 19:16:42 -07:00
Vikhyath Mondreti
2f97782df0 feat(undo-redo): undo/redo for canvas editing (#1392)
* feat(undo-redo): support undo-redo on canvas

* fix zoom live subscribe

* progress

* fix subflows

* progress

* fix subflow logic

* pruning stacks

* centralize unique naming logic

* fix type issues

* address greptile comments

* remove timeouts
2025-09-22 16:38:13 -07:00
Waleed
7cb303e713 fix(redirects): move redirects for terms/privacy to client-side redirects (#1418) 2025-09-22 15:10:29 -07:00
Waleed
8eaa83fe21 fix(billing): reset usage on transition from free -> paid plan (#1397)
* fix(billing): reset usage on transition from free -> paid plan

* fixes: pro->team upgrade logic, single org server side check on invite routes

* ui improvements

* cleanup team-members code

* minor renaming

* progress

* fix pro->team upgrade to prevent double billing

* add subscription delete case handler

---------

Co-authored-by: Vikhyath Mondreti <vikhyath@simstudio.ai>
2025-09-22 13:58:29 -07:00
Waleed
5c92d5d456 v0.3.58: trigger.dev updates 2025-09-22 12:58:15 -07:00
Waleed
aa01e7e58a fix(actions): update trigger.dev github action (#1417) 2025-09-22 12:38:31 -07:00
Waleed
a3c76da636 chore(deps): update trigger.dev sdk (#1416) 2025-09-22 12:30:28 -07:00
Waleed
cf19c895bb chore(deps): upgdate trigger.dev cli (#1414) 2025-09-22 12:24:45 -07:00
Waleed
c017027000 v0.3.57: docs updates, generic webhook variables deconstruction, ollama & docker fixes 2025-09-22 12:17:02 -07:00
Waleed
73d779ad79 fix(csp): added terms, privacy, & logo URLs to CSP (#1413) 2025-09-22 12:04:48 -07:00
Emir Karabeg
25781279e2 feat: added favicon (#1410) 2025-09-22 11:14:06 -07:00
Waleed
6fada45cd8 improvement(readme): update readme.md (#1412) 2025-09-22 11:12:25 -07:00
Waleed
e640102797 feat(otp): added environemnt variable to control enforcement of verified accounts (#1411)
* feat(otp): added environemnt variable to control enforcement of verified accounts

* added to helm
2025-09-22 11:04:47 -07:00
Vikhyath Mondreti
16f5819941 fix(missing-user-stats): missing user stats rows covered via migration' (#1409) 2025-09-22 10:50:04 -07:00
Waleed
d83865c635 fix(tools): fixed arxiv tools (#1403) 2025-09-21 12:05:41 -07:00
Waleed
6b4ebbac6e feat(404): added 404 page (#1401)
* feat(404): added 404 page

* use provided brand support email over default sim one
2025-09-20 14:35:44 -07:00
Waleed
708321d0bf fix(tools): added transform response to handle non-json responses for internal tools (#1400) 2025-09-20 14:17:47 -07:00
Waleed
e4d35afe1f improvement(usage): bar execution if limits cannot be determined, init user stats record on user creation instead of in stripe plugin (#1399)
* improvement(usage): bar execution if limits cannot be determined, init user stats record on user creation instead of in stripe plugin

* upsert user stats record in execution logger
2025-09-20 14:08:51 -07:00
Waleed
1d74ccfeda fix(ollama): fix ollama container for CPU vs GPU mode (#1396) 2025-09-20 12:08:44 -07:00
Waleed
545e590ce5 fix(emails): updated path for email assets to absolute rather than relative paths (#1398) 2025-09-20 12:08:34 -07:00
Waleed
93f9293f2c fix(verification): add OTP dev skip (#1395) 2025-09-20 11:31:41 -07:00
Vikhyath Mondreti
b5570c1c0e fix(cursor): misaligned in long inputs (#1388) 2025-09-19 11:49:36 -07:00
Waleed
225571c49a improvement(search): improved filters UI and search suggestions (#1387)
* improvement(search): improved filters UI and search suggestions

* update tool input UI
2025-09-19 11:22:47 -07:00
Waleed
a1c518e4e1 feat(file): add more upload types to the file block (#1386) 2025-09-19 10:07:52 -07:00
Vikhyath Mondreti
04922fe5c9 fix(generic-webhooks): idempotency simplification, generic webhook vars changes (#1384)
* fix(idempotency): simplify for deterministic provider based checks

* remove generic webhook outputs and allow body to be referenced via vars
2025-09-19 10:03:45 -07:00
Waleed
8e70a61ba9 fix(docker): added copilot-related keys to docker container definitions (#1382) 2025-09-18 21:08:25 -07:00
Waleed
abae6b96b5 feat(i18n): update translations (#1381)
Co-authored-by: waleedlatif1 <waleedlatif1@users.noreply.github.com>
2025-09-18 18:18:17 -07:00
Vikhyath Mondreti
bff1852a85 v0.3.56: i18n, sharepoint operations & logs search improvements 2025-09-18 14:21:14 -07:00
Adam Gough
7327b448e5 Improvement(sharepoint): added ability to create list items, different from create list (#1379)
* added add list items

(cherry picked from commit df6ea35d5bb975c03c7ec0c787bd915f34890ac0)

* bun run lint

* minor changes

---------

Co-authored-by: Adam Gough <adamgough@Mac.attlocal.net>
Co-authored-by: Adam Gough <adamgough@Adams-MacBook-Pro.local>
2025-09-18 14:18:58 -07:00
Waleed
eb1e90bb7f improvement(search): added more granular logs search, added logs export, improved overall search experience (#1378)
* improvement(search): added more granular logs search, added logs export, improved overall search experience

* updated tests
2025-09-18 13:58:44 -07:00
Vikhyath Mondreti
3905d1cb81 fix(selectors): gdrive and slack selectors inf loops (#1376)
* fix(selectors): gdrive and slack selectors inf loops

* remove comment
2025-09-18 11:40:36 -07:00
Waleed
cd084e8236 fix(actions): updated i18n gh action to use PAT instead of default token (#1377) 2025-09-18 11:29:02 -07:00
Waleed
5d96484501 fix(variables): remove quote stripping from short & long inputs (#1375)
* fix(variables): remove quote stripping from short & long inputs

* restore env

* remove quote stripping everywhere

* remove unused file
2025-09-18 11:04:22 -07:00
Waleed
6747a497fc fix(migrations): upgrade drizzle-kit in migrations container (#1374)
* fix(migrations): upgrade drizzle-kit in migrations container

* fix comments

* rm unused file
2025-09-18 11:04:06 -07:00
1070 changed files with 111200 additions and 14048 deletions

View File

@@ -10,7 +10,6 @@ services:
environment:
- NODE_ENV=development
- DATABASE_URL=postgresql://postgres:postgres@db:5432/simstudio
- POSTGRES_URL=postgresql://postgres:postgres@db:5432/simstudio
- BETTER_AUTH_URL=http://localhost:3000
- NEXT_PUBLIC_APP_URL=http://localhost:3000
- BUN_INSTALL_CACHE_DIR=/home/bun/.bun/cache

View File

@@ -1,151 +0,0 @@
name: Build and Publish Docker Image
on:
push:
branches: [main, staging]
jobs:
build-and-push:
strategy:
fail-fast: false
matrix:
include:
# AMD64 builds on x86 runners
- dockerfile: ./docker/app.Dockerfile
image: ghcr.io/simstudioai/simstudio
platform: linux/amd64
arch: amd64
runner: linux-x64-8-core
- dockerfile: ./docker/db.Dockerfile
image: ghcr.io/simstudioai/migrations
platform: linux/amd64
arch: amd64
runner: linux-x64-8-core
- dockerfile: ./docker/realtime.Dockerfile
image: ghcr.io/simstudioai/realtime
platform: linux/amd64
arch: amd64
runner: linux-x64-8-core
# ARM64 builds on native ARM64 runners
- dockerfile: ./docker/app.Dockerfile
image: ghcr.io/simstudioai/simstudio
platform: linux/arm64
arch: arm64
runner: linux-arm64-8-core
- dockerfile: ./docker/db.Dockerfile
image: ghcr.io/simstudioai/migrations
platform: linux/arm64
arch: arm64
runner: linux-arm64-8-core
- dockerfile: ./docker/realtime.Dockerfile
image: ghcr.io/simstudioai/realtime
platform: linux/arm64
arch: arm64
runner: linux-arm64-8-core
runs-on: ${{ matrix.runner }}
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to the Container registry
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ matrix.image }}
tags: |
type=raw,value=latest-${{ matrix.arch }},enable=${{ github.ref == 'refs/heads/main' }}
type=raw,value=staging-${{ github.sha }}-${{ matrix.arch }},enable=${{ github.ref == 'refs/heads/staging' }}
type=sha,format=long,suffix=-${{ matrix.arch }}
- name: Build and push Docker image
uses: docker/build-push-action@v6
with:
context: .
file: ${{ matrix.dockerfile }}
platforms: ${{ matrix.platform }}
push: ${{ github.event_name != 'pull_request' && github.ref == 'refs/heads/main' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha,scope=build-v3
cache-to: type=gha,mode=max,scope=build-v3
provenance: false
sbom: false
create-manifests:
runs-on: ubuntu-latest
needs: build-and-push
if: github.event_name != 'pull_request' && github.ref == 'refs/heads/main'
strategy:
matrix:
include:
- image: ghcr.io/simstudioai/simstudio
- image: ghcr.io/simstudioai/migrations
- image: ghcr.io/simstudioai/realtime
permissions:
contents: read
packages: write
steps:
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata for manifest
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ matrix.image }}
tags: |
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' }}
type=sha,format=long
- name: Create and push manifest
run: |
# Extract the tags from metadata (these are the final manifest tags we want)
MANIFEST_TAGS="${{ steps.meta.outputs.tags }}"
# Create manifest for each tag
for manifest_tag in $MANIFEST_TAGS; do
echo "Creating manifest for $manifest_tag"
# The architecture-specific images have -amd64 and -arm64 suffixes
amd64_image="${manifest_tag}-amd64"
arm64_image="${manifest_tag}-arm64"
echo "Looking for images: $amd64_image and $arm64_image"
# Check if both architecture images exist
if docker manifest inspect "$amd64_image" >/dev/null 2>&1 && docker manifest inspect "$arm64_image" >/dev/null 2>&1; then
echo "Both images found, creating manifest..."
docker manifest create "$manifest_tag" \
"$amd64_image" \
"$arm64_image"
docker manifest push "$manifest_tag"
echo "Successfully created and pushed manifest for $manifest_tag"
else
echo "Error: One or both architecture images not found"
echo "Checking AMD64 image: $amd64_image"
docker manifest inspect "$amd64_image" || echo "AMD64 image not found"
echo "Checking ARM64 image: $arm64_image"
docker manifest inspect "$arm64_image" || echo "ARM64 image not found"
exit 1
fi
done

View File

@@ -6,74 +6,210 @@ on:
pull_request:
branches: [main, staging]
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: false
jobs:
test:
test-build:
name: Test and Build
runs-on: ubuntu-latest
uses: ./.github/workflows/test-build.yml
secrets: inherit
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Run tests with coverage
env:
NODE_OPTIONS: '--no-warnings'
NEXT_PUBLIC_APP_URL: 'https://www.sim.ai'
DATABASE_URL: 'postgresql://postgres:postgres@localhost:5432/simstudio'
ENCRYPTION_KEY: '7cf672e460e430c1fba707575c2b0e2ad5a99dddf9b7b7e3b5646e630861db1c' # dummy key for CI only
run: bun run test
- name: Build application
env:
NODE_OPTIONS: '--no-warnings'
NEXT_PUBLIC_APP_URL: 'https://www.sim.ai'
DATABASE_URL: 'postgresql://postgres:postgres@localhost:5432/simstudio'
STRIPE_SECRET_KEY: 'dummy_key_for_ci_only'
STRIPE_WEBHOOK_SECRET: 'dummy_secret_for_ci_only'
RESEND_API_KEY: 'dummy_key_for_ci_only'
AWS_REGION: 'us-west-2'
ENCRYPTION_KEY: '7cf672e460e430c1fba707575c2b0e2ad5a99dddf9b7b7e3b5646e630861db1c' # dummy key for CI only
run: bun run build
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
directory: ./apps/sim/coverage
fail_ci_if_error: false
verbose: true
migrations:
name: Apply Database Migrations
runs-on: ubuntu-latest
# Build AMD64 images and push to ECR immediately (+ GHCR for main)
build-amd64:
name: Build AMD64
needs: test-build
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging')
needs: test
runs-on: blacksmith-4vcpu-ubuntu-2404
permissions:
contents: read
packages: write
id-token: write
strategy:
fail-fast: false
matrix:
include:
- dockerfile: ./docker/app.Dockerfile
ghcr_image: ghcr.io/simstudioai/simstudio
ecr_repo_secret: ECR_APP
- dockerfile: ./docker/db.Dockerfile
ghcr_image: ghcr.io/simstudioai/migrations
ecr_repo_secret: ECR_MIGRATIONS
- dockerfile: ./docker/realtime.Dockerfile
ghcr_image: ghcr.io/simstudioai/realtime
ecr_repo_secret: ECR_REALTIME
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
bun-version: latest
role-to-assume: ${{ github.ref == 'refs/heads/main' && secrets.AWS_ROLE_TO_ASSUME || secrets.STAGING_AWS_ROLE_TO_ASSUME }}
aws-region: ${{ github.ref == 'refs/heads/main' && secrets.AWS_REGION || secrets.STAGING_AWS_REGION }}
- name: Install dependencies
run: bun install
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
- name: Apply migrations
working-directory: ./packages/db
env:
DATABASE_URL: ${{ github.ref == 'refs/heads/main' && secrets.DATABASE_URL || secrets.STAGING_DATABASE_URL }}
run: bunx drizzle-kit migrate --config=./drizzle.config.ts
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GHCR
if: github.ref == 'refs/heads/main'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: useblacksmith/setup-docker-builder@v1
- name: Generate tags
id: meta
run: |
ECR_REGISTRY="${{ steps.login-ecr.outputs.registry }}"
ECR_REPO="${{ secrets[matrix.ecr_repo_secret] }}"
GHCR_IMAGE="${{ matrix.ghcr_image }}"
# ECR tags (always build for ECR)
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
ECR_TAG="latest"
else
ECR_TAG="staging"
fi
ECR_IMAGE="${ECR_REGISTRY}/${ECR_REPO}:${ECR_TAG}"
# Build tags list
TAGS="${ECR_IMAGE}"
# Add GHCR tags only for main branch
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
GHCR_AMD64="${GHCR_IMAGE}:latest-amd64"
GHCR_SHA="${GHCR_IMAGE}:${{ github.sha }}-amd64"
TAGS="${TAGS},$GHCR_AMD64,$GHCR_SHA"
fi
echo "tags=${TAGS}" >> $GITHUB_OUTPUT
- name: Build and push images
uses: useblacksmith/build-push-action@v2
with:
context: .
file: ${{ matrix.dockerfile }}
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
provenance: false
sbom: false
# Build ARM64 images for GHCR (main branch only, runs in parallel)
build-ghcr-arm64:
name: Build ARM64 (GHCR Only)
needs: test-build
runs-on: linux-arm64-8-core
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
permissions:
contents: read
packages: write
strategy:
fail-fast: false
matrix:
include:
- dockerfile: ./docker/app.Dockerfile
image: ghcr.io/simstudioai/simstudio
- dockerfile: ./docker/db.Dockerfile
image: ghcr.io/simstudioai/migrations
- dockerfile: ./docker/realtime.Dockerfile
image: ghcr.io/simstudioai/realtime
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: useblacksmith/setup-docker-builder@v1
- name: Generate ARM64 tags
id: meta
run: |
IMAGE="${{ matrix.image }}"
echo "tags=${IMAGE}:latest-arm64,${IMAGE}:${{ github.sha }}-arm64" >> $GITHUB_OUTPUT
- name: Build and push ARM64 to GHCR
uses: useblacksmith/build-push-action@v2
with:
context: .
file: ${{ matrix.dockerfile }}
platforms: linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
provenance: false
sbom: false
# Create GHCR multi-arch manifests (only for main, after both builds)
create-ghcr-manifests:
name: Create GHCR Manifests
runs-on: blacksmith-4vcpu-ubuntu-2404
needs: [build-amd64, build-ghcr-arm64]
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
permissions:
packages: write
strategy:
matrix:
include:
- image: ghcr.io/simstudioai/simstudio
- image: ghcr.io/simstudioai/migrations
- image: ghcr.io/simstudioai/realtime
steps:
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create and push manifests
run: |
IMAGE_BASE="${{ matrix.image }}"
# Create latest manifest
docker manifest create "${IMAGE_BASE}:latest" \
"${IMAGE_BASE}:latest-amd64" \
"${IMAGE_BASE}:latest-arm64"
docker manifest push "${IMAGE_BASE}:latest"
# Create SHA manifest
docker manifest create "${IMAGE_BASE}:${{ github.sha }}" \
"${IMAGE_BASE}:${{ github.sha }}-amd64" \
"${IMAGE_BASE}:${{ github.sha }}-arm64"
docker manifest push "${IMAGE_BASE}:${{ github.sha }}"
# Deploy Trigger.dev (after ECR images are pushed, runs in parallel with process-docs)
trigger-deploy:
name: Deploy Trigger.dev
needs: build-amd64
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging')
uses: ./.github/workflows/trigger-deploy.yml
secrets: inherit
# Process docs embeddings (after ECR images are pushed, runs in parallel with trigger-deploy)
process-docs:
name: Process Docs
needs: build-amd64
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging')
uses: ./.github/workflows/docs-embeddings.yml
secrets: inherit

View File

@@ -1,16 +1,13 @@
name: Process Docs Embeddings
on:
push:
branches: [main, staging]
paths:
- 'apps/docs/**'
workflow_call:
workflow_dispatch: # Allow manual triggering
jobs:
process-docs-embeddings:
name: Process Documentation Embeddings
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging'
steps:
@@ -35,4 +32,4 @@ jobs:
env:
DATABASE_URL: ${{ github.ref == 'refs/heads/main' && secrets.DATABASE_URL || secrets.STAGING_DATABASE_URL }}
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
run: bun run scripts/process-docs-embeddings.ts --clear
run: bun run scripts/process-docs.ts --clear

View File

@@ -14,14 +14,14 @@ permissions:
jobs:
translate:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
if: github.actor != 'github-actions[bot]' # Prevent infinite loops
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ secrets.GH_PAT }}
fetch-depth: 0
- name: Setup Bun
@@ -53,9 +53,9 @@ jobs:
if: steps.changes.outputs.changes == 'true'
uses: peter-evans/create-pull-request@v5
with:
token: ${{ secrets.GITHUB_TOKEN }}
token: ${{ secrets.GH_PAT }}
commit-message: "feat(i18n): update translations"
title: "🌐 Auto-update translations"
title: "feat(i18n): update translations"
body: |
## Summary
Automated translation updates triggered by changes to documentation.
@@ -76,8 +76,10 @@ jobs:
## Testing
This PR includes automated translations for modified English documentation content:
- 🇪🇸 Spanish (es) translations
- 🇫🇷 French (fr) translations
- 🇫🇷 French (fr) translations
- 🇨🇳 Chinese (zh) translations
- 🇯🇵 Japanese (ja) translations
- 🇩🇪 German (de) translations
**What reviewers should focus on:**
- Verify translated content accuracy and context
@@ -102,7 +104,7 @@ jobs:
verify-translations:
needs: translate
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
if: always() # Run even if translation fails
steps:
@@ -137,15 +139,21 @@ jobs:
es_count=$(find content/docs/es -name "*.mdx" 2>/dev/null | wc -l || echo 0)
fr_count=$(find content/docs/fr -name "*.mdx" 2>/dev/null | wc -l || echo 0)
zh_count=$(find content/docs/zh -name "*.mdx" 2>/dev/null | wc -l || echo 0)
ja_count=$(find content/docs/ja -name "*.mdx" 2>/dev/null | wc -l || echo 0)
de_count=$(find content/docs/de -name "*.mdx" 2>/dev/null | wc -l || echo 0)
es_percentage=$((es_count * 100 / en_count))
fr_percentage=$((fr_count * 100 / en_count))
zh_percentage=$((zh_count * 100 / en_count))
ja_percentage=$((ja_count * 100 / en_count))
de_percentage=$((de_count * 100 / en_count))
echo "### Coverage Statistics" >> $GITHUB_STEP_SUMMARY
echo "- **🇬🇧 English**: $en_count files (source)" >> $GITHUB_STEP_SUMMARY
echo "- **🇪🇸 Spanish**: $es_count/$en_count files ($es_percentage%)" >> $GITHUB_STEP_SUMMARY
echo "- **🇫🇷 French**: $fr_count/$en_count files ($fr_percentage%)" >> $GITHUB_STEP_SUMMARY
echo "- **🇨🇳 Chinese**: $zh_count/$en_count files ($zh_percentage%)" >> $GITHUB_STEP_SUMMARY
echo "- **🇯🇵 Japanese**: $ja_count/$en_count files ($ja_percentage%)" >> $GITHUB_STEP_SUMMARY
echo "- **🇩🇪 German**: $de_count/$en_count files ($de_percentage%)" >> $GITHUB_STEP_SUMMARY
echo "" >> $GITHUB_STEP_SUMMARY
echo "🔄 **Auto-translation PR**: Check for new pull request with updated translations" >> $GITHUB_STEP_SUMMARY

181
.github/workflows/images.yml vendored Normal file
View File

@@ -0,0 +1,181 @@
name: Build and Push Images
on:
workflow_call:
workflow_dispatch:
permissions:
contents: read
packages: write
id-token: write
jobs:
build-amd64:
name: Build AMD64
runs-on: blacksmith-4vcpu-ubuntu-2404
strategy:
fail-fast: false
matrix:
include:
- dockerfile: ./docker/app.Dockerfile
ghcr_image: ghcr.io/simstudioai/simstudio
ecr_repo_secret: ECR_APP
- dockerfile: ./docker/db.Dockerfile
ghcr_image: ghcr.io/simstudioai/migrations
ecr_repo_secret: ECR_MIGRATIONS
- dockerfile: ./docker/realtime.Dockerfile
ghcr_image: ghcr.io/simstudioai/realtime
ecr_repo_secret: ECR_REALTIME
outputs:
registry: ${{ steps.login-ecr.outputs.registry }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ github.ref == 'refs/heads/main' && secrets.AWS_ROLE_TO_ASSUME || secrets.STAGING_AWS_ROLE_TO_ASSUME }}
aws-region: ${{ github.ref == 'refs/heads/main' && secrets.AWS_REGION || secrets.STAGING_AWS_REGION }}
- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GHCR
if: github.ref == 'refs/heads/main'
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: useblacksmith/setup-docker-builder@v1
- name: Generate tags
id: meta
run: |
ECR_REGISTRY="${{ steps.login-ecr.outputs.registry }}"
ECR_REPO="${{ secrets[matrix.ecr_repo_secret] }}"
GHCR_IMAGE="${{ matrix.ghcr_image }}"
# ECR tags (always build for ECR)
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
ECR_TAG="latest"
else
ECR_TAG="staging"
fi
ECR_IMAGE="${ECR_REGISTRY}/${ECR_REPO}:${ECR_TAG}"
# Build tags list
TAGS="${ECR_IMAGE}"
# Add GHCR tags only for main branch
if [ "${{ github.ref }}" = "refs/heads/main" ]; then
GHCR_AMD64="${GHCR_IMAGE}:latest-amd64"
GHCR_SHA="${GHCR_IMAGE}:${{ github.sha }}-amd64"
TAGS="${TAGS},$GHCR_AMD64,$GHCR_SHA"
fi
echo "tags=${TAGS}" >> $GITHUB_OUTPUT
- name: Build and push images
uses: useblacksmith/build-push-action@v2
with:
context: .
file: ${{ matrix.dockerfile }}
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
provenance: false
sbom: false
build-ghcr-arm64:
name: Build ARM64 (GHCR Only)
runs-on: linux-arm64-8-core
if: github.ref == 'refs/heads/main'
strategy:
fail-fast: false
matrix:
include:
- dockerfile: ./docker/app.Dockerfile
image: ghcr.io/simstudioai/simstudio
- dockerfile: ./docker/db.Dockerfile
image: ghcr.io/simstudioai/migrations
- dockerfile: ./docker/realtime.Dockerfile
image: ghcr.io/simstudioai/realtime
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up Docker Buildx
uses: useblacksmith/setup-docker-builder@v1
- name: Generate ARM64 tags
id: meta
run: |
IMAGE="${{ matrix.image }}"
echo "tags=${IMAGE}:latest-arm64,${IMAGE}:${{ github.sha }}-arm64" >> $GITHUB_OUTPUT
- name: Build and push ARM64 to GHCR
uses: useblacksmith/build-push-action@v2
with:
context: .
file: ${{ matrix.dockerfile }}
platforms: linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
provenance: false
sbom: false
create-ghcr-manifests:
name: Create GHCR Manifests
runs-on: blacksmith-4vcpu-ubuntu-2404
needs: [build-amd64, build-ghcr-arm64]
if: github.ref == 'refs/heads/main'
strategy:
matrix:
include:
- image: ghcr.io/simstudioai/simstudio
- image: ghcr.io/simstudioai/migrations
- image: ghcr.io/simstudioai/realtime
steps:
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create and push manifests
run: |
IMAGE_BASE="${{ matrix.image }}"
# Create latest manifest
docker manifest create "${IMAGE_BASE}:latest" \
"${IMAGE_BASE}:latest-amd64" \
"${IMAGE_BASE}:latest-arm64"
docker manifest push "${IMAGE_BASE}:latest"
# Create SHA manifest
docker manifest create "${IMAGE_BASE}:${{ github.sha }}" \
"${IMAGE_BASE}:${{ github.sha }}-amd64" \
"${IMAGE_BASE}:${{ github.sha }}-arm64"
docker manifest push "${IMAGE_BASE}:${{ github.sha }}"

28
.github/workflows/migrations.yml vendored Normal file
View File

@@ -0,0 +1,28 @@
name: Database Migrations
on:
workflow_call:
workflow_dispatch:
jobs:
migrate:
name: Apply Database Migrations
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Install dependencies
run: bun install
- name: Apply migrations
working-directory: ./packages/db
env:
DATABASE_URL: ${{ github.ref == 'refs/heads/main' && secrets.DATABASE_URL || secrets.STAGING_DATABASE_URL }}
run: bunx drizzle-kit migrate --config=./drizzle.config.ts

View File

@@ -8,7 +8,7 @@ on:
jobs:
publish-npm:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Checkout repository
uses: actions/checkout@v4

View File

@@ -8,7 +8,7 @@ on:
jobs:
publish-pypi:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Checkout repository
uses: actions/checkout@v4

View File

@@ -8,7 +8,7 @@ on:
jobs:
publish-npm:
runs-on: ubuntu-latest
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Checkout repository
uses: actions/checkout@v4

54
.github/workflows/test-build.yml vendored Normal file
View File

@@ -0,0 +1,54 @@
name: Test and Build
on:
workflow_call:
workflow_dispatch:
jobs:
test-build:
name: Test and Build
runs-on: blacksmith-4vcpu-ubuntu-2404
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: latest
- name: Install dependencies
run: bun install --frozen-lockfile
- name: Run tests with coverage
env:
NODE_OPTIONS: '--no-warnings'
NEXT_PUBLIC_APP_URL: 'https://www.sim.ai'
DATABASE_URL: 'postgresql://postgres:postgres@localhost:5432/simstudio'
ENCRYPTION_KEY: '7cf672e460e430c1fba707575c2b0e2ad5a99dddf9b7b7e3b5646e630861db1c' # dummy key for CI only
run: bun run test
- name: Build application
env:
NODE_OPTIONS: '--no-warnings'
NEXT_PUBLIC_APP_URL: 'https://www.sim.ai'
DATABASE_URL: 'postgresql://postgres:postgres@localhost:5432/simstudio'
STRIPE_SECRET_KEY: 'dummy_key_for_ci_only'
STRIPE_WEBHOOK_SECRET: 'dummy_secret_for_ci_only'
RESEND_API_KEY: 'dummy_key_for_ci_only'
AWS_REGION: 'us-west-2'
ENCRYPTION_KEY: '7cf672e460e430c1fba707575c2b0e2ad5a99dddf9b7b7e3b5646e630861db1c' # dummy key for CI only
run: bun run build
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
directory: ./apps/sim/coverage
fail_ci_if_error: false
verbose: true

View File

@@ -1,28 +1,28 @@
name: Trigger.dev Deploy
on:
push:
branches:
- main
- staging
workflow_call:
workflow_dispatch:
jobs:
deploy:
name: Trigger.dev Deploy
runs-on: ubuntu-latest
name: Deploy to Trigger.dev
runs-on: blacksmith-4vcpu-ubuntu-2404
concurrency:
group: trigger-deploy-${{ github.ref }}
cancel-in-progress: false
env:
TRIGGER_ACCESS_TOKEN: ${{ secrets.TRIGGER_ACCESS_TOKEN }}
TRIGGER_PROJECT_ID: ${{ secrets.TRIGGER_PROJECT_ID }}
steps:
- name: Checkout repository
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 'lts/*'
node-version: latest
- name: Setup Bun
uses: oven-sh/setup-bun@v2
@@ -32,13 +32,13 @@ jobs:
- name: Install dependencies
run: bun install
- name: Deploy to Staging
- name: Deploy to Trigger.dev (Staging)
if: github.ref == 'refs/heads/staging'
working-directory: ./apps/sim
run: npx --yes trigger.dev@4.0.1 deploy -e staging
run: npx --yes trigger.dev@4.0.4 deploy -e staging
- name: Deploy to Production
- name: Deploy to Trigger.dev (Production)
if: github.ref == 'refs/heads/main'
working-directory: ./apps/sim
run: npx --yes trigger.dev@4.0.1 deploy
run: npx --yes trigger.dev@4.0.4 deploy

View File

@@ -125,10 +125,21 @@ Update your `.env` file with the database URL:
DATABASE_URL="postgresql://postgres:your_password@localhost:5432/simstudio"
```
4. Set up the database (from packages/db):
4. Set up the database:
First, configure the database package environment:
```bash
cd packages/db
cp .env.example .env
```
Update your `packages/db/.env` file with the database URL:
```bash
DATABASE_URL="postgresql://postgres:your_password@localhost:5432/simstudio"
```
Then run the migrations:
```bash
bunx drizzle-kit migrate --config=./drizzle.config.ts
```

View File

@@ -1,7 +1,7 @@
import type { ReactNode } from 'react'
import { defineI18nUI } from 'fumadocs-ui/i18n'
import { DocsLayout } from 'fumadocs-ui/layouts/docs'
import { RootProvider } from 'fumadocs-ui/provider'
import { RootProvider } from 'fumadocs-ui/provider/next'
import { ExternalLink, GithubIcon } from 'lucide-react'
import { Inter } from 'next/font/google'
import Image from 'next/image'

View File

@@ -2,12 +2,14 @@
import { useEffect, useState } from 'react'
import { Check, ChevronDown } from 'lucide-react'
import { useParams, usePathname } from 'next/navigation'
import { useParams, usePathname, useRouter } from 'next/navigation'
const languages = {
en: { name: 'English', flag: '🇺🇸' },
es: { name: 'Español', flag: '🇪🇸' },
fr: { name: 'Français', flag: '🇫🇷' },
de: { name: 'Deutsch', flag: '🇩🇪' },
ja: { name: '日本語', flag: '🇯🇵' },
zh: { name: '简体中文', flag: '🇨🇳' },
}
@@ -15,6 +17,7 @@ export function LanguageDropdown() {
const [isOpen, setIsOpen] = useState(false)
const pathname = usePathname()
const params = useParams()
const router = useRouter()
const [currentLang, setCurrentLang] = useState(() => {
const langFromParams = params?.lang as string
@@ -56,9 +59,18 @@ export function LanguageDropdown() {
newPath = `/${locale}${segments.length > 0 ? `/${segments.join('/')}` : '/introduction'}`
}
window.location.href = newPath
router.push(newPath)
}
useEffect(() => {
if (!isOpen) return
const onKey = (e: KeyboardEvent) => {
if (e.key === 'Escape') setIsOpen(false)
}
window.addEventListener('keydown', onKey)
return () => window.removeEventListener('keydown', onKey)
}, [isOpen])
return (
<div className='relative'>
<button
@@ -67,9 +79,12 @@ export function LanguageDropdown() {
e.stopPropagation()
setIsOpen(!isOpen)
}}
className='flex items-center gap-2 rounded-xl border border-border/20 bg-muted/50 px-3 py-2 text-sm backdrop-blur-sm transition-colors hover:bg-muted'
aria-haspopup='listbox'
aria-expanded={isOpen}
aria-controls='language-menu'
className='flex items-center gap-1.5 rounded-lg border border-border/30 bg-muted/40 px-2.5 py-1.5 text-sm shadow-sm backdrop-blur-sm transition-colors hover:bg-muted focus:outline-none focus-visible:ring-2 focus-visible:ring-ring'
>
<span className='text-base'>{languages[currentLang as keyof typeof languages]?.flag}</span>
<span className='text-sm'>{languages[currentLang as keyof typeof languages]?.flag}</span>
<span className='font-medium text-foreground'>
{languages[currentLang as keyof typeof languages]?.name}
</span>
@@ -80,8 +95,12 @@ export function LanguageDropdown() {
{isOpen && (
<>
<div className='fixed inset-0 z-10' onClick={() => setIsOpen(false)} />
<div className='absolute top-full left-0 z-20 mt-1 w-48 rounded-lg border border-border/50 bg-background/95 shadow-xl backdrop-blur-md'>
<div className='fixed inset-0 z-[1000]' aria-hidden onClick={() => setIsOpen(false)} />
<div
id='language-menu'
role='listbox'
className='absolute top-full left-0 z-[1001] mt-1 max-h-[75vh] w-56 overflow-auto rounded-xl border border-border/50 bg-white shadow-2xl md:w-44 md:bg-background/95 md:backdrop-blur-md dark:bg-neutral-950 md:dark:bg-background/95'
>
{Object.entries(languages).map(([code, lang]) => (
<button
key={code}
@@ -90,13 +109,17 @@ export function LanguageDropdown() {
e.stopPropagation()
handleLanguageChange(code)
}}
className={`flex w-full items-center gap-3 px-3 py-2.5 text-sm transition-colors first:rounded-t-lg last:rounded-b-lg hover:bg-muted/80 ${
role='option'
aria-selected={currentLang === code}
className={`flex w-full items-center gap-3 px-3 py-3 text-base transition-colors first:rounded-t-xl last:rounded-b-xl hover:bg-muted/80 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring md:gap-2 md:px-2.5 md:py-2 md:text-sm ${
currentLang === code ? 'bg-muted/60 font-medium text-primary' : 'text-foreground'
}`}
>
<span className='text-base'>{lang.flag}</span>
<span>{lang.name}</span>
{currentLang === code && <Check className='ml-auto h-4 w-4 text-primary' />}
<span className='text-base md:text-sm'>{lang.flag}</span>
<span className='leading-none'>{lang.name}</span>
{currentLang === code && (
<Check className='ml-auto h-4 w-4 text-primary md:h-3.5 md:w-3.5' />
)}
</button>
))}
</div>

View File

@@ -0,0 +1,280 @@
---
title: Agent
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'
import { Video } from '@/components/ui/video'
Der Agent-Block dient als Schnittstelle zwischen Ihrem Workflow und Large Language Models (LLMs). Er führt Inferenzanfragen an verschiedene KI-Anbieter aus, verarbeitet natürlichsprachliche Eingaben gemäß definierten Anweisungen und erzeugt strukturierte oder unstrukturierte Ausgaben für die nachgelagerte Verarbeitung.
<div className="flex justify-center">
<Image
src="/static/blocks/agent.png"
alt="Agent-Block-Konfiguration"
width={500}
height={400}
className="my-6"
/>
</div>
## Überblick
Der Agent-Block ermöglicht Ihnen:
<Steps>
<Step>
<strong>Natürliche Sprache verarbeiten</strong>: Benutzereingaben analysieren und kontextbezogene Antworten generieren
</Step>
<Step>
<strong>KI-gestützte Aufgaben ausführen</strong>: Inhaltsanalyse, -erstellung und Entscheidungsfindung durchführen
</Step>
<Step>
<strong>Externe Tools aufrufen</strong>: Während der Verarbeitung auf APIs, Datenbanken und Dienste zugreifen
</Step>
<Step>
<strong>Strukturierte Ausgabe erzeugen</strong>: JSON-Daten zurückgeben, die Ihren Schema-Anforderungen entsprechen
</Step>
</Steps>
## 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 erzeugte 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-Modelle**: GPT-5, GPT-4o, o1, o3, o4-mini, gpt-4.1 (API-basierte Inferenz)
**Anthropic-Modelle**: Claude 3.7 Sonnet (API-basierte Inferenz)
**Google-Modelle**: Gemini 2.5 Pro, Gemini 2.0 Flash (API-basierte Inferenz)
**Alternative Anbieter**: Groq, Cerebras, xAI, DeepSeek (API-basierte Inferenz)
**Lokale Bereitstellung**: Ollama-kompatible Modelle (selbst gehostete Inferenz)
<div className="mx-auto w-3/5 overflow-hidden rounded-lg">
<Video src="models.mp4" width={500} height={350} />
</div>
### Temperatur
Steuern Sie die Kreativität und Zufälligkeit der Antworten:
<Tabs items={['Niedrig (0-0,3)', 'Mittel (0,3-0,7)', 'Hoch (0,7-2,0)']}>
<Tab>
Deterministische, fokussierte Antworten. Am besten für faktische Aufgaben, Kundensupport und
Situationen, in denen Genauigkeit entscheidend ist.
</Tab>
<Tab>
Ausgewogene Kreativität und Fokus. Geeignet für allgemeine Anwendungen, die sowohl
Genauigkeit als auch etwas Kreativität erfordern.
</Tab>
<Tab>
Kreativere, abwechslungsreichere Antworten. Ideal für kreatives Schreiben, Brainstorming und das Generieren
vielfältiger Ideen.
</Tab>
</Tabs>
<div className="mt-4 text-sm text-gray-600 dark:text-gray-400">
Der Temperaturbereich (0-1 oder 0-2) variiert je nach ausgewähltem Modell.
</div>
### 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
Tools erweitern die Fähigkeiten des Agenten durch externe API-Integrationen und Service-Verbindungen. Das Tool-System ermöglicht Funktionsaufrufe, sodass der Agent Operationen über die Texterstellung hinaus ausführen kann.
**Tool-Integrationsprozess**:
1. Zugriff auf den Tools-Konfigurationsbereich innerhalb des Agent-Blocks
2. Auswahl aus über 60 vorgefertigten Integrationen oder Definition benutzerdefinierter Funktionen
3. Konfiguration von Authentifizierungsparametern und Betriebseinschränkungen
<div className="mx-auto w-3/5 overflow-hidden rounded-lg">
<Video src="tools.mp4" width={500} height={350} />
</div>
**Verfügbare Tool-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 Repository- und Issue-Management
- **KI-Dienste**: OpenAI, Perplexity, Hugging Face, ElevenLabs
**Steuerung der Tool-Ausführung**:
- **Auto**: Modell bestimmt Tool-Aufruf basierend auf Kontext und Notwendigkeit
- **Required**: Tool muss bei jeder Inferenzanfrage aufgerufen werden
- **None**: Tool-Definition verfügbar, aber vom Modellkontext ausgeschlossen
<div className="mx-auto w-3/5 overflow-hidden rounded-lg">
<Video src="granular-tool-control.mp4" width={500} height={350} />
</div>
### Antwortformat
Der Parameter für das Antwortformat erzwingt eine strukturierte Ausgabegenerierung durch JSON-Schema-Validierung. Dies gewährleistet konsistente, maschinenlesbare Antworten, die vordefinierten Datenstrukturen entsprechen:
```json
{
"name": "user_analysis",
"schema": {
"type": "object",
"properties": {
"sentiment": {
"type": "string",
"enum": ["positive", "negative", "neutral"]
},
"confidence": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": ["sentiment", "confidence"]
}
}
```
Diese Konfiguration beschränkt die Ausgabe des Modells auf die Einhaltung des angegebenen Schemas, verhindert Freitext-Antworten und stellt eine strukturierte Datengenerierung sicher.
### Zugriff auf Ergebnisse
Nach Abschluss eines Agenten können Sie auf seine Ausgaben zugreifen:
- **`<agent.content>`**: Der Antworttext oder die strukturierten Daten des Agenten
- **`<agent.tokens>`**: Token-Nutzungsstatistiken (Prompt, Completion, Gesamt)
- **`<agent.tool_calls>`**: Details zu allen Tools, die der Agent während der Ausführung verwendet hat
- **`<agent.cost>`**: Geschätzte Kosten des API-Aufrufs (falls verfügbar)
## Erweiterte Funktionen
### Memory + Agent: Gesprächsverlauf
Verwenden Sie einen `Memory`Block mit einer konsistenten `id` (zum Beispiel `chat`), 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 die [`Memory`](/tools/memory) Blockreferenz für Details.
## Eingaben und Ausgaben
<Tabs items={['Konfiguration', 'Variablen', 'Ergebnisse']}>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>System-Prompt</strong>: Anweisungen, die das Verhalten und die Rolle des Agenten definieren
</li>
<li>
<strong>Benutzer-Prompt</strong>: Eingabetext oder zu verarbeitende Daten
</li>
<li>
<strong>Modell</strong>: KI-Modellauswahl (OpenAI, Anthropic, Google, usw.)
</li>
<li>
<strong>Temperatur</strong>: Steuerung der Zufälligkeit der Antwort (0-2)
</li>
<li>
<strong>Tools</strong>: Array verfügbarer Tools für Funktionsaufrufe
</li>
<li>
<strong>Antwortformat</strong>: JSON-Schema für strukturierte Ausgabe
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>agent.content</strong>: Antworttext oder strukturierte Daten des Agenten
</li>
<li>
<strong>agent.tokens</strong>: Token-Nutzungsstatistik-Objekt
</li>
<li>
<strong>agent.tool_calls</strong>: Array mit Details zur Tool-Ausführung
</li>
<li>
<strong>agent.cost</strong>: Geschätzte API-Aufrufkosten (falls verfügbar)
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Content</strong>: Primäre Antwortausgabe vom Agenten
</li>
<li>
<strong>Metadata</strong>: Nutzungsstatistiken und Ausführungsdetails
</li>
<li>
<strong>Access</strong>: Verfügbar in Blöcken nach dem Agenten
</li>
</ul>
</Tab>
</Tabs>
## Beispielanwendungsfälle
### Automatisierung des Kundenservice
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Bearbeitung von Kundenanfragen mit Datenbankzugriff</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Benutzer reicht ein Support-Ticket über den API-Block ein</li>
<li>Agent prüft Bestellungen/Abonnements in Postgres und durchsucht die Wissensdatenbank nach Anleitungen</li>
<li>Falls eine Eskalation erforderlich ist, erstellt der Agent ein Linear-Ticket mit relevantem Kontext</li>
<li>Agent erstellt eine klare E-Mail-Antwort</li>
<li>Gmail sendet die Antwort an den Kunden</li>
<li>Konversation wird im Memory gespeichert, um den Verlauf für zukünftige Nachrichten beizubehalten</li>
</ol>
</div>
### Multi-Modell-Inhaltsanalyse
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Analyse von Inhalten mit verschiedenen KI-Modellen</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Funktionsblock verarbeitet hochgeladenes Dokument</li>
<li>Agent mit GPT-4o führt technische Analyse durch</li>
<li>Agent mit Claude analysiert Stimmung und Tonfall</li>
<li>Funktionsblock kombiniert Ergebnisse für den Abschlussbericht</li>
</ol>
</div>
### Werkzeuggestützter Forschungsassistent
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Forschungsassistent mit Websuche und Dokumentenzugriff</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Benutzeranfrage über Eingabe erhalten</li>
<li>Agent durchsucht das Web mit dem Google-Suchwerkzeug</li>
<li>Agent greift auf Notion-Datenbank für interne Dokumente zu</li>
<li>Agent erstellt umfassenden Forschungsbericht</li>
</ol>
</div>
## 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 abwechslungsreichere Antworten
- **Nutze Werkzeuge effektiv**: Integriere Werkzeuge, die den Zweck des Agenten ergänzen und seine Fähigkeiten verbessern. Sei selektiv bei der Auswahl der Werkzeuge, um den Agenten nicht zu überfordern. Für Aufgaben mit wenig Überschneidung verwende einen anderen Agent-Block für die besten Ergebnisse.

View File

@@ -0,0 +1,232 @@
---
title: API
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'
Der API-Block ermöglicht es Ihnen, Ihren Workflow über API-Endpunkte mit externen Diensten zu verbinden, indem HTTP-Anfragen verwendet werden. Er unterstützt verschiedene Methoden wie GET, POST, PUT, DELETE und PATCH, wodurch Sie mit praktisch jedem API-Endpunkt interagieren können.
<div className="flex justify-center">
<Image
src="/static/blocks/api.png"
alt="API-Block"
width={500}
height={400}
className="my-6"
/>
</div>
## Überblick
Der API-Block ermöglicht Ihnen:
<Steps>
<Step>
<strong>Verbindung zu externen Diensten</strong>: HTTP-Anfragen an REST-APIs und Webdienste stellen
</Step>
<Step>
<strong>Daten senden und empfangen</strong>: Antworten verarbeiten und Daten aus externen Quellen transformieren
</Step>
<Step>
<strong>Integration von Drittanbieter-Plattformen</strong>: Verbindung mit Diensten wie Stripe, Slack oder benutzerdefinierten APIs
</Step>
<Step>
<strong>Authentifizierung verwalten</strong>: Unterstützung verschiedener Authentifizierungsmethoden einschließlich Bearer-Tokens und API-Schlüssel
</Step>
</Steps>
## Funktionsweise
Der API-Block verarbeitet HTTP-Anfragen durch einen strukturierten Ansatz:
1. **Anfrage konfigurieren** - URL, Methode, Header und Body-Parameter festlegen
2. **Anfrage ausführen** - HTTP-Anfrage an den angegebenen Endpunkt senden
3. **Antwort verarbeiten** - Antwortdaten, Statuscodes und Header verarbeiten
4. **Fehlerbehandlung** - Timeouts, Wiederholungsversuche und Fehlerbedingungen verwalten
## Konfigurationsoptionen
### URL
Die Endpunkt-URL für die API-Anfrage. Dies 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 werden.
### 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
```
### Anfrage-Body
Für Methoden, die einen Anfrage-Body unterstützen (POST, PUT, PATCH), können Sie die zu sendenden Daten definieren. Der Body 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 generierte Daten
### 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
Bauen 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 behandelt automatisch:
- Netzwerk-Timeouts mit exponentiellem Backoff
- Rate-Limit-Antworten (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>}`);
}
```
## Eingaben und Ausgaben
<Tabs items={['Configuration', 'Variables', 'Results']}>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>URL</strong>: Der Endpunkt, an den die Anfrage gesendet werden soll
</li>
<li>
<strong>Method</strong>: HTTP-Methode (GET, POST, PUT, DELETE, PATCH)
</li>
<li>
<strong>Query Parameters</strong>: Schlüssel-Wert-Paare für URL-Parameter
</li>
<li>
<strong>Headers</strong>: HTTP-Header für Authentifizierung und Inhaltstyp
</li>
<li>
<strong>Body</strong>: Anfrage-Payload für POST/PUT/PATCH-Methoden
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>api.data</strong>: Antwortdaten vom API-Aufruf
</li>
<li>
<strong>api.status</strong>: Vom Server zurückgegebener HTTP-Statuscode
</li>
<li>
<strong>api.headers</strong>: Antwort-Header vom Server
</li>
<li>
<strong>api.error</strong>: Fehlerdetails, falls die Anfrage fehlgeschlagen ist
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Response Data</strong>: Primärer API-Antwortinhalt
</li>
<li>
<strong>Status Information</strong>: HTTP-Status und Fehlerdetails
</li>
<li>
<strong>Access</strong>: Verfügbar in Blöcken nach dem API-Aufruf
</li>
</ul>
</Tab>
</Tabs>
## Beispielanwendungsfälle
### Benutzerprofildaten abrufen
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Benutzerinformationen von externem Dienst abrufen</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Funktionsblock erstellt Benutzer-ID aus Eingabe</li>
<li>API-Block ruft GET /users/&#123;id&#125; Endpunkt auf</li>
<li>Funktionsblock verarbeitet und formatiert Benutzerdaten</li>
<li>Antwortblock gibt formatiertes Profil zurück</li>
</ol>
</div>
### Zahlungsabwicklung
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Zahlung über Stripe API verarbeiten</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Funktionsblock validiert Zahlungsdaten</li>
<li>API-Block erstellt Zahlungsabsicht über Stripe</li>
<li>Bedingungsblock behandelt Zahlungserfolg/-fehler</li>
<li>Supabase-Block aktualisiert Bestellstatus in der Datenbank</li>
</ol>
</div>
## Best Practices
- **Umgebungsvariablen für sensible Daten verwenden**: Keine API-Schlüssel oder Anmeldedaten im Code hinterlegen
- **Fehler elegant behandeln**: Fehlerbehandlungslogik für fehlgeschlagene Anfragen einbinden
- **Antworten validieren**: Statuscodes und Antwortformate vor der Datenverarbeitung prüfen
- **Ratenbegrenzungen beachten**: Auf API-Ratenbegrenzungen achten und angemessene Drosselung implementieren

View File

@@ -0,0 +1,242 @@
---
title: Bedingung
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Accordion, Accordions } from 'fumadocs-ui/components/accordion'
import { Image } from '@/components/ui/image'
Der Bedingungsblock ermöglicht es Ihnen, den Ausführungspfad Ihres Workflows basierend auf booleschen Ausdrücken zu verzweigen und so dynamische, reaktionsfähige Workflows mit unterschiedlichen Ausführungspfaden zu erstellen. Er wertet Bedingungen aus und leitet den Workflow entsprechend weiter, sodass Sie den Ausführungsfluss basierend auf Daten oder Logik steuern können, ohne ein LLM zu benötigen.
<div className="flex justify-center">
<Image
src="/static/blocks/condition.png"
alt="Bedingungsblock"
width={500}
height={350}
className="my-6"
/>
</div>
<Callout>
Bedingungsblöcke ermöglichen deterministische Entscheidungsfindung ohne ein LLM zu benötigen, was sie ideal
für unkomplizierte Verzweigungslogik macht.
</Callout>
## Überblick
Der Bedingungsblock ermöglicht Ihnen:
<Steps>
<Step>
<strong>Verzweigungslogik erstellen</strong>: Workflows basierend auf booleschen Ausdrücken leiten
</Step>
<Step>
<strong>Datengesteuerte Entscheidungen treffen</strong>: Bedingungen anhand von Ausgaben vorheriger Blöcke auswerten
</Step>
<Step>
<strong>Mehrere Szenarien behandeln</strong>: Mehrere Bedingungen mit unterschiedlichen Pfaden definieren
</Step>
<Step>
<strong>Deterministische Weiterleitung bieten</strong>: Entscheidungen ohne ein LLM treffen
</Step>
</Steps>
## Funktionsweise
Der Bedingungsblock arbeitet durch einen sequentiellen Auswertungsprozess:
1. **Ausdruck auswerten** - Verarbeitet den JavaScript/TypeScript-booleschen Ausdruck mit aktuellen Workflow-Daten
2. **Ergebnis bestimmen** - Gibt basierend auf der Ausdrucksauswertung true oder false zurück
3. **Workflow weiterleiten** - Leitet die Ausführung basierend auf dem Ergebnis an den entsprechenden Zielblock weiter
4. **Kontext bereitstellen** - Generiert Metadaten über die Entscheidung für Debugging und Überwachung
## Konfigurationsoptionen
### Bedingungen
Definieren Sie eine oder mehrere Bedingungen, die ausgewertet werden. Jede Bedingung umfasst:
- **Ausdruck**: Ein JavaScript/TypeScript-Ausdruck, der zu true oder false ausgewertet wird
- **Pfad**: Der Zielblock, zu dem weitergeleitet werden soll, wenn die Bedingung true 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
## Eingaben und Ausgaben
<Tabs items={['Konfiguration', 'Variablen', 'Ergebnisse']}>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Bedingungen</strong>: Array von booleschen Ausdrücken zur Auswertung
</li>
<li>
<strong>Ausdrücke</strong>: JavaScript/TypeScript-Bedingungen mit Block-Ausgaben
</li>
<li>
<strong>Routing-Pfade</strong>: Zielblöcke für jedes Bedingungsergebnis
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>condition.result</strong>: Boolesches Ergebnis der Bedingungsauswertung
</li>
<li>
<strong>condition.matched_condition</strong>: ID der übereinstimmenden Bedingung
</li>
<li>
<strong>condition.content</strong>: Beschreibung des Auswertungsergebnisses
</li>
<li>
<strong>condition.path</strong>: Details zum gewählten Routing-Ziel
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Boolesches Ergebnis</strong>: Primäres Ergebnis der Bedingungsauswertung
</li>
<li>
<strong>Routing-Informationen</strong>: Pfadauswahl und Bedingungsdetails
</li>
<li>
<strong>Zugriff</strong>: Verfügbar in Blöcken nach der Bedingung
</li>
</ul>
</Tab>
</Tabs>
## Beispielanwendungsfälle
### Routing im Kundenservice
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Support-Tickets nach Priorität weiterleiten</h4>
<ol className="list-decimal pl-5 text-sm">
<li>API-Block ruft Support-Ticket-Daten ab</li>
<li>Bedingung prüft, ob `<api.priority>` gleich 'high' ist</li>
<li>Tickets mit hoher Priorität → Mitarbeiter mit Eskalationswerkzeugen</li>
<li>Tickets mit normaler Priorität → Standard-Support-Mitarbeiter</li>
</ol>
</div>
### Inhaltsmoderation
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Inhalte basierend auf Analyseergebnissen filtern</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Agent analysiert nutzergenerierte Inhalte</li>
<li>Bedingung prüft, ob `<agent.toxicity_score>` > 0.7</li>
<li>Toxische Inhalte → Moderationsworkflow</li>
<li>Unbedenkliche Inhalte → Veröffentlichungsworkflow</li>
</ol>
</div>
### Benutzer-Onboarding-Prozess
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Onboarding basierend auf Benutzertyp personalisieren</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Funktionsblock verarbeitet Benutzerregistrierungsdaten</li>
<li>Bedingung prüft, ob `<user.account_type>` === 'enterprise'</li>
<li>Unternehmensbenutzer → Erweiterter Einrichtungsworkflow</li>
<li>Einzelbenutzer → Einfacher Onboarding-Workflow</li>
</ol>
</div>
## Best Practices
- **Bedingungen richtig anordnen**: Platzieren Sie spezifischere Bedingungen vor allgemeinen, damit spezifische Logik Vorrang vor Fallbacks hat
- **Standardbedingung einfügen**: Fügen Sie eine Auffangbedingung (`true`) als letzte Bedingung hinzu, um nicht übereinstimmende Fälle zu behandeln und zu verhindern, dass die Workflow-Ausführung stecken bleibt
- **Ausdrücke einfach halten**: 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

View File

@@ -0,0 +1,199 @@
---
title: Evaluator
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'
import { Video } from '@/components/ui/video'
Der Evaluator-Block nutzt KI, um die Inhaltsqualität anhand anpassbarer Bewertungsmetriken zu bewerten, die du selbst definierst. Perfekt für Qualitätskontrolle, A/B-Tests und um sicherzustellen, dass deine 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>
## Überblick
Mit dem Evaluator-Block kannst du:
<Steps>
<Step>
<strong>Inhaltsqualität bewerten</strong>: Nutze KI, um Inhalte anhand benutzerdefinierter Metriken mit numerischen Werten zu bewerten
</Step>
<Step>
<strong>Benutzerdefinierte Metriken erstellen</strong>: Erstelle spezifische Bewertungskriterien, die auf deinen Anwendungsfall zugeschnitten sind
</Step>
<Step>
<strong>Qualitätskontrolle automatisieren</strong>: Erstelle Workflows, die Inhalte automatisch bewerten und filtern
</Step>
<Step>
<strong>Leistung verfolgen</strong>: Überwache Verbesserungen und Konsistenz im Laufe der Zeit mit objektiver Bewertung
</Step>
</Steps>
## Funktionsweise
Der Evaluator-Block verarbeitet Inhalte durch KI-gestützte Bewertung:
1. **Inhalte empfangen** - Nimmt Eingabeinhalte von vorherigen Blöcken in deinem Workflow entgegen
2. **Metriken anwenden** - Bewertet Inhalte anhand deiner definierten benutzerdefinierten Metriken
3. **Bewertungen generieren** - KI-Modell weist numerische Werte für jede Metrik zu
4. **Zusammenfassung bereitstellen** - Liefert detaillierte Auswertung mit Bewertungen und Erklärungen
## Konfigurationsoptionen
### Bewertungsmetriken
Definiere benutzerdefinierte Metriken, anhand derer Inhalte bewertet werden. Jede Metrik umfasst:
- **Name**: Eine kurze Bezeichnung für die Metrik
- **Beschreibung**: Eine detaillierte Erklärung dessen, 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**: Jedes Modell, das auf Ollama läuft
<div className="w-full max-w-2xl mx-auto overflow-hidden rounded-lg">
<Video src="models.mp4" width={500} height={350} />
</div>
**Empfehlung**: Verwenden Sie Modelle mit starken Argumentationsfähigkeiten wie GPT-4o oder Claude 3.7 Sonnet für genauere Bewertungen.
### API-Schlüssel
Ihr API-Schlüssel für den ausgewählten LLM-Anbieter. Dieser wird sicher gespeichert und für die Authentifizierung verwendet.
## Funktionsweise
1. Der Evaluator-Block nimmt den bereitgestellten Inhalt und Ihre benutzerdefinierten Metriken
2. Er generiert einen spezialisierten Prompt, der das LLM anweist, den Inhalt zu bewerten
3. Der Prompt enthält klare Richtlinien zur Bewertung jeder Metrik
4. Das LLM bewertet den Inhalt und gibt numerische Werte für jede Metrik zurück
5. Der Evaluator-Block formatiert diese Werte als strukturierte Ausgabe zur Verwendung in Ihrem Workflow
## Beispielanwendungsfälle
### Bewertung der Inhaltsqualität
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Bewertung der Blogpost-Qualität vor der Veröffentlichung</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Agent-Block generiert Blogpost-Inhalte</li>
<li>Evaluator bewertet Genauigkeit, Lesbarkeit und Engagement</li>
<li>Bedingungsblock prüft, ob die Werte Mindestschwellen erreichen</li>
<li>Hohe Werte → Veröffentlichen, Niedrige Werte → Überarbeiten und erneut versuchen</li>
</ol>
</div>
### A/B-Testing von Inhalten
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Vergleich mehrerer KI-generierter Antworten</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Parallelblock generiert mehrere Antwortvarianten</li>
<li>Evaluator bewertet jede Variante nach Klarheit und Relevanz</li>
<li>Funktionsblock wählt die Antwort mit der höchsten Bewertung aus</li>
<li>Antwortblock gibt das beste Ergebnis zurück</li>
</ol>
</div>
### Qualitätskontrolle im Kundensupport
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Sicherstellen, dass Support-Antworten den Qualitätsstandards entsprechen</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Support-Mitarbeiter generiert Antwort auf Kundenanfrage</li>
<li>Evaluator bewertet Hilfsbereitschaft, Einfühlungsvermögen und Genauigkeit</li>
<li>Bewertungen werden für Training und Leistungsüberwachung protokolliert</li>
<li>Niedrige Bewertungen lösen einen manuellen Überprüfungsprozess aus</li>
</ol>
</div>
## Eingaben und Ausgaben
<Tabs items={['Konfiguration', 'Variablen', 'Ergebnisse']}>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Inhalt</strong>: Der zu bewertende Text oder strukturierte Daten
</li>
<li>
<strong>Bewertungsmetriken</strong>: Benutzerdefinierte Kriterien mit Bewertungsbereichen
</li>
<li>
<strong>Modell</strong>: KI-Modell für die Bewertungsanalyse
</li>
<li>
<strong>API-Schlüssel</strong>: Authentifizierung für den ausgewählten LLM-Anbieter
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>evaluator.content</strong>: Zusammenfassung der Bewertung
</li>
<li>
<strong>evaluator.model</strong>: Für die Bewertung verwendetes Modell
</li>
<li>
<strong>evaluator.tokens</strong>: Token-Nutzungsstatistiken
</li>
<li>
<strong>evaluator.cost</strong>: Kostenübersicht für den Bewertungsaufruf
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Metrik-Bewertungen</strong>: Numerische Bewertungen für jede definierte Metrik
</li>
<li>
<strong>Bewertungszusammenfassung</strong>: Detaillierte Beurteilung mit Erläuterungen
</li>
<li>
<strong>Zugriff</strong>: Verfügbar in Blöcken nach dem Evaluator
</li>
</ul>
</Tab>
</Tabs>
## 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 übermäßig 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 mehrere Metriken, um eine umfassende Bewertung zu erhalten

View File

@@ -0,0 +1,156 @@
---
title: Funktion
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'
Der Funktionsblock ermöglicht die Ausführung von benutzerdefiniertem JavaScript- oder TypeScript-Code in Ihren Workflows. Verwenden Sie ihn, um Daten zu transformieren, Berechnungen durchzuführen oder benutzerdefinierte Logik zu implementieren, die in anderen Blöcken nicht verfügbar ist.
<div className="flex justify-center">
<Image
src="/static/blocks/function.png"
alt="Funktionsblock mit Code-Editor"
width={500}
height={350}
className="my-6"
/>
</div>
## Überblick
Der Funktionsblock ermöglicht Ihnen:
<Steps>
<Step>
<strong>Daten transformieren</strong>: Formate konvertieren, Text analysieren, Arrays und Objekte manipulieren
</Step>
<Step>
<strong>Berechnungen durchführen</strong>: Mathematische Operationen, Statistiken, Finanzberechnungen
</Step>
<Step>
<strong>Benutzerdefinierte Logik implementieren</strong>: Komplexe Bedingungen, Schleifen und Algorithmen
</Step>
<Step>
<strong>Externe Daten verarbeiten</strong>: Antworten parsen, Anfragen formatieren, Authentifizierung verwalten
</Step>
</Steps>
## Funktionsweise
Der Funktionsblock führt Ihren Code in einer sicheren, isolierten Umgebung aus:
1. **Eingabe empfangen**: Zugriff auf Daten aus vorherigen Blöcken über das `input` Objekt
2. **Code ausführen**: Führen Sie Ihren JavaScript/Python-Code aus
3. **Ergebnisse zurückgeben**: Verwenden Sie `return`, um Daten an den nächsten Block zu übergeben
4. **Fehler behandeln**: Integrierte Fehlerbehandlung und Protokollierung
## Remote-Ausführung (E2B)
- **Sprachen**: JavaScript und Python in einer isolierten E2B-Sandbox ausführen.
- **Aktivierung**: Schalten Sie “Remote Code Execution” im Funktionsblock ein.
- **Einsatzbereich**: Schwerere Logik, externe Bibliotheken oder Python-spezifischer Code.
- **Leistung**: Langsamer als lokales JS aufgrund von Sandbox-Start und Netzwerk-Overhead.
- **Hinweise**: Erfordert `E2B_API_KEY` bei lokaler Ausführung. Für niedrigste Latenz verwenden Sie nativ lokales JS (Fast Mode).
## Eingaben und Ausgaben
<Tabs items={['Configuration', 'Variables']}>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Code</strong>: Ihr JavaScript/Python-Code zur Ausführung
</li>
<li>
<strong>Timeout</strong>: Maximale Ausführungszeit (standardmäßig 30 Sekunden)
</li>
<li>
<strong>Eingabedaten</strong>: Alle verbundenen Block-Ausgaben sind über Variablen verfügbar
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>function.result</strong>: Der von Ihrer Funktion zurückgegebene Wert
</li>
<li>
<strong>function.stdout</strong>: Console.log()-Ausgabe aus Ihrem Code
</li>
</ul>
</Tab>
</Tabs>
## Beispielanwendungsfälle
### Datenverarbeitungspipeline
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: API-Antwort in strukturierte Daten umwandeln</h4>
<ol className="list-decimal pl-5 text-sm">
<li>API-Block ruft Rohdaten der Kunden ab</li>
<li>Funktionsblock verarbeitet und validiert Daten</li>
<li>Funktionsblock berechnet abgeleitete Metriken</li>
<li>Antwortblock gibt formatierte Ergebnisse zurück</li>
</ol>
</div>
### Implementierung von Geschäftslogik
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Berechnung von Treuepunkten und Stufen</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Agent ruft Kaufhistorie des Kunden ab</li>
<li>Funktionsblock berechnet Treuemetriken</li>
<li>Funktionsblock bestimmt Kundenstufe</li>
<li>Bedingungsblock leitet basierend auf der Stufenhöhe weiter</li>
</ol>
</div>
### Datenvalidierung und -bereinigung
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Benutzereingaben validieren und bereinigen</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Benutzereingabe aus Formularübermittlung erhalten</li>
<li>Funktionsblock validiert E-Mail-Format und Telefonnummern</li>
<li>Funktionsblock bereinigt und normalisiert Daten</li>
<li>API-Block speichert validierte Daten in der Datenbank</li>
</ol>
</div>
### 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
- **Auf 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

View File

@@ -0,0 +1,129 @@
---
title: Blöcke
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 sieben grundlegende Blocktypen, die die wesentlichen Funktionen 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
### Ausgabeblöcke
- **[Response](/blocks/response)** - Formatiere und gib endgültige Ergebnisse aus deinem Workflow zurück
## 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 das Verhalten des Blocks steuern
**Ausgaben**: Daten, die der Block für andere Blöcke produziert
<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 Eingängen 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 Bedingungsblöcke 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**:
- Ein-/Ausgabeverbindungen
- Fehlerbehandlungsverhalten
- Zeitüberschreitungseinstellungen für die Ausführung
**KI-Blöcke** (Agent, Router, Evaluator):
- Modellauswahl (OpenAI, Anthropic, Google, lokal)
- API-Schlüssel und Authentifizierung
- Temperature und andere Modellparameter
- Systemaufforderungen und Anweisungen
**Logikblöcke** (Bedingung, Funktion):
- Benutzerdefinierte Ausdrücke oder Code
- Variablenreferenzen
- Einstellungen für die Ausführungsumgebung
**Integrationsblöcke** (API, Antwort):
- Endpunktkonfiguration
- Header und Authentifizierung
- Anfrage-/Antwortformatierung
<Cards>
<Card title="Agent Block" href="/blocks/agent">
Verbindung zu KI-Modellen herstellen und intelligente Antworten erzeugen
</Card>
<Card title="Function Block" 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="Condition Block" href="/blocks/condition">
Verzweigende Logik basierend auf Datenbewertung erstellen
</Card>
</Cards>

View File

@@ -0,0 +1,211 @@
---
title: Loop
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'
Der Loop-Block ist ein Container-Block in Sim, der es ermöglicht, iterative Workflows zu erstellen, indem eine Gruppe von Blöcken wiederholt ausgeführt wird. Loops ermöglichen iterative Verarbeitung in deinen Workflows.
Der Loop-Block unterstützt zwei Arten der Iteration:
<Callout type="info">
Loop-Blöcke sind Container-Knoten, die andere Blöcke enthalten können. Die Blöcke innerhalb einer Schleife werden basierend auf deiner Konfiguration mehrfach ausgeführt.
</Callout>
## Überblick
Der Loop-Block ermöglicht dir:
<Steps>
<Step>
<strong>Über Sammlungen iterieren</strong>: Arrays oder Objekte Element für Element verarbeiten
</Step>
<Step>
<strong>Operationen wiederholen</strong>: Blöcke eine festgelegte Anzahl von Malen ausführen
</Step>
<Step>
<strong>Sequentielle Verarbeitung</strong>: Datentransformation in geordneten Iterationen durchführen
</Step>
<Step>
<strong>Ergebnisse aggregieren</strong>: Ausgaben aus allen Schleifeniterationen sammeln
</Step>
</Steps>
## Funktionsweise
Der Loop-Block führt enthaltene Blöcke durch sequentielle Iteration aus:
1. **Schleife initialisieren** - Iterationsparameter festlegen (Anzahl oder Sammlung)
2. **Iteration ausführen** - Enthaltene Blöcke für aktuelle Iteration ausführen
3. **Ergebnisse sammeln** - Ausgabe jeder Iteration speichern
4. **Fortfahren oder abschließen** - Zur nächsten Iteration übergehen oder Schleife beenden
## Konfigurationsoptionen
### Schleifentyp
Wähle zwischen zwei Arten von Schleifen:
<Tabs items={['For Loop', 'ForEach Loop']}>
<Tab>
**For Loop (Iterationen)** - Eine numerische Schleife, die eine feste Anzahl von Malen ausgeführt wird:
<div className="flex justify-center">
<Image
src="/static/blocks/loop-1.png"
alt="For Loop mit Iterationen"
width={500}
height={400}
className="my-6"
/>
</div>
Verwende diese Option, 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>
</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 von Ergebnissen aus allen Schleifendurchläufen
## Beispielanwendungsfälle
### Verarbeitung von API-Ergebnissen
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Mehrere Kundendatensätze verarbeiten</h4>
<ol className="list-decimal pl-5 text-sm">
<li>API-Block ruft Kundenliste ab</li>
<li>ForEach-Schleife iteriert über jeden Kunden</li>
<li>Innerhalb der Schleife: Agent analysiert Kundendaten</li>
<li>Innerhalb der Schleife: Funktion speichert Analyseergebnisse</li>
</ol>
</div>
### Iterative Inhaltserstellung
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Mehrere Variationen generieren</h4>
<ol className="list-decimal pl-5 text-sm">
<li>For-Schleife auf 5 Iterationen einstellen</li>
<li>Innerhalb der Schleife: Agent generiert Inhaltsvariante</li>
<li>Innerhalb der Schleife: Evaluator bewertet den Inhalt</li>
<li>Nach der Schleife: Funktion wählt die beste Variante aus</li>
</ol>
</div>
## Erweiterte Funktionen
### Einschränkungen
<Callout type="warning">
Container-Blöcke (Schleifen und Parallele) können nicht ineinander verschachtelt werden. Das bedeutet:
- Du kannst keinen Schleifenblock in einen anderen Schleifenblock platzieren
- Du kannst keinen Parallelblock in einen Schleifenblock platzieren
- Du kannst keinen Container-Block in einen anderen Container-Block platzieren
Wenn du mehrdimensionale Iterationen benötigst, erwäge eine Umstrukturierung deines Workflows, um sequentielle Schleifen zu verwenden oder Daten in Stufen zu verarbeiten.
</Callout>
<Callout type="info">
Schleifen werden sequentiell ausgeführt, nicht parallel. Wenn Sie eine gleichzeitige Ausführung benötigen, verwenden Sie stattdessen den Parallel-Block.
</Callout>
## Eingaben und Ausgaben
<Tabs items={['Konfiguration', 'Variablen', 'Ergebnisse']}>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Schleifentyp</strong>: Wählen Sie zwischen 'for' oder 'forEach'
</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>
</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 (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>
## Best Practices
- **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 ForEach statt For-Schleifen, wenn Sie Arrays oder Objekte verarbeiten
- **Behandeln Sie Fehler angemessen**: Erwägen Sie, Fehlerbehandlung innerhalb von Schleifen einzubauen, um robuste Workflows zu gewährleisten

View File

@@ -0,0 +1,231 @@
---
title: Parallel
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'
Der Parallel-Block ist ein Container-Block in Sim, der es ermöglicht, mehrere Instanzen von Blöcken gleichzeitig auszuführen, um Workflows schneller zu verarbeiten.
Der Parallel-Block unterstützt zwei Arten der gleichzeitigen Ausführung:
<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>
## Überblick
Der Parallel-Block ermöglicht es dir:
<Steps>
<Step>
<strong>Arbeit zu verteilen</strong>: Mehrere Elemente gleichzeitig zu verarbeiten
</Step>
<Step>
<strong>Ausführung zu beschleunigen</strong>: Unabhängige Operationen gleichzeitig auszuführen
</Step>
<Step>
<strong>Massenoperationen zu bewältigen</strong>: Große Datensätze effizient zu verarbeiten
</Step>
<Step>
<strong>Ergebnisse zu aggregieren</strong>: Ausgaben aus allen parallelen Ausführungen zu sammeln
</Step>
</Steps>
## Konfigurationsoptionen
### Parallel-Typ
Wähle zwischen zwei Arten der parallelen Ausführung:
<Tabs items={['Count-based', 'Collection-based']}>
<Tab>
**Anzahlbasierte Parallelität** - Führe 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>
Verwende dies, wenn du dieselbe Operation mehrmals gleichzeitig ausführen musst.
```
Example: Run 5 parallel instances
- Instance 1 ┐
- Instance 2 ├─ All execute simultaneously
- Instance 3 │
- Instance 4 │
- Instance 5 ┘
```
</Tab>
<Tab>
**Sammlungsbasierte Parallelität** - Verteile 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.
```
Example: Process ["task1", "task2", "task3"] in parallel
- Instance 1: Process "task1" ┐
- Instance 2: Process "task2" ├─ All execute simultaneously
- Instance 3: Process "task3" ┘
```
</Tab>
</Tabs>
## Wie man Parallel-Blöcke verwendet
### Einen Parallel-Block erstellen
1. Ziehe einen Parallel-Block aus der Werkzeugleiste auf deine Leinwand
2. Konfiguriere den Parallel-Typ und die Parameter
3. Ziehe einen einzelnen Block in den Parallel-Container
4. Verbinde den Block nach Bedarf
### Auf Ergebnisse zugreifen
Nach Abschluss eines parallelen Blocks können Sie auf aggregierte Ergebnisse zugreifen:
- **`<parallel.results>`**: Array mit Ergebnissen aus allen parallelen Instanzen
## Beispielanwendungsfälle
### Batch-API-Verarbeitung
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Mehrere API-Aufrufe gleichzeitig verarbeiten</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Paralleler Block mit einer Sammlung von API-Endpunkten</li>
<li>Innerhalb des parallelen Blocks: API-Block ruft jeden Endpunkt auf</li>
<li>Nach dem parallelen Block: Alle Antworten gemeinsam verarbeiten</li>
</ol>
</div>
### Multi-Modell-KI-Verarbeitung
<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:
```javascript
// In a Function block after the parallel
const allResults = input.parallel.results;
// Returns: [result1, result2, result3, ...]
```
### 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="warning">
Container-Blöcke (Schleifen und Parallele) können nicht ineinander verschachtelt werden. Das bedeutet:
- Sie können keinen Schleifenblock in einen parallelen Block platzieren
- Sie können keinen weiteren parallelen Block in einen parallelen Block platzieren
- Sie können keinen Container-Block in einen anderen Container-Block platzieren
</Callout>
<Callout type="warning">
Parallele Blöcke können nur einen einzigen Block enthalten. Sie können nicht mehrere Blöcke haben, die innerhalb eines parallelen Blocks miteinander verbunden sind - in diesem Fall würde nur der erste Block ausgeführt werden.
</Callout>
<Callout type="info">
Obwohl die parallele Ausführung schneller ist, sollten Sie Folgendes beachten:
- API-Ratenbegrenzungen bei gleichzeitigen Anfragen
- Speichernutzung bei großen Datensätzen
- Maximum von 20 gleichzeitigen Instanzen, um Ressourcenerschöpfung zu vermeiden
</Callout>
## Parallel vs. Loop
Verstehen, wann was zu verwenden ist:
| Funktion | Parallel | Loop |
|---------|----------|------|
| 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={['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>Count</strong>: Anzahl der auszuführenden Instanzen (anzahlbasiert)
</li>
<li>
<strong>Collection</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>Access</strong>: Verfügbar in Blöcken nach dem Parallel
</li>
</ul>
</Tab>
</Tabs>
## Best Practices
- **Nur unabhängige Operationen**: Stellen Sie sicher, dass Operationen nicht voneinander abhängen
- **Rate-Limits berücksichtigen**: Fügen Sie Verzögerungen oder Drosselungen für API-intensive Workflows hinzu
- **Fehlerbehandlung**: Jede Instanz sollte ihre eigenen Fehler angemessen behandeln

View File

@@ -0,0 +1,246 @@
---
title: Antwort
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Image } from '@/components/ui/image'
Der Antwort-Block ist der letzte Schritt in deinem Workflow, der eine strukturierte Antwort formatiert und an API-Aufrufe zurücksendet. Er funktioniert wie eine "return"-Anweisung für deinen gesamten Workflow er verpackt Ergebnisse und sendet sie zurück.
<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">
Antwort-Blöcke sind terminale Blöcke - sie beenden die Workflow-Ausführung und können nicht mit anderen Blöcken verbunden werden.
</Callout>
## Überblick
Der Antwort-Block ermöglicht dir:
<Steps>
<Step>
<strong>API-Antworten formatieren</strong>: Strukturierung von Workflow-Ergebnissen in korrekte HTTP-Antworten
</Step>
<Step>
<strong>Statuscodes festlegen</strong>: Konfiguration passender HTTP-Statuscodes basierend auf Workflow-Ergebnissen
</Step>
<Step>
<strong>Header kontrollieren</strong>: Hinzufügen benutzerdefinierter Header für API-Antworten und Webhooks
</Step>
<Step>
<strong>Daten transformieren</strong>: Umwandlung von Workflow-Variablen in client-freundliche Antwortformate
</Step>
</Steps>
## Wie es funktioniert
Der Antwort-Block schließt die Workflow-Ausführung ab:
1. **Daten sammeln** - Sammelt Variablen und Ausgaben von vorherigen Blöcken
2. **Antwort formatieren** - Strukturiert Daten gemäß deiner Konfiguration
3. **HTTP-Details festlegen** - Wendet Statuscodes und Header an
4. **Antwort senden** - Gibt die formatierte Antwort an den API-Aufrufer zurück
## Wann du Antwort-Blöcke benötigst
- **API-Endpunkte**: Wenn dein Workflow über eine API aufgerufen wird, formatieren Antwort-Blöcke die Rückgabedaten
- **Webhooks**: Rückgabe von Bestätigungen oder Daten an das aufrufende System
- **Testen**: Anzeige formatierter Ergebnisse beim Testen deines Workflows
## Zwei Möglichkeiten zum Erstellen von Antworten
### Builder-Modus (Empfohlen)
Visuelle Oberfläche zum Erstellen der Antwortstruktur:
- Felder per Drag-and-Drop einfügen
- Einfache Referenzierung von Workflow-Variablen
- Visuelle Vorschau der Antwortstruktur
### Editor-Modus (Fortgeschritten)
JSON direkt schreiben:
- Volle Kontrolle über das Antwortformat
- Unterstützung für komplexe verschachtelte Strukturen
- Verwendung der `<variable.name>`Syntax für dynamische Werte
## 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. Häufige Statuscodes sind:
<Tabs items={['Erfolg (2xx)', 'Client-Fehler (4xx)', 'Server-Fehler (5xx)']}>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li><strong>200</strong>: OK - Standard-Erfolgsantwort</li>
<li><strong>201</strong>: Erstellt - Ressource erfolgreich erstellt</li>
<li><strong>204</strong>: Kein Inhalt - Erfolg ohne Antworttext</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li><strong>400</strong>: Ungültige Anfrage - Ungültige Anfrageparameter</li>
<li><strong>401</strong>: Nicht autorisiert - Authentifizierung erforderlich</li>
<li><strong>404</strong>: Nicht gefunden - Ressource existiert nicht</li>
<li><strong>422</strong>: Nicht verarbeitbare Entität - Validierungsfehler</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li><strong>500</strong>: Interner Serverfehler - Serverseitiger Fehler</li>
<li><strong>502</strong>: Bad Gateway - Fehler eines externen Dienstes</li>
<li><strong>503</strong>: Dienst nicht verfügbar - Dienst vorübergehend nicht erreichbar</li>
</ul>
</Tab>
</Tabs>
<div className="mt-4 text-sm text-gray-600 dark:text-gray-400">
Der Standard-Statuscode ist 200, wenn nicht anders angegeben.
</div>
### 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
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Strukturierte Daten von einer Such-API zurückgeben</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Workflow verarbeitet Suchanfrage und ruft Ergebnisse ab</li>
<li>Funktionsblock formatiert und paginiert Ergebnisse</li>
<li>Antwortblock gibt JSON mit Daten, Paginierung und Metadaten zurück</li>
<li>Client erhält strukturierte Antwort mit Status 200</li>
</ol>
</div>
### Webhook-Bestätigung
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Bestätigung des Webhook-Empfangs und der Verarbeitung</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Webhook-Trigger empfängt Daten vom externen System</li>
<li>Workflow verarbeitet die eingehenden Daten</li>
<li>Antwortblock gibt Bestätigung mit Verarbeitungsstatus zurück</li>
<li>Externes System erhält Bestätigung</li>
</ol>
</div>
### Fehlerantwort-Behandlung
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Angemessene Fehlerantworten zurückgeben</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Bedingungsblock erkennt Validierungsfehler oder Systemfehler</li>
<li>Router leitet zum Fehlerbehandlungspfad weiter</li>
<li>Antwortblock gibt Status 400/500 mit Fehlerdetails zurück</li>
<li>Client erhält strukturierte Fehlerinformationen</li>
</ol>
</div>
## Eingaben und Ausgaben
<Tabs items={['Konfiguration', 'Variablen', 'Ergebnisse']}>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Antwortdaten</strong>: JSON-Struktur für den Antworttext
</li>
<li>
<strong>Statuscode</strong>: HTTP-Statuscode (Standard: 200)
</li>
<li>
<strong>Header</strong>: Benutzerdefinierte HTTP-Header als Schlüssel-Wert-Paare
</li>
<li>
<strong>Modus</strong>: Builder- oder Editor-Modus für die Antworterstellung
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>response.data</strong>: Der strukturierte Antworttext
</li>
<li>
<strong>response.status</strong>: Gesendeter HTTP-Statuscode
</li>
<li>
<strong>response.headers</strong>: In der Antwort enthaltene Header
</li>
<li>
<strong>response.success</strong>: Boolescher Wert, der erfolgreichen Abschluss anzeigt
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>HTTP-Antwort</strong>: Vollständige Antwort an den API-Aufrufer
</li>
<li>
<strong>Workflow-Beendigung</strong>: Beendet die Workflow-Ausführung
</li>
<li>
<strong>Zugriff</strong>: Antwortblöcke sind terminal - keine nachfolgenden Blöcke
</li>
</ul>
</Tab>
</Tabs>
## 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 API-Endpunkte hinweg für eine bessere Entwicklererfahrung bei
- **Fügen Sie relevante Metadaten hinzu**: Ergänzen Sie Zeitstempel und Versionsinformationen, um bei der Fehlersuche 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 Response-Block ausgeführt wird

View File

@@ -0,0 +1,225 @@
---
title: Router
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { Accordion, Accordions } from 'fumadocs-ui/components/accordion'
import { Image } from '@/components/ui/image'
import { Video } from '@/components/ui/video'
Der Router-Block nutzt KI, um intelligent zu entscheiden, welchen Pfad Ihr Workflow als nächstes nehmen sollte, indem er die Workflow-Ausführung basierend auf spezifischen Bedingungen oder Logik leitet. Im Gegensatz zu Bedingungsblöcken, die einfache Regeln verwenden, können Router-Blöcke den Kontext verstehen und intelligente Routing-Entscheidungen auf Basis von Inhaltsanalysen treffen.
<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>
## Überblick
Der Router-Block ermöglicht Ihnen:
<Steps>
<Step>
<strong>Intelligentes Content-Routing</strong>: Nutzung von KI zum Verständnis von Absicht und Kontext
</Step>
<Step>
<strong>Dynamische Pfadauswahl</strong>: Routing von Workflows basierend auf unstrukturierter Inhaltsanalyse
</Step>
<Step>
<strong>Kontextbewusste Entscheidungen</strong>: Treffen intelligenter Routing-Entscheidungen über einfache Regeln hinaus
</Step>
<Step>
<strong>Multi-Pfad-Management</strong>: Verwaltung komplexer Workflows mit mehreren potenziellen Zielen
</Step>
</Steps>
## Router vs. Bedingungsblöcke
<Accordions>
<Accordion title="Wann Router verwenden">
- KI-gestützte Inhaltsanalyse erforderlich
- Unstrukturierte oder variierende Inhaltstypen
- Absichtsbasiertes Routing (z.B. "Support-Tickets an Abteilungen weiterleiten")
- Kontextbewusste Entscheidungsfindung erforderlich
</Accordion>
<Accordion title="Wann Bedingung verwenden">
- Einfache, regelbasierte Entscheidungen
- Strukturierte Daten oder numerische Vergleiche
- Schnelles, deterministisches Routing erforderlich
- Boolesche Logik ausreichend
</Accordion>
</Accordions>
## Funktionsweise
Der Router-Block:
<Steps>
<Step>
<strong>Analysiert Inhalte</strong>: Verwendet ein LLM, um Eingabeinhalte und Kontext zu verstehen
</Step>
<Step>
<strong>Bewertet Ziele</strong>: Vergleicht Inhalte mit verfügbaren Zielblöcken
</Step>
<Step>
<strong>Wählt Ziel aus</strong>: Identifiziert den am besten geeigneten Pfad basierend auf der Absicht
</Step>
<Step>
<strong>Leitet Ausführung</strong>: Dirigiert den Workflow zum ausgewählten Block
</Step>
</Steps>
## Konfigurationsoptionen
### Inhalt/Prompt
Der Inhalt oder Prompt, den der Router analysiert, um Routing-Entscheidungen zu treffen. Dies kann sein:
- Eine direkte Benutzeranfrage oder -eingabe
- Ausgabe aus einem vorherigen Block
- Eine vom System generierte Nachricht
### Zielblöcke
Die möglichen Zielblöcke, aus denen der Router auswählen kann. Der Router erkennt automatisch verbundene Blöcke, aber Sie können auch:
- Die Beschreibungen der Zielblöcke anpassen, um die Routing-Genauigkeit zu verbessern
- Routing-Kriterien für jeden Zielblock festlegen
- Bestimmte Blöcke von der Berücksichtigung als Routing-Ziele ausschließen
### Modellauswahl
Wählen Sie ein KI-Modell für die Routing-Entscheidung:
**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**: Jedes Modell, das auf Ollama läuft
<div className="w-full max-w-2xl mx-auto overflow-hidden rounded-lg">
<Video src="router-model-dropdown.mp4" width={500} height={350} />
</div>
**Empfehlung**: Verwenden Sie Modelle mit starken Reasoning-Fähigkeiten wie GPT-4o oder Claude 3.7 Sonnet für genauere Routing-Entscheidungen.
### API-Schlüssel
Ihr API-Schlüssel für den ausgewählten LLM-Anbieter. Dieser wird sicher gespeichert und für die Authentifizierung verwendet.
### Zugriff auf Ergebnisse
Nachdem ein Router eine Entscheidung getroffen hat, können Sie auf seine Ausgaben zugreifen:
- **`<router.prompt>`**: Zusammenfassung des verwendeten Routing-Prompts
- **`<router.selected_path>`**: Details zum ausgewählten Zielblock
- **`<router.tokens>`**: Token-Nutzungsstatistiken vom LLM
- **`<router.cost>`**: Kostenübersicht für den Routing-Aufruf (Eingabe, Ausgabe, Gesamt)
- **`<router.model>`**: Das für die Entscheidungsfindung verwendete Modell
## Erweiterte Funktionen
### Benutzerdefinierte Routing-Kriterien
Definieren Sie spezifische Kriterien für jeden Zielblock:
```javascript
// Example routing descriptions
Target Block 1: "Technical support issues, API problems, integration questions"
Target Block 2: "Billing inquiries, subscription changes, payment issues"
Target Block 3: "General questions, feedback, feature requests"
```
## Eingaben und Ausgaben
<Tabs items={['Konfiguration', 'Variablen']}>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>Inhalt/Prompt</strong>: Zu analysierender Text für Routing-Entscheidungen
</li>
<li>
<strong>Zielblöcke</strong>: Verbundene Blöcke als potenzielle Ziele
</li>
<li>
<strong>Modell</strong>: KI-Modell für Routing-Analyse
</li>
<li>
<strong>API-Schlüssel</strong>: Authentifizierung für ausgewählten LLM-Anbieter
</li>
</ul>
</Tab>
<Tab>
<ul className="list-disc space-y-2 pl-6">
<li>
<strong>router.prompt</strong>: Zusammenfassung des verwendeten Routing-Prompts
</li>
<li>
<strong>router.selected_path</strong>: Details zum gewählten Ziel
</li>
<li>
<strong>router.tokens</strong>: Token-Nutzungsstatistiken
</li>
<li>
<strong>router.cost</strong>: Kostenübersicht für den Routing-Aufruf (Eingabe, Ausgabe, Gesamt)
</li>
<li>
<strong>router.model</strong>: Für die Entscheidungsfindung verwendetes Modell
</li>
</ul>
</Tab>
</Tabs>
## Beispielanwendungsfälle
### Kundensupport-Triage
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Support-Tickets an spezialisierte Abteilungen weiterleiten</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Benutzer reicht Supportanfrage über Formular ein</li>
<li>Router analysiert Ticket-Inhalt und Kontext</li>
<li>Technische Probleme → Engineering-Support-Mitarbeiter</li>
<li>Abrechnungsfragen → Finanz-Support-Mitarbeiter</li>
</ol>
</div>
### Inhaltsklassifizierung
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Benutzergenerierte Inhalte klassifizieren und weiterleiten</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Benutzer reicht Inhalt oder Feedback ein</li>
<li>Router analysiert Inhaltstyp und Stimmung</li>
<li>Feature-Anfragen → Produkt-Team-Workflow</li>
<li>Fehlerberichte → Technischer Support-Workflow</li>
</ol>
</div>
### Lead-Qualifizierung
<div className="mb-4 rounded-md border p-4">
<h4 className="font-medium">Szenario: Leads basierend auf Qualifizierungskriterien weiterleiten</h4>
<ol className="list-decimal pl-5 text-sm">
<li>Lead-Informationen aus Formular erfasst</li>
<li>Router analysiert Unternehmensgröße, Branche und Bedürfnisse</li>
<li>Enterprise-Leads → Vertriebsteam mit individueller Preisgestaltung</li>
<li>KMU-Leads → Self-Service-Onboarding-Prozess</li>
</ol>
</div>
## Best Practices
- **Klare Zielbeschreibungen bereitstellen**: Helfen Sie dem Router zu verstehen, wann jedes Ziel mit spezifischen, detaillierten Beschreibungen ausgewählt werden soll
- **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

View File

@@ -0,0 +1,40 @@
---
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={400}
height={280}
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.
3. **Ausgaben**: Nach Abschluss des untergeordneten Workflows 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
## Ausführungshinweise
- Untergeordnete Workflows laufen im gleichen Workspace-Kontext, sodass Umgebungsvariablen und Tools übernommen werden.
- Der Block verwendet Deployment-Versionierung: Jede API-, Zeitplan-, Webhook-, manuelle oder Chat-Ausführung ruft den bereitgestellten Snapshot auf. Stelle den untergeordneten Workflow neu bereit, wenn du ihn änderst.
- 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>

View File

@@ -0,0 +1,42 @@
---
title: Verbindungsgrundlagen
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Step, Steps } from 'fumadocs-ui/components/steps'
## 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>
### Verbindungsfluss
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>

View File

@@ -0,0 +1,194 @@
---
title: Verbindungsdatenstruktur
---
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
{
"content": "Original content passed through",
"conditionResult": true,
"selectedPath": {
"blockId": "2acd9007-27e8-4510-a487-73d3b825e7c1",
"blockType": "agent",
"blockTitle": "Follow-up Agent"
},
"selectedConditionId": "condition-1"
}
```
### Ausgabefelder des Condition-Blocks
- **content**: Der ursprüngliche, durchgeleitete Inhalt
- **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
- **selectedConditionId**: 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

View File

@@ -0,0 +1,42 @@
---
title: Verbindungen
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>

View File

@@ -0,0 +1,109 @@
---
title: Verbindungs-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>&lt;&gt;</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>&lt;&gt;</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>

View File

@@ -0,0 +1,161 @@
---
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>
## 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 Workflows 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 Workflows 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 den Modusauswähler 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 Basistarif des Anbieters berechnet (**zum Selbstkostenpreis**)
- **Ausgabe-Tokens**: werden mit dem **1,5-fachen** des Basisausgabepreises des Anbieters berechnet
```javascript
copilotCost = (inputTokens × inputPrice + outputTokens × (outputPrice × 1.5)) / 1,000,000
```
| Komponente | Angewendeter Tarif |
|------------|------------------------|
| Input | inputPrice |
| Output | outputPrice × 1,5 |
<Callout type="warning">
Die angezeigten Preise spiegeln die Tarife vom 4. September 2025 wider. Überprüfen Sie die Anbieterdokumentation für aktuelle Preise.
</Callout>
<Callout type="info">
Modellpreise werden pro Million Token berechnet. 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>

View File

@@ -0,0 +1,551 @@
---
title: Externe API
---
import { Accordion, Accordions } from 'fumadocs-ui/components/accordion'
import { Callout } from 'fumadocs-ui/components/callout'
import { Tab, Tabs } from 'fumadocs-ui/components/tabs'
import { CodeBlock } from 'fumadocs-ui/components/codeblock'
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": {
"limit": 60, // Max sync workflow executions per minute
"remaining": 58, // Remaining sync workflow executions
"resetAt": "..." // When the window resets
},
"async": {
"limit": 60, // Max async workflow executions per minute
"remaining": 59, // Remaining async workflow executions
"resetAt": "..." // When the window resets
}
},
"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:** Die Ratenbegrenzungen in der Antwort beziehen sich auf 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": {
"limit": 60,
"remaining": 58,
"resetAt": "2025-01-01T12:35:56.789Z"
},
"async": {
"limit": 60,
"remaining": 59,
"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": {
"limit": 60,
"remaining": 58,
"resetAt": "2025-01-01T12:35:56.789Z"
},
"async": {
"limit": 60,
"remaining": 59,
"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>
## Webhook-Abonnements
Erhalten Sie Echtzeitbenachrichtigungen, wenn Workflow-Ausführungen abgeschlossen werden. Webhooks werden über die Sim-Benutzeroberfläche im Workflow-Editor konfiguriert.
### Konfiguration
Webhooks können für jeden Workflow über die Benutzeroberfläche des Workflow-Editors konfiguriert werden. Klicken Sie auf das Webhook-Symbol in der Kontrollleiste, um Ihre Webhook-Abonnements einzurichten.
<div className="mx-auto w-full overflow-hidden rounded-lg">
<Video src="configure-webhook.mp4" width={700} height={450} />
</div>
**Verfügbare Konfigurationsoptionen:**
- `url`: Ihre Webhook-Endpunkt-URL
- `secret`: Optionales Geheimnis für die HMAC-Signaturverifizierung
- `includeFinalOutput`: Die endgültige Ausgabe des Workflows in die Nutzlast einschließen
- `includeTraceSpans`: Detaillierte Ausführungs-Trace-Spans einschließen
- `includeRateLimits`: Informationen zum Ratelimit des Workflow-Besitzers einschließen
- `includeUsageData`: Nutzungs- und Abrechnungsdaten des Workflow-Besitzers einschließen
- `levelFilter`: Array von Log-Ebenen, die empfangen werden sollen (`info`, `error`)
- `triggerFilter`: Array von Auslösertypen, die empfangen werden sollen (`api`, `webhook`, `schedule`, `manual`, `chat`)
- `active`: Webhook-Abonnement aktivieren/deaktivieren
### Webhook-Nutzlast
Wenn eine Workflow-Ausführung abgeschlossen ist, sendet Sim eine POST-Anfrage an Ihre Webhook-URL:
```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:
- `sim-event`: Ereignistyp (immer `workflow.execution.completed`)
- `sim-timestamp`: Unix-Zeitstempel in Millisekunden
- `sim-delivery-id`: Eindeutige Lieferungs-ID für Idempotenz
- `sim-signature`: HMAC-SHA256-Signatur zur Verifizierung (falls Secret konfiguriert)
- `Idempotency-Key`: Identisch mit der Lieferungs-ID zur Erkennung von Duplikaten
### Signaturverifizierung
Wenn Sie ein Webhook-Secret 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 Überlastungen 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**: Verwenden Sie beim Abfragen von Logs die cursorbasierte Paginierung mit `order=asc` und `startDate`, um neue Logs effizient abzurufen.
2. **Webhook-Sicherheit**: Konfigurieren Sie immer ein Webhook-Secret und überprüfen Sie Signaturen, um sicherzustellen, dass Anfragen von Sim stammen.
3. **Idempotenz**: Verwenden Sie den `Idempotency-Key`Header, um doppelte Webhook-Zustellungen zu erkennen und zu behandeln.
4. **Datenschutz**: Standardmäßig werden `finalOutput` und `traceSpans` von den Antworten ausgeschlossen. Aktivieren Sie diese nur, wenn Sie die Daten benötigen und die Datenschutzauswirkungen verstehen.
5. **Rate-Limiting**: Implementieren Sie exponentielles Backoff, wenn Sie 429-Antworten erhalten. Überprüfen Sie den `Retry-After`Header für die empfohlene Wartezeit.
## Rate-Limiting
Die API implementiert Rate-Limiting, um eine faire Nutzung zu gewährleisten:
- **Kostenloser Plan**: 10 Anfragen pro Minute
- **Pro-Plan**: 30 Anfragen pro Minute
- **Team-Plan**: 60 Anfragen pro Minute
- **Enterprise-Plan**: Individuelle Limits
Informationen zum Rate-Limit sind in den Antwort-Headern enthalten:
- `X-RateLimit-Limit`: Maximale Anfragen pro Zeitfenster
- `X-RateLimit-Remaining`: Verbleibende Anfragen im aktuellen Zeitfenster
- `X-RateLimit-Reset`: ISO-Zeitstempel, wann das Zeitfenster zurückgesetzt wird
## Beispiel: Abfragen neuer 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');
});
```

View File

@@ -0,0 +1,132 @@
---
title: Ausführungsgrundlagen
---
import { Callout } from 'fumadocs-ui/components/callout'
import { Card, Cards } from 'fumadocs-ui/components/card'
import { Step, Steps } from 'fumadocs-ui/components/steps'
import { Image } from '@/components/ui/image'
import { Video } from '@/components/ui/video'
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ührungsauslöser
Workflows können auf verschiedene Weise ausgelöst werden, abhängig von Ihrem Anwendungsfall:
### Manuelles Testen
Klicken Sie im Workflow-Editor auf "Ausführen", um Ihren Workflow während der Entwicklung zu testen. Perfekt für Debugging und Validierung.
### Geplante Ausführung
Richten Sie wiederkehrende Ausführungen mit Cron-Ausdrücken ein. Ideal für regelmäßige Datenverarbeitung, Berichte oder Wartungsaufgaben.
### API-Bereitstellung
Stellen Sie Workflows als HTTP-Endpunkte bereit, die programmatisch von Ihren Anwendungen aufgerufen werden können.
### Webhook-Integration
Reagieren Sie in Echtzeit auf Ereignisse von externen Diensten wie GitHub, Stripe oder benutzerdefinierten Systemen.
### Chat-Schnittstelle
Erstellen Sie Konversationsschnittstellen, die auf benutzerdefinierten Subdomains für benutzerorientierte KI-Anwendungen gehostet werden.
<Callout type="info">
Erfahren Sie mehr über jeden Auslösertyp im [Abschnitt Auslöser](/triggers) der Dokumentation.
</Callout>
## 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 gleichzeitig ohne Konfiguration
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
- **[Auslöser](/triggers)** - Richten Sie verschiedene Möglichkeiten ein, Ihre Workflows auszuführen

View File

@@ -0,0 +1,186 @@
---
title: Kostenberechnung
---
import { Accordion, Accordions } from 'fumadocs-ui/components/accordion'
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={['Gehostete Modelle', 'Eigener API-Schlüssel']}>
<Tab>
**Gehostete Modelle** - Sim stellt API-Schlüssel mit einem 2,5-fachen Preismultiplikator bereit:
| Modell | Basispreis (Eingabe/Ausgabe) | Gehosteter Preis (Eingabe/Ausgabe) |
|-------|---------------------------|----------------------------|
| GPT-4o | 2,50 $ / 10,00 $ | 6,25 $ / 25,00 $ |
| GPT-4.1 | 2,00 $ / 8,00 $ | 5,00 $ / 20,00 $ |
| o1 | 15,00 $ / 60,00 $ | 37,50 $ / 150,00 $ |
| o3 | 2,00 $ / 8,00 $ | 5,00 $ / 20,00 $ |
| Claude 3.5 Sonnet | 3,00 $ / 15,00 $ | 7,50 $ / 37,50 $ |
| Claude Opus 4.0 | 15,00 $ / 75,00 $ | 37,50 $ / 187,50 $ |
*Der 2,5-fache Multiplikator deckt Infrastruktur- und API-Verwaltungskosten ab.*
</Tab>
<Tab>
**Ihre eigenen API-Schlüssel** - Nutzen Sie jedes Modell zum Basispreis:
| Anbieter | Modelle | Eingabe / Ausgabe |
|----------|---------|----------------|
| Google | Gemini 2.5 | 0,15 $ / 0,60 $ |
| Deepseek | V3, R1 | 0,75 $ / 1,00 $ |
| xAI | Grok 4, Grok 3 | 5,00 $ / 25,00 $ |
| Groq | Llama 4 Scout | 0,40 $ / 0,60 $ |
| Cerebras | Llama 3.3 70B | 0,94 $ / 0,94 $ |
| Ollama | Lokale Modelle | Kostenlos |
*Bezahlen Sie Anbieter direkt ohne Aufschlag*
</Tab>
</Tabs>
<Callout type="warning">
Die angezeigten Preise spiegeln die Tarife vom 10. September 2025 wider. Überprüfen Sie die Anbieterdokumentation für aktuelle Preise.
</Callout>
## Kostenoptimierungsstrategien
<Accordions>
<Accordion title="Modellauswahl">
Wählen Sie Modelle basierend auf der Komplexität der Aufgabe. Einfache Aufgaben können GPT-4.1-nano ($0,10/$0,40) verwenden, während komplexes Denken möglicherweise o1 oder Claude Opus erfordert.
</Accordion>
<Accordion title="Prompt-Engineering">
Gut strukturierte, präzise Prompts reduzieren den Token-Verbrauch ohne Qualitätseinbußen.
</Accordion>
<Accordion title="Lokale Modelle">
Verwenden Sie Ollama für unkritische Aufgaben, um API-Kosten vollständig zu eliminieren.
</Accordion>
<Accordion title="Caching und Wiederverwendung">
Speichern Sie häufig verwendete Ergebnisse in Variablen oder Dateien, um wiederholte KI-Modellaufrufe zu vermeiden.
</Accordion>
<Accordion title="Batch-Verarbeitung">
Verarbeiten Sie mehrere Elemente in einer einzigen KI-Anfrage anstatt einzelne Aufrufe zu tätigen.
</Accordion>
</Accordions>
## Nutzungsüberwachung
Überwachen Sie Ihre Nutzung und Abrechnung unter Einstellungen → Abonnement:
- **Aktuelle Nutzung**: Echtzeit-Nutzung und Kosten für den aktuellen Zeitraum
- **Nutzungslimits**: Plangrenzen mit visuellen Fortschrittsanzeigen
- **Abrechnungsdetails**: Prognostizierte Gebühren und Mindestverpflichtungen
- **Planverwaltung**: Upgrade-Optionen und Abrechnungsverlauf
### Programmatische Nutzungsverfolgung
Sie können Ihre aktuelle Nutzung und Limits programmatisch über die API abfragen:
**Endpunkt:**
```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, "limit": 10, "remaining": 10, "resetAt": "2025-09-08T22:51:55.999Z" },
"async": { "isLimited": false, "limit": 50, "remaining": 50, "resetAt": "2025-09-08T22:51:56.155Z" },
"authType": "api"
},
"usage": {
"currentPeriodCost": 12.34,
"limit": 100,
"plan": "pro"
}
}
```
**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 aktive Plan mit der höchsten Priorität, der mit Ihrem Benutzer verknüpft ist
## Planlimits
Verschiedene Abonnementpläne haben unterschiedliche Nutzungslimits:
| Plan | Monatliches Nutzungslimit | Ratengrenze (pro Minute) |
|------|-------------------|-------------------------|
| **Free** | $10 | 5 sync, 10 async |
| **Pro** | $100 | 10 sync, 50 async |
| **Team** | $500 (gepoolt) | 50 sync, 100 async |
| **Enterprise** | Individuell | Individuell |
## Best Practices für Kostenmanagement
1. **Regelmäßig überwachen**: Prüfen Sie Ihr Nutzungs-Dashboard häufig, um Überraschungen zu vermeiden
2. **Budgets festlegen**: Nutzen Sie Planlimits als Leitplanken für Ihre Ausgaben
3. **Workflows optimieren**: Überprüfen Sie kostenintensive Ausführungen und optimieren Sie Prompts oder Modellauswahl
4. **Passende Modelle verwenden**: Stimmen Sie die Modellkomplexität auf die Aufgabenanforderungen ab
5. **Ähnliche Aufgaben bündeln**: Kombinieren Sie wenn möglich mehrere Anfragen, um den Overhead zu reduzieren
## Nächste Schritte
- Überprüfen Sie Ihre aktuelle Nutzung unter [Einstellungen → Abonnement](https://sim.ai/settings/subscription)
- Erfahren Sie mehr über [Logging](/execution/logging), um Ausführungsdetails zu verfolgen
- Erkunden Sie die [Externe API](/execution/api) für programmatische Kostenüberwachung
- Sehen Sie sich [Workflow-Optimierungstechniken](/blocks) an, um Kosten zu reduzieren

View File

@@ -0,0 +1,153 @@
---
title: Ausführung
---
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
## Ausführungsauslöser
Workflows können über mehrere Kanäle ausgeführt werden:
- **Manuell**: Testen und debuggen direkt im Editor
- **Als API bereitstellen**: Einen HTTP-Endpunkt erstellen, der mit API-Schlüsseln gesichert ist
- **Als Chat bereitstellen**: Eine Konversationsschnittstelle auf einer benutzerdefinierten Subdomain erstellen
- **Webhooks**: Auf externe Ereignisse von Drittanbieterdiensten reagieren
- **Geplant**: Nach einem wiederkehrenden Zeitplan mit Cron-Ausdrücken ausführen
### Als API bereitstellen
Wenn Sie einen Workflow als API bereitstellen, macht Sim Folgendes:
- Erstellt einen eindeutigen HTTP-Endpunkt: `https://sim.ai/api/workflows/{workflowId}/execute`
- Generiert einen API-Schlüssel zur Authentifizierung
- Akzeptiert POST-Anfragen mit JSON-Payloads
- Gibt Workflow-Ausführungsergebnisse als JSON zurück
Beispiel für einen API-Aufruf:
```bash
curl -X POST https://sim.ai/api/workflows/your-workflow-id/execute \
-H "X-API-Key: your-api-key" \
-H "Content-Type: application/json" \
-d '{"input": "your data here"}'
```
### Als Chat bereitstellen
Die Chat-Bereitstellung erstellt eine Konversationsschnittstelle für Ihren Workflow:
- Gehostet auf einer benutzerdefinierten Subdomain: `https://your-name.sim.ai`
- Optionale Authentifizierung (öffentlich, passwortgeschützt oder E-Mail-basiert)
- Anpassbare Benutzeroberfläche mit Ihrem Branding
- Streaming-Antworten für Echtzeit-Interaktion
- Perfekt für KI-Assistenten, Support-Bots oder interaktive Tools
Jede Bereitstellungsmethode übergibt Daten an den Starter-Block Ihres Workflows und beginnt so den Ausführungsfluss.
## 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 Trigger die aktualisierte Version verwendet.
<div className='flex justify-center my-6'>
<Image
src='/static/execution/deployment-versions-light.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—inspiziere 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 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
### Leistung optimieren
- Minimiere externe API-Aufrufe wo möglich
- Nutze parallele Ausführung für unabhängige Operationen
- Cache Ergebnisse mit Memory-Blöcken, wenn angemessen
### Ausführungen überwachen
- Ü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.

View File

@@ -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 [Webhook-Benachrichtigungen](/execution/api#webhook-subscriptions) für Echtzeit-Warnungen ein

View File

@@ -0,0 +1,193 @@
---
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'
Dieses Tutorial führt dich durch den Aufbau deines ersten KI-Workflows in Sim. Wir erstellen einen Personen-Recherche-Agenten, der Informationen über Personen mithilfe modernster LLM-Suchwerkzeuge finden kann.
<Callout type="info">
Dieses Tutorial dauert etwa 10 Minuten und behandelt die wesentlichen Konzepte zum Erstellen von Workflows in Sim.
</Callout>
## Was wir erstellen
Einen Personen-Recherche-Agenten, der:
1. Den Namen einer Person über eine Chat-Schnittstelle empfängt
2. Einen KI-Agenten mit erweiterten Suchfähigkeiten nutzt
3. Das Web mithilfe modernster LLM-Suchwerkzeuge (Exa und Linkup) durchsucht
4. Strukturierte Informationen mithilfe eines Antwortformats extrahiert
5. Umfassende Daten über die Person 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 KI-Agenten hinzufügen">
Öffne Sim und klicke im Dashboard auf "Neuer Workflow". Benenne ihn "Erste Schritte".
Wenn du einen neuen Workflow erstellst, enthält er automatisch einen **Start-Block** - dies ist der Einstiegspunkt, der Eingaben von Benutzern empfängt. Für dieses Beispiel werden wir den Workflow über den Chat auslösen, daher müssen wir am Start-Block nichts konfigurieren.
Ziehe nun einen **Agenten-Block** aus dem Blockbereich auf der linken Seite auf die Arbeitsfläche.
Konfiguriere den Agenten-Block:
- **Modell**: Wähle "OpenAI GPT-4o"
- **System-Prompt**: "Du bist ein Personen-Recherche-Agent. Wenn dir ein Personenname gegeben wird, nutze deine verfügbaren Suchwerkzeuge, um umfassende Informationen über diese Person 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 (dies verbindet `<start.input>` mit dem Benutzer-Prompt)
<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="Werkzeuge zum Agenten hinzufügen">
Verbessern wir unseren Agenten mit Werkzeugen für bessere Fähigkeiten. Klicke auf den Agenten-Block, um ihn auszuwählen.
Im Bereich **Werkzeuge**:
- Klicke auf **Werkzeug hinzufügen**
- Wähle **Exa** aus den verfügbaren Werkzeugen
- Wähle **Linkup** aus den verfügbaren Werkzeugen
- Füge deine API-Schlüssel für beide Werkzeuge hinzu (dies ermöglicht dem Agenten, das Web zu durchsuchen und auf zusätzliche Informationen zuzugreifen)
<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="Den grundlegenden Workflow testen">
Jetzt testen wir unseren Workflow. Gehe zum **Chat-Panel** auf der rechten Seite des Bildschirms.
Im Chat-Panel:
- Klicke auf das Dropdown-Menü und wähle `agent1.content` (dies zeigt uns die Ausgabe unseres Agenten)
- Gib eine Testnachricht ein, wie: "John ist ein Softwareentwickler aus San Francisco, der Informatik an der Stanford University studiert hat."
- Klicke auf "Senden", um den Workflow auszuführen
Du solltest die Antwort des Agenten sehen, der die in deinem Text beschriebene Person analysiert.
<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 hinzufügen">
Jetzt lassen wir unseren Agenten strukturierte Daten zurückgeben. Klicke auf den Agenten-Block, um ihn auszuwählen.
Im Bereich **Antwortformat**:
- Klicke auf das **Zauberstab-Symbol** (✨) neben dem Schema-Feld
- Gib in der erscheinenden Aufforderung ein: "Erstelle ein Schema namens Person, das Standort, Beruf und Bildung enthält"
- Die KI generiert automatisch ein JSON-Schema für dich
<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="Die strukturierte Ausgabe testen">
Gehe zurück zum **Chat-Panel**.
Da wir ein Antwortformat hinzugefügt haben, sind jetzt neue Ausgabeoptionen verfügbar:
- Klicke auf das Dropdown-Menü und wähle die neue Option für strukturierte Ausgabe (das Schema, das wir gerade erstellt haben)
- Gib eine neue Testnachricht ein, wie: "Sarah ist eine Marketing-Managerin aus New York, die einen MBA von der Harvard Business School hat."
- Klicke auf "Senden", um den Workflow erneut auszuführen
Du solltest jetzt eine strukturierte JSON-Ausgabe sehen, bei der die Informationen der Person in die Felder Standort, Beruf und Bildung gegliedert 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 gerade erstellt hast
Herzlichen Glückwunsch! Du hast deinen ersten KI-Workflow erstellt, der:
- ✅ Texteingaben über eine Chat-Schnittstelle empfängt
- ✅ KI nutzt, um Informationen aus unstrukturiertem Text zu extrahieren
- ✅ Externe Tools (Exa und Linkup) für erweiterte Funktionen integriert
- ✅ Strukturierte JSON-Daten mit KI-generierten Schemas zurückgibt
- ✅ Workflow-Tests und Iterationen demonstriert
- ✅ Die Leistungsfähigkeit des visuellen Workflow-Aufbaus 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**: Variablen fließen zwischen Blöcken durch das Ziehen von Verbindungen
**Chat-Schnittstelle**: Teste Workflows in Echtzeit mit dem Chat-Panel mit verschiedenen Ausgabeoptionen
**Tool-Integration**: Erweitere die Fähigkeiten des Agenten durch Hinzufügen externer Tools wie Exa und Linkup
**Variablenreferenzen**: Greife auf Block-Ausgaben mit der `<blockName.output>` Syntax zu
**Strukturierte Ausgabe**: Verwende JSON-Schemas, um konsistente, strukturierte Daten von der KI zu erhalten
**KI-generierte Schemas**: Nutze den Zauberstab (✨), um Schemas mit natürlicher Sprache zu generieren
**Iterative Entwicklung**: Teste, modifiziere und teste Workflows einfach erneut
## Nächste Schritte
<Cards>
<Card title="Weitere Blöcke hinzufügen" href="/blocks">
Erfahre mehr über API-, Funktions- und Bedingungsblöcke
</Card>
<Card title="Tools verwenden" href="/tools">
Integration mit externen Diensten wie Gmail, Slack und Notion
</Card>
<Card title="Benutzerdefinierte Logik hinzufügen" href="/blocks/function">
Verwende Funktionsblöcke für benutzerdefinierte Datenverarbeitung
</Card>
<Card title="Deinen Workflow bereitstellen" href="/execution">
Mache deinen Workflow über REST API zugänglich
</Card>
</Cards>
## Brauchst du Hilfe?
**Bei einem Schritt hängengeblieben?** Schau in unserer [Blocks-Dokumentation](/blocks) nach detaillierten Erklärungen zu jeder Komponente.
**Möchten Sie mehr Beispiele sehen?** Durchsuchen Sie unsere [Tools-Dokumentation](/tools), um zu sehen, welche Integrationen verfügbar sind.
**Bereit für die Bereitstellung?** Erfahren Sie mehr über [Ausführung und Bereitstellung](/execution), um Ihre Workflows zu aktivieren.

View File

@@ -0,0 +1,60 @@
---
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">
Richten Sie Workspace-Rollen und Berechtigungen ein
</Card>
<Card title="YAML-Konfiguration" href="/yaml">
Definieren Sie Workflows als Code
</Card>
<Card title="MCP-Integration" href="/mcp">
Verbinden Sie externe Dienste mit dem Model Context Protocol
</Card>
<Card title="SDKs" href="/sdks">
Integrieren Sie Sim in Ihre Anwendungen
</Card>
</Cards>

View File

@@ -0,0 +1,85 @@
---
title: Einführung
---
import { Card, Cards } from 'fumadocs-ui/components/card'
import { Callout } from 'fumadocs-ui/components/callout'
import { Image } from '@/components/ui/image'
Sim ist ein visueller Workflow-Builder für KI-Anwendungen, mit dem Sie KI-Agenten-Workflows visuell erstellen können. Erstellen Sie leistungsstarke KI-Agenten, Automatisierungs-Workflows und Datenverarbeitungs-Pipelines, indem Sie Blöcke auf einer Leinwand verbinden ganz ohne Programmierung.
<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**
Erstellen Sie intelligente Agenten, die im Web suchen, auf Ihren Kalender zugreifen, E-Mails senden und mit Ihren Geschäftstools interagieren können.
**Geschäftsprozessautomatisierung**
Automatisieren Sie wiederkehrende Aufgaben wie Dateneingabe, Berichtserstellung, Kundenservice-Antworten und Content-Erstellung.
**Datenverarbeitung & -analyse**
Gewinnen Sie Erkenntnisse aus Dokumenten, analysieren Sie Datensätze, erstellen Sie Berichte und synchronisieren Sie Daten zwischen Systemen.
**API-Integrations-Workflows**
Verbinden Sie mehrere Dienste zu einheitlichen Endpunkten, orchestrieren Sie komplexe Geschäftslogik und verwalten Sie ereignisgesteuerte Automatisierung.
## Wie es funktioniert
**Visuelle Leinwand**
Ziehen Sie Blöcke per Drag-and-drop, um Workflows zu erstellen. Verbinden Sie KI-Modelle, Datenbanken, APIs und Geschäftstools mit einfachen Point-and-Click-Verbindungen.
**Intelligente Blöcke**
Wählen Sie aus Verarbeitungsblöcken (KI-Agenten, APIs, Funktionen), Logikblöcken (Bedingungen, Schleifen, Router) und Ausgabeblöcken (Antworten, Evaluatoren).
**Mehrere Auslöser**
Starten Sie Workflows über Chat-Schnittstelle, REST API, Webhooks, geplante Jobs oder externe Ereignisse von Diensten wie Slack und GitHub.
**Team-Zusammenarbeit**
Arbeiten Sie gleichzeitig mit Teammitgliedern am selben Workflow mit Echtzeit-Bearbeitung und Berechtigungsverwaltung.
## Integrierte Anbindungen
Sim verbindet sich von Haus aus mit über 80 Diensten:
- **KI-Modelle**: OpenAI, Anthropic, Google, Groq, Cerebras, lokale Ollama-Modelle
- **Kommunikation**: Gmail, Slack, Teams, Telegram, WhatsApp
- **Produktivität**: Notion, Google Sheets, Airtable, Monday.com
- **Entwicklung**: GitHub, Jira, Linear, Browser-Automatisierung
- **Suche & Web**: Google Search, Perplexity, Firecrawl, Exa AI
- **Datenbanken**: PostgreSQL, MySQL, Supabase, Pinecone, Qdrant
Benötigen Sie etwas Maßgeschneidertes? Nutzen Sie unsere [MCP-Integration](/mcp), um jeden externen Dienst anzubinden.
## Bereitstellungsoptionen
**Cloud-gehostet**: Starten Sie sofort bei [sim.ai](https://sim.ai) mit verwalteter Infrastruktur, automatischer Skalierung und integriertem Monitoring.
**Selbst-gehostet**: Stellen Sie die Anwendung auf Ihrer eigenen Infrastruktur mit Docker bereit, mit Unterstützung für lokale KI-Modelle über Ollama für vollständige Datenprivatsphäre.
## 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-Bausteine" href="/blocks">
Erfahren Sie mehr über die Bausteine
</Card>
<Card title="Tools & Integrationen" href="/tools">
Entdecken Sie über 60 integrierte Schnittstellen
</Card>
<Card title="Team-Berechtigungen" href="/permissions/roles-and-permissions">
Richten Sie Workspace-Rollen und Berechtigungen ein
</Card>
</Cards>

View File

@@ -0,0 +1,113 @@
---
title: Wissensdatenbank
---
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
- **Standardgröße der Chunks**: 1.024 Zeichen
- **Konfigurierbarer Bereich**: 100-4.000 Zeichen pro Chunk
- **Intelligente Überlappung**: Standardmäßig 200 Zeichen zur Kontexterhaltung
- **Hierarchische Aufteilung**: Respektiert Dokumentstruktur (Abschnitte, Absätze, Sätze)
### Bearbeitungsfunktionen
- **Chunk-Inhalt bearbeiten**: Textinhalt einzelner Chunks ändern
- **Chunk-Grenzen anpassen**: Chunks bei Bedarf zusammenführen oder teilen
- **Metadaten hinzufügen**: Chunks mit zusätzlichem Kontext anreichern
- **Massenoperationen**: Effiziente Verwaltung mehrerer Chunks
## Erweiterte PDF-Verarbeitung
Für PDF-Dokumente bietet Sim erweiterte Verarbeitungsfunktionen:
### OCR-Unterstützung
Bei Konfiguration mit Azure oder [Mistral OCR](https://docs.mistral.ai/ocr/):
- **Verarbeitung gescannter Dokumente**: Text aus bildbasierten PDFs extrahieren
- **Umgang mit gemischten Inhalten**: Verarbeitung von PDFs mit Text und Bildern
- **Hohe Genauigkeit**: Fortschrittliche KI-Modelle gewährleisten präzise Textextraktion
## Verwendung des Wissensblocks in Workflows
Sobald Ihre Dokumente verarbeitet sind, können Sie sie in Ihren KI-Workflows über den Wissensblock nutzen. 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 Wissensblocks in Workflows" width={800} height={500} />
### Funktionen des Wissensblocks
- **Semantische Suche**: Relevante Inhalte mit natürlichsprachlichen Abfragen finden
- **Kontextintegration**: Automatisches Einbinden relevanter Chunks in Agenten-Prompts
- **Dynamischer Abruf**: Suche erfolgt in Echtzeit während der Workflow-Ausführung
- **Relevanzbewertung**: Ergebnisse nach semantischer Ähnlichkeit geordnet
### Integrationsoptionen
- **System-Prompts**: Kontext für Ihre KI-Agenten bereitstellen
- **Dynamischer Kontext**: Suche und Einbindung relevanter Informationen während Gesprächen
- **Dokumentübergreifende Suche**: Abfrage über Ihre gesamte Wissensdatenbank
- **Gefilterte Suche**: Kombination mit Tags für präzisen Inhaltsabruf
## Vektorsuchtechnologie
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
- **Konzeptbasierte Abfrage**: 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 natürlicher Sprache
- **Ähnlichkeitssuche**: Finden Sie konzeptionell ähnliche Inhalte
- **Hybridsuche**: Kombiniert Vektor- und traditionelle Schlüsselwortsuche
- **Konfigurierbare Ergebnisse**: Steuern Sie die Anzahl und den Relevanz-Schwellenwert der Ergebnisse
## Dokumentenverwaltung
### Organisationsfunktionen
- **Massenupload**: Laden Sie mehrere Dateien gleichzeitig über die asynchrone API hoch
- **Verarbeitungsstatus**: Echtzeit-Updates zum Dokumentenverarbeitungsprozess
- **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 eine isolierte Dokumentenverarbeitung
- **Datenaufbewahrung**: Konfigurieren Sie Richtlinien zur Dokumentenaufbewahrung
## Erste Schritte
1. **Navigieren Sie zu Ihrer Wissensdatenbank**: Zugriff über Ihre Workspace-Seitenleiste
2. **Dokumente hochladen**: Drag & Drop oder wählen Sie Dateien zum Hochladen aus
3. **Verarbeitung überwachen**: Beobachten Sie, wie Dokumente verarbeitet und in Chunks aufgeteilt werden
4. **Chunks erkunden**: Sehen und bearbeiten Sie die verarbeiteten Inhalte
5. **Zu Workflows hinzufügen**: Verwenden Sie den Wissensblock, um ihn in Ihre KI-Agenten zu integrieren
Die Wissensdatenbank verwandelt Ihre statischen Dokumente in eine intelligente, durchsuchbare Ressource, die Ihre KI-Workflows für fundiertere und kontextbezogenere Antworten nutzen können.

View File

@@ -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.

View File

@@ -0,0 +1,140 @@
---
title: MCP (Model Context Protocol)
---
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
## Hinzufügen von MCP-Servern
MCP-Server stellen Sammlungen von Tools bereit, die Ihre Agenten nutzen können. Sie können MCP-Server auf zwei Arten hinzufügen:
### Über die Workspace-Einstellungen
Konfigurieren Sie MCP-Server auf Workspace-Ebene, damit alle Teammitglieder sie nutzen können:
<div className="mx-auto w-full overflow-hidden rounded-lg">
<Video src="mcp-1.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">
MCP-Server, die in den Workspace-Einstellungen konfiguriert sind, stehen allen Workspace-Mitgliedern entsprechend ihrer Berechtigungsstufen zur Verfügung.
</Callout>
### Über die Agenten-Konfiguration
Sie können MCP-Server auch direkt innerhalb eines Agenten-Blocks hinzufügen und konfigurieren:
<div className="mx-auto w-full overflow-hidden rounded-lg">
<Video src="mcp-2.mp4" width={700} height={450} />
</div>
Dies ist nützlich, wenn Sie schnell eine bestimmte Integration für einen speziellen Workflow einrichten müssen.
## Verwendung von MCP-Tools in Agenten
Sobald MCP-Server konfiguriert sind, werden ihre Tools innerhalb Ihrer Agentenblöcke verfügbar:
<div className="mx-auto w-full overflow-hidden rounded-lg">
<Video src="mcp-3.mp4" width={700} height={450} />
</div>
1. Öffnen Sie einen **Agenten**-Block
2. Im Abschnitt **Tools** sehen Sie verfügbare 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 genauere Kontrolle können Sie den dedizierten MCP-Tool-Block verwenden, um bestimmte MCP-Tools auszuführen:
<div className="mx-auto w-full overflow-hidden rounded-lg">
<Video src="mcp-4.mp4" width={700} height={450} />
</div>
Der MCP-Tool-Block ermöglicht es 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 einen Agenten mit MCP-Tools, wenn:**
- Sie möchten, dass die KI entscheidet, welche Tools zu verwenden sind
- Sie komplexe Überlegungen benötigen, wann und wie Tools eingesetzt werden sollen
- 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
MCP-Funktionalität erfordert spezifische Workspace-Berechtigungen:
| Aktion | Erforderliche Berechtigung |
|--------|-------------------|
| MCP-Server in den Einstellungen konfigurieren | **Admin** |
| MCP-Tools in Agenten verwenden | **Schreiben** oder **Admin** |
| Verfügbare MCP-Tools anzeigen | **Lesen**, **Schreiben** oder **Admin** |
| MCP-Tool-Blöcke ausführen | **Schreiben** oder **Admin** |
## Häufige Anwendungsfälle
### Datenbankintegration
Verbinden Sie sich mit Datenbanken, um Daten innerhalb Ihrer 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.
### Benutzerdefinierte Geschäftslogik
Führen Sie benutzerdefinierte Skripte oder Tools aus, die auf die Bedürfnisse Ihrer Organisation zugeschnitten sind.
### Echtzeit-Datenzugriff
Rufen Sie während der Workflow-Ausführung Live-Daten von externen Systemen ab.
## Sicherheitsüberlegungen
- MCP-Server laufen mit den Berechtigungen des Benutzers, der sie konfiguriert hat
- Überprüfen Sie immer die Quellen von MCP-Servern vor der Installation
- Verwenden Sie Umgebungsvariablen für sensible Konfigurationsdaten
- Überprüfen Sie die Fähigkeiten des MCP-Servers, bevor Sie Agenten Zugriff gewähren
## Fehlerbehebung
### MCP-Server erscheint nicht
- Überprüfen Sie, ob die Serverkonfiguration korrekt ist
- Prüfen Sie, ob Sie die erforderlichen Berechtigungen haben
- Stellen Sie sicher, dass der MCP-Server läuft und zugänglich ist
### Fehler bei der Tool-Ausführung
- Ü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 für Ihren Workspace richtig konfiguriert ist

View File

@@ -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

View File

@@ -0,0 +1,412 @@
---
title: Python SDK
---
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 mithilfe des offiziellen Python SDKs auszuführen.
<Callout type="info">
Das Python SDK unterstützt Python 3.8+ und bietet synchrone Workflow-Ausführung. Alle Workflow-Ausführungen sind derzeit synchron.
</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)
**Rückgabewert:** `WorkflowExecutionResult`
##### 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 für die 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`
##### execute_workflow_sync()
<Callout type="info">
Derzeit ist diese Methode identisch mit `execute_workflow()`, da alle Ausführungen synchron sind. Diese Methode wird für zukünftige Kompatibilität bereitgestellt, wenn asynchrone Ausführung hinzugefügt wird.
</Callout>
Führt einen Workflow aus (derzeit synchron, identisch mit `execute_workflow()`).
```python
result = client.execute_workflow_sync(
"workflow-id",
input_data={"data": "some input"},
timeout=60.0
)
```
**Parameter:**
- `workflow_id` (str): Die ID des auszuführenden Workflows
- `input_data` (dict, optional): Eingabedaten, die an den Workflow übergeben werden
- `timeout` (float): Timeout für die initiale Anfrage in Sekunden
**Rückgabe:** `WorkflowExecutionResult`
##### 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
```
### WorkflowStatus
```python
@dataclass
class WorkflowStatus:
is_deployed: bool
deployed_at: Optional[str] = None
is_published: bool = False
needs_redeployment: bool = False
```
### 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
```
## 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 für die 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("SIMSTUDIO_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("SIMSTUDIO_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 Kontextmanagers
Verwenden Sie den Client als Kontextmanager, 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("SIMSTUDIO_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("SIMSTUDIO_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'}")
```
### 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("SIMSTUDIO_API_KEY"),
base_url=os.getenv("SIMSTUDIO_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("SIMSTUDIO_API_KEY")
if not api_key:
raise ValueError("SIMSTUDIO_API_KEY environment variable is required")
client = SimStudioClient(
api_key=api_key,
base_url=os.getenv("SIMSTUDIO_BASE_URL", "https://sim.ai")
)
```
</Tab>
</Tabs>
## API-Schlüssel erhalten
<Steps>
<Step title="Bei Sim anmelden">
Navigieren Sie zu [Sim](https://sim.ai) und melden Sie sich bei Ihrem Konto an.
</Step>
<Step title="Ihren Workflow öffnen">
Navigieren Sie zu dem Workflow, den Sie programmatisch ausführen möchten.
</Step>
<Step title="Ihren Workflow bereitstellen">
Klicken Sie auf "Deploy", um Ihren Workflow bereitzustellen, falls dies noch nicht geschehen ist.
</Step>
<Step title="API-Schlüssel erstellen oder auswählen">
Wählen Sie während des Bereitstellungsprozesses einen API-Schlüssel aus oder erstellen Sie einen neuen.
</Step>
<Step title="API-Schlüssel kopieren">
Kopieren Sie den API-Schlüssel zur Verwendung in Ihrer Python-Anwendung.
</Step>
</Steps>
<Callout type="warning">
Halte deinen API-Schlüssel sicher und committe ihn niemals in die Versionskontrolle. Verwende Umgebungsvariablen oder sicheres Konfigurationsmanagement.
</Callout>
## Anforderungen
- Python 3.8+
- requests >= 2.25.0
## Lizenz
Apache-2.0

View File

@@ -0,0 +1,607 @@
---
title: TypeScript/JavaScript SDK
---
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 TypeScript/JavaScript SDK für Sim bietet vollständige Typsicherheit und unterstützt sowohl Node.js- als auch Browser-Umgebungen, sodass Sie Workflows programmatisch aus Ihren Node.js-Anwendungen, Webanwendungen und anderen JavaScript-Umgebungen ausführen können. Alle Workflow-Ausführungen sind derzeit synchron.
<Callout type="info">
Das TypeScript SDK bietet vollständige Typsicherheit und unterstützt sowohl Node.js- als auch Browser-Umgebungen. Alle Workflow-Ausführungen sind derzeit synchron.
</Callout>
## Installation
Installieren Sie das SDK mit Ihrem bevorzugten Paketmanager:
<Tabs items={['npm', 'yarn', 'bun']}>
<Tab value="npm">
```bash
npm install simstudio-ts-sdk
```
</Tab>
<Tab value="yarn">
```bash
yarn add simstudio-ts-sdk
```
</Tab>
<Tab value="bun">
```bash
bun add simstudio-ts-sdk
```
</Tab>
</Tabs>
## Schnellstart
Hier ist ein einfaches Beispiel für den Einstieg:
```typescript
import { SimStudioClient } from 'simstudio-ts-sdk';
// Initialize the client
const client = new SimStudioClient({
apiKey: 'your-api-key-here',
baseUrl: 'https://sim.ai' // optional, defaults to https://sim.ai
});
// Execute a workflow
try {
const result = await client.executeWorkflow('workflow-id');
console.log('Workflow executed successfully:', result);
} catch (error) {
console.error('Workflow execution failed:', error);
}
```
## API-Referenz
### SimStudioClient
#### Konstruktor
```typescript
new SimStudioClient(config: SimStudioConfig)
```
**Konfiguration:**
- `config.apiKey` (string): Ihr Sim API-Schlüssel
- `config.baseUrl` (string, optional): Basis-URL für die Sim API (standardmäßig `https://sim.ai`)
#### Methoden
##### executeWorkflow()
Führen Sie einen Workflow mit optionalen Eingabedaten aus.
```typescript
const result = await client.executeWorkflow('workflow-id', {
input: { message: 'Hello, world!' },
timeout: 30000 // 30 seconds
});
```
**Parameter:**
- `workflowId` (string): Die ID des auszuführenden Workflows
- `options` (ExecutionOptions, optional):
- `input` (any): Eingabedaten, die an den Workflow übergeben werden
- `timeout` (number): Timeout in Millisekunden (Standard: 30000)
**Rückgabewert:** `Promise<WorkflowExecutionResult>`
##### getWorkflowStatus()
Den Status eines Workflows abrufen (Bereitstellungsstatus usw.).
```typescript
const status = await client.getWorkflowStatus('workflow-id');
console.log('Is deployed:', status.isDeployed);
```
**Parameter:**
- `workflowId` (string): Die ID des Workflows
**Rückgabewert:** `Promise<WorkflowStatus>`
##### validateWorkflow()
Überprüfen, ob ein Workflow für die Ausführung bereit ist.
```typescript
const isReady = await client.validateWorkflow('workflow-id');
if (isReady) {
// Workflow is deployed and ready
}
```
**Parameter:**
- `workflowId` (string): Die ID des Workflows
**Rückgabewert:** `Promise<boolean>`
##### executeWorkflowSync()
<Callout type="info">
Derzeit ist diese Methode identisch mit `executeWorkflow()`, da alle Ausführungen synchron sind. Diese Methode wird für zukünftige Kompatibilität bereitgestellt, wenn asynchrone Ausführung hinzugefügt wird.
</Callout>
Einen Workflow ausführen (derzeit synchron, identisch mit `executeWorkflow()`).
```typescript
const result = await client.executeWorkflowSync('workflow-id', {
input: { data: 'some input' },
timeout: 60000
});
```
**Parameter:**
- `workflowId` (string): Die ID des auszuführenden Workflows
- `options` (ExecutionOptions, optional):
- `input` (any): Eingabedaten, die an den Workflow übergeben werden
- `timeout` (number): Timeout für die initiale Anfrage in Millisekunden
**Rückgabewert:** `Promise<WorkflowExecutionResult>`
##### setApiKey()
Den API-Schlüssel aktualisieren.
```typescript
client.setApiKey('new-api-key');
```
##### setBaseUrl()
Die Basis-URL aktualisieren.
```typescript
client.setBaseUrl('https://my-custom-domain.com');
```
## Typen
### WorkflowExecutionResult
```typescript
interface WorkflowExecutionResult {
success: boolean;
output?: any;
error?: string;
logs?: any[];
metadata?: {
duration?: number;
executionId?: string;
[key: string]: any;
};
traceSpans?: any[];
totalDuration?: number;
}
```
### WorkflowStatus
```typescript
interface WorkflowStatus {
isDeployed: boolean;
deployedAt?: string;
isPublished: boolean;
needsRedeployment: boolean;
}
```
### SimStudioError
```typescript
class SimStudioError extends Error {
code?: string;
status?: number;
}
```
## 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 für die 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>
```typescript
import { SimStudioClient } from 'simstudio-ts-sdk';
const client = new SimStudioClient({
apiKey: process.env.SIMSTUDIO_API_KEY!
});
async function runWorkflow() {
try {
// Check if workflow is ready
const isReady = await client.validateWorkflow('my-workflow-id');
if (!isReady) {
throw new Error('Workflow is not deployed or ready');
}
// Execute the workflow
const result = await client.executeWorkflow('my-workflow-id', {
input: {
message: 'Process this data',
userId: '12345'
}
});
if (result.success) {
console.log('Output:', result.output);
console.log('Duration:', result.metadata?.duration);
} else {
console.error('Workflow failed:', result.error);
}
} catch (error) {
console.error('Error:', error);
}
}
runWorkflow();
```
### Fehlerbehandlung
Behandeln Sie verschiedene Fehlertypen, die während der Workflow-Ausführung auftreten können:
```typescript
import { SimStudioClient, SimStudioError } from 'simstudio-ts-sdk';
const client = new SimStudioClient({
apiKey: process.env.SIMSTUDIO_API_KEY!
});
async function executeWithErrorHandling() {
try {
const result = await client.executeWorkflow('workflow-id');
return result;
} catch (error) {
if (error instanceof SimStudioError) {
switch (error.code) {
case 'UNAUTHORIZED':
console.error('Invalid API key');
break;
case 'TIMEOUT':
console.error('Workflow execution timed out');
break;
case 'USAGE_LIMIT_EXCEEDED':
console.error('Usage limit exceeded');
break;
case 'INVALID_JSON':
console.error('Invalid JSON in request body');
break;
default:
console.error('Workflow error:', error.message);
}
} else {
console.error('Unexpected error:', error);
}
throw error;
}
}
```
### Umgebungskonfiguration
Konfigurieren Sie den Client mit Umgebungsvariablen:
<Tabs items={['Development', 'Production']}>
<Tab value="Development">
```typescript
import { SimStudioClient } from 'simstudio-ts-sdk';
// Development configuration
const apiKey = process.env.SIMSTUDIO_API_KEY;
if (!apiKey) {
throw new Error('SIMSTUDIO_API_KEY environment variable is required');
}
const client = new SimStudioClient({
apiKey,
baseUrl: process.env.SIMSTUDIO_BASE_URL // optional
});
```
</Tab>
<Tab value="Production">
```typescript
import { SimStudioClient } from 'simstudio-ts-sdk';
// Production configuration with validation
const apiKey = process.env.SIMSTUDIO_API_KEY;
if (!apiKey) {
throw new Error('SIMSTUDIO_API_KEY environment variable is required');
}
const client = new SimStudioClient({
apiKey,
baseUrl: process.env.SIMSTUDIO_BASE_URL || 'https://sim.ai'
});
```
</Tab>
</Tabs>
### Node.js Express-Integration
Integration mit einem Express.js-Server:
```typescript
import express from 'express';
import { SimStudioClient } from 'simstudio-ts-sdk';
const app = express();
const client = new SimStudioClient({
apiKey: process.env.SIMSTUDIO_API_KEY!
});
app.use(express.json());
app.post('/execute-workflow', async (req, res) => {
try {
const { workflowId, input } = req.body;
const result = await client.executeWorkflow(workflowId, {
input,
timeout: 60000
});
res.json({
success: true,
data: result
});
} catch (error) {
console.error('Workflow execution error:', error);
res.status(500).json({
success: false,
error: error instanceof Error ? error.message : 'Unknown error'
});
}
});
app.listen(3000, () => {
console.log('Server running on port 3000');
});
```
### Next.js API-Route
Verwendung mit Next.js API-Routen:
```typescript
// pages/api/workflow.ts or app/api/workflow/route.ts
import { NextApiRequest, NextApiResponse } from 'next';
import { SimStudioClient } from 'simstudio-ts-sdk';
const client = new SimStudioClient({
apiKey: process.env.SIMSTUDIO_API_KEY!
});
export default async function handler(
req: NextApiRequest,
res: NextApiResponse
) {
if (req.method !== 'POST') {
return res.status(405).json({ error: 'Method not allowed' });
}
try {
const { workflowId, input } = req.body;
const result = await client.executeWorkflow(workflowId, {
input,
timeout: 30000
});
res.status(200).json(result);
} catch (error) {
console.error('Error executing workflow:', error);
res.status(500).json({
error: 'Failed to execute workflow'
});
}
}
```
### Browser-Nutzung
Verwendung im Browser (mit korrekter CORS-Konfiguration):
```typescript
import { SimStudioClient } from 'simstudio-ts-sdk';
// Note: In production, use a proxy server to avoid exposing API keys
const client = new SimStudioClient({
apiKey: 'your-public-api-key', // Use with caution in browser
baseUrl: 'https://sim.ai'
});
async function executeClientSideWorkflow() {
try {
const result = await client.executeWorkflow('workflow-id', {
input: {
userInput: 'Hello from browser'
}
});
console.log('Workflow result:', result);
// Update UI with result
document.getElementById('result')!.textContent =
JSON.stringify(result.output, null, 2);
} catch (error) {
console.error('Error:', error);
}
}
// Attach to button click
document.getElementById('executeBtn')?.addEventListener('click', executeClientSideWorkflow);
```
<Callout type="warning">
Bei der Verwendung des SDK im Browser sollten Sie darauf achten, keine sensiblen API-Schlüssel offenzulegen. Erwägen Sie die Verwendung eines Backend-Proxys oder öffentlicher API-Schlüssel mit eingeschränkten Berechtigungen.
</Callout>
### React Hook Beispiel
Erstellen Sie einen benutzerdefinierten React Hook für die Workflow-Ausführung:
```typescript
import { useState, useCallback } from 'react';
import { SimStudioClient, WorkflowExecutionResult } from 'simstudio-ts-sdk';
const client = new SimStudioClient({
apiKey: process.env.NEXT_PUBLIC_SIMSTUDIO_API_KEY!
});
interface UseWorkflowResult {
result: WorkflowExecutionResult | null;
loading: boolean;
error: Error | null;
executeWorkflow: (workflowId: string, input?: any) => Promise<void>;
}
export function useWorkflow(): UseWorkflowResult {
const [result, setResult] = useState<WorkflowExecutionResult | null>(null);
const [loading, setLoading] = useState(false);
const [error, setError] = useState<Error | null>(null);
const executeWorkflow = useCallback(async (workflowId: string, input?: any) => {
setLoading(true);
setError(null);
setResult(null);
try {
const workflowResult = await client.executeWorkflow(workflowId, {
input,
timeout: 30000
});
setResult(workflowResult);
} catch (err) {
setError(err instanceof Error ? err : new Error('Unknown error'));
} finally {
setLoading(false);
}
}, []);
return {
result,
loading,
error,
executeWorkflow
};
}
// Usage in component
function WorkflowComponent() {
const { result, loading, error, executeWorkflow } = useWorkflow();
const handleExecute = () => {
executeWorkflow('my-workflow-id', {
message: 'Hello from React!'
});
};
return (
<div>
<button onClick={handleExecute} disabled={loading}>
{loading ? 'Executing...' : 'Execute Workflow'}
</button>
{error && <div>Error: {error.message}</div>}
{result && (
<div>
<h3>Result:</h3>
<pre>{JSON.stringify(result, null, 2)}</pre>
</div>
)}
</div>
);
}
```
## Ihren API-Schlüssel erhalten
<Steps>
<Step title="Bei Sim anmelden">
Navigieren Sie zu [Sim](https://sim.ai) und melden Sie sich bei Ihrem Konto an.
</Step>
<Step title="Öffnen Sie Ihren Workflow">
Navigieren Sie zu dem Workflow, den Sie programmatisch ausführen möchten.
</Step>
<Step title="Deployen Sie Ihren Workflow">
Klicken Sie auf "Deploy", um Ihren Workflow zu deployen, falls dies noch nicht geschehen ist.
</Step>
<Step title="Erstellen oder wählen Sie einen API-Schlüssel">
Wählen Sie während des Deployment-Prozesses einen API-Schlüssel aus oder erstellen Sie einen neuen.
</Step>
<Step title="Kopieren Sie den API-Schlüssel">
Kopieren Sie den API-Schlüssel zur Verwendung in Ihrer TypeScript/JavaScript-Anwendung.
</Step>
</Steps>
<Callout type="warning">
Halten Sie Ihren API-Schlüssel sicher und committen Sie ihn niemals in die Versionskontrolle. Verwenden Sie Umgebungsvariablen oder sicheres Konfigurationsmanagement.
</Callout>
## Anforderungen
- Node.js 16+
- TypeScript 5.0+ (für TypeScript-Projekte)
## TypeScript-Unterstützung
Das SDK ist in TypeScript geschrieben und bietet vollständige Typsicherheit:
```typescript
import {
SimStudioClient,
WorkflowExecutionResult,
WorkflowStatus,
SimStudioError
} from 'simstudio-ts-sdk';
// Type-safe client initialization
const client: SimStudioClient = new SimStudioClient({
apiKey: process.env.SIMSTUDIO_API_KEY!
});
// Type-safe workflow execution
const result: WorkflowExecutionResult = await client.executeWorkflow('workflow-id', {
input: {
message: 'Hello, TypeScript!'
}
});
// Type-safe status checking
const status: WorkflowStatus = await client.getWorkflowStatus('workflow-id');
```
## Lizenz
Apache-2.0

View File

@@ -0,0 +1,161 @@
---
title: Airtable
description: Airtable lesen, erstellen und aktualisieren
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="airtable"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
viewBox='0 -20.5 256 256'
version='1.1'
xmlns='http://www.w3.org/2000/svg'
xmlnsXlink='http://www.w3.org/1999/xlink'
preserveAspectRatio='xMidYMid'
>
<g>
<path
d='M114.25873,2.70101695 L18.8604023,42.1756384 C13.5552723,44.3711638 13.6102328,51.9065311 18.9486282,54.0225085 L114.746142,92.0117514 C123.163769,95.3498757 132.537419,95.3498757 140.9536,92.0117514 L236.75256,54.0225085 C242.08951,51.9065311 242.145916,44.3711638 236.83934,42.1756384 L141.442459,2.70101695 C132.738459,-0.900338983 122.961284,-0.900338983 114.25873,2.70101695'
fill='#FFBF00'
/>
<path
d='M136.349071,112.756863 L136.349071,207.659101 C136.349071,212.173089 140.900664,215.263892 145.096461,213.600615 L251.844122,172.166219 C254.281184,171.200072 255.879376,168.845451 255.879376,166.224705 L255.879376,71.3224678 C255.879376,66.8084791 251.327783,63.7176768 247.131986,65.3809537 L140.384325,106.815349 C137.94871,107.781496 136.349071,110.136118 136.349071,112.756863'
fill='#26B5F8'
/>
<path
d='M111.422771,117.65355 L79.742409,132.949912 L76.5257763,134.504714 L9.65047684,166.548104 C5.4112904,168.593211 0.000578531073,165.503855 0.000578531073,160.794612 L0.000578531073,71.7210757 C0.000578531073,70.0173017 0.874160452,68.5463864 2.04568588,67.4384994 C2.53454463,66.9481944 3.08848814,66.5446689 3.66412655,66.2250305 C5.26231864,65.2661153 7.54173107,65.0101153 9.47981017,65.7766689 L110.890522,105.957098 C116.045234,108.002206 116.450206,115.225166 111.422771,117.65355'
fill='#ED3049'
/>
<path
d='M111.422771,117.65355 L79.742409,132.949912 L2.04568588,67.4384994 C2.53454463,66.9481944 3.08848814,66.5446689 3.66412655,66.2250305 C5.26231864,65.2661153 7.54173107,65.0101153 9.47981017,65.7766689 L110.890522,105.957098 C116.045234,108.002206 116.450206,115.225166 111.422771,117.65355'
fillOpacity='0.25'
fill='#000000'
/>
</g>
</svg>`}
/>
{/* 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 |
## Hinweise
- Kategorie: `tools`
- Typ: `airtable`

View File

@@ -0,0 +1,109 @@
---
title: ArXiv
description: Suche und rufe wissenschaftliche Arbeiten von ArXiv ab
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="arxiv"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon" id='logomark' xmlns='http://www.w3.org/2000/svg' viewBox='0 0 17.732 24.269'>
<g id='tiny'>
<path
d='M573.549,280.916l2.266,2.738,6.674-7.84c.353-.47.52-.717.353-1.117a1.218,1.218,0,0,0-1.061-.748h0a.953.953,0,0,0-.712.262Z'
transform='translate(-566.984 -271.548)'
fill='#bdb9b4'
/>
<path
d='M579.525,282.225l-10.606-10.174a1.413,1.413,0,0,0-.834-.5,1.09,1.09,0,0,0-1.027.66c-.167.4-.047.681.319,1.206l8.44,10.242h0l-6.282,7.716a1.336,1.336,0,0,0-.323,1.3,1.114,1.114,0,0,0,1.04.69A.992.992,0,0,0,571,293l8.519-7.92A1.924,1.924,0,0,0,579.525,282.225Z'
transform='translate(-566.984 -271.548)'
fill='#b31b1b'
/>
<path
d='M584.32,293.912l-8.525-10.275,0,0L573.53,280.9l-1.389,1.254a2.063,2.063,0,0,0,0,2.965l10.812,10.419a.925.925,0,0,0,.742.282,1.039,1.039,0,0,0,.953-.667A1.261,1.261,0,0,0,584.32,293.912Z'
transform='translate(-566.984 -271.548)'
fill='#bdb9b4'
/>
</g>
</svg>`}
/>
{/* 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 |
## Hinweise
- Kategorie: `tools`
- Typ: `arxiv`

View File

@@ -0,0 +1,90 @@
---
title: Browser-Nutzung
description: Browser-Automatisierungsaufgaben ausführen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="browser_use"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
version='1.0'
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 150 150'
preserveAspectRatio='xMidYMid meet'
>
<g transform='translate(0,150) scale(0.05,-0.05)' fill='#000000' stroke='none'>
<path
d='M786 2713 c-184 -61 -353 -217 -439 -405 -76 -165 -65 -539 19 -666
l57 -85 -48 -124 c-203 -517 -79 -930 346 -1155 159 -85 441 -71 585 28 l111
77 196 -76 c763 -293 1353 304 1051 1063 -77 191 -77 189 -14 282 163 239 97
660 -140 893 -235 231 -528 256 -975 83 l-96 -37 -121 67 c-144 79 -383 103
-532 55z m459 -235 c88 -23 96 -51 22 -79 -29 -11 -84 -47 -121 -80 -57 -50
-84 -59 -178 -59 -147 0 -190 -44 -238 -241 -102 -424 -230 -440 -230 -29 1
417 289 606 745 488z m1046 -18 c174 -85 266 -309 239 -582 -26 -256 -165
-165 -230 151 -73 356 -469 332 -954 -58 -587 -472 -829 -1251 -388 -1251 108
0 126 -7 214 -80 54 -44 104 -80 113 -80 54 0 -2 -43 -89 -69 -220 -66 -426
-22 -568 120 -599 599 871 2232 1663 1849z m-234 -510 c969 -1036 357 -1962
-787 -1190 -254 171 -348 303 -323 454 21 128 40 123 231 -59 691 -658 1362
-583 1052 117 -106 239 -366 585 -504 671 l-72 44 98 45 c150 68 169 63 305
-82z m-329 -310 c161 -184 163 -160 -30 -338 -188 -173 -180 -173 -386 19
-163 153 -163 157 7 324 218 213 219 213 409 -5z m354 -375 c92 -239 -179
-462 -377 -309 l-46 35 186 163 c211 186 209 185 237 111z'
/>
</g>
</svg>`}
/>
{/* 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 |
## Hinweise
- Kategorie: `tools`
- Typ: `browser_use`

View File

@@ -0,0 +1,97 @@
---
title: Confluence
description: Mit Confluence interagieren
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="confluence"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
viewBox='0 3 21 24'
focusable='false'
fill='none'
aria-hidden='true'
xmlns='http://www.w3.org/2000/svg'
>
<path
fill='#1868DB'
d='M20.602 20.234c-6.584-3.183-8.507-3.66-11.281-3.66-3.255 0-6.03 1.355-8.507 5.16l-.407.622c-.333.513-.407.696-.407.915s.111.403.518.659l4.18 2.598c.221.146.406.22.591.22.222 0 .37-.11.592-.44l.666-1.024c1.035-1.574 1.96-2.086 3.144-2.086 1.035 0 2.256.293 3.772 1.025l4.365 2.049c.444.22.925.11 1.146-.403l2.072-4.537c.222-.512.074-.842-.444-1.098M1.406 12.22c6.583 3.184 8.507 3.66 11.28 3.66 3.256 0 6.03-1.354 8.508-5.16l.407-.622c.332-.512.406-.695.406-.915s-.11-.402-.518-.658L17.31 5.927c-.222-.147-.407-.22-.592-.22-.222 0-.37.11-.592.44l-.665 1.024c-1.036 1.573-1.96 2.086-3.144 2.086-1.036 0-2.257-.293-3.773-1.025L4.18 6.183c-.444-.22-.925-.11-1.147.402L.962 11.123c-.222.512-.074.841.444 1.098'
/>
</svg>`}
/>
{/* 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
Integriert Confluence in den Workflow. Kann Seiten lesen und aktualisieren. Erfordert OAuth.
## 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 |
## Hinweise
- Kategorie: `tools`
- Typ: `confluence`

View File

@@ -0,0 +1,141 @@
---
title: Discord
description: Mit Discord interagieren
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="discord"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
viewBox='0 -28.5 256 256'
version='1.1'
xmlns='http://www.w3.org/2000/svg'
xmlnsXlink='http://www.w3.org/1999/xlink'
preserveAspectRatio='xMidYMid'
>
<g>
<path
d='M216.856339,16.5966031 C200.285002,8.84328665 182.566144,3.2084988 164.041564,0 C161.766523,4.11318106 159.108624,9.64549908 157.276099,14.0464379 C137.583995,11.0849896 118.072967,11.0849896 98.7430163,14.0464379 C96.9108417,9.64549908 94.1925838,4.11318106 91.8971895,0 C73.3526068,3.2084988 55.6133949,8.86399117 39.0420583,16.6376612 C5.61752293,67.146514 -3.4433191,116.400813 1.08711069,164.955721 C23.2560196,181.510915 44.7403634,191.567697 65.8621325,198.148576 C71.0772151,190.971126 75.7283628,183.341335 79.7352139,175.300261 C72.104019,172.400575 64.7949724,168.822202 57.8887866,164.667963 C59.7209612,163.310589 61.5131304,161.891452 63.2445898,160.431257 C105.36741,180.133187 151.134928,180.133187 192.754523,160.431257 C194.506336,161.891452 196.298154,163.310589 198.110326,164.667963 C191.183787,168.842556 183.854737,172.420929 176.223542,175.320965 C180.230393,183.341335 184.861538,190.991831 190.096624,198.16893 C211.238746,191.588051 232.743023,181.531619 254.911949,164.955721 C260.227747,108.668201 245.831087,59.8662432 216.856339,16.5966031 Z M85.4738752,135.09489 C72.8290281,135.09489 62.4592217,123.290155 62.4592217,108.914901 C62.4592217,94.5396472 72.607595,82.7145587 85.4738752,82.7145587 C98.3405064,82.7145587 108.709962,94.5189427 108.488529,108.914901 C108.508531,123.290155 98.3405064,135.09489 85.4738752,135.09489 Z M170.525237,135.09489 C157.88039,135.09489 147.510584,123.290155 147.510584,108.914901 C147.510584,94.5396472 157.658606,82.7145587 170.525237,82.7145587 C183.391518,82.7145587 193.761324,94.5189427 193.539891,108.914901 C193.539891,123.290155 183.391518,135.09489 170.525237,135.09489 Z'
fill='currentColor'
fillRule='nonzero'
/>
</g>
</svg>`}
/>
{/* 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
Integriert Discord in den Workflow. Kann Nachrichten senden und empfangen, Server-Informationen abrufen und Benutzerinformationen erhalten. Erfordert einen Bot-API-Schlüssel.
## 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\) |
#### 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 |
| `messages` | array | Array von Discord-Nachrichten mit vollständigen Metadaten |
### `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 |
## Hinweise
- Kategorie: `tools`
- Typ: `discord`

View File

@@ -0,0 +1,67 @@
---
title: ElevenLabs
description: TTS mit ElevenLabs konvertieren
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="elevenlabs"
color="#181C1E"
icon={true}
iconSvg={`<svg className="block-icon"
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 876 876'
fill='none'
>
<path d='M498 138H618V738H498V138Z' fill='currentColor' />
<path d='M258 138H378V738H258V138Z' fill='currentColor' />
</svg>`}
/>
{/* 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 |
## Hinweise
- Kategorie: `tools`
- Typ: `elevenlabs`

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,77 @@
---
title: Datei
description: Mehrere Dateien lesen und parsen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="file"
color="#40916C"
icon={true}
iconSvg={`<svg className="block-icon"
viewBox='0 0 23 28'
fill='none'
xmlns='http://www.w3.org/2000/svg'
>
<path
d='M8 15.2H15.2M8 20H11.6M2 4.4V23.6C2 24.2365 2.25286 24.847 2.70294 25.2971C3.15303 25.7471 3.76348 26 4.4 26H18.8C19.4365 26 20.047 25.7471 20.4971 25.2971C20.9471 24.847 21.2 24.2365 21.2 23.6V9.6104C21.2 9.29067 21.136 8.97417 21.012 8.67949C20.8879 8.38481 20.7062 8.11789 20.4776 7.8944L15.1496 2.684C14.7012 2.24559 14.0991 2.00008 13.472 2H4.4C3.76348 2 3.15303 2.25286 2.70294 2.70294C2.25286 3.15303 2 3.76348 2 4.4Z'
stroke='currentColor'
strokeWidth='2.25'
strokeLinecap='round'
strokeLinejoin='round'
/>
<path
d='M14 2V6.8C14 7.43652 14.2529 8.04697 14.7029 8.49706C15.153 8.94714 15.7635 9.2 16.4 9.2H21.2'
stroke='currentColor'
strokeWidth='2.25'
strokeLinejoin='round'
/>
</svg>`}
/>
{/* 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 |
## Hinweise
- Kategorie: `tools`
- Typ: `file`

View File

@@ -0,0 +1,124 @@
---
title: Firecrawl
description: Durchsuche oder durchforste das Web
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="firecrawl"
color="#181C1E"
icon={true}
iconSvg={`<svg className="block-icon" viewBox='0 0 642 600' xmlns='http://www.w3.org/2000/svg' >
<path
d='M301 63C299 91 303 122 298 149C295 158 289 165 283 169C274 172 266 170 261 167C253 176 248 183 244 191C230 226 226 263 226 301C216 310 203 317 192 310C179 295 175 277 174 259C161 273 153 288 146 304C141 321 138 336 137 352C140 372 145 388 152 402C161 421 174 435 187 449C181 462 165 453 157 450C158 454 161 458 165 461C195 490 231 500 268 509C240 494 211 471 195 442C179 413 172 378 180 344C191 353 200 362 211 364C223 365 232 361 236 353C247 274 299 214 323 143C322 136 327 140 329 142C354 165 367 191 375 218C387 254 381 294 379 329C393 345 413 334 424 329C429 342 432 352 429 362C427 378 417 388 413 400C422 407 433 403 440 400C432 423 419 442 404 460C383 483 358 501 335 512C379 502 420 491 449 459C443 458 427 464 428 452C443 437 464 423 472 403C482 383 485 362 484 339C482 307 472 280 458 254C459 267 452 276 445 284C434 289 426 279 424 272C415 247 424 220 418 198C415 179 405 165 397 150C370 114 336 86 303 64'
fill='rgb(253,76,31)'
/>
<path
d='M324 141C303 214 249 273 244 354C235 359 229 364 223 366C205 367 193 357 182 347C180 350 179 353 180 357C178 374 178 390 182 403C185 421 193 434 200 448C212 465 227 480 243 491C258 500 269 513 285 512C284 508 257 485 252 468C241 450 235 433 233 414C241 415 254 420 263 412C260 387 265 363 273 343C281 323 293 306 310 295C317 289 324 285 330 282C328 307 328 331 329 355C330 368 332 379 338 389C358 394 376 384 388 370C383 386 377 401 371 415C376 414 381 411 385 408C383 421 380 431 376 441C366 467 356 491 334 510C358 499 381 483 400 461C418 442 430 423 440 403C432 404 421 410 413 404C414 386 428 377 427 360C429 349 428 340 424 332C413 336 404 341 392 339C386 338 381 334 379 330C380 292 385 248 371 214C366 195 358 180 349 165C341 155 333 145 323 140'
fill='rgb(254,156,69)'
/>
<path
d='M330 284C309 293 289 311 279 332C267 356 261 383 265 411C256 420 242 418 235 412C237 438 245 459 258 479C269 493 281 507 295 513C288 495 265 472 265 446C272 447 281 454 288 444C296 425 303 407 309 388C317 406 321 427 336 443C346 449 358 446 363 438C355 464 348 489 334 511C344 501 352 491 357 480C370 457 379 435 385 412C380 411 376 416 371 418C376 401 382 386 387 371C379 382 369 388 358 391C348 394 337 392 334 383C324 353 328 316 330 285'
fill='rgb(254,220,87)'
/>
<path
d='M311 389C303 407 297 426 289 445C282 454 273 450 268 445C267 472 285 492 302 512C299 514 297 514 294 514C297 514 299 514 301 514C314 515 325 512 334 513C341 495 355 467 362 443C357 446 351 448 344 447C337 446 334 441 330 438C320 422 316 406 311 391'
fill='rgb(251,250,202)'
/>
<path
d='M187 163C188 181 167 187 164 203C158 215 158 228 159 241C172 233 183 221 188 209C193 194 192 178 188 166'
fill='rgb(253,76,31)'
/>
</svg>`}
/>
{/* 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. Kann Websites durchsuchen, scrapen oder crawlen. Benötigt API-Schlüssel.
## 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 extrahiert 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 Website-URL zum Crawlen |
| `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 |
## Hinweise
- Kategorie: `tools`
- Typ: `firecrawl`

View File

@@ -0,0 +1,29 @@
---
title: Webhook
description: Empfangen Sie Webhooks von jedem Dienst durch Konfiguration eines
benutzerdefinierten Webhooks.
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="generic_webhook"
color="#10B981"
icon={true}
iconSvg={`<svg className="block-icon"
fill='currentColor'
viewBox='0 0 24 24'
xmlns='http://www.w3.org/2000/svg'
>
<path d='M17.974 7A4.967 4.967 0 0 0 18 6.5a5.5 5.5 0 1 0-8.672 4.491L7.18 15.114A2.428 2.428 0 0 0 6.496 15 2.5 2.5 0 1 0 9 17.496a2.36 2.36 0 0 0-.93-1.925l2.576-4.943-.41-.241A4.5 4.5 0 1 1 17 6.5a4.8 4.8 0 0 1-.022.452zM6.503 18.999a1.5 1.5 0 1 1 1.496-1.503A1.518 1.518 0 0 1 6.503 19zM18.5 12a5.735 5.735 0 0 0-1.453.157l-2.744-3.941A2.414 2.414 0 0 0 15 6.5a2.544 2.544 0 1 0-1.518 2.284l3.17 4.557.36-.13A4.267 4.267 0 0 1 18.5 13a4.5 4.5 0 1 1-.008 9h-.006a4.684 4.684 0 0 1-3.12-1.355l-.703.71A5.653 5.653 0 0 0 18.49 23h.011a5.5 5.5 0 0 0 0-11zM11 6.5A1.5 1.5 0 1 1 12.5 8 1.509 1.509 0 0 1 11 6.5zM18.5 20a2.5 2.5 0 1 0-2.447-3h-5.05l-.003.497A4.546 4.546 0 0 1 6.5 22 4.526 4.526 0 0 1 2 17.5a4.596 4.596 0 0 1 3.148-4.37l-.296-.954A5.606 5.606 0 0 0 1 17.5 5.532 5.532 0 0 0 6.5 23a5.573 5.573 0 0 0 5.478-5h4.08a2.487 2.487 0 0 0 2.442 2zm0-4a1.5 1.5 0 1 1-1.5 1.5 1.509 1.509 0 0 1 1.5-1.5z' />
<path fill='none' d='M0 0h24v24H0z' />
</svg>`}
/>
## Hinweise
- Kategorie: `triggers`
- Typ: `generic_webhook`

View File

@@ -0,0 +1,130 @@
---
title: GitHub
description: Interagiere mit GitHub oder löse Workflows durch GitHub-Events aus
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="github"
color="#181C1E"
icon={true}
iconSvg={`<svg className="block-icon" viewBox='0 0 26 26' xmlns='http://www.w3.org/2000/svg'>
<path
d='M13 0C11.2928 0 9.60235 0.336255 8.02511 0.989566C6.44788 1.64288 5.01477 2.60045 3.80761 3.80761C1.36964 6.24558 0 9.55219 0 13C0 18.746 3.731 23.621 8.892 25.35C9.542 25.454 9.75 25.051 9.75 24.7V22.503C6.149 23.283 5.382 20.761 5.382 20.761C4.784 19.253 3.939 18.85 3.939 18.85C2.756 18.044 4.03 18.07 4.03 18.07C5.33 18.161 6.019 19.409 6.019 19.409C7.15 21.385 9.061 20.8 9.802 20.488C9.919 19.643 10.257 19.071 10.621 18.746C7.735 18.421 4.706 17.303 4.706 12.35C4.706 10.907 5.2 9.75 6.045 8.827C5.915 8.502 5.46 7.15 6.175 5.395C6.175 5.395 7.267 5.044 9.75 6.721C10.777 6.435 11.895 6.292 13 6.292C14.105 6.292 15.223 6.435 16.25 6.721C18.733 5.044 19.825 5.395 19.825 5.395C20.54 7.15 20.085 8.502 19.955 8.827C20.8 9.75 21.294 10.907 21.294 12.35C21.294 17.316 18.252 18.408 15.353 18.733C15.821 19.136 16.25 19.929 16.25 21.138V24.7C16.25 25.051 16.458 25.467 17.121 25.35C22.282 23.608 26 18.746 26 13C26 11.2928 25.6637 9.60235 25.0104 8.02511C24.3571 6.44788 23.3995 5.01477 22.1924 3.80761C20.9852 2.60045 19.5521 1.64288 17.9749 0.989566C16.3977 0.336255 14.7072 0 13 0Z'
fill='currentColor'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[GitHub](https://github.com/) ist die weltweit führende Plattform für Softwareentwicklung und Versionskontrolle mit Git. Sie bietet eine kollaborative Umgebung, in der Entwickler Code hosten und überprüfen, Projekte verwalten und gemeinsam Software erstellen können.
Mit GitHub kannst du:
- **Repositories hosten**: Speichere deinen Code in öffentlichen oder privaten Repositories mit Versionskontrolle
- **An Code zusammenarbeiten**: Nutze Pull Requests, um Änderungen vorzuschlagen, Code zu überprüfen und Beiträge zusammenzuführen
- **Issues verfolgen**: Erstelle, weise zu und verwalte Issues, um Arbeit zu organisieren und Fehler zu verfolgen
- **Workflows automatisieren**: Nutze GitHub Actions, um Code automatisch zu erstellen, zu testen und bereitzustellen
- **Projekte verwalten**: Organisiere Arbeit mit Projektboards, Meilensteinen und Aufgabenverfolgung
- **Code dokumentieren**: Erstelle und pflege Dokumentation mit GitHub Pages und Wikis
In Sim ermöglicht die GitHub-Integration Ihren Agenten die direkte Interaktion mit GitHub-Repositories und -Workflows. Dies erlaubt leistungsstarke Automatisierungsszenarien wie Unterstützung bei Code-Reviews, Pull-Request-Management, Issue-Tracking und Repository-Exploration. Ihre Agenten können Repository-Daten abrufen, Code-Änderungen analysieren, Kommentare zu Pull Requests posten und andere GitHub-Operationen programmatisch durchführen. Diese Integration überbrückt die Lücke zwischen Ihren KI-Workflows und Ihren Entwicklungsprozessen und ermöglicht eine nahtlose Zusammenarbeit zwischen Ihren Agenten und Ihrem Entwicklungsteam.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integrieren Sie Github in den Workflow. Kann PR-Details abrufen, PR-Kommentare erstellen, Repository-Informationen abrufen und den neuesten Commit anzeigen. Erfordert einen GitHub-Token-API-Schlüssel. Kann im Trigger-Modus verwendet werden, um einen Workflow auszulösen, wenn ein PR erstellt wird, kommentiert wird oder ein Commit gepusht wird.
## Tools
### `github_pr`
PR-Details einschließlich Diff und geänderte Dateien abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `owner` | string | Ja | Repository-Besitzer |
| `repo` | string | Ja | Repository-Name |
| `pullNumber` | number | Ja | Pull-Request-Nummer |
| `apiKey` | string | Ja | GitHub-API-Token |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Menschenlesbare PR-Zusammenfassung |
| `metadata` | object | Detaillierte PR-Metadaten einschließlich Dateiänderungen |
### `github_comment`
Kommentare zu GitHub PRs erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `owner` | string | Ja | Repository-Besitzer |
| `repo` | string | Ja | Repository-Name |
| `body` | string | Ja | Kommentarinhalt |
| `pullNumber` | number | Ja | Pull-Request-Nummer |
| `path` | string | Nein | Dateipfad für Review-Kommentar |
| `position` | number | Nein | Zeilennummer für Review-Kommentar |
| `commentType` | string | Nein | Kommentartyp \(pr_comment oder file_comment\) |
| `line` | number | Nein | Zeilennummer für Review-Kommentar |
| `side` | string | Nein | Seite des Diffs \(LEFT oder RIGHT\) |
| `commitId` | string | Nein | Der SHA des Commits, der kommentiert werden soll |
| `apiKey` | string | Ja | GitHub API-Token |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Menschenlesbare Kommentarbestätigung |
| `metadata` | object | Kommentar-Metadaten |
### `github_repo_info`
Ruft umfassende GitHub-Repository-Metadaten ab, einschließlich Sterne, Forks, Issues und Hauptsprache. Unterstützt sowohl öffentliche als auch private Repositories mit optionaler Authentifizierung.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `owner` | string | Ja | Repository-Besitzer \(Benutzer oder Organisation\) |
| `repo` | string | Ja | Repository-Name |
| `apiKey` | string | Ja | GitHub Personal Access Token |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Menschenlesbare Repository-Zusammenfassung |
| `metadata` | object | Repository-Metadaten |
### `github_latest_commit`
Ruft den neuesten Commit aus einem GitHub-Repository ab
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `owner` | string | Ja | Repository-Besitzer (Benutzer oder Organisation) |
| `repo` | string | Ja | Repository-Name |
| `branch` | string | Nein | Branch-Name (standardmäßig der Standard-Branch des Repositories) |
| `apiKey` | string | Ja | GitHub API-Token |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Menschenlesbare Commit-Zusammenfassung |
| `metadata` | object | Commit-Metadaten |
## Hinweise
- Kategorie: `tools`
- Typ: `github`

View File

@@ -0,0 +1,142 @@
---
title: Gmail
description: Gmail senden oder Workflows von Gmail-Ereignissen auslösen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="gmail"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 48 48'
>
<path fill='#4caf50' d='M45,16.2l-5,2.75l-5,4.75L35,40h7c1.657,0,3-1.343,3-3V16.2z' />
<path fill='#1e88e5' d='M3,16.2l3.614,1.71L13,23.7V40H6c-1.657,0-3-1.343-3-3V16.2z' />
<polygon
fill='#e53935'
points='35,11.2 24,19.45 13,11.2 12,17 13,23.7 24,31.95 35,23.7 36,17'
/>
<path
fill='#c62828'
d='M3,12.298V16.2l10,7.5V11.2L9.876,8.859C9.132,8.301,8.228,8,7.298,8h0C4.924,8,3,9.924,3,12.298z'
/>
<path
fill='#fbc02d'
d='M45,12.298V16.2l-10,7.5V11.2l3.124-2.341C38.868,8.301,39.772,8,40.702,8h0 C43.076,8,45,9.924,45,12.298z'
/>
</svg>`}
/>
{/* 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 programmatisch zu senden, zu lesen und zu durchsuchen. Dies ermöglicht leistungsstarke Automatisierungsszenarien wie das Senden von Benachrichtigungen, die Verarbeitung eingehender Nachrichten, das Extrahieren von Informationen aus E-Mails und das Verwalten von Kommunikationsabläufen. Ihre Agenten können personalisierte E-Mails verfassen und senden, nach bestimmten Nachrichten mit Gmails Abfragesyntax suchen und Inhalte aus E-Mails extrahieren, um sie in anderen Teilen Ihres Workflows zu verwenden. In Kürze werden Agenten auch in der Lage sein, in Echtzeit auf neue E-Mails zu achten, was reaktionsschnelle Workflows ermöglicht, die Aktionen basierend auf eingehenden Nachrichten auslösen können. 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.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Gmail in den Workflow integrieren. Kann E-Mails senden, lesen und durchsuchen. Erfordert OAuth. Kann im Trigger-Modus verwendet werden, um einen Workflow auszulösen, wenn eine neue E-Mail empfangen wird.
## Tools
### `gmail_send`
E-Mails über Gmail versenden
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `to` | string | Ja | E-Mail-Adresse des Empfängers |
| `subject` | string | Ja | Betreff der E-Mail |
| `body` | string | Ja | Inhalt der E-Mail |
| `cc` | string | Nein | CC-Empfänger \(durch Komma getrennt\) |
| `bcc` | string | Nein | BCC-Empfänger \(durch Komma getrennt\) |
#### 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 | Ja | Betreff der E-Mail |
| `body` | string | Ja | Inhalt der E-Mail |
| `cc` | string | Nein | CC-Empfänger \(durch Komma getrennt\) |
| `bcc` | string | Nein | BCC-Empfänger \(durch Komma getrennt\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung |
| `metadata` | object | Entwurfs-Metadaten |
### `gmail_read`
E-Mails von 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 zurückzugebender Ergebnisse |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Zusammenfassung der Suchergebnisse |
| `metadata` | object | Such-Metadaten |
## Hinweise
- Kategorie: `tools`
- Typ: `gmail`

View File

@@ -0,0 +1,204 @@
---
title: Google Kalender
description: Google Kalender-Ereignisse verwalten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="google_calendar"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
version='1.1'
xmlns='http://www.w3.org/2000/svg'
xmlnsXlink='http://www.w3.org/1999/xlink'
x='0px'
y='0px'
viewBox='0 0 200 200'
enableBackground='new 0 0 200 200'
xmlSpace='preserve'
>
<g>
<g transform='translate(3.75 3.75)'>
<path
fill='#FFFFFF'
d='M148.882,43.618l-47.368-5.263l-57.895,5.263L38.355,96.25l5.263,52.632l52.632,6.579l52.632-6.579
l5.263-53.947L148.882,43.618z'
/>
<path
fill='#1A73E8'
d='M65.211,125.276c-3.934-2.658-6.658-6.539-8.145-11.671l9.132-3.763c0.829,3.158,2.276,5.605,4.342,7.342
c2.053,1.737,4.553,2.592,7.474,2.592c2.987,0,5.553-0.908,7.697-2.724s3.224-4.132,3.224-6.934c0-2.868-1.132-5.211-3.395-7.026
s-5.105-2.724-8.5-2.724h-5.276v-9.039H76.5c2.921,0,5.382-0.789,7.382-2.368c2-1.579,3-3.737,3-6.487
c0-2.447-0.895-4.395-2.684-5.855s-4.053-2.197-6.803-2.197c-2.684,0-4.816,0.711-6.395,2.145s-2.724,3.197-3.447,5.276
l-9.039-3.763c1.197-3.395,3.395-6.395,6.618-8.987c3.224-2.592,7.342-3.895,12.342-3.895c3.697,0,7.026,0.711,9.974,2.145
c2.947,1.434,5.263,3.421,6.934,5.947c1.671,2.539,2.5,5.382,2.5,8.539c0,3.224-0.776,5.947-2.329,8.184
c-1.553,2.237-3.461,3.947-5.724,5.145v0.539c2.987,1.25,5.421,3.158,7.342,5.724c1.908,2.566,2.868,5.632,2.868,9.211
s-0.908,6.776-2.724,9.579c-1.816,2.803-4.329,5.013-7.513,6.618c-3.197,1.605-6.789,2.421-10.776,2.421
C73.408,129.263,69.145,127.934,65.211,125.276z'
/>
<path
fill='#1A73E8'
d='M121.25,79.961l-9.974,7.25l-5.013-7.605l17.987-12.974h6.895v61.197h-9.895L121.25,79.961z'
/>
<path
fill='#EA4335'
d='M148.882,196.25l47.368-47.368l-23.684-10.526l-23.684,10.526l-10.526,23.684L148.882,196.25z'
/>
<path
fill='#34A853'
d='M33.092,172.566l10.526,23.684h105.263v-47.368H43.618L33.092,172.566z'
/>
<path
fill='#4285F4'
d='M12.039-3.75C3.316-3.75-3.75,3.316-3.75,12.039v136.842l23.684,10.526l23.684-10.526V43.618h105.263
l10.526-23.684L148.882-3.75H12.039z'
/>
<path
fill='#188038'
d='M-3.75,148.882v31.579c0,8.724,7.066,15.789,15.789,15.789h31.579v-47.368H-3.75z'
/>
<path
fill='#FBBC04'
d='M148.882,43.618v105.263h47.368V43.618l-23.684-10.526L148.882,43.618z'
/>
<path
fill='#1967D2'
d='M196.25,43.618V12.039c0-8.724-7.066-15.789-15.789-15.789h-31.579v47.368H196.25z'
/>
</g>
</g>
</svg>`}
/>
{/* 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 \(RFC3339-Format, z.B. 2025-06-03T10:00:00-08:00\) |
| `endDateTime` | string | Ja | Enddatum und -uhrzeit \(RFC3339-Format, z.B. 2025-06-03T11:00:00-08:00\) |
| `timeZone` | string | Nein | Zeitzone \(z.B. America/Los_Angeles\) |
| `attendees` | array | Nein | Array mit 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`

View File

@@ -0,0 +1,144 @@
---
title: Google Docs
description: Dokumente lesen, schreiben und erstellen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="google_docs"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 48 48'
>
<path
fill='#2196f3'
d='M37,45H11c-1.657,0-3-1.343-3-3V6c0-1.657,1.343-3,3-3h19l10,10v29C40,43.657,38.657,45,37,45z'
/>
<path fill='#bbdefb' d='M40 13L30 13 30 3z' />
<path fill='#1565c0' d='M30 13L40 23 40 13z' />
<path fill='#e3f2fd' d='M15 23H33V25H15zM15 27H33V29H15zM15 31H33V33H15zM15 35H25V37H15z' />
</svg>`}
/>
{/* 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 |
### `google_docs_create`
Ein neues Google Docs-Dokument erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `title` | string | Ja | Der Titel des zu erstellenden Dokuments |
| `content` | string | Nein | Der Inhalt des zu erstellenden Dokuments |
| `folderSelector` | string | Nein | Wählen Sie den Ordner aus, in dem das Dokument erstellt werden soll |
| `folderId` | string | Nein | Die ID des Ordners, in dem das Dokument erstellt werden soll \(interne Verwendung\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `metadata` | json | Metadaten des erstellten Dokuments einschließlich ID, Titel und URL |
## Hinweise
- Kategorie: `tools`
- Typ: `google_docs`

View File

@@ -0,0 +1,140 @@
---
title: Google Drive
description: Dateien erstellen, hochladen und auflisten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="google_drive"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 87.3 78'
>
<path
d='m6.6 66.85 3.85 6.65c.8 1.4 1.95 2.5 3.3 3.3l13.75-23.8h-27.5c0 1.55.4 3.1 1.2 4.5z'
fill='#0066da'
/>
<path
d='m43.65 25-13.75-23.8c-1.35.8-2.5 1.9-3.3 3.3l-25.4 44a9.06 9.06 0 0 0 -1.2 4.5h27.5z'
fill='#00ac47'
/>
<path
d='m73.55 76.8c1.35-.8 2.5-1.9 3.3-3.3l1.6-2.75 7.65-13.25c.8-1.4 1.2-2.95 1.2-4.5h-27.502l5.852 11.5z'
fill='#ea4335'
/>
<path
d='m43.65 25 13.75-23.8c-1.35-.8-2.9-1.2-4.5-1.2h-18.5c-1.6 0-3.15.45-4.5 1.2z'
fill='#00832d'
/>
<path
d='m59.8 53h-32.3l-13.75 23.8c1.35.8 2.9 1.2 4.5 1.2h50.8c1.6 0 3.15-.45 4.5-1.2z'
fill='#2684fc'
/>
<path
d='m73.4 26.5-12.7-22c-.8-1.4-1.95-2.5-3.3-3.3l-13.75 23.8 16.15 28h27.45c0-1.55-.4-3.1-1.2-4.5z'
fill='#ffba00'
/>
</svg>`}
/>
{/* 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 |
| `content` | string | Ja | Der Inhalt der hochzuladenden Datei |
| `mimeType` | string | Nein | Der MIME-Typ der hochzuladenden Datei |
| `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_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 | Eine Abfrage zum Filtern der Dateien |
| `pageSize` | number | Nein | Die Anzahl der zurückzugebenden Dateien |
| `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`

View File

@@ -0,0 +1,82 @@
---
title: Google Forms
description: Antworten aus einem Google-Formular lesen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="google_forms"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon" xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 65' fill='none'>
<path
d='M29.583 0H4.438C1.997 0 0 1.997 0 4.438v56.208C0 63.086 1.997 65.083 4.438 65.083h38.458c2.44 0 4.437-1.997 4.437-4.437V17.75L36.979 10.354 29.583 0Z'
fill='#673AB7'
/>
<path
d='M29.583 0v10.354c0 2.45 1.986 4.438 4.438 4.438h13.312L36.979 10.354 29.583 0Z'
fill='#B39DDB'
/>
<path
d='M19.229 50.292h16.271v-2.959H19.229v2.959Zm0-17.75v2.958h16.271v-2.958H19.229Zm-3.698 1.479c0 1.224-0.995 2.219-2.219 2.219s-2.219-0.995-2.219-2.219c0-1.224 0.995-2.219 2.219-2.219s2.219 0.995 2.219 2.219Zm0 7.396c0 1.224-0.995 2.219-2.219 2.219s-2.219-0.995-2.219-2.219c0-1.224 0.995-2.219 2.219-2.219s2.219 0.995 2.219 2.219Zm0 7.396c0 1.224-0.995 2.219-2.219 2.219s-2.219-0.995-2.219-2.219c0-1.224 0.995-2.219 2.219-2.219s2.219 0.995 2.219 2.219Zm3.698-5.917h16.271v-2.959H19.229v2.959Z'
fill='#F1F1F1'
/>
<defs>
<linearGradient
id='gf-gradient'
x1='30.881'
y1='16.452'
x2='47.333'
y2='32.9'
gradientUnits='userSpaceOnUse'
>
<stop stopColor='#9575CD' />
<stop offset='1' stopColor='#7E57C2' />
</linearGradient>
</defs>
</svg>`}
/>
{/* 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`

View File

@@ -0,0 +1,86 @@
---
title: Google Suche
description: Das Web durchsuchen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="google_search"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon" xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' >
<path
fill='#fbc02d'
d='M43.611,20.083H42V20H24v8h11.303c-1.649,4.657-6.08,8-11.303,8c-6.627,0-12-5.373-12-12 s5.373-12,12-12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C12.955,4,4,12.955,4,24s8.955,20,20,20 s20-8.955,20-20C44,22.659,43.862,21.35,43.611,20.083z'
/>
<path
fill='#e53935'
d='M6.306,14.691l6.571,4.819C14.655,15.108,18.961,12,24,12c3.059,0,5.842,1.154,7.961,3.039 l5.657-5.657C34.046,6.053,29.268,4,24,4C16.318,4,9.656,8.337,6.306,14.691z'
/>
<path
fill='#4caf50'
d='M24,44c5.166,0,9.86-1.977,13.409-5.192l-6.19-5.238C29.211,35.091,26.715,36,24,36 c-5.202,0-9.619-3.317-11.283-7.946l-6.522,5.025C9.505,39.556,16.227,44,24,44z'
/>
<path
fill='#1565c0'
d='M43.611,20.083L43.595,20L42,20H24v8h11.303c-0.792,2.237-2.231,4.166-4.087,5.571 c0.001-0.001,0.002-0.001,0.003-0.002l6.19,5.238C36.971,39.205,44,34,44,24C44,22.659,43.862,21.35,43.611,20.083z'
/>
</svg>`}
/>
{/* 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
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Ja | Die auszuführende Suchanfrage |
| `searchEngineId` | string | Ja | Custom Search Engine ID |
| `num` | string | Nein | Anzahl der zurückzugebenden Ergebnisse \(Standard: 10, max: 10\) |
| `apiKey` | string | Ja | Google API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `items` | array | Array von Suchergebnissen von Google |
## Hinweise
- Kategorie: `tools`
- Typ: `google_search`

View File

@@ -0,0 +1,197 @@
---
title: Google Sheets
description: Daten lesen, schreiben und aktualisieren
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="google_sheets"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 48 48'
>
<path
fill='#43a047'
d='M37,45H11c-1.657,0-3-1.343-3-3V6c0-1.657,1.343-3,3-3h19l10,10v29C40,43.657,38.657,45,37,45z'
/>
<path fill='#c8e6c9' d='M40 13L30 13 30 3z' />
<path fill='#2e7d32' d='M30 13L40 23 40 13z' />
<path
fill='#e8f5e9'
d='M31,23H17h-2v2v2v2v2v2v2v2h18v-2v-2v-2v-2v-2v-2v-2H31z M17,25h4v2h-4V25z M17,29h4v2h-4V29z M17,33h4v2h-4V33z M31,35h-8v-2h8V35z M31,31h-8v-2h8V31z M31,27h-8v-2h8V27z'
/>
</svg>`}
/>
{/* 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, aus der gelesen werden soll |
| `range` | string | Nein | Der Zellbereich, aus dem gelesen werden soll |
#### 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, in die geschrieben werden soll |
| `range` | string | Nein | Der Zellbereich, in den geschrieben werden soll |
| `values` | array | Ja | Die Daten, die in die Tabelle geschrieben werden sollen |
| `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 Bereich der zu aktualisierenden Zellen |
| `values` | array | Ja | Die Daten, die in der Tabelle aktualisiert werden sollen |
| `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 Bereich der Zellen, nach dem angehängt werden soll |
| `values` | array | Ja | Die Daten, die an die Tabelle angehängt werden sollen |
| `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`

View File

@@ -0,0 +1,174 @@
---
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"
icon={true}
iconSvg={`<svg className="block-icon" xmlns='http://www.w3.org/2000/svg' viewBox='0 0 82 82'>
<path
xmlns='http://www.w3.org/2000/svg'
d='M58.0251 41.1399L63.8516 36.7242L69.0032 30.157C67.372 26.032 63.097 18.4149 63.097 18.4149C63.097 18.4149 55.6204 14.618 51.9923 13.193L45.3454 17.918L41.0563 24.0492L36.7626 17.8336L30.2001 13.1133C26.5391 14.5195 19.0063 18.7805 19.0063 18.7805C19.0063 18.7805 14.6423 25.9852 12.9923 30.157L18.1532 36.7336L23.9048 41.0742L17.7969 45.7289L12.8798 52.0195C14.3329 55.807 18.3501 63.0352 18.3501 63.0352C18.3501 63.0352 25.8735 67.6289 29.9188 69.232L36.1016 64.4649L41.0001 58.1649L45.3454 63.9258L52.072 69.2367C55.8595 67.7414 63.0595 63.6305 63.0595 63.6305C63.0595 63.6305 67.4798 56.1961 69.036 52.2258L63.9782 45.7102L58.0251 41.1399ZM41.0048 53.4633C34.2501 53.4633 28.7704 47.9883 28.7704 41.2289C28.7704 34.4742 34.2454 28.9945 41.0048 28.9945C47.7641 28.9945 53.2391 34.4695 53.2391 41.2289C53.2391 47.9883 47.7595 53.4633 41.0048 53.4633Z'
fill='#1967D2'
/>
<path
xmlns='http://www.w3.org/2000/svg'
d='M58.025 41.1401L69.0078 30.1573C70.3672 33.5839 71.1172 37.3198 71.1172 41.2292C71.1172 45.1104 70.3766 48.8183 69.036 52.2261L58.025 41.1401ZM12.9969 30.162C11.6422 33.5886 10.8875 37.3198 10.8875 41.2292C10.8875 45.0354 11.6 48.6683 12.8891 52.0198L23.9094 41.0745L12.9969 30.162ZM51.9969 13.1933C48.5891 11.8573 44.886 11.1167 41.0047 11.1167C37.1985 11.1167 33.561 11.8292 30.2047 13.1183L41.061 24.0495L51.9969 13.1933ZM29.9328 69.2323C33.3594 70.5917 37.0953 71.3417 41.0047 71.3417C44.9141 71.3417 48.6453 70.587 52.0719 69.2323L41 58.1651L29.9328 69.2323ZM69.036 52.2261C65.9891 59.9839 59.8203 66.1667 52.0719 69.2323L62.811 79.9714C64.2828 81.4433 66.6641 81.4433 68.136 79.9714L79.761 68.3464C81.2282 66.8792 81.2328 64.5026 79.7703 63.0308L69.036 52.2261ZM69.0078 30.1573L79.9766 19.1886C81.4485 17.7167 81.4485 15.3354 79.9766 13.8636L68.3516 2.23857C66.8844 0.771387 64.5078 0.766699 63.036 2.2292L51.9922 13.1933C59.7547 16.2401 65.9422 22.4089 69.0078 30.1573ZM12.8891 52.0198L2.03284 62.8011C0.551587 64.2683 0.551587 66.6589 2.02346 68.1354L13.8641 79.9761C15.336 81.4479 17.7172 81.4479 19.1891 79.9761L29.9328 69.2323C22.1141 66.1386 15.9078 59.8761 12.8891 52.0198ZM30.2047 13.1183L19.1985 2.03232C17.7313 0.551074 15.3406 0.551074 13.8641 2.02295L2.02346 13.8636C0.551587 15.3354 0.551587 17.7167 2.02346 19.1886L12.9969 30.162C16.0906 22.3479 22.3532 16.137 30.2047 13.1183Z'
fill='#4285F4'
/>
</svg>`}
/>
## 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 |
| --------- | ---- | ----------- |
| `output` | json | Vault API-Antwortdaten |
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
### `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 |
| --------- | ---- | ----------- |
| `output` | json | Vault API-Antwortdaten |
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
### `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 |
| --------- | ---- | ----------- |
| `output` | json | Vault-API-Antwortdaten |
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
### `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 | Type | Beschreibung |
| --------- | ---- | ----------- |
| `output` | json | Vault API-Antwortdaten |
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
### `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 | Type | Beschreibung |
| --------- | ---- | ----------- |
| `output` | json | Vault API-Antwortdaten |
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
### `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 | Type | Beschreibung |
| --------- | ---- | ----------- |
| `output` | json | Vault API-Antwortdaten |
| `file` | json | Heruntergeladene Exportdatei \(UserFile\) aus Ausführungsdateien |
## Hinweise
- Kategorie: `tools`
- Typ: `google_vault`

View File

@@ -0,0 +1,206 @@
---
title: Hunter io
description: Finden und verifizieren Sie professionelle E-Mail-Adressen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="hunter"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
viewBox='0 0 20 19'
fill='none'
xmlns='http://www.w3.org/2000/svg'
>
<path
d='M12.0671 8.43455C11.6625 8.55094 11.2164 8.55288 10.7992 8.53525C10.3141 8.51472 9.80024 8.45339 9.35223 8.25426C8.98359 8.09047 8.68787 7.79493 8.84262 7.36805C8.95175 7.06699 9.19361 6.79803 9.47319 6.64644C9.78751 6.4759 10.1329 6.50361 10.4474 6.65774C10.8005 6.83082 11.0942 7.11235 11.3604 7.3964C11.5 7.54536 11.6332 7.70002 11.7646 7.85617C11.8252 7.92801 12.2364 8.33865 12.0671 8.43455ZM18.7923 8.58131C18.17 8.43655 17.4348 8.4884 16.811 8.38867C15.8284 8.23146 14.3648 7.08576 13.5714 5.92122C13.0201 5.11202 12.757 4.28785 12.3356 3.28356C12.0415 2.58257 11.4001 0.365389 10.5032 1.40318C10.1339 1.83057 9.7204 3.23752 9.41837 3.2177C9.19467 3.26971 9.15818 2.83371 9.08739 2.64738C8.95886 2.30903 8.89071 1.9176 8.7185 1.59854C8.58086 1.34353 8.40014 1.03806 8.12337 0.91412C7.63027 0.660572 7.03575 1.42476 6.74072 2.33095C6.61457 2.81687 5.76653 3.75879 5.39721 3.9866C3.71684 5.02352 0.344233 6.11595 0.000262184 9.75358C-0.00114142 9.76867 0.000262182 9.81455 0.0573714 9.77323C0.459591 9.48197 5.02183 6.19605 2.09392 12.5476C0.300195 16.439 8.96062 18.917 9.40582 18.9271C9.46582 18.9284 9.46144 18.9011 9.46347 18.8832C10.1546 12.6724 16.9819 13.3262 18.5718 11.8387C20.1474 10.3649 20.1796 8.93816 18.7923 8.58131Z'
fill='#FA5320'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Hunter.io](https://hunter.io/) ist eine führende Plattform zum Finden und Verifizieren von professionellen E-Mail-Adressen, zum Entdecken von Unternehmen und zur Anreicherung von Kontaktdaten. Hunter.io bietet leistungsstarke APIs für Domainsuche, E-Mail-Suche, Verifizierung und Unternehmenserkennung und ist damit ein unverzichtbares Tool für Vertrieb, Recruiting und Geschäftsentwicklung.
Mit Hunter.io können Sie:
- **E-Mail-Adressen nach Domain finden:** Suchen Sie nach allen öffentlich verfügbaren E-Mail-Adressen, die mit einer bestimmten Unternehmensdomäne verknüpft sind.
- **Unternehmen entdecken:** Nutzen Sie erweiterte Filter und KI-gestützte Suche, um Unternehmen zu finden, die Ihren Kriterien entsprechen.
- **Eine bestimmte E-Mail-Adresse finden:** Ermitteln Sie die wahrscheinlichste E-Mail-Adresse einer Person bei einem Unternehmen anhand ihres Namens und der Domain.
- **E-Mail-Adressen verifizieren:** Überprüfen Sie die Zustellbarkeit und Gültigkeit jeder E-Mail-Adresse.
- **Unternehmensdaten anreichern:** Rufen Sie detaillierte Informationen über Unternehmen ab, einschließlich Größe, verwendeter Technologien und mehr.
In Sim ermöglicht die Hunter.io-Integration Ihren Agenten, programmatisch nach E-Mail-Adressen zu suchen und diese zu verifizieren, Unternehmen zu entdecken und Kontaktdaten mithilfe der Hunter.io-API anzureichern. Dies erlaubt Ihnen, Lead-Generierung, Kontaktanreicherung und E-Mail-Verifizierung direkt in Ihren Workflows zu automatisieren. Ihre Agenten können Hunter.io's Tools nutzen, um Outreach zu optimieren, Ihr CRM aktuell zu halten und intelligente Automatisierungsszenarien für Vertrieb, Recruiting und mehr zu ermöglichen.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integrieren Sie Hunter in den Workflow. Kann Domains durchsuchen, E-Mail-Adressen finden, E-Mail-Adressen verifizieren, Unternehmen entdecken, Unternehmen finden und E-Mail-Adressen zählen. Erfordert API-Schlüssel.
## Tools
### `hunter_discover`
Gibt Unternehmen zurück, die bestimmten Kriterien entsprechen, unter Verwendung der KI-gestützten Suche von Hunter.io.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Nein | Natürlichsprachliche Suchanfrage für Unternehmen |
| `domain` | string | Nein | Domain-Namen von Unternehmen zum Filtern |
| `headcount` | string | Nein | Unternehmensgrößenfilter \(z.B. "1-10", "11-50"\) |
| `company_type` | string | Nein | Art der Organisation |
| `technology` | string | Nein | Von Unternehmen verwendete Technologie |
| `apiKey` | string | Ja | Hunter.io API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `results` | array | Array von Unternehmen, die den Suchkriterien entsprechen, jeweils mit Domain, Name, Mitarbeiterzahl, Technologien und E-Mail-Anzahl |
### `hunter_domain_search`
Gibt alle gefundenen E-Mail-Adressen anhand eines bestimmten Domain-Namens mit Quellen zurück.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Domainname, nach dem E-Mail-Adressen gesucht werden sollen |
| `limit` | number | Nein | Maximale Anzahl zurückzugebender E-Mail-Adressen \(Standard: 10\) |
| `offset` | number | Nein | Anzahl der zu überspringenden E-Mail-Adressen |
| `type` | string | Nein | Filter für persönliche oder allgemeine E-Mails |
| `seniority` | string | Nein | Filter nach Seniorität: junior, senior oder executive |
| `department` | string | Nein | Filter nach bestimmten Abteilungen \(z.B. sales, marketing\) |
| `apiKey` | string | Ja | Hunter.io API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `domain` | string | Der gesuchte Domainname |
| `disposable` | boolean | Ob die Domain Wegwerf-E-Mail-Adressen akzeptiert |
| `webmail` | boolean | Ob die Domain ein Webmail-Anbieter ist |
| `accept_all` | boolean | Ob die Domain alle E-Mail-Adressen akzeptiert |
| `pattern` | string | Das von der Organisation verwendete E-Mail-Muster |
| `organization` | string | Der Name der Organisation |
| `description` | string | Beschreibung der Organisation |
| `industry` | string | Branche der Organisation |
| `twitter` | string | Twitter-Profil der Organisation |
| `facebook` | string | Facebook-Profil der Organisation |
| `linkedin` | string | LinkedIn-Profil der Organisation |
| `instagram` | string | Instagram-Profil der Organisation |
| `youtube` | string | YouTube-Kanal der Organisation |
| `technologies` | array | Array der von der Organisation verwendeten Technologien |
| `country` | string | Land, in dem die Organisation ansässig ist |
| `state` | string | Bundesland, in dem die Organisation ansässig ist |
| `city` | string | Stadt, in der die Organisation ansässig ist |
| `postal_code` | string | Postleitzahl der Organisation |
| `street` | string | Straßenadresse der Organisation |
| `emails` | array | Array der für die Domain gefundenen E-Mail-Adressen, jeweils mit Wert, Typ, Vertrauenswürdigkeit, Quellen und Personendetails |
### `hunter_email_finder`
Findet die wahrscheinlichste E-Mail-Adresse für eine Person anhand ihres Namens und der Unternehmensdomäne.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Unternehmensdomäne |
| `first_name` | string | Ja | Vorname der Person |
| `last_name` | string | Ja | Nachname der Person |
| `company` | string | Nein | Unternehmensname |
| `apiKey` | string | Ja | Hunter.io API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `email` | string | Die gefundene E-Mail-Adresse |
| `score` | number | Vertrauenswert für die gefundene E-Mail-Adresse |
| `sources` | array | Array von Quellen, in denen die E-Mail gefunden wurde, jede enthält domain, uri, extracted_on, last_seen_on und still_on_page |
| `verification` | object | Verifizierungsinformationen mit Datum und Status |
### `hunter_email_verifier`
Überprüft die Zustellbarkeit einer E-Mail-Adresse und liefert detaillierte Verifizierungsinformationen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `email` | string | Ja | Die zu überprüfende E-Mail-Adresse |
| `apiKey` | string | Ja | Hunter.io API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `result` | string | Zustellbarkeitsergebnis: zustellbar, nicht zustellbar oder riskant |
| `score` | number | Vertrauenswert für das Verifizierungsergebnis |
| `email` | string | Die überprüfte E-Mail-Adresse |
| `regexp` | boolean | Ob die E-Mail einem gültigen Regex-Muster entspricht |
| `gibberish` | boolean | Ob die E-Mail wie Kauderwelsch erscheint |
| `disposable` | boolean | Ob die E-Mail von einem Anbieter für Einweg-E-Mails stammt |
| `webmail` | boolean | Ob die E-Mail von einem Webmail-Anbieter stammt |
| `mx_records` | boolean | Ob MX-Einträge für die Domain existieren |
| `smtp_server` | boolean | Ob der SMTP-Server erreichbar ist |
| `smtp_check` | boolean | Ob die SMTP-Überprüfung erfolgreich war |
| `accept_all` | boolean | Ob die Domain alle E-Mail-Adressen akzeptiert |
| `block` | boolean | Ob die E-Mail blockiert ist |
| `status` | string | Verifizierungsstatus: gültig, ungültig, accept_all, webmail, disposable oder unknown |
| `sources` | array | Array von Quellen, in denen die E-Mail gefunden wurde |
### `hunter_companies_find`
Reichert Unternehmensdaten mithilfe des Domainnamens an.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Domain, für die Unternehmensdaten gefunden werden sollen |
| `apiKey` | string | Ja | Hunter.io API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `person` | object | Personeninformationen (undefiniert für companies_find-Tool) |
| `company` | object | Unternehmensinformationen einschließlich Name, Domain, Branche, Größe, Land, LinkedIn und Twitter |
### `hunter_email_count`
Gibt die Gesamtzahl der für eine Domain oder ein Unternehmen gefundenen E-Mail-Adressen zurück.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Nein | Domain, für die E-Mails gezählt werden sollen (erforderlich, wenn kein Unternehmen angegeben ist) |
| `company` | string | Nein | Unternehmensname, für den E-Mails gezählt werden sollen (erforderlich, wenn keine Domain angegeben ist) |
| `type` | string | Nein | Filter für nur persönliche oder generische E-Mails |
| `apiKey` | string | Ja | Hunter.io API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `total` | number | Gesamtzahl der gefundenen E-Mail-Adressen |
| `personal_emails` | number | Anzahl der gefundenen persönlichen E-Mail-Adressen |
| `generic_emails` | number | Anzahl der gefundenen generischen E-Mail-Adressen |
| `department` | object | Aufschlüsselung der E-Mail-Adressen nach Abteilung (Geschäftsführung, IT, Finanzen, Management, Vertrieb, Recht, Support, HR, Marketing, Kommunikation) |
| `seniority` | object | Aufschlüsselung der E-Mail-Adressen nach Hierarchieebene (Junior, Senior, Führungskraft) |
## Notizen
- Kategorie: `tools`
- Typ: `hunter`

View File

@@ -0,0 +1,79 @@
---
title: Bildgenerator
description: Bilder generieren
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="image_generator"
color="#4D5FFF"
icon={true}
iconSvg={`<svg className="block-icon"
viewBox='0 0 26 26'
fill='none'
xmlns='http://www.w3.org/2000/svg'
stroke='currentColor'
strokeWidth='2'
strokeLinecap='round'
strokeLinejoin='round'
>
<path d='M24.903 10.32C16.0897 9.10933 8.48966 15.6533 9.00033 24.3333M5.66699 7.66667C5.66699 8.37391 5.94794 9.05219 6.44804 9.55228C6.94814 10.0524 7.62641 10.3333 8.33366 10.3333C9.0409 10.3333 9.71918 10.0524 10.2193 9.55228C10.7194 9.05219 11.0003 8.37391 11.0003 7.66667C11.0003 6.95942 10.7194 6.28115 10.2193 5.78105C9.71918 5.28095 9.0409 5 8.33366 5C7.62641 5 6.94814 5.28095 6.44804 5.78105C5.94794 6.28115 5.66699 6.95942 5.66699 7.66667Z' />
<path d='M1 14.4213C4.70667 13.908 8.03333 15.6986 9.832 18.5546' />
<path d='M1 9.53333C1 6.54667 1 5.05333 1.58133 3.912C2.09265 2.90851 2.90851 2.09265 3.912 1.58133C5.05333 1 6.54667 1 9.53333 1H16.4667C19.4533 1 20.9467 1 22.088 1.58133C23.0915 2.09265 23.9073 2.90851 24.4187 3.912C25 5.05333 25 6.54667 25 9.53333V16.4667C25 19.4533 25 20.9467 24.4187 22.088C23.9073 23.0915 23.0915 23.9073 22.088 24.4187C20.9467 25 19.4533 25 16.4667 25H9.53333C6.54667 25 5.05333 25 3.912 24.4187C2.90851 23.9073 2.09265 23.0915 1.58133 22.088C1 20.9467 1 19.4533 1 16.4667V9.53333Z' />
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[DALL-E](https://openai.com/dall-e-3) ist OpenAIs fortschrittliches KI-System, das entwickelt wurde, um realistische Bilder und Kunst aus natürlichsprachlichen Beschreibungen zu generieren. Als hochmodernes Bildgenerierungsmodell kann DALL-E detaillierte und kreative Visualisierungen basierend auf Textaufforderungen erstellen und ermöglicht Nutzern, ihre Ideen in visuelle Inhalte umzuwandeln, ohne künstlerische Fähigkeiten zu benötigen.
Mit DALL-E können Sie:
- **Realistische Bilder generieren**: Fotorealistische Visualisierungen aus Textbeschreibungen erstellen
- **Konzeptionelle Kunst gestalten**: Abstrakte Ideen in visuelle Darstellungen umwandeln
- **Variationen produzieren**: Mehrere Interpretationen derselben Aufforderung generieren
- **Künstlerischen Stil steuern**: Künstlerische Stile, Medien und visuelle Ästhetik spezifizieren
- **Detaillierte Szenen erstellen**: Komplexe Szenen mit mehreren Elementen und Beziehungen beschreiben
- **Produkte visualisieren**: Produktmodelle und Designkonzepte generieren
- **Ideen illustrieren**: Schriftliche Konzepte in visuelle Illustrationen umwandeln
In Sim ermöglicht die DALL-E-Integration Ihren Agenten, Bilder programmatisch als Teil ihrer Arbeitsabläufe zu generieren. Dies erlaubt leistungsstarke Automatisierungsszenarien wie Content-Erstellung, visuelles Design und kreative Ideenfindung. Ihre Agenten können detaillierte Prompts formulieren, entsprechende Bilder generieren und diese visuellen Elemente in ihre Ausgaben oder nachgelagerte Prozesse einbinden. Diese Integration überbrückt die Lücke zwischen natürlicher Sprachverarbeitung und visueller Content-Erstellung, sodass Ihre Agenten nicht nur durch Text, sondern auch durch überzeugende Bilder kommunizieren können. Durch die Verbindung von Sim mit DALL-E können Sie Agenten erstellen, die visuelle Inhalte auf Abruf produzieren, Konzepte illustrieren, Design-Assets generieren und Benutzererfahrungen mit reichhaltigen visuellen Elementen verbessern - alles ohne menschliches Eingreifen im kreativen Prozess.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integrieren Sie den Bildgenerator in den Workflow. Kann Bilder mit DALL-E 3 oder GPT Image generieren. API-Schlüssel erforderlich.
## Tools
### `openai_image`
Bilder mit OpenAI generieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `model` | string | Ja | Das zu verwendende Modell \(gpt-image-1 oder dall-e-3\) |
| `prompt` | string | Ja | Eine Textbeschreibung des gewünschten Bildes |
| `size` | string | Ja | Die Größe der generierten Bilder \(1024x1024, 1024x1792 oder 1792x1024\) |
| `quality` | string | Nein | Die Qualität des Bildes \(standard oder hd\) |
| `style` | string | Nein | Der Stil des Bildes \(vivid oder natural\) |
| `background` | string | Nein | Die Hintergrundfarbe, nur für gpt-image-1 |
| `n` | number | Nein | Die Anzahl der zu generierenden Bilder \(1-10\) |
| `apiKey` | string | Ja | Ihr OpenAI API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Generierte Bilddaten |
## Hinweise
- Kategorie: `tools`
- Typ: `image_generator`

View File

@@ -0,0 +1,77 @@
---
title: Tools
description: Leistungsstarke tools zur verbesserung ihrer agentischen 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";
Tools sind leistungsstarke komponenten in Sim, die es ihren workflows ermöglichen, mit externen diensten zu interagieren, daten zu verarbeiten und spezialisierte aufgaben auszuführen. Sie erweitern die fähigkeiten ihrer agenten und workflows, indem sie zugang zu verschiedenen APIs und diensten bieten.
## Was ist ein Tool?
Ein tool ist eine spezialisierte komponente, die eine bestimmte funktionalität oder integration mit externen diensten bietet. Tools können verwendet werden, um im web zu suchen, mit datenbanken zu interagieren, bilder zu verarbeiten, text oder bilder zu generieren, über messaging-plattformen zu kommunizieren und vieles mehr.
## Verwendung von Tools in Workflows
Es gibt zwei hauptsächliche wege, tools in ihren Sim-workflows zu verwenden:
<Steps>
<Step>
<strong>Als eigenständige blöcke</strong>: Tools können als einzelne
blöcke auf der arbeitsfläche hinzugefügt werden, wenn sie deterministischen, direkten zugriff auf deren
funktionalität benötigen. Dies gibt ihnen präzise kontrolle darüber, wann und wie das tool
aufgerufen wird.
</Step>
<Step>
<strong>Als agenten-tools</strong>: Tools können zu agenten-blöcken hinzugefügt werden, indem
sie auf "Tools hinzufügen" klicken und die erforderlichen parameter konfigurieren. Dies ermöglicht
agenten, dynamisch zu entscheiden, welche tools basierend auf dem kontext und
den anforderungen der aufgabe verwendet werden sollen.
</Step>
</Steps>
## Tool-Konfiguration
Jedes tool erfordert eine spezifische konfiguration, um ordnungsgemäß zu funktionieren. Zu den gängigen konfigurationselementen gehören:
- **API-Schlüssel**: Viele tools erfordern authentifizierung durch API-schlüssel
- **Verbindungsparameter**: Endpunkte, datenbankidentifikatoren usw.
- **Eingabeformatierung**: Wie daten für das tool strukturiert werden sollten
- **Ausgabebehandlung**: Wie die ergebnisse des tools verarbeitet werden sollen
## Verfügbare Tools
Sim bietet eine vielfältige Sammlung von Tools für verschiedene Zwecke, darunter:
- **KI und Sprachverarbeitung**: OpenAI, ElevenLabs, Übersetzungsdienste
- **Suche und Recherche**: Google Search, Tavily, Exa, Perplexity
- **Dokumentenbearbeitung**: Google Docs, Google Sheets, Notion, Confluence
- **Medienverarbeitung**: Vision, Image Generator
- **Kommunikation**: Slack, WhatsApp, Twilio SMS, Gmail
- **Datenspeicherung**: Pinecone, Supabase, Airtable
- **Entwicklung**: GitHub
Jedes Tool verfügt über eine eigene Dokumentationsseite mit detaillierten Anweisungen zur Konfiguration und Verwendung.
## Tool-Ausgaben
Tools liefern typischerweise strukturierte Daten, die von nachfolgenden Blöcken in Ihrem Workflow verarbeitet werden können. Das Format dieser Daten variiert je nach Tool und Operation, enthält aber im Allgemeinen:
- Den Hauptinhalt oder das Ergebnis
- Metadaten über die Operation
- Statusinformationen
Informationen zum genauen Ausgabeformat finden Sie in der spezifischen Dokumentation jedes Tools.
## YAML-Konfiguration
Detaillierte Informationen zur YAML-Workflow-Konfiguration und -Syntax finden Sie in der [YAML-Workflow-Referenz](/yaml) Dokumentation. Diese umfasst umfassende Anleitungen für:
- **Block-Referenz-Syntax**: Wie Daten zwischen Blöcken verbunden und referenziert werden
- **Tool-Konfiguration**: Verwendung von Tools sowohl in eigenständigen Blöcken als auch in Agentenkonfigurationen
- **Umgebungsvariablen**: Sichere Handhabung von API-Schlüsseln und Anmeldedaten
- **Vollständige Beispiele**: Praxisnahe Workflow-Muster und Konfigurationen
Spezifische Tool-Parameter und Konfigurationsoptionen finden Sie auf der individuellen Dokumentationsseite jedes Tools.

View File

@@ -0,0 +1,92 @@
---
title: Jina
description: Konvertiere Website-Inhalte in Text
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="jina"
color="#333333"
icon={true}
iconSvg={`<svg className="block-icon"
viewBox='0 0 30 14'
fill='none'
xmlns='http://www.w3.org/2000/svg'
>
<path
d='M17.1516 5.25628C17.1724 5.25598 17.1932 5.25598 17.2146 5.25569C17.2831 5.2551 17.3514 5.2554 17.4197 5.25598C17.468 5.25569 17.5161 5.25569 17.5644 5.2554C17.6655 5.2554 17.7665 5.25569 17.8679 5.25628C17.9956 5.25686 18.1237 5.25657 18.2514 5.25569C19.3043 5.251 20.25 5.39426 21.0642 6.12112C21.0958 6.14632 21.1275 6.17122 21.1594 6.19612C21.8277 6.7885 22.2088 7.68733 22.2704 8.56624C22.278 8.73762 22.2777 8.90901 22.2768 9.08069C22.2771 9.1346 22.2771 9.1885 22.2771 9.24241C22.2774 9.35432 22.2771 9.46594 22.2768 9.57786C22.2762 9.72083 22.2765 9.8638 22.2771 10.0068C22.2774 10.1178 22.2774 10.2285 22.2771 10.3393C22.2771 10.3923 22.2771 10.445 22.2774 10.4978C22.2774 10.571 22.2771 10.6446 22.2765 10.7181C22.2768 10.7395 22.2771 10.7612 22.2771 10.7831C22.2753 10.9405 22.2408 11.0615 22.1335 11.1789C21.9882 11.292 21.8977 11.3102 21.7163 11.3108C21.6862 11.3108 21.6862 11.3108 21.6551 11.3111C21.5874 11.3114 21.5198 11.3114 21.4521 11.3114C21.4035 11.3114 21.3551 11.3116 21.3065 11.3116C21.1746 11.3122 21.0428 11.3122 20.9107 11.3125C20.8284 11.3125 20.746 11.3125 20.6637 11.3128C20.4059 11.3131 20.1481 11.3134 19.8903 11.3137C19.5926 11.3137 19.2953 11.3143 18.9976 11.3152C18.7676 11.3157 18.5376 11.316 18.3077 11.316C18.1703 11.316 18.0329 11.3163 17.8954 11.3169C17.7663 11.3172 17.6368 11.3172 17.5076 11.3172C17.4601 11.3169 17.4129 11.3172 17.3655 11.3175C17.3007 11.3178 17.2357 11.3178 17.1709 11.3175C17.1349 11.3175 17.0986 11.3175 17.0614 11.3175C16.933 11.3034 16.8343 11.2621 16.7385 11.1748C16.6243 11.0278 16.6067 10.9246 16.6067 10.7436C16.6064 10.7111 16.6064 10.7111 16.6064 10.678C16.6061 10.605 16.6058 10.5321 16.6058 10.4594C16.6055 10.4073 16.6055 10.3551 16.6052 10.303C16.6046 10.1313 16.6043 9.95989 16.604 9.78821C16.6037 9.72932 16.6037 9.67014 16.6037 9.61126C16.6032 9.33382 16.6026 9.05637 16.6023 8.77893C16.602 8.45872 16.6014 8.1385 16.6002 7.81858C16.5994 7.57102 16.5988 7.32346 16.5988 7.07591C16.5988 6.92825 16.5985 6.7803 16.5976 6.63264C16.597 6.49348 16.597 6.35432 16.5973 6.21516C16.5973 6.16419 16.597 6.11321 16.5967 6.06223C16.5929 5.56565 16.5929 5.56565 16.7283 5.3887C16.8583 5.27737 16.9811 5.25657 17.1516 5.25628Z'
fill='currentColor'
/>
<path
d='M28.4893 5.83187C28.5341 5.86966 28.5786 5.90745 28.6229 5.94554C28.6407 5.95931 28.6586 5.97337 28.6771 5.98773C29.2217 6.42161 29.5281 7.12093 29.6483 7.79124C29.6509 7.83665 29.6524 7.88206 29.6527 7.92777C29.6529 7.96761 29.6529 7.96761 29.6532 8.00804C29.6532 8.03704 29.6535 8.06575 29.6535 8.09534C29.6538 8.12611 29.6538 8.15657 29.6541 8.18821C29.6547 8.28929 29.655 8.39036 29.6553 8.49144C29.6553 8.52601 29.6556 8.56058 29.6556 8.59603C29.6562 8.77884 29.6568 8.96165 29.6571 9.14446C29.6573 9.33314 29.6582 9.52181 29.6594 9.71077C29.6603 9.85579 29.6606 10.0011 29.6606 10.1461C29.6609 10.2159 29.6612 10.2856 29.6617 10.355C29.6623 10.4523 29.6623 10.5498 29.662 10.6471C29.6626 10.6902 29.6626 10.6902 29.6632 10.7341C29.662 10.9002 29.6474 11.0025 29.5311 11.1311C29.3805 11.2661 29.2481 11.265 29.0556 11.2632C29.0257 11.2635 28.9958 11.2638 28.9654 11.2638C28.8669 11.2644 28.7685 11.2641 28.67 11.2638C28.6012 11.2638 28.5323 11.2638 28.4635 11.2641C28.3191 11.2641 28.1746 11.2641 28.0302 11.2635C27.8462 11.2626 27.6625 11.2632 27.4785 11.2638C27.3362 11.2644 27.1938 11.2641 27.0517 11.2638C26.9837 11.2638 26.916 11.2638 26.8484 11.2641C25.9759 11.2667 25.1834 11.0508 24.5488 10.4268C24.5201 10.3981 24.4914 10.3691 24.4627 10.3401C24.4384 10.3155 24.4138 10.2909 24.3889 10.2657C23.8404 9.68851 23.5985 8.90687 23.6087 8.12435C23.6301 7.32191 23.9899 6.59681 24.5506 6.03343C25.6158 5.02562 27.3318 4.91839 28.4893 5.83187Z'
fill='currentColor'
/>
<path
d='M8.6422 5.41793C8.7591 5.5858 8.7424 5.76246 8.74093 5.95904C8.74122 5.99566 8.74123 6.03228 8.74123 6.07037C8.74152 6.17086 8.74122 6.27164 8.74093 6.37213C8.74064 6.47818 8.74064 6.58424 8.74064 6.69C8.74093 6.86842 8.74035 7.04713 8.74005 7.22554C8.73947 7.43004 8.73917 7.63482 8.73947 7.83961C8.73947 8.03765 8.73947 8.23599 8.73917 8.43404C8.73888 8.51783 8.73888 8.60133 8.73888 8.68511C8.73947 9.82125 8.63869 10.9436 7.85119 11.8339C7.82951 11.8588 7.80753 11.8837 7.78527 11.9095C7.72023 11.9831 7.65402 12.0551 7.58751 12.1269C7.57199 12.1442 7.55675 12.1618 7.54064 12.1796C6.93712 12.8277 5.99757 13.1886 5.12746 13.2276C5.10197 13.2291 5.07619 13.2302 5.04982 13.2314C4.98771 13.2346 4.92531 13.2373 4.8629 13.2402C4.86085 12.0302 4.86085 10.8203 4.86261 9.61031C4.86291 9.44918 4.8629 9.28804 4.8632 9.12691C4.86349 8.63941 4.86466 8.15191 4.86671 7.6647C4.86789 7.45552 4.86847 7.24634 4.86876 7.03717C4.86876 6.84058 4.86964 6.64371 4.87082 6.44713C4.8714 6.37506 4.8714 6.30299 4.8714 6.23092C4.87111 6.13248 4.87199 6.03404 4.87287 5.9356C4.87257 5.90718 4.87228 5.87877 4.87199 5.84947C4.87521 5.66051 4.91417 5.53306 5.03869 5.38863C5.1673 5.27232 5.31642 5.28756 5.48107 5.28756C5.51066 5.28726 5.54025 5.28697 5.57101 5.28668C5.66886 5.28551 5.76701 5.28521 5.86515 5.28463C5.93341 5.28404 6.00167 5.28345 6.06994 5.28287C6.2132 5.2817 6.35617 5.28082 6.49914 5.27994C6.68253 5.27906 6.86564 5.27759 7.04874 5.27584C7.18996 5.27467 7.33087 5.27349 7.47179 5.27261C7.53947 5.27203 7.60685 5.27174 7.67453 5.27115C7.76886 5.27027 7.86349 5.26998 7.95812 5.26939C7.98566 5.2691 8.01349 5.26881 8.0422 5.26881C8.4632 5.26734 8.4632 5.26734 8.6422 5.41793Z'
fill='currentColor'
/>
<path
d='M11.2636 5.26714C11.2897 5.26685 11.3155 5.26685 11.3421 5.26655C11.3705 5.26655 11.3987 5.26626 11.428 5.26626C11.4578 5.26597 11.4877 5.26597 11.5185 5.26567C11.6175 5.26509 11.7165 5.26479 11.8158 5.2645C11.8665 5.26421 11.8665 5.26421 11.9184 5.26421C12.0974 5.26362 12.2767 5.26304 12.456 5.26274C12.6408 5.26245 12.8257 5.26157 13.0109 5.2604C13.1532 5.25952 13.2953 5.25923 13.4377 5.25923C13.506 5.25894 13.5742 5.25864 13.6422 5.25806C13.7377 5.25747 13.8332 5.25747 13.9287 5.25776C13.9569 5.25718 13.985 5.25688 14.0137 5.25659C14.1895 5.25776 14.3278 5.28501 14.4731 5.38872C14.6096 5.55659 14.6231 5.68052 14.6234 5.89233C14.6234 5.91343 14.6237 5.93481 14.6237 5.95679C14.6239 6.02798 14.6237 6.09917 14.6237 6.17036C14.6239 6.22134 14.6239 6.27261 14.6239 6.32358C14.6242 6.46216 14.6245 6.60103 14.6245 6.73989C14.6245 6.85562 14.6245 6.97134 14.6245 7.08735C14.6248 7.36069 14.6248 7.63403 14.6248 7.90708C14.6248 8.18921 14.6251 8.47105 14.6257 8.75288C14.626 8.99487 14.6263 9.23687 14.6263 9.47886C14.6263 9.62358 14.6263 9.76802 14.6266 9.91245C14.6269 10.0487 14.6269 10.1846 14.6266 10.3206C14.6266 10.3704 14.6266 10.4202 14.6269 10.47C14.6272 10.5382 14.6269 10.6065 14.6269 10.6745C14.6269 10.7128 14.6269 10.7509 14.6269 10.7902C14.616 10.9469 14.5935 11.0638 14.4895 11.1839C14.2952 11.3498 14.1092 11.3404 13.8655 11.3401C13.8233 11.3404 13.8233 11.3404 13.7802 11.3404C13.687 11.3407 13.5939 11.3407 13.501 11.341C13.436 11.341 13.3712 11.341 13.3065 11.3413C13.1705 11.3413 13.0346 11.3413 12.8987 11.3413C12.7249 11.3413 12.5509 11.3418 12.3772 11.3421C12.2433 11.3424 12.1091 11.3427 11.9752 11.3427C11.9114 11.3427 11.8472 11.3427 11.783 11.343C11.6934 11.3433 11.6034 11.3433 11.5138 11.343C11.4745 11.3433 11.4745 11.3433 11.4341 11.3436C11.2425 11.3424 11.0609 11.3348 10.9044 11.2132C10.7761 11.0486 10.7412 10.9103 10.7412 10.7035C10.7409 10.6821 10.7409 10.6607 10.7406 10.6387C10.7404 10.5672 10.7406 10.496 10.7409 10.4249C10.7409 10.3736 10.7406 10.322 10.7404 10.2708C10.7401 10.1319 10.7404 9.99272 10.7406 9.85386C10.7406 9.70796 10.7406 9.56235 10.7404 9.41675C10.7404 9.17183 10.7404 8.9272 10.7409 8.68257C10.7412 8.40015 10.7412 8.11743 10.7406 7.83472C10.7404 7.59185 10.7404 7.34897 10.7404 7.1061C10.7406 6.96108 10.7406 6.81636 10.7404 6.67134C10.7401 6.53511 10.7404 6.39858 10.7406 6.26235C10.7409 6.21255 10.7409 6.16245 10.7406 6.11265C10.7404 6.04409 10.7406 5.97583 10.7412 5.90757C10.7412 5.86919 10.7412 5.8311 10.7412 5.79185C10.7582 5.62397 10.7963 5.47515 10.9264 5.36118C11.0421 5.28325 11.1262 5.26802 11.2636 5.26714Z'
fill='currentColor'
/>
<path
d='M3.58833 9.8857C3.97827 10.2715 4.18628 10.7596 4.20093 11.3066C4.18452 11.8662 3.96245 12.3628 3.56226 12.7527C3.194 13.0776 2.70064 13.2692 2.20523 13.2466C2.18326 13.2446 2.16158 13.2425 2.13902 13.2402C2.11031 13.2376 2.08159 13.2349 2.05201 13.232C1.51617 13.1658 1.08199 12.9168 0.732767 12.5078C0.370071 12.0132 0.294193 11.4762 0.364505 10.8783C0.476126 10.3738 0.798392 9.944 1.23081 9.66598C1.99693 9.22125 2.9148 9.30006 3.58833 9.8857Z'
fill='currentColor'
/>
<path
d='M12.6714 0.74873C12.6995 0.748437 12.7273 0.748145 12.756 0.747559C13.2318 0.749609 13.693 0.952637 14.0349 1.28105C14.3838 1.6335 14.5947 2.0791 14.6 2.57627C14.5965 3.14111 14.4632 3.62246 14.063 4.04111C13.6912 4.40293 13.2008 4.59365 12.686 4.60859C12.1434 4.59453 11.6864 4.40234 11.2941 4.02969C10.9086 3.62305 10.7357 3.13232 10.7466 2.57598C10.7659 2.08145 10.9883 1.60625 11.3384 1.25791C11.7245 0.919824 12.1578 0.742578 12.6714 0.74873Z'
fill='currentColor'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Jina AI](https://jina.ai/) ist ein leistungsstarkes Content-Extraktionstool, das sich nahtlos in Sim integriert, um Webinhalte in sauberen, lesbaren Text umzuwandeln. Diese Integration ermöglicht es Entwicklern, Webinhaltsverarbeitungsfunktionen einfach in ihre agentischen Workflows einzubinden.
Jina AI Reader ist darauf spezialisiert, die relevantesten Inhalte von Webseiten zu extrahieren, indem Unordnung, Werbung und Formatierungsprobleme entfernt werden, um sauberen, strukturierten Text zu erzeugen, der für Sprachmodelle und andere Textverarbeitungsaufgaben optimiert ist.
Mit der Jina AI-Integration in Sim können Sie:
- **Saubere Inhalte extrahieren** von jeder Webseite, indem Sie einfach eine URL angeben
- **Komplexe Web-Layouts** in strukturierten, lesbaren Text verarbeiten
- **Wichtigen Kontext beibehalten**, während unnötige Elemente entfernt werden
- **Webinhalte vorbereiten** für die weitere Verarbeitung in Ihren Agenten-Workflows
- **Rechercheaufgaben optimieren**, indem Webinformationen schnell in nutzbare Daten umgewandelt werden
Diese Integration ist besonders wertvoll für die Erstellung von Agenten, die Informationen aus dem Web sammeln und verarbeiten, Recherchen durchführen oder Online-Inhalte als Teil ihres Workflows analysieren müssen.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisung
Integrieren Sie Jina in den Workflow. Extrahiert Inhalte von Websites. Erfordert API-Schlüssel.
## Tools
### `jina_read_url`
Extrahieren und verarbeiten Sie Webinhalte in sauberen, LLM-freundlichen Text mit Jina AI Reader. Unterstützt fortschrittliches Content-Parsing, Link-Sammlung und mehrere Ausgabeformate mit konfigurierbaren Verarbeitungsoptionen.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `url` | string | Ja | Die URL, die gelesen und in Markdown konvertiert werden soll |
| `useReaderLMv2` | boolean | Nein | Ob ReaderLM-v2 für bessere Qualität verwendet werden soll |
| `gatherLinks` | boolean | Nein | Ob alle Links am Ende gesammelt werden sollen |
| `jsonResponse` | boolean | Nein | Ob die Antwort im JSON-Format zurückgegeben werden soll |
| `apiKey` | string | Ja | Ihr Jina AI API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Der extrahierte Inhalt von der URL, verarbeitet in sauberen, LLM-freundlichen Text |
## Hinweise
- Kategorie: `tools`
- Typ: `jina`

View File

@@ -0,0 +1,140 @@
---
title: Jira
description: Mit Jira interagieren
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="jira"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 30 30'
focusable='false'
aria-hidden='true'
>
<path
fill='#1868DB'
d='M11.034 21.99h-2.22c-3.346 0-5.747-2.05-5.747-5.052h11.932c.619 0 1.019.44 1.019 1.062v12.007c-2.983 0-4.984-2.416-4.984-5.784zm5.893-5.967h-2.219c-3.347 0-5.748-2.013-5.748-5.015h11.933c.618 0 1.055.402 1.055 1.025V24.04c-2.983 0-5.02-2.416-5.02-5.784zm5.93-5.93h-2.219c-3.347 0-5.748-2.05-5.748-5.052h11.933c.618 0 1.018.439 1.018 1.025v12.007c-2.983 0-4.984-2.416-4.984-5.784z'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Jira](https://www.atlassian.com/jira) ist eine führende Projektmanagement- und Issue-Tracking-Plattform, die Teams dabei hilft, agile Softwareentwicklungsprojekte effektiv zu planen, zu verfolgen und zu verwalten. Als Teil der Atlassian-Suite hat sich Jira zum Industriestandard für Softwareentwicklungsteams und Projektmanagement-Fachleute weltweit entwickelt.
Jira bietet ein umfassendes Set an Werkzeugen für die Verwaltung komplexer Projekte durch sein flexibles und anpassbares Workflow-System. Mit seinen robusten API- und Integrationsfähigkeiten ermöglicht Jira Teams, ihre Entwicklungsprozesse zu optimieren und eine klare Übersicht über den Projektfortschritt zu behalten.
Zu den Hauptfunktionen von Jira gehören:
- Agiles Projektmanagement: Unterstützung für Scrum- und Kanban-Methoden mit anpassbaren Boards und Workflows
- Issue-Tracking: Ausgeklügeltes Tracking-System für Bugs, Stories, Epics und Tasks mit detaillierter Berichterstattung
- Workflow-Automatisierung: Leistungsstarke Automatisierungsregeln zur Optimierung wiederkehrender Aufgaben und Prozesse
- Erweiterte Suche: JQL (Jira Query Language) für komplexe Issue-Filterung und Berichterstattung
In Sim ermöglicht die Jira-Integration Ihren Agenten eine nahtlose Interaktion mit Ihrem Projektmanagement-Workflow. Dies schafft Möglichkeiten für automatisierte Issue-Erstellung, -Aktualisierung und -Verfolgung als Teil Ihrer KI-Workflows. Die Integration ermöglicht es Agenten, Jira-Issues programmatisch zu erstellen, abzurufen und zu aktualisieren, was automatisierte Projektmanagement-Aufgaben erleichtert und sicherstellt, dass wichtige Informationen ordnungsgemäß verfolgt und dokumentiert werden. Durch die Verbindung von Sim mit Jira können Sie intelligente Agenten erstellen, die die Projektübersicht aufrechterhalten und gleichzeitig Routine-Projektmanagementaufgaben automatisieren, die Teamproduktivität steigern und eine konsistente Projektverfolgung gewährleisten.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integriert Jira in den Workflow. Kann Issues lesen, schreiben und aktualisieren. Erfordert OAuth.
## Tools
### `jira_retrieve`
Ruft detaillierte Informationen zu einem bestimmten Jira-Issue ab
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `projectId` | string | Nein | Jira-Projekt-ID \(optional; nicht erforderlich, um ein einzelnes Issue abzurufen\). |
| `issueKey` | string | Ja | Jira-Issue-Key zum Abrufen \(z.B. PROJ-123\) |
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Jira-Issue-Details mit Issue-Key, Zusammenfassung, Beschreibung, Erstellungs- und Aktualisierungszeitstempeln |
### `jira_update`
Ein Jira-Issue aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain \(z.B. ihrfirma.atlassian.net\) |
| `projectId` | string | Nein | Jira-Projekt-ID, in der Issues aktualisiert werden sollen. Wenn nicht angegeben, werden alle Issues abgerufen. |
| `issueKey` | string | Ja | Jira-Issue-Key zum Aktualisieren |
| `summary` | string | Nein | Neue Zusammenfassung für das Issue |
| `description` | string | Nein | Neue Beschreibung für das Issue |
| `status` | string | Nein | Neuer Status für das Issue |
| `priority` | string | Nein | Neue Priorität für das Issue |
| `assignee` | string | Nein | Neuer Bearbeiter für das Issue |
| `cloudId` | string | Nein | Jira Cloud ID für die Instanz. Wenn nicht angegeben, wird sie über die Domain abgerufen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Aktualisierte Jira-Issue-Details mit Zeitstempel, Issue-Key, Zusammenfassung und Erfolgsstatus |
### `jira_write`
Ein Jira-Issue erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain (z.B. ihrfirma.atlassian.net) |
| `projectId` | string | Ja | Projekt-ID für das Issue |
| `summary` | string | Ja | Zusammenfassung für das Issue |
| `description` | string | Nein | Beschreibung für das Issue |
| `priority` | string | Nein | Priorität für das Issue |
| `assignee` | string | Nein | Bearbeiter für das Issue |
| `cloudId` | string | Nein | Jira Cloud-ID für die Instanz. Wenn nicht angegeben, wird sie anhand der Domain abgerufen. |
| `issueType` | string | Ja | Art des zu erstellenden Issues (z.B. Task, Story) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Erstellte Jira-Issue-Details mit Zeitstempel, Issue-Key, Zusammenfassung, Erfolgsstatus und URL |
### `jira_bulk_read`
Mehrere Jira-Issues in Masse abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `domain` | string | Ja | Ihre Jira-Domain (z.B. ihrfirma.atlassian.net) |
| `projectId` | string | Ja | Jira-Projekt-ID |
| `cloudId` | string | Nein | Jira-Cloud-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | array | Array von Jira-Issues mit Zusammenfassung, Beschreibung, Erstellungs- und Aktualisierungszeitstempeln |
## Hinweise
- Kategorie: `tools`
- Typ: `jira`

View File

@@ -0,0 +1,121 @@
---
title: Wissen
description: Vektorsuche verwenden
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="knowledge"
color="#00B0B0"
icon={true}
iconSvg={`<svg className="block-icon"
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 24 24'
fill='none'
stroke='currentColor'
strokeWidth='1.5'
strokeLinecap='round'
strokeLinejoin='round'
>
<path d='M21 10V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l2-1.14' />
<path d='m7.5 4.27 9 5.15' />
<polyline points='3.29 7 12 12 20.71 7' />
<line x1='12' x2='12' y1='22' y2='12' />
<circle cx='18.5' cy='15.5' r='2.5' />
<path d='M20.27 17.27 22 19' />
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
Die Wissensdatenbank von Sim ist eine leistungsstarke native Funktion, die es Ihnen ermöglicht, benutzerdefinierte Wissensdatenbanken direkt innerhalb der Plattform zu erstellen, zu verwalten und abzufragen. Mit fortschrittlicher KI-Embedding-Technologie und Vektorsuche ermöglicht der Wissensdatenbank-Block den Aufbau intelligenter Suchfunktionen in Ihre Workflows, wodurch relevante Informationen in Ihrer Organisation leicht zu finden und zu nutzen sind.
Das Wissensdatenbank-System bietet eine umfassende Lösung für die Verwaltung von Organisationswissen durch seine flexible und skalierbare Architektur. Mit den integrierten Vektorsuchfunktionen können Teams semantische Suchen durchführen, die Bedeutung und Kontext verstehen und über herkömmliche Stichwortsuche hinausgehen.
Zu den wichtigsten Funktionen der Wissensdatenbank gehören:
- Semantische Suche: Fortschrittliche KI-gestützte Suche, die Bedeutung und Kontext versteht, nicht nur Schlüsselwörter
- Vektor-Embeddings: Automatische Umwandlung von Text in hochdimensionale Vektoren für intelligentes Ähnlichkeitsmatching
- Benutzerdefinierte Wissensdatenbanken: Erstellung und Verwaltung mehrerer Wissensdatenbanken für verschiedene Zwecke oder Abteilungen
- Flexible Inhaltstypen: Unterstützung verschiedener Dokumentformate und Inhaltstypen
- Echtzeit-Updates: Sofortige Indexierung neuer Inhalte für unmittelbare Durchsuchbarkeit
In Sim ermöglicht der Knowledge Base-Block Ihren Agenten, intelligente semantische Suchen über Ihre benutzerdefinierten Wissensdatenbanken durchzuführen. Dies schafft Möglichkeiten für automatisierte Informationsabrufe, Inhaltsempfehlungen und Wissensentdeckung als Teil Ihrer KI-Workflows. Die Integration ermöglicht Agenten, relevante Informationen programmatisch zu suchen und abzurufen, was automatisierte Wissensmanagement-Aufgaben erleichtert und sicherstellt, dass wichtige Informationen leicht zugänglich sind. Durch die Nutzung des Knowledge Base-Blocks können Sie intelligente Agenten erstellen, die die Informationsfindung verbessern und gleichzeitig routinemäßige Wissensmanagement-Aufgaben automatisieren, die Teameffizienz steigern und einen konsistenten Zugang zu organisatorischem Wissen gewährleisten.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integrieren Sie Wissen in den Workflow. Kann suchen, Chunks hochladen und Dokumente erstellen.
## Tools
### `knowledge_search`
Suche nach ähnlichen Inhalten in einer Wissensdatenbank mittels Vektorähnlichkeit
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `knowledgeBaseId` | string | Ja | ID der zu durchsuchenden Wissensdatenbank |
| `query` | string | Nein | Suchanfragentext \(optional bei Verwendung von Tag-Filtern\) |
| `topK` | number | Nein | Anzahl der ähnlichsten Ergebnisse, die zurückgegeben werden sollen \(1-100\) |
| `tagFilters` | any | Nein | Array von Tag-Filtern mit tagName- und tagValue-Eigenschaften |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `results` | array | Array von Suchergebnissen aus der Wissensdatenbank |
### `knowledge_upload_chunk`
Einen neuen Chunk zu einem Dokument in einer Wissensdatenbank hochladen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `knowledgeBaseId` | string | Ja | ID der Wissensdatenbank, die das Dokument enthält |
| `documentId` | string | Ja | ID des Dokuments, in das der Chunk hochgeladen werden soll |
| `content` | string | Ja | Inhalt des hochzuladenden Chunks |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `data` | object | Informationen über den hochgeladenen Chunk |
### `knowledge_create_document`
Ein neues Dokument in einer Wissensdatenbank erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `knowledgeBaseId` | string | Ja | ID der Wissensdatenbank, die das Dokument enthält |
| `name` | string | Ja | Name des Dokuments |
| `content` | string | Ja | Inhalt des Dokuments |
| `tag1` | string | Nein | Tag 1-Wert für das Dokument |
| `tag2` | string | Nein | Tag 2-Wert für das Dokument |
| `tag3` | string | Nein | Tag 3-Wert für das Dokument |
| `tag4` | string | Nein | Tag 4-Wert für das Dokument |
| `tag5` | string | Nein | Tag 5-Wert für das Dokument |
| `tag6` | string | Nein | Tag 6-Wert für das Dokument |
| `tag7` | string | Nein | Tag 7-Wert für das Dokument |
| `documentTagsData` | array | Nein | Strukturierte Tag-Daten mit Namen, Typen und Werten |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `data` | object | Informationen über das erstellte Dokument |
## Hinweise
- Kategorie: `blocks`
- Typ: `knowledge`

View File

@@ -0,0 +1,84 @@
---
title: Linear
description: Issues in Linear lesen und erstellen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="linear"
color="#5E6AD2"
icon={true}
iconSvg={`<svg className="block-icon"
xmlns='http://www.w3.org/2000/svg'
fill='currentColor'
viewBox='0 0 100 100'
>
<path
fill='currentColor'
d='M1.22541 61.5228c-.2225-.9485.90748-1.5459 1.59638-.857L39.3342 97.1782c.6889.6889.0915 1.8189-.857 1.5964C20.0515 94.4522 5.54779 79.9485 1.22541 61.5228ZM.00189135 46.8891c-.01764375.2833.08887215.5599.28957165.7606L52.3503 99.7085c.2007.2007.4773.3075.7606.2896 2.3692-.1476 4.6938-.46 6.9624-.9259.7645-.157 1.0301-1.0963.4782-1.6481L2.57595 39.4485c-.55186-.5519-1.49117-.2863-1.648174.4782-.465915 2.2686-.77832 4.5932-.92588465 6.9624ZM4.21093 29.7054c-.16649.3738-.08169.8106.20765 1.1l64.77602 64.776c.2894.2894.7262.3742 1.1.2077 1.7861-.7956 3.5171-1.6927 5.1855-2.684.5521-.328.6373-1.0867.1832-1.5407L8.43566 24.3367c-.45409-.4541-1.21271-.3689-1.54074.1832-.99132 1.6684-1.88843 3.3994-2.68399 5.1855ZM12.6587 18.074c-.3701-.3701-.393-.9637-.0443-1.3541C21.7795 6.45931 35.1114 0 49.9519 0 77.5927 0 100 22.4073 100 50.0481c0 14.8405-6.4593 28.1724-16.7199 37.3375-.3903.3487-.984.3258-1.3542-.0443L12.6587 18.074Z'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Linear](https://linear.app) ist eine führende Projektmanagement- und Issue-Tracking-Plattform, die Teams dabei hilft, ihre Arbeit effektiv zu planen, zu verfolgen und zu verwalten. Als modernes Projektmanagement-Tool hat Linear bei Softwareentwicklungsteams und Projektmanagement-Fachleuten aufgrund seiner übersichtlichen Benutzeroberfläche und leistungsstarken Funktionen zunehmend an Beliebtheit gewonnen.
Linear bietet ein umfassendes Set an Tools für die Verwaltung komplexer Projekte durch sein flexibles und anpassbares Workflow-System. Mit seinen robusten API- und Integrationsfähigkeiten ermöglicht Linear Teams, ihre Entwicklungsprozesse zu optimieren und eine klare Übersicht über den Projektfortschritt zu behalten.
Zu den Hauptfunktionen von Linear gehören:
- Agiles Projektmanagement: Unterstützung für Scrum- und Kanban-Methoden mit anpassbaren Boards und Workflows
- Issue-Tracking: Ausgeklügeltes Tracking-System für Bugs, Stories, Epics und Tasks mit detaillierter Berichterstattung
- Workflow-Automatisierung: Leistungsstarke Automatisierungsregeln zur Optimierung wiederkehrender Aufgaben und Prozesse
- Erweiterte Suche: Komplexe Filter- und Berichtsfunktionen für effizientes Issue-Management
In Sim ermöglicht die Linear-Integration Ihren Agenten eine nahtlose Interaktion mit Ihrem Projektmanagement-Workflow. Dies schafft Möglichkeiten für automatisierte Issue-Erstellung, -Aktualisierungen und -Tracking als Teil Ihrer KI-Workflows. Die Integration ermöglicht es Agenten, bestehende Issues zu lesen und neue programmatisch zu erstellen, was automatisierte Projektmanagement-Aufgaben erleichtert und sicherstellt, dass wichtige Informationen ordnungsgemäß verfolgt und dokumentiert werden. Durch die Verbindung von Sim mit Linear können Sie intelligente Agenten entwickeln, die die Projektübersicht aufrechterhalten und gleichzeitig Routine-Projektmanagement-Aufgaben automatisieren, die Teamproduktivität steigern und ein konsistentes Projekt-Tracking gewährleisten.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integriert Linear in den Workflow. Kann Tickets lesen und erstellen. Erfordert OAuth.
## Tools
### `linear_read_issues`
Tickets von Linear abrufen und filtern
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Ja | Linear Team-ID |
| `projectId` | string | Ja | Linear Projekt-ID |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `issues` | array | Array von Tickets aus dem angegebenen Linear Team und Projekt, jedes enthält id, title, description, state, teamId und projectId |
### `linear_create_issue`
Ein neues Ticket in Linear erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Ja | Linear Team-ID |
| `projectId` | string | Ja | Linear Projekt-ID |
| `title` | string | Ja | Ticket-Titel |
| `description` | string | Nein | Ticket-Beschreibung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `issue` | object | Das erstellte Ticket mit id, title, description, state, teamId und projectId |
## Hinweise
- Kategorie: `tools`
- Typ: `linear`

View File

@@ -0,0 +1,72 @@
---
title: Linkup
description: Durchsuche das Web mit Linkup
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="linkup"
color="#D6D3C7"
icon={true}
iconSvg={`<svg className="block-icon"
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 24 24'
fill='none'
>
<path
d='M20.2 14.1c-.4-.3-1.6-.4-2.9-.2.5-1.4 1.3-3.9.1-5-.6-.5-1.5-.7-2.6-.5-.3 0-.6.1-1 .2-1.1-1.6-2.4-2.5-3.8-2.5-1.6 0-3.1 1-4.1 2.9-1.2 2.1-1.9 5.1-1.9 8.8v.03l.4.3c3-.9 7.5-2.3 10.7-2.9 0 .9.1 1.9.1 2.8v.03l.4.3c.1 0 5.4-1.7 5.3-3.3 0-.2-.1-.5-.3-.7zM19.9 14.7c.03.4-1.7 1.4-4 2.3.5-.7 1-1.6 1.3-2.5 1.4-.1 2.4-.1 2.7.2zM16.4 14.6c-.3.7-.7 1.4-1.2 2-.02-.6-.1-1.2-.2-1.8.4-.1.9-.1 1.4-.2zM16.5 9.4c.8.7.9 2.4.1 5.1-.5.1-1 .1-1.5.2-.3-2-.9-3.8-1.7-5.3.3-.1.6-.2.8-.2.9-.1 1.7.05 2.3.2zM9.5 6.8c1.2 0 2.3.7 3.2 2.1-2.8 1.1-5.9 3.4-8.4 7.8.2-5.1 1.9-9.9 5.2-9.9zM4.7 17c3.4-4.9 6.4-6.8 8.4-7.8.7 1.3 1.2 2.9 1.5 4.8-3.2.6-7.3 1.8-9.9 3z'
fill='currentColor'
stroke='currentColor'
strokeWidth='0.5'
strokeLinejoin='round'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Linkup](https://linkup.so) ist ein leistungsstarkes Web-Suchwerkzeug, das sich nahtlos in Sim integrieren lässt und es deinen KI-Agenten ermöglicht, auf aktuelle Informationen aus dem Web mit korrekter Quellenangabe zuzugreifen.
Linkup verbessert deine KI-Agenten, indem es ihnen die Möglichkeit gibt, im Web nach aktuellen Informationen zu suchen. Bei der Integration in das Toolkit deines Agenten:
- **Echtzeit-Informationszugriff**: Agenten können die neuesten Informationen aus dem Web abrufen und so ihre Antworten aktuell und relevant halten.
- **Quellenangabe**: Alle Informationen werden mit korrekten Zitaten versehen, was Transparenz und Glaubwürdigkeit gewährleistet.
- **Einfache Implementierung**: Füge Linkup mit minimaler Konfiguration zum Werkzeugkasten deines Agenten hinzu.
- **Kontextbewusstsein**: Agenten können Webinformationen nutzen und dabei ihre Persönlichkeit und ihren Gesprächsstil beibehalten.
Um Linkup in deinem Agenten zu implementieren, füge das Tool einfach zur Konfiguration deines Agenten hinzu. Dein Agent kann dann im Web suchen, wann immer er Fragen beantworten muss, die aktuelle Informationen erfordern.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisung
Integriere Linkup in den Workflow. Kann das Web durchsuchen. Benötigt API-Schlüssel.
## Tools
### `linkup_search`
Durchsuche das Web nach Informationen mit Linkup
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `q` | string | Ja | Die Suchanfrage |
| `depth` | string | Ja | Suchtiefe (muss entweder "standard" oder "deep" sein) |
| `outputType` | string | Ja | Art der zurückzugebenden Ausgabe (muss entweder "sourcedAnswer" oder "searchResults" sein) |
| `apiKey` | string | Ja | Gib deinen Linkup API-Schlüssel ein |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `answer` | string | Die mit Quellen belegte Antwort auf die Suchanfrage |
| `sources` | array | Array von Quellen, die zur Erstellung der Antwort verwendet wurden, jede enthält Name, URL und Textausschnitt |
## Hinweise
- Kategorie: `tools`
- Typ: `linkup`

View File

@@ -0,0 +1,36 @@
---
title: MCP Tool
description: Führe Tools von Model Context Protocol (MCP) Servern aus
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="mcp"
color="#181C1E"
icon={true}
iconSvg={`<svg className="block-icon"
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 24 24'
fill='none'
stroke='currentColor'
strokeWidth='2'
strokeLinecap='round'
strokeLinejoin='round'
>
<rect x='2' y='2' rx='2' ry='2' />
<rect x='2' y='14' rx='2' ry='2' />
<line x1='6' x2='6.01' y1='6' y2='6' />
<line x1='6' x2='6.01' y1='18' y2='18' />
</svg>`}
/>
## Gebrauchsanweisung
Integriere MCP in den Workflow. Kann Tools von MCP-Servern ausführen. Erfordert MCP-Server in den Workspace-Einstellungen.
## Hinweise
- Kategorie: `tools`
- Typ: `mcp`

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,120 @@
---
title: Memory
description: Speicher hinzufügen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="memory"
color="#F64F9E"
icon={true}
iconSvg={`<svg className="block-icon"
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 24 24'
fill='none'
stroke='currentColor'
strokeWidth='2'
strokeLinecap='round'
strokeLinejoin='round'
>
<path d='M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z' />
<path d='M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z' />
<path d='M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4' />
<path d='M17.599 6.5a3 3 0 0 0 .399-1.375' />
<path d='M6.003 5.125A3 3 0 0 0 6.401 6.5' />
<path d='M3.477 10.896a4 4 0 0 1 .585-.396' />
<path d='M19.938 10.5a4 4 0 0 1 .585.396' />
<path d='M6 18a4 4 0 0 1-1.967-.516' />
<path d='M19.967 17.484A4 4 0 0 1 18 18' />
</svg>`}
/>
## Gebrauchsanweisung
Memory in den Workflow integrieren. Kann Erinnerungen hinzufügen, eine Erinnerung abrufen, alle Erinnerungen abrufen und Erinnerungen löschen.
## Tools
### `memory_add`
Füge eine neue Erinnerung zur Datenbank hinzu oder ergänze bestehende Erinnerungen mit derselben ID.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `id` | string | Ja | Kennung für die Erinnerung. Wenn bereits eine Erinnerung mit dieser ID existiert, werden die neuen Daten hinzugefügt. |
| `role` | string | Ja | Rolle für Agent-Erinnerung \(user, assistant oder system\) |
| `content` | string | Ja | Inhalt für Agent-Erinnerung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob der Speicher erfolgreich hinzugefügt wurde |
| `memories` | array | Array von Speicherobjekten einschließlich des neuen oder aktualisierten Speichers |
| `error` | string | Fehlermeldung, falls der Vorgang fehlgeschlagen ist |
### `memory_get`
Einen bestimmten Speicher anhand seiner ID abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `id` | string | Ja | Kennung für den abzurufenden Speicher |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob der Speicher erfolgreich abgerufen wurde |
| `memories` | array | Array von Speicherdaten für die angeforderte ID |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `error` | string | Fehlermeldung, falls der Vorgang fehlgeschlagen ist |
### `memory_get_all`
Alle Speicher aus der Datenbank abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob alle Speicher erfolgreich abgerufen wurden |
| `memories` | array | Array aller Speicherobjekte mit Schlüsseln, Typen und Daten |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `error` | string | Fehlermeldung, falls der Vorgang fehlgeschlagen ist |
### `memory_delete`
Eine bestimmte Erinnerung anhand ihrer ID löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `id` | string | Ja | Kennung für die zu löschende Erinnerung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Erinnerung erfolgreich gelöscht wurde |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `error` | string | Fehlermeldung, wenn der Vorgang fehlgeschlagen ist |
## Hinweise
- Kategorie: `blocks`
- Typ: `memory`

View File

@@ -0,0 +1,164 @@
---
title: Microsoft Excel
description: Daten lesen, schreiben und aktualisieren
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="microsoft_excel"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
xmlns='http://www.w3.org/2000/svg'
version='1.1'
id='Livello_1'
x='0px'
y='0px'
viewBox='0 0 2289.75 2130'
enableBackground='new 0 0 2289.75 2130'
>
<path
fill='#185C37'
d='M1437.75,1011.75L532.5,852v1180.393c0,53.907,43.7,97.607,97.607,97.607l0,0h1562.036 c53.907,0,97.607-43.7,97.607-97.607l0,0V1597.5L1437.75,1011.75z'
/>
<path
fill='#21A366'
d='M1437.75,0H630.107C576.2,0,532.5,43.7,532.5,97.607c0,0,0,0,0,0V532.5l905.25,532.5L1917,1224.75 L2289.75,1065V532.5L1437.75,0z'
/>
<path fill='#107C41' d='M532.5,532.5h905.25V1065H532.5V532.5z' />
<path
opacity='0.1'
enableBackground='new'
d='M1180.393,426H532.5v1331.25h647.893c53.834-0.175,97.432-43.773,97.607-97.607 V523.607C1277.825,469.773,1234.227,426.175,1180.393,426z'
/>
<path
opacity='0.2'
enableBackground='new'
d='M1127.143,479.25H532.5V1810.5h594.643 c53.834-0.175,97.432-43.773,97.607-97.607V576.857C1224.575,523.023,1180.977,479.425,1127.143,479.25z'
/>
<path
opacity='0.2'
enableBackground='new'
d='M1127.143,479.25H532.5V1704h594.643c53.834-0.175,97.432-43.773,97.607-97.607 V576.857C1224.575,523.023,1180.977,479.425,1127.143,479.25z'
/>
<path
opacity='0.2'
enableBackground='new'
d='M1073.893,479.25H532.5V1704h541.393c53.834-0.175,97.432-43.773,97.607-97.607 V576.857C1171.325,523.023,1127.727,479.425,1073.893,479.25z'
/>
<linearGradient
id='SVGID_1_'
gradientUnits='userSpaceOnUse'
x1='203.5132'
y1='1729.0183'
x2='967.9868'
y2='404.9817'
gradientTransform='matrix(1 0 0 -1 0 2132)'
>
<stop offset='0' style={{ stopColor: '#18884F' }} />
<stop offset='0.5' style={{ stopColor: '#117E43' }} />
<stop offset='1' style={{ stopColor: '#0B6631' }} />
</linearGradient>
<path
fill='url(#SVGID_1_)'
d='M97.607,479.25h976.285c53.907,0,97.607,43.7,97.607,97.607v976.285 c0,53.907-43.7,97.607-97.607,97.607H97.607C43.7,1650.75,0,1607.05,0,1553.143V576.857C0,522.95,43.7,479.25,97.607,479.25z'
/>
<path
fill='#FFFFFF'
d='M302.3,1382.264l205.332-318.169L319.5,747.683h151.336l102.666,202.35 c9.479,19.223,15.975,33.494,19.49,42.919h1.331c6.745-15.336,13.845-30.228,21.3-44.677L725.371,747.79h138.929l-192.925,314.548 L869.2,1382.263H721.378L602.79,1160.158c-5.586-9.45-10.326-19.376-14.164-29.66h-1.757c-3.474,10.075-8.083,19.722-13.739,28.755 l-122.102,223.011H302.3z'
/>
<path
fill='#33C481'
d='M2192.143,0H1437.75v532.5h852V97.607C2289.75,43.7,2246.05,0,2192.143,0L2192.143,0z'
/>
<path fill='#107C41' d='M1437.75,1065h852v532.5h-852V1065z' />
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Microsoft Teams](https://www.microsoft.com/en-us/microsoft-365/excel) ist eine leistungsstarke Tabellenkalkulationsanwendung, die Datenverwaltung, -analyse und -visualisierung ermöglicht. Durch die Microsoft Excel-Integration in Sim können Sie programmgesteuert Tabellenkalkulationsdaten lesen, schreiben und bearbeiten, um Ihre Workflow-Automatisierungsanforderungen zu unterstützen.
Mit der Microsoft Excel-Integration können Sie:
- **Tabellenkalkulationsdaten lesen**: Zugriff auf Daten aus bestimmten Bereichen, Blättern und Zellen
- **Daten schreiben und aktualisieren**: Neue Daten hinzufügen oder bestehende Tabelleninhalte ändern
- **Tabellen verwalten**: Tabellarische Datenstrukturen erstellen und bearbeiten
- **Mehrere Blätter verwalten**: Mit mehreren Arbeitsblättern in einer Arbeitsmappe arbeiten
- **Daten verarbeiten**: Tabellenkalkulationsdaten importieren, exportieren und transformieren
In Sim bietet die Microsoft Excel-Integration nahtlosen Zugriff auf Tabellenkalkulationsfunktionen durch OAuth-Authentifizierung. Sie können Daten aus bestimmten Bereichen lesen, neue Informationen schreiben, bestehende Zellen aktualisieren und verschiedene Datenformate verarbeiten. Die Integration unterstützt sowohl Lese- als auch Schreibvorgänge mit flexiblen Ein- und Ausgabeoptionen. Dies ermöglicht es Ihnen, Workflows zu erstellen, die Tabellenkalkulationsdaten effektiv verwalten können, sei es beim Extrahieren von Informationen zur Analyse, beim automatischen Aktualisieren von Datensätzen oder bei der Aufrechterhaltung der Datenkonsistenz über Ihre Anwendungen hinweg.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integrieren Sie Microsoft Excel in den Workflow. Kann Tabellen lesen, schreiben, aktualisieren und ergänzen. Erfordert OAuth.
## Tools
### `microsoft_excel_read`
Daten aus einer Microsoft Excel-Tabelle lesen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Ja | Die ID der zu lesenden Tabelle |
| `range` | string | Nein | Der zu lesende Zellbereich. Akzeptiert "Tabellenname!A1:B2" für explizite Bereiche oder nur "Tabellenname" um den verwendeten Bereich dieses Tabellenblatts zu lesen. Falls nicht angegeben, wird der verwendete Bereich des ersten Tabellenblatts gelesen. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `data` | object | Bereichsdaten aus der Tabelle |
### `microsoft_excel_write`
Daten in eine Microsoft Excel-Tabelle schreiben
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Ja | Die ID der Tabelle, in die geschrieben werden soll |
| `range` | string | Nein | Der Zellbereich, in den geschrieben werden soll |
| `values` | array | Ja | Die Daten, die in die Tabelle geschrieben werden sollen |
| `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 | Der Bereich, der aktualisiert wurde |
| `updatedRows` | number | Anzahl der aktualisierten Zeilen |
| `updatedColumns` | number | Anzahl der aktualisierten Spalten |
| `updatedCells` | number | Anzahl der aktualisierten Zellen |
| `metadata` | object | Tabellen-Metadaten |
### `microsoft_excel_table_add`
Neue Zeilen zu einer Microsoft Excel-Tabelle hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `spreadsheetId` | string | Ja | Die ID der Tabellenkalkulation, die die Tabelle enthält |
| `tableName` | string | Ja | Der Name der Tabelle, zu der Zeilen hinzugefügt werden sollen |
| `values` | array | Ja | Die Daten, die zur Tabelle hinzugefügt werden sollen \(Array von Arrays oder Array von Objekten\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `index` | number | Index der ersten Zeile, die hinzugefügt wurde |
| `values` | array | Array von Zeilen, die zur Tabelle hinzugefügt wurden |
| `metadata` | object | Metadaten der Tabellenkalkulation |
## Hinweise
- Kategorie: `tools`
- Typ: `microsoft_excel`

View File

@@ -0,0 +1,173 @@
---
title: Microsoft Planner
description: Aufgaben in Microsoft Planner lesen und erstellen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="microsoft_planner"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon" fill='currentColor' viewBox='-1 -1 27 27' xmlns='http://www.w3.org/2000/svg'>
<defs>
<linearGradient
id='paint0_linear_3984_11038'
x1='6.38724'
y1='3.74167'
x2='2.15779'
y2='12.777'
gradientUnits='userSpaceOnUse'
>
<stop stopColor='#8752E0' />
<stop offset='1' stopColor='#541278' />
</linearGradient>
<linearGradient
id='paint1_linear_3984_11038'
x1='8.38032'
y1='11.0696'
x2='4.94062'
y2='7.69244'
gradientUnits='userSpaceOnUse'
>
<stop offset='0.12172' stopColor='#3D0D59' />
<stop offset='1' stopColor='#7034B0' stopOpacity='0' />
</linearGradient>
<linearGradient
id='paint2_linear_3984_11038'
x1='18.3701'
y1='-3.33385e-05'
x2='9.85717'
y2='20.4192'
gradientUnits='userSpaceOnUse'
>
<stop stopColor='#DB45E0' />
<stop offset='1' stopColor='#6C0F71' />
</linearGradient>
<linearGradient
id='paint3_linear_3984_11038'
x1='18.3701'
y1='-3.33385e-05'
x2='9.85717'
y2='20.4192'
gradientUnits='userSpaceOnUse'
>
<stop stopColor='#DB45E0' />
<stop offset='0.677403' stopColor='#A829AE' />
<stop offset='1' stopColor='#8F28B3' />
</linearGradient>
<linearGradient
id='paint4_linear_3984_11038'
x1='18.0002'
y1='7.49958'
x2='14.0004'
y2='23.9988'
gradientUnits='userSpaceOnUse'
>
<stop stopColor='#3DCBFF' />
<stop offset='1' stopColor='#00479E' />
</linearGradient>
<linearGradient
id='paint5_linear_3984_11038'
x1='18.2164'
y1='7.92626'
x2='10.5237'
y2='22.9363'
gradientUnits='userSpaceOnUse'
>
<stop stopColor='#3DCBFF' />
<stop offset='1' stopColor='#4A40D4' />
</linearGradient>
</defs>
<path
d='M8.25809 15.7412C7.22488 16.7744 5.54971 16.7744 4.5165 15.7412L0.774909 11.9996C-0.258303 10.9664 -0.258303 9.29129 0.774908 8.25809L4.5165 4.51655C5.54971 3.48335 7.22488 3.48335 8.25809 4.51655L11.9997 8.2581C13.0329 9.29129 13.0329 10.9664 11.9997 11.9996L8.25809 15.7412Z'
fill='url(#paint0_linear_3984_11038)'
/>
<path
d='M8.25809 15.7412C7.22488 16.7744 5.54971 16.7744 4.5165 15.7412L0.774909 11.9996C-0.258303 10.9664 -0.258303 9.29129 0.774908 8.25809L4.5165 4.51655C5.54971 3.48335 7.22488 3.48335 8.25809 4.51655L11.9997 8.2581C13.0329 9.29129 13.0329 10.9664 11.9997 11.9996L8.25809 15.7412Z'
fill='url(#paint1_linear_3984_11038)'
/>
<path
d='M0.774857 11.9999C1.80809 13.0331 3.48331 13.0331 4.51655 11.9999L15.7417 0.774926C16.7749 -0.258304 18.4501 -0.258309 19.4834 0.774914L23.225 4.51655C24.2583 5.54977 24.2583 7.22496 23.225 8.25819L11.9999 19.4832C10.9667 20.5164 9.29146 20.5164 8.25822 19.4832L0.774857 11.9999Z'
fill='url(#paint2_linear_3984_11038)'
/>
<path
d='M0.774857 11.9999C1.80809 13.0331 3.48331 13.0331 4.51655 11.9999L15.7417 0.774926C16.7749 -0.258304 18.4501 -0.258309 19.4834 0.774914L23.225 4.51655C24.2583 5.54977 24.2583 7.22496 23.225 8.25819L11.9999 19.4832C10.9667 20.5164 9.29146 20.5164 8.25822 19.4832L0.774857 11.9999Z'
fill='url(#paint3_linear_3984_11038)'
/>
<path
d='M4.51642 15.7413C5.54966 16.7746 7.22487 16.7746 8.25812 15.7413L15.7415 8.25803C16.7748 7.2248 18.45 7.2248 19.4832 8.25803L23.2249 11.9997C24.2582 13.0329 24.2582 14.7081 23.2249 15.7413L15.7415 23.2246C14.7083 24.2579 13.033 24.2579 11.9998 23.2246L4.51642 15.7413Z'
fill='url(#paint4_linear_3984_11038)'
/>
<path
d='M4.51642 15.7413C5.54966 16.7746 7.22487 16.7746 8.25812 15.7413L15.7415 8.25803C16.7748 7.2248 18.45 7.2248 19.4832 8.25803L23.2249 11.9997C24.2582 13.0329 24.2582 14.7081 23.2249 15.7413L15.7415 23.2246C14.7083 24.2579 13.033 24.2579 11.9998 23.2246L4.51642 15.7413Z'
fill='url(#paint5_linear_3984_11038)'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Microsoft Planner](https://www.microsoft.com/en-us/microsoft-365/planner) ist ein Aufgabenverwaltungstool, das Teams hilft, Arbeit visuell mithilfe von Boards, Aufgaben und Buckets zu organisieren. Integriert in Microsoft 365 bietet es eine einfache, intuitive Möglichkeit, Teamprojekte zu verwalten, Verantwortlichkeiten zuzuweisen und den Fortschritt zu verfolgen.
Mit Microsoft Planner können Sie:
- **Aufgaben erstellen und verwalten**: Neue Aufgaben mit Fälligkeitsdaten, Prioritäten und zugewiesenen Benutzern hinzufügen
- **Mit Buckets organisieren**: Aufgaben nach Phase, Status oder Kategorie gruppieren, um den Arbeitsablauf Ihres Teams abzubilden
- **Projektstatus visualisieren**: Boards, Diagramme und Filter verwenden, um die Arbeitsbelastung zu überwachen und den Fortschritt zu verfolgen
- **In Microsoft 365 integriert bleiben**: Aufgaben nahtlos mit Teams, Outlook und anderen Microsoft-Tools verbinden
In Sim ermöglicht die Microsoft Planner-Integration Ihren Agenten, Aufgaben programmatisch zu erstellen, zu lesen und zu verwalten als Teil ihrer Workflows. Agenten können neue Aufgaben basierend auf eingehenden Anfragen generieren, Aufgabendetails abrufen, um Entscheidungen zu treffen, und den Status über Projekte hinweg verfolgen — alles ohne menschliches Eingreifen. Ob Sie Workflows für Kundenonboarding, interne Projektverfolgung oder die Generierung von Folgeaufgaben erstellen, die Integration von Microsoft Planner mit Sim gibt Ihren Agenten eine strukturierte Möglichkeit, Arbeit zu koordinieren, Aufgabenerstellung zu automatisieren und Teams aufeinander abzustimmen.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisungen
Integrieren Sie Microsoft Planner in den Workflow. Kann Aufgaben lesen und erstellen. Erfordert OAuth.
## Tools
### `microsoft_planner_read_task`
Aufgaben aus Microsoft Planner lesen - alle Benutzeraufgaben oder alle Aufgaben aus einem bestimmten Plan abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `planId` | string | Nein | Die ID des Plans, aus dem Aufgaben abgerufen werden sollen \(wenn nicht angegeben, werden alle Benutzeraufgaben abgerufen\) |
| `taskId` | string | Nein | Die ID der abzurufenden Aufgabe |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Gibt an, ob Aufgaben erfolgreich abgerufen wurden |
| `tasks` | array | Array von Aufgabenobjekten mit gefilterten Eigenschaften |
| `metadata` | object | Metadaten einschließlich planId, userId und planUrl |
### `microsoft_planner_create_task`
Eine neue Aufgabe in Microsoft Planner erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `planId` | string | Ja | Die ID des Plans, in dem die Aufgabe erstellt wird |
| `title` | string | Ja | Der Titel der Aufgabe |
| `description` | string | Nein | Die Beschreibung der Aufgabe |
| `dueDateTime` | string | Nein | Das Fälligkeitsdatum und die Uhrzeit für die Aufgabe \(ISO 8601-Format\) |
| `assigneeUserId` | string | Nein | Die Benutzer-ID, der die Aufgabe zugewiesen werden soll |
| `bucketId` | string | Nein | Die Bucket-ID, in der die Aufgabe platziert werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Gibt an, ob die Aufgabe erfolgreich erstellt wurde |
| `task` | object | Das erstellte Aufgabenobjekt mit allen Eigenschaften |
| `metadata` | object | Metadaten einschließlich planId, taskId und taskUrl |
## Hinweise
- Kategorie: `tools`
- Typ: `microsoft_planner`

View File

@@ -0,0 +1,199 @@
---
title: Microsoft Teams
description: Nachrichten lesen, schreiben und erstellen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="microsoft_teams"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon" xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2228.833 2073.333'>
<path
fill='#5059C9'
d='M1554.637,777.5h575.713c54.391,0,98.483,44.092,98.483,98.483c0,0,0,0,0,0v524.398 c0,199.901-162.051,361.952-361.952,361.952h0h-1.711c-199.901,0.028-361.975-162-362.004-361.901c0-0.017,0-0.034,0-0.052V828.971 C1503.167,800.544,1526.211,777.5,1554.637,777.5L1554.637,777.5z'
/>
<circle fill='#5059C9' cx='1943.75' cy='440.583' r='233.25' />
<circle fill='#7B83EB' cx='1218.083' cy='336.917' r='336.917' />
<path
fill='#7B83EB'
d='M1667.323,777.5H717.01c-53.743,1.33-96.257,45.931-95.01,99.676v598.105 c-7.505,322.519,247.657,590.16,570.167,598.053c322.51-7.893,577.671-275.534,570.167-598.053V877.176 C1763.579,823.431,1721.066,778.83,1667.323,777.5z'
/>
<path
opacity='.1'
d='M1244,777.5v838.145c-0.258,38.435-23.549,72.964-59.09,87.598 c-11.316,4.787-23.478,7.254-35.765,7.257H667.613c-6.738-17.105-12.958-34.21-18.142-51.833 c-18.144-59.477-27.402-121.307-27.472-183.49V877.02c-1.246-53.659,41.198-98.19,94.855-99.52H1244z'
/>
<path
opacity='.2'
d='M1192.167,777.5v889.978c-0.002,12.287-2.47,24.449-7.257,35.765 c-14.634,35.541-49.163,58.833-87.598,59.09H691.975c-8.812-17.105-17.105-34.21-24.362-51.833 c-7.257-17.623-12.958-34.21-18.142-51.833c-18.144-59.476-27.402-121.307-27.472-183.49V877.02 c-1.246-53.659,41.198-98.19,94.855-99.52H1192.167z'
/>
<path
opacity='.2'
d='M1192.167,777.5v786.312c-0.395,52.223-42.632,94.46-94.855,94.855h-447.84 c-18.144-59.476-27.402-121.307-27.472-183.49V877.02c-1.246-53.659,41.198-98.19,94.855-99.52H1192.167z'
/>
<path
opacity='.2'
d='M1140.333,777.5v786.312c-0.395,52.223-42.632,94.46-94.855,94.855H649.472 c-18.144-59.476-27.402-121.307-27.472-183.49V877.02c-1.246-53.659,41.198-98.19,94.855-99.52H1140.333z'
/>
<path
opacity='.1'
d='M1244,509.522v163.275c-8.812,0.518-17.105,1.037-25.917,1.037 c-8.812,0-17.105-0.518-25.917-1.037c-17.496-1.161-34.848-3.937-51.833-8.293c-104.963-24.857-191.679-98.469-233.25-198.003 c-7.153-16.715-12.706-34.071-16.587-51.833h258.648C1201.449,414.866,1243.801,457.217,1244,509.522z'
/>
<path
opacity='.2'
d='M1192.167,561.355v111.442c-17.496-1.161-34.848-3.937-51.833-8.293 c-104.963-24.857-191.679-98.469-233.25-198.003h190.228C1149.616,466.699,1191.968,509.051,1192.167,561.355z'
/>
<path
opacity='.2'
d='M1192.167,561.355v111.442c-17.496-1.161-34.848-3.937-51.833-8.293 c-104.963-24.857-191.679-98.469-233.25-198.003h190.228C1149.616,466.699,1191.968,509.051,1192.167,561.355z'
/>
<path
opacity='.2'
d='M1140.333,561.355v103.148c-104.963-24.857-191.679-98.469-233.25-198.003 h138.395C1097.783,466.699,1140.134,509.051,1140.333,561.355z'
/>
<linearGradient
id='a'
gradientUnits='userSpaceOnUse'
x1='198.099'
y1='1683.0726'
x2='942.2344'
y2='394.2607'
gradientTransform='matrix(1 0 0 -1 0 2075.3333)'
>
<stop offset='0' stopColor='#5a62c3' />
<stop offset='.5' stopColor='#4d55bd' />
<stop offset='1' stopColor='#3940ab' />
<stop offset='0' stopColor='#5a62c3' />
<stop offset='.5' stopColor='#4d55bd' />
<stop offset='1' stopColor='#3940ab' />
</linearGradient>
<path
fill='url(#a)'
d='M95.01,466.5h950.312c52.473,0,95.01,42.538,95.01,95.01v950.312c0,52.473-42.538,95.01-95.01,95.01 H95.01c-52.473,0-95.01-42.538-95.01-95.01V561.51C0,509.038,42.538,466.5,95.01,466.5z'
/>
<path
fill='#FFF'
d='M820.211,828.193H630.241v517.297H509.211V828.193H320.123V727.844h500.088V828.193z'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Microsoft Teams](https://teams.microsoft.com) ist eine leistungsstarke Kommunikations- und Kollaborationsplattform, die es Nutzern ermöglicht, in Echtzeit Nachrichten auszutauschen, an Meetings teilzunehmen und Inhalte innerhalb von Teams und Organisationen zu teilen. Als Teil des Microsoft-Produktivitätsökosystems bietet Microsoft Teams nahtlose Chat-Funktionalität mit Office 365-Integration, sodass Nutzer Nachrichten senden, Arbeit koordinieren und über verschiedene Geräte und Arbeitsabläufe hinweg verbunden bleiben können.
Mit Microsoft Teams können Sie:
- **Nachrichten senden und empfangen**: Sofortige Kommunikation mit Einzelpersonen oder Gruppen in Chat-Threads
- **In Echtzeit zusammenarbeiten**: Updates und Informationen in Teams über Kanäle und Chats teilen
- **Gespräche organisieren**: Kontext durch strukturierte Diskussionen und dauerhafte Chat-Verläufe bewahren
- **Dateien und Inhalte teilen**: Dokumente, Bilder und Links direkt im Chat anhängen und anzeigen
- **Mit Microsoft 365 integrieren**: Nahtlose Verbindung mit Outlook, SharePoint, OneDrive und mehr
- **Geräteübergreifender Zugriff**: Teams auf Desktop, Web und Mobilgeräten mit Cloud-synchronisierten Gesprächen nutzen
- **Sichere Kommunikation**: Unternehmensklasse-Sicherheits- und Compliance-Funktionen nutzen
In Sim ermöglicht die Microsoft Teams-Integration Ihren Agenten, direkt programmatisch mit Chat-Nachrichten zu interagieren. Dies ermöglicht leistungsstarke Automatisierungsszenarien wie das Senden von Updates, Veröffentlichen von Warnungen, Koordinieren von Aufgaben und Reagieren auf Gespräche in Echtzeit. Ihre Agenten können neue Nachrichten an Chats oder Kanäle schreiben, Inhalte basierend auf Workflow-Daten aktualisieren und mit Benutzern dort interagieren, wo Zusammenarbeit stattfindet. Durch die Integration von Sim mit Microsoft Teams überbrücken Sie die Lücke zwischen intelligenten Workflows und Teamkommunikation — und befähigen Ihre Agenten, die Zusammenarbeit zu optimieren, Kommunikationsaufgaben zu automatisieren und Ihre Teams aufeinander abzustimmen.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisung
Integrieren Sie Microsoft Teams in den Workflow. Kann Chat-Nachrichten lesen und schreiben sowie Kanal-Nachrichten lesen und schreiben. Erfordert OAuth. Kann im Trigger-Modus verwendet werden, um einen Workflow auszulösen, wenn eine Nachricht an einen Chat oder Kanal gesendet wird.
## Tools
### `microsoft_teams_read_chat`
Inhalte aus einem Microsoft Teams-Chat lesen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `chatId` | string | Ja | Die ID des Chats, aus dem gelesen werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus des Teams-Chat-Lesevorgangs |
| `messageCount` | number | Anzahl der aus dem Chat abgerufenen Nachrichten |
| `chatId` | string | ID des Chats, aus dem gelesen wurde |
| `messages` | array | Array von Chat-Nachrichtenobjekten |
| `attachmentCount` | number | Gesamtzahl der gefundenen Anhänge |
| `attachmentTypes` | array | Arten der gefundenen Anhänge |
| `content` | string | Formatierter Inhalt der Chat-Nachrichten |
### `microsoft_teams_write_chat`
Inhalte in einem Microsoft Teams-Chat schreiben oder aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `chatId` | string | Ja | Die ID des Chats, in den geschrieben werden soll |
| `content` | string | Ja | Der Inhalt, der in die Nachricht geschrieben werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus des Sendens der Teams-Chatnachricht |
| `messageId` | string | Eindeutige Kennung für die gesendete Nachricht |
| `chatId` | string | ID des Chats, in dem die Nachricht gesendet wurde |
| `createdTime` | string | Zeitstempel der Nachrichtenerstellung |
| `url` | string | Web-URL zur Nachricht |
| `updatedContent` | boolean | Ob der Inhalt erfolgreich aktualisiert wurde |
### `microsoft_teams_read_channel`
Inhalte aus einem Microsoft Teams-Kanal lesen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Ja | Die ID des Teams, aus dem gelesen werden soll |
| `channelId` | string | Ja | Die ID des Kanals, aus dem gelesen werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus des Lesevorgangs im Teams-Kanal |
| `messageCount` | number | Anzahl der aus dem Kanal abgerufenen Nachrichten |
| `teamId` | string | ID des Teams, aus dem gelesen wurde |
| `channelId` | string | ID des Kanals, aus dem gelesen wurde |
| `messages` | array | Array von Kanalnachrichtenobjekten |
| `attachmentCount` | number | Gesamtanzahl der gefundenen Anhänge |
| `attachmentTypes` | array | Arten der gefundenen Anhänge |
| `content` | string | Formatierter Inhalt der Kanalnachrichten |
### `microsoft_teams_write_channel`
Schreiben oder senden einer Nachricht an einen Microsoft Teams-Kanal
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `teamId` | string | Ja | Die ID des Teams, an das geschrieben werden soll |
| `channelId` | string | Ja | Die ID des Kanals, an den geschrieben werden soll |
| `content` | string | Ja | Der Inhalt, der an den Kanal gesendet werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des erfolgreichen Sendens der Teams-Kanalnachricht |
| `messageId` | string | Eindeutige Kennung für die gesendete Nachricht |
| `teamId` | string | ID des Teams, in dem die Nachricht gesendet wurde |
| `channelId` | string | ID des Kanals, in dem die Nachricht gesendet wurde |
| `createdTime` | string | Zeitstempel der Nachrichtenerstellung |
| `url` | string | Web-URL zur Nachricht |
| `updatedContent` | boolean | Ob der Inhalt erfolgreich aktualisiert wurde |
## Hinweise
- Kategorie: `tools`
- Typ: `microsoft_teams`

View File

@@ -0,0 +1,113 @@
---
title: Mistral Parser
description: Text aus PDF-Dokumenten extrahieren
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="mistral_parse"
color="#000000"
icon={true}
iconSvg={`<svg className="block-icon"
viewBox='1 0.5 24 22'
fill='none'
xmlns='http://www.w3.org/2000/svg'
preserveAspectRatio='xMidYMid meet'
>
<g clipPath='url(#clip0_1621_58)'>
<path d='M17.4541 0H21.8177V4.39481H17.4541V0Z' fill='black' />
<path d='M19.6367 0H24.0003V4.39481H19.6367V0Z' fill='#F7D046' />
<path
d='M0 0H4.36359V4.39481H0V0ZM0 4.39481H4.36359V8.78961H0V4.39481ZM0 8.78971H4.36359V13.1845H0V8.78971ZM0 13.1845H4.36359V17.5793H0V13.1845ZM0 17.5794H4.36359V21.9742H0V17.5794Z'
fill='black'
/>
<path d='M2.18164 0H6.54523V4.39481H2.18164V0Z' fill='#F7D046' />
<path
d='M19.6362 4.39478H23.9998V8.78958H19.6362V4.39478ZM2.18164 4.39478H6.54523V8.78958H2.18164V4.39478Z'
fill='#F2A73B'
/>
<path d='M13.0908 4.39478H17.4544V8.78958H13.0908V4.39478Z' fill='black' />
<path
d='M15.2732 4.39478H19.6368V8.78958H15.2732V4.39478ZM6.5459 4.39478H10.9095V8.78958H6.5459V4.39478Z'
fill='#F2A73B'
/>
<path
d='M10.9096 8.78979H15.2732V13.1846H10.9096V8.78979ZM15.2732 8.78979H19.6368V13.1846H15.2732V8.78979ZM6.5459 8.78979H10.9096V13.1846H6.5459V8.78979Z'
fill='#EE792F'
/>
<path d='M8.72754 13.1846H13.0911V17.5794H8.72754V13.1846Z' fill='black' />
<path d='M10.9092 13.1846H15.2728V17.5794H10.9092V13.1846Z' fill='#EB5829' />
<path
d='M19.6362 8.78979H23.9998V13.1846H19.6362V8.78979ZM2.18164 8.78979H6.54523V13.1846H2.18164V8.78979Z'
fill='#EE792F'
/>
<path d='M17.4541 13.1846H21.8177V17.5794H17.4541V13.1846Z' fill='black' />
<path d='M19.6367 13.1846H24.0003V17.5794H19.6367V13.1846Z' fill='#EB5829' />
<path d='M17.4541 17.5793H21.8177V21.9742H17.4541V17.5793Z' fill='black' />
<path d='M2.18164 13.1846H6.54523V17.5794H2.18164V13.1846Z' fill='#EB5829' />
<path
d='M19.6362 17.5793H23.9998V21.9742H19.6362V17.5793ZM2.18164 17.5793H6.54523V21.9742H2.18164V17.5793Z'
fill='#EA3326'
/>
</g>
<defs>
<clipPath id='clip0_1621_58'>
<rect fill='white' />
</clipPath>
</defs>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
Das Mistral Parse-Tool bietet eine leistungsstarke Möglichkeit, Inhalte aus PDF-Dokumenten mit der [Mistral OCR API](https://mistral.ai/) zu extrahieren und zu verarbeiten. Dieses Tool nutzt fortschrittliche optische Zeichenerkennung, um Text und Struktur aus PDF-Dateien präzise zu extrahieren und macht es einfach, Dokumentendaten in Ihre Agent-Workflows zu integrieren.
Mit dem Mistral Parse-Tool können Sie:
- **Text aus PDFs extrahieren**: PDF-Inhalte präzise in Text-, Markdown- oder JSON-Formate konvertieren
- **PDFs von URLs verarbeiten**: Inhalte direkt aus online gehosteten PDFs extrahieren, indem Sie deren URLs angeben
- **Dokumentstruktur beibehalten**: Formatierung, Tabellen und Layout aus den Original-PDFs bewahren
- **Bilder extrahieren**: Optional eingebettete Bilder aus den PDFs einbeziehen
- **Bestimmte Seiten auswählen**: Nur die Seiten verarbeiten, die Sie aus mehrseitigen Dokumenten benötigen
Das Mistral Parse-Tool ist besonders nützlich für Szenarien, in denen Ihre Agenten mit PDF-Inhalten arbeiten müssen, wie zum Beispiel bei der Analyse von Berichten, der Extraktion von Daten aus Formularen oder der Verarbeitung von Text aus gescannten Dokumenten. Es vereinfacht den Prozess, PDF-Inhalte für Ihre Agenten verfügbar zu machen und ermöglicht ihnen, mit Informationen aus PDFs genauso einfach zu arbeiten wie mit direkter Texteingabe.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisung
Integrieren Sie Mistral Parse in den Workflow. Kann Text aus hochgeladenen PDF-Dokumenten oder von einer URL extrahieren. Erfordert API-Schlüssel.
## Tools
### `mistral_parser`
PDF-Dokumente mit der Mistral OCR API analysieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `filePath` | string | Ja | URL zu einem zu verarbeitenden PDF-Dokument |
| `fileUpload` | object | Nein | Datei-Upload-Daten von der Datei-Upload-Komponente |
| `resultType` | string | Nein | Art des geparsten Ergebnisses \(markdown, text oder json\). Standardmäßig markdown. |
| `includeImageBase64` | boolean | Nein | Base64-kodierte Bilder in die Antwort einschließen |
| `pages` | array | Nein | Bestimmte zu verarbeitende Seiten \(Array von Seitenzahlen, beginnend bei 0\) |
| `imageLimit` | number | Nein | Maximale Anzahl der aus dem PDF zu extrahierenden Bilder |
| `imageMinSize` | number | Nein | Minimale Höhe und Breite der aus dem PDF zu extrahierenden Bilder |
| `apiKey` | string | Ja | Mistral API-Schlüssel \(MISTRAL_API_KEY\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob das PDF erfolgreich geparst wurde |
| `content` | string | Extrahierter Inhalt im angeforderten Format \(markdown, text oder JSON\) |
| `metadata` | object | Verarbeitungsmetadaten einschließlich jobId, fileType, pageCount und Nutzungsinformationen |
## Notizen
- Kategorie: `tools`
- Typ: `mistral_parse`

View File

@@ -0,0 +1,260 @@
---
title: MongoDB
description: Verbindung zur MongoDB-Datenbank herstellen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="mongodb"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon" xmlns='http://www.w3.org/2000/svg' viewBox='0 0 128 128'>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='currentColor'
d='M88.038 42.812c1.605 4.643 2.761 9.383 3.141 14.296.472 6.095.256 12.147-1.029 18.142-.035.165-.109.32-.164.48-.403.001-.814-.049-1.208.012-3.329.523-6.655 1.065-9.981 1.604-3.438.557-6.881 1.092-10.313 1.687-1.216.21-2.721-.041-3.212 1.641-.014.046-.154.054-.235.08l.166-10.051-.169-24.252 1.602-.275c2.62-.429 5.24-.864 7.862-1.281 3.129-.497 6.261-.98 9.392-1.465 1.381-.215 2.764-.412 4.148-.618z'
/>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='#45A538'
d='M61.729 110.054c-1.69-1.453-3.439-2.842-5.059-4.37-8.717-8.222-15.093-17.899-18.233-29.566-.865-3.211-1.442-6.474-1.627-9.792-.13-2.322-.318-4.665-.154-6.975.437-6.144 1.325-12.229 3.127-18.147l.099-.138c.175.233.427.439.516.702 1.759 5.18 3.505 10.364 5.242 15.551 5.458 16.3 10.909 32.604 16.376 48.9.107.318.384.579.583.866l-.87 2.969z'
/>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='#46A037'
d='M88.038 42.812c-1.384.206-2.768.403-4.149.616-3.131.485-6.263.968-9.392 1.465-2.622.417-5.242.852-7.862 1.281l-1.602.275-.012-1.045c-.053-.859-.144-1.717-.154-2.576-.069-5.478-.112-10.956-.18-16.434-.042-3.429-.105-6.857-.175-10.285-.043-2.13-.089-4.261-.185-6.388-.052-1.143-.236-2.28-.311-3.423-.042-.657.016-1.319.029-1.979.817 1.583 1.616 3.178 2.456 4.749 1.327 2.484 3.441 4.314 5.344 6.311 7.523 7.892 12.864 17.068 16.193 27.433z'
/>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='#409433'
d='M65.036 80.753c.081-.026.222-.034.235-.08.491-1.682 1.996-1.431 3.212-1.641 3.432-.594 6.875-1.13 10.313-1.687 3.326-.539 6.652-1.081 9.981-1.604.394-.062.805-.011 1.208-.012-.622 2.22-1.112 4.488-1.901 6.647-.896 2.449-1.98 4.839-3.131 7.182a49.142 49.142 0 01-6.353 9.763c-1.919 2.308-4.058 4.441-6.202 6.548-1.185 1.165-2.582 2.114-3.882 3.161l-.337-.23-1.214-1.038-1.256-2.753a41.402 41.402 0 01-1.394-9.838l.023-.561.171-2.426c.057-.828.133-1.655.168-2.485.129-2.982.241-5.964.359-8.946z'
/>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='#4FAA41'
d='M65.036 80.753c-.118 2.982-.23 5.964-.357 8.947-.035.83-.111 1.657-.168 2.485l-.765.289c-1.699-5.002-3.399-9.951-5.062-14.913-2.75-8.209-5.467-16.431-8.213-24.642a4498.887 4498.887 0 00-6.7-19.867c-.105-.31-.407-.552-.617-.826l4.896-9.002c.168.292.39.565.496.879a6167.476 6167.476 0 016.768 20.118c2.916 8.73 5.814 17.467 8.728 26.198.116.349.308.671.491 1.062l.67-.78-.167 10.052z'
/>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='#4AA73C'
d='M43.155 32.227c.21.274.511.516.617.826a4498.887 4498.887 0 016.7 19.867c2.746 8.211 5.463 16.433 8.213 24.642 1.662 4.961 3.362 9.911 5.062 14.913l.765-.289-.171 2.426-.155.559c-.266 2.656-.49 5.318-.814 7.968-.163 1.328-.509 2.632-.772 3.947-.198-.287-.476-.548-.583-.866-5.467-16.297-10.918-32.6-16.376-48.9a3888.972 3888.972 0 00-5.242-15.551c-.089-.263-.34-.469-.516-.702l3.272-8.84z'
/>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='#57AE47'
d='M65.202 70.702l-.67.78c-.183-.391-.375-.714-.491-1.062-2.913-8.731-5.812-17.468-8.728-26.198a6167.476 6167.476 0 00-6.768-20.118c-.105-.314-.327-.588-.496-.879l6.055-7.965c.191.255.463.482.562.769 1.681 4.921 3.347 9.848 5.003 14.778 1.547 4.604 3.071 9.215 4.636 13.813.105.308.47.526.714.786l.012 1.045c.058 8.082.115 16.167.171 24.251z'
/>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='#60B24F'
d='M65.021 45.404c-.244-.26-.609-.478-.714-.786-1.565-4.598-3.089-9.209-4.636-13.813-1.656-4.93-3.322-9.856-5.003-14.778-.099-.287-.371-.514-.562-.769 1.969-1.928 3.877-3.925 5.925-5.764 1.821-1.634 3.285-3.386 3.352-5.968.003-.107.059-.214.145-.514l.519 1.306c-.013.661-.072 1.322-.029 1.979.075 1.143.259 2.28.311 3.423.096 2.127.142 4.258.185 6.388.069 3.428.132 6.856.175 10.285.067 5.478.111 10.956.18 16.434.008.861.098 1.718.152 2.577z'
/>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='#A9AA88'
d='M62.598 107.085c.263-1.315.609-2.62.772-3.947.325-2.649.548-5.312.814-7.968l.066-.01.066.011a41.402 41.402 0 001.394 9.838c-.176.232-.425.439-.518.701-.727 2.05-1.412 4.116-2.143 6.166-.1.28-.378.498-.574.744l-.747-2.566.87-2.969z'
/>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='#B6B598'
d='M62.476 112.621c.196-.246.475-.464.574-.744.731-2.05 1.417-4.115 2.143-6.166.093-.262.341-.469.518-.701l1.255 2.754c-.248.352-.59.669-.728 1.061l-2.404 7.059c-.099.283-.437.483-.663.722l-.695-3.985z'
/>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='#C2C1A7'
d='M63.171 116.605c.227-.238.564-.439.663-.722l2.404-7.059c.137-.391.48-.709.728-1.061l1.215 1.037c-.587.58-.913 1.25-.717 2.097l-.369 1.208c-.168.207-.411.387-.494.624-.839 2.403-1.64 4.819-2.485 7.222-.107.305-.404.544-.614.812-.109-1.387-.22-2.771-.331-4.158z'
/>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='#CECDB7'
d='M63.503 120.763c.209-.269.506-.508.614-.812.845-2.402 1.646-4.818 2.485-7.222.083-.236.325-.417.494-.624l-.509 5.545c-.136.157-.333.294-.398.477-.575 1.614-1.117 3.24-1.694 4.854-.119.333-.347.627-.525.938-.158-.207-.441-.407-.454-.623-.051-.841-.016-1.688-.013-2.533z'
/>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='#DBDAC7'
d='M63.969 123.919c.178-.312.406-.606.525-.938.578-1.613 1.119-3.239 1.694-4.854.065-.183.263-.319.398-.477l.012 3.64-1.218 3.124-1.411-.495z'
/>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='#EBE9DC'
d='M65.38 124.415l1.218-3.124.251 3.696-1.469-.572z'
/>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='#CECDB7'
d='M67.464 110.898c-.196-.847.129-1.518.717-2.097l.337.23-1.054 1.867z'
/>
<path
fillRule='evenodd'
clipRule='evenodd'
fill='#4FAA41'
d='M64.316 95.172l-.066-.011-.066.01.155-.559-.023.56z'
/>
</svg>`}
/>
## Gebrauchsanweisung
MongoDB in den Workflow integrieren. Kann Daten finden, einfügen, aktualisieren, löschen und aggregieren.
## Tools
### `mongodb_query`
Führt eine Find-Operation auf einer MongoDB-Kollektion aus
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | MongoDB-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | MongoDB-Server-Port \(Standard: 27017\) |
| `database` | string | Ja | Name der Datenbank, zu der verbunden werden soll |
| `username` | string | Nein | MongoDB-Benutzername |
| `password` | string | Nein | MongoDB-Passwort |
| `authSource` | string | Nein | Authentifizierungsdatenbank |
| `ssl` | string | Nein | SSL-Verbindungsmodus \(disabled, required, preferred\) |
| `collection` | string | Ja | Name der zu abfragenden Kollektion |
| `query` | string | Nein | MongoDB-Abfragefilter als JSON-String |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Dokumente |
| `sort` | string | Nein | Sortierkriterien als JSON-String |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `documents` | array | Array von Dokumenten, die von der Abfrage zurückgegeben wurden |
| `documentCount` | number | Anzahl der zurückgegebenen Dokumente |
### `mongodb_insert`
Dokumente in MongoDB-Kollektion einfügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | MongoDB-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | MongoDB-Server-Port \(Standard: 27017\) |
| `database` | string | Ja | Name der Datenbank, zu der verbunden werden soll |
| `username` | string | Nein | MongoDB-Benutzername |
| `password` | string | Nein | MongoDB-Passwort |
| `authSource` | string | Nein | Authentifizierungsdatenbank |
| `ssl` | string | Nein | SSL-Verbindungsmodus \(disabled, required, preferred\) |
| `collection` | string | Ja | Name der Kollektion, in die eingefügt werden soll |
| `documents` | array | Ja | Array von einzufügenden Dokumenten |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `documentCount` | number | Anzahl der eingefügten Dokumente |
| `insertedId` | string | ID des eingefügten Dokuments \(einzelnes Einfügen\) |
| `insertedIds` | array | Array der eingefügten Dokument-IDs \(mehrfaches Einfügen\) |
### `mongodb_update`
Dokumente in MongoDB-Sammlung aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | MongoDB-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | MongoDB-Server-Port \(Standard: 27017\) |
| `database` | string | Ja | Name der Datenbank, zu der verbunden werden soll |
| `username` | string | Nein | MongoDB-Benutzername |
| `password` | string | Nein | MongoDB-Passwort |
| `authSource` | string | Nein | Authentifizierungsdatenbank |
| `ssl` | string | Nein | SSL-Verbindungsmodus \(disabled, required, preferred\) |
| `collection` | string | Ja | Name der zu aktualisierenden Sammlung |
| `filter` | string | Ja | Filterkriterien als JSON-String |
| `update` | string | Ja | Update-Operationen als JSON-String |
| `upsert` | boolean | Nein | Dokument erstellen, falls nicht gefunden |
| `multi` | boolean | Nein | Mehrere Dokumente aktualisieren |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `matchedCount` | number | Anzahl der vom Filter gefundenen Dokumente |
| `modifiedCount` | number | Anzahl der geänderten Dokumente |
| `documentCount` | number | Gesamtanzahl der betroffenen Dokumente |
| `insertedId` | string | ID des eingefügten Dokuments \(bei Upsert\) |
### `mongodb_delete`
Dokumente aus MongoDB-Sammlung löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | MongoDB-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | MongoDB-Server-Port \(Standard: 27017\) |
| `database` | string | Ja | Name der Datenbank, zu der verbunden werden soll |
| `username` | string | Nein | MongoDB-Benutzername |
| `password` | string | Nein | MongoDB-Passwort |
| `authSource` | string | Nein | Authentifizierungsdatenbank |
| `ssl` | string | Nein | SSL-Verbindungsmodus \(disabled, required, preferred\) |
| `collection` | string | Ja | Name der Sammlung, aus der gelöscht werden soll |
| `filter` | string | Ja | Filterkriterien als JSON-String |
| `multi` | boolean | Nein | Mehrere Dokumente löschen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `deletedCount` | number | Anzahl der gelöschten Dokumente |
| `documentCount` | number | Gesamtzahl der betroffenen Dokumente |
### `mongodb_execute`
MongoDB-Aggregationspipeline ausführen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | MongoDB-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | MongoDB-Server-Port \(Standard: 27017\) |
| `database` | string | Ja | Name der Datenbank, zu der verbunden werden soll |
| `username` | string | Nein | MongoDB-Benutzername |
| `password` | string | Nein | MongoDB-Passwort |
| `authSource` | string | Nein | Authentifizierungsdatenbank |
| `ssl` | string | Nein | SSL-Verbindungsmodus \(disabled, required, preferred\) |
| `collection` | string | Ja | Name der Sammlung, auf der die Pipeline ausgeführt werden soll |
| `pipeline` | string | Ja | Aggregationspipeline als JSON-String |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `documents` | array | Array von Dokumenten, die aus der Aggregation zurückgegeben wurden |
| `documentCount` | number | Anzahl der zurückgegebenen Dokumente |
## Hinweise
- Kategorie: `tools`
- Typ: `mongodb`

View File

@@ -0,0 +1,175 @@
---
title: MySQL
description: Verbindung zur MySQL-Datenbank herstellen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="mysql"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 25.6 25.6'
>
<path
d='M179.076 94.886c-3.568-.1-6.336.268-8.656 1.25-.668.27-1.74.27-1.828 1.116.357.355.4.936.713 1.428.535.893 1.473 2.096 2.32 2.72l2.855 2.053c1.74 1.07 3.703 1.695 5.398 2.766.982.625 1.963 1.428 2.945 2.098.5.357.803.938 1.428 1.16v-.135c-.312-.4-.402-.98-.713-1.428l-1.34-1.293c-1.293-1.74-2.9-3.258-4.64-4.506-1.428-.982-4.55-2.32-5.13-3.97l-.088-.1c.98-.1 2.14-.447 3.078-.715 1.518-.4 2.9-.312 4.46-.713l2.143-.625v-.4c-.803-.803-1.383-1.874-2.23-2.632-2.275-1.963-4.775-3.882-7.363-5.488-1.383-.892-3.168-1.473-4.64-2.23-.537-.268-1.428-.402-1.74-.848-.805-.98-1.25-2.275-1.83-3.436l-3.658-7.763c-.803-1.74-1.295-3.48-2.275-5.086-4.596-7.585-9.594-12.18-17.268-16.687-1.65-.937-3.613-1.34-5.7-1.83l-3.346-.18c-.715-.312-1.428-1.16-2.053-1.562-2.543-1.606-9.102-5.086-10.977-.5-1.205 2.9 1.785 5.755 2.8 7.228.76 1.026 1.74 2.186 2.277 3.346.3.758.4 1.562.713 2.365.713 1.963 1.383 4.15 2.32 5.98.5.937 1.025 1.92 1.65 2.767.357.5.982.714 1.115 1.517-.625.893-.668 2.23-1.025 3.347-1.607 5.042-.982 11.288 1.293 15 .715 1.115 2.4 3.57 4.686 2.632 2.008-.803 1.56-3.346 2.14-5.577.135-.535.045-.892.312-1.25v.1l1.83 3.703c1.383 2.186 3.793 4.462 5.8 5.98 1.07.803 1.918 2.187 3.256 2.677v-.135h-.088c-.268-.4-.67-.58-1.027-.892-.803-.803-1.695-1.785-2.32-2.677-1.873-2.498-3.523-5.265-4.996-8.12-.715-1.383-1.34-2.9-1.918-4.283-.27-.536-.27-1.34-.715-1.606-.67.98-1.65 1.83-2.143 3.034-.848 1.918-.936 4.283-1.248 6.737-.18.045-.1 0-.18.1-1.426-.356-1.918-1.83-2.453-3.078-1.338-3.168-1.562-8.254-.402-11.913.312-.937 1.652-3.882 1.117-4.774-.27-.848-1.16-1.338-1.652-2.008-.58-.848-1.203-1.918-1.605-2.855-1.07-2.5-1.605-5.265-2.766-7.764-.537-1.16-1.473-2.365-2.232-3.435-.848-1.205-1.783-2.053-2.453-3.48-.223-.5-.535-1.294-.178-1.83.088-.357.268-.5.623-.58.58-.5 2.232.134 2.812.4 1.65.67 3.033 1.294 4.416 2.23.625.446 1.295 1.294 2.098 1.518h.938c1.428.312 3.033.1 4.37.5 2.365.76 4.506 1.874 6.426 3.08 5.844 3.703 10.664 8.968 13.92 15.26.535 1.026.758 1.963 1.25 3.034.938 2.187 2.098 4.417 3.033 6.56.938 2.097 1.83 4.24 3.168 5.98.67.937 3.346 1.427 4.55 1.918.893.4 2.275.76 3.08 1.25 1.516.937 3.033 2.008 4.46 3.034.713.534 2.945 1.65 3.078 2.54zm-45.5-38.772a7.09 7.09 0 0 0-1.828.223v.1h.088c.357.714.982 1.205 1.428 1.83l1.027 2.142.088-.1c.625-.446.938-1.16.938-2.23-.268-.312-.312-.625-.535-.937-.268-.446-.848-.67-1.206-1.026z'
transform='matrix(.390229 0 0 .38781 -46.300037 -16.856717)'
fillRule='evenodd'
fill='#00678c'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
Das [MySQL](https://www.mysql.com/) Tool ermöglicht es Ihnen, eine Verbindung zu jeder MySQL-Datenbank herzustellen und eine Vielzahl von Datenbankoperationen direkt in Ihren agentischen Workflows durchzuführen. Mit sicherer Verbindungshandhabung und flexibler Konfiguration können Sie Ihre Daten einfach verwalten und mit ihnen interagieren.
Mit dem MySQL-Tool können Sie:
- **Daten abfragen**: Führen Sie SELECT-Abfragen aus, um Daten aus Ihren MySQL-Tabellen mit der `mysql_query` Operation abzurufen.
- **Datensätze einfügen**: Fügen Sie mit der `mysql_insert` Operation neue Zeilen zu Ihren Tabellen hinzu, indem Sie die Tabelle und die einzufügenden Daten angeben.
- **Datensätze aktualisieren**: Ändern Sie bestehende Daten in Ihren Tabellen mit der `mysql_update` Operation, indem Sie die Tabelle, neue Daten und WHERE-Bedingungen angeben.
- **Datensätze löschen**: Entfernen Sie Zeilen aus Ihren Tabellen mit der `mysql_delete` Operation, indem Sie die Tabelle und WHERE-Bedingungen angeben.
- **Raw SQL ausführen**: Führen Sie beliebige benutzerdefinierte SQL-Befehle mit der `mysql_execute` Operation für fortgeschrittene Anwendungsfälle aus.
Das MySQL-Tool ist ideal für Szenarien, in denen Ihre Agenten mit strukturierten Daten interagieren müssen wie beispielsweise bei der Automatisierung von Berichten, der Synchronisierung von Daten zwischen Systemen oder der Unterstützung datengesteuerter Workflows. Es vereinfacht den Datenbankzugriff und macht es einfach, MySQL-Daten programmgesteuert zu lesen, zu schreiben und zu verwalten.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisung
Integrieren Sie MySQL in den Workflow. Kann Abfragen, Einfügen, Aktualisieren, Löschen und rohe SQL-Befehle ausführen.
## Tools
### `mysql_query`
SELECT-Abfrage in MySQL-Datenbank ausführen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | MySQL-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | MySQL-Server-Port \(Standard: 3306\) |
| `database` | string | Ja | Datenbankname für die Verbindung |
| `username` | string | Ja | Datenbank-Benutzername |
| `password` | string | Ja | Datenbank-Passwort |
| `ssl` | string | Nein | SSL-Verbindungsmodus \(disabled, required, preferred\) |
| `query` | string | Ja | SQL SELECT-Abfrage zum Ausführen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `rows` | array | Array der zurückgegebenen Zeilen aus der Abfrage |
| `rowCount` | number | Anzahl der zurückgegebenen Zeilen |
### `mysql_insert`
Neuen Datensatz in MySQL-Datenbank einfügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | MySQL-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | MySQL-Server-Port \(Standard: 3306\) |
| `database` | string | Ja | Datenbankname für die Verbindung |
| `username` | string | Ja | Datenbank-Benutzername |
| `password` | string | Ja | Datenbank-Passwort |
| `ssl` | string | Nein | SSL-Verbindungsmodus \(disabled, required, preferred\) |
| `table` | string | Ja | Tabellenname zum Einfügen |
| `data` | object | Ja | Einzufügende Daten als Schlüssel-Wert-Paare |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `rows` | array | Array der eingefügten Zeilen |
| `rowCount` | number | Anzahl der eingefügten Zeilen |
### `mysql_update`
Bestehende Datensätze in MySQL-Datenbank aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | MySQL-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | MySQL-Server-Port (Standard: 3306) |
| `database` | string | Ja | Name der Datenbank, zu der verbunden werden soll |
| `username` | string | Ja | Datenbank-Benutzername |
| `password` | string | Ja | Datenbank-Passwort |
| `ssl` | string | Nein | SSL-Verbindungsmodus (disabled, required, preferred) |
| `table` | string | Ja | Name der zu aktualisierenden Tabelle |
| `data` | object | Ja | Zu aktualisierende Daten als Schlüssel-Wert-Paare |
| `where` | string | Ja | WHERE-Klausel-Bedingung (ohne WHERE-Schlüsselwort) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `rows` | array | Array der aktualisierten Zeilen |
| `rowCount` | number | Anzahl der aktualisierten Zeilen |
### `mysql_delete`
Datensätze aus MySQL-Datenbank löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | MySQL-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | MySQL-Server-Port (Standard: 3306) |
| `database` | string | Ja | Name der Datenbank, zu der verbunden werden soll |
| `username` | string | Ja | Datenbank-Benutzername |
| `password` | string | Ja | Datenbank-Passwort |
| `ssl` | string | Nein | SSL-Verbindungsmodus (disabled, required, preferred) |
| `table` | string | Ja | Name der Tabelle, aus der gelöscht werden soll |
| `where` | string | Ja | WHERE-Klausel-Bedingung (ohne WHERE-Schlüsselwort) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `rows` | array | Array der gelöschten Zeilen |
| `rowCount` | number | Anzahl der gelöschten Zeilen |
### `mysql_execute`
Führt eine rohe SQL-Abfrage auf einer MySQL-Datenbank aus
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | MySQL-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | MySQL-Server-Port (Standard: 3306) |
| `database` | string | Ja | Datenbankname für die Verbindung |
| `username` | string | Ja | Datenbank-Benutzername |
| `password` | string | Ja | Datenbank-Passwort |
| `ssl` | string | Nein | SSL-Verbindungsmodus (disabled, required, preferred) |
| `query` | string | Ja | Rohe SQL-Abfrage zur Ausführung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `rows` | array | Array der von der Abfrage zurückgegebenen Zeilen |
| `rowCount` | number | Anzahl der betroffenen Zeilen |
## Hinweise
- Kategorie: `tools`
- Typ: `mysql`

View File

@@ -0,0 +1,182 @@
---
title: Notion
description: Notion-Seiten verwalten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="notion"
color="#181C1E"
icon={true}
iconSvg={`<svg className="block-icon" xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 50' >
<path
d='M31.494141 5.1503906L5.9277344 7.0019531A1.0001 1.0001 0 005.9042969 7.0039062A1.0001 1.0001 0 005.8652344 7.0097656A1.0001 1.0001 0 005.7929688 7.0214844A1.0001 1.0001 0 005.7636719 7.0292969A1.0001 1.0001 0 005.7304688 7.0371094A1.0001 1.0001 0 005.6582031 7.0605469A1.0001 1.0001 0 005.6113281 7.0800781A1.0001 1.0001 0 005.5839844 7.0917969A1.0001 1.0001 0 005.4335938 7.1777344A1.0001 1.0001 0 005.4082031 7.1933594A1.0001 1.0001 0 005.3476562 7.2421875A1.0001 1.0001 0 005.3359375 7.2539062A1.0001 1.0001 0 005.2871094 7.2988281A1.0001 1.0001 0 005.2578125 7.3320312A1.0001 1.0001 0 005.2148438 7.3828125A1.0001 1.0001 0 005.1992188 7.4023438A1.0001 1.0001 0 005.15625 7.4648438A1.0001 1.0001 0 005.1445312 7.484375A1.0001 1.0001 0 005.1074219 7.5488281A1.0001 1.0001 0 005.09375 7.5761719A1.0001 1.0001 0 005.0644531 7.6484375A1.0001 1.0001 0 005.0605469 7.65625A1.0001 1.0001 0 005.015625 7.8300781A1.0001 1.0001 0 005.0097656 7.8613281A1.0001 1.0001 0 005.0019531 7.9414062A1.0001 1.0001 0 005.0019531 7.9453125A1.0001 1.0001 0 005 8L5 33.738281C5 34.76391 5.3151542 35.766862 5.9042969 36.607422A1.0001 1.0001 0 005.953125 36.671875L12.126953 44.101562A1.0001 1.0001 0 0012.359375 44.382812L12.75 44.851562A1.0006635 1.0006635 0 0012.917969 45.011719C13.50508 45.581386 14.317167 45.917563 15.193359 45.861328L42.193359 44.119141C43.762433 44.017718 45 42.697027 45 41.125L45 15.132812C45 14.209354 44.565523 13.390672 43.904297 12.839844A1.0008168 1.0008168 0 0043.748047 12.695312L43.263672 12.337891A1.0001 1.0001 0 0043.0625 12.189453L34.824219 6.1132812C33.865071 5.4054876 32.682705 5.0641541 31.494141 5.1503906zM31.638672 7.1445312C32.352108 7.0927682 33.061867 7.29845 33.636719 7.7226562L39.767578 12.246094L14.742188 13.884766C13.880567 13.941006 13.037689 13.622196 12.425781 13.011719L12.423828 13.011719L8.2539062 8.8398438L31.638672 7.1445312zM7 10.414062L11.011719 14.425781L12 15.414062L12 40.818359L7.5390625 35.449219C7.1899317 34.947488 7 34.351269 7 33.738281L7 10.414062zM41.935547 14.134766C42.526748 14.096822 43 14.54116 43 15.132812L43 41.125C43 41.660973 42.59938 42.08847 42.064453 42.123047L15.064453 43.865234C14.770856 43.884078 14.506356 43.783483 14.314453 43.605469A1.0006635 1.0006635 0 0014.3125 43.603516C14.3125 43.603516 14.310547 43.601562 14.310547 43.601562C14.306465 43.597733 14.304796 43.59179 14.300781 43.587891A1.0006635 1.0006635 0 0014.289062 43.572266C14.112238 43.393435 14 43.149431 14 42.867188L14 16.875C14 16.337536 14.39999 15.911571 14.935547 15.876953L41.935547 14.134766zM38.496094 19L33.421875 19.28125C32.647875 19.36125 31.746094 19.938 31.746094 20.875L33.996094 21.0625L33.996094 31.753906L26.214844 19.751953L20.382812 20.080078C19.291812 20.160078 18.994141 20.970953 18.994141 22.001953L21.244141 22.001953L21.244141 37.566406C21.244141 37.566406 20.191844 37.850406 19.839844 37.941406C19.091844 38.134406 18.994141 38.784906 18.994141 39.253906C18.994141 39.253906 22.746656 39.065547 24.472656 38.935547C26.431656 38.785547 26.496094 37.472656 26.496094 37.472656L24.246094 37.003906L24.246094 25.470703C24.246094 25.470703 29.965844 34.660328 31.714844 37.361328C32.537844 38.630328 33.152375 38.878906 34.234375 38.878906C35.122375 38.878906 35.962141 38.616594 36.994141 38.058594L36.994141 20.697266C36.994141 20.697266 37.184203 20.687141 37.783203 20.494141C38.466203 20.273141 38.496094 19.656 38.496094 19z'
fill='currentColor'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Notion](https://www.notion.so) ist ein All-in-One-Arbeitsbereich, der Notizen, Dokumente, Wikis und Projektmanagement-Tools auf einer einzigen Plattform vereint. Es bietet eine flexible und anpassbare Umgebung, in der Benutzer Inhalte in verschiedenen Formaten erstellen, organisieren und gemeinsam daran arbeiten können.
Mit Notion können Sie:
- **Vielseitige Inhalte erstellen**: Dokumente, Wikis, Datenbanken, Kanban-Boards, Kalender und mehr erstellen
- **Informationen organisieren**: Inhalte hierarchisch mit verschachtelten Seiten und leistungsstarken Datenbanken strukturieren
- **Nahtlos zusammenarbeiten**: Arbeitsbereiche und Seiten mit Teammitgliedern für Echtzeit-Zusammenarbeit teilen
- **Ihren Arbeitsbereich anpassen**: Gestalten Sie Ihren idealen Arbeitsablauf mit flexiblen Vorlagen und Bausteinen
- **Informationen verknüpfen**: Verlinken Sie Seiten und Datenbanken, um ein Wissensnetzwerk zu erstellen
- **Überall zugreifen**: Nutzen Sie Notion über Web-, Desktop- und mobile Plattformen mit automatischer Synchronisierung
In Sim ermöglicht die Notion-Integration Ihren Agenten, direkt programmatisch mit Ihrem Notion-Arbeitsbereich zu interagieren. Dies ermöglicht leistungsstarke Automatisierungsszenarien wie Wissensmanagement, Inhaltserstellung und Informationsabruf. Ihre Agenten können:
- **Notion-Seiten lesen**: Inhalte und Metadaten von jeder Notion-Seite extrahieren.
- **Notion-Datenbanken lesen**: Datenbankstruktur und -informationen abrufen.
- **In Seiten schreiben**: Neue Inhalte zu bestehenden Notion-Seiten hinzufügen.
- **Neue Seiten erstellen**: Neue Notion-Seiten unter einer übergeordneten Seite mit benutzerdefinierten Titeln und Inhalten generieren.
- **Datenbanken abfragen**: Datenbankeinträge mit erweiterten Filter- und Sortierkriterien suchen und filtern.
- **Arbeitsbereich durchsuchen**: Den gesamten Notion-Arbeitsbereich nach Seiten oder Datenbanken durchsuchen, die bestimmten Abfragen entsprechen.
- **Neue Datenbanken erstellen**: Programmatisch neue Datenbanken mit benutzerdefinierten Eigenschaften und Struktur erstellen.
Diese Integration überbrückt die Lücke zwischen Ihren KI-Workflows und Ihrer Wissensbasis und ermöglicht ein nahtloses Dokumenten- und Informationsmanagement. Durch die Verbindung von Sim mit Notion können Sie Dokumentationsprozesse automatisieren, aktuelle Informationsrepositorien pflegen, Berichte generieren und Informationen intelligent organisieren alles durch Ihre intelligenten Agenten.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integration mit Notion in den Arbeitsablauf. Kann Seiten lesen, Datenbanken lesen, Seiten erstellen, Datenbanken erstellen, Inhalte anhängen, Datenbanken abfragen und Workspace durchsuchen. Erfordert OAuth.
## Tools
### `notion_read`
Inhalte von einer Notion-Seite lesen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `pageId` | string | Ja | Die ID der zu lesenden Notion-Seite |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Seiteninhalt im Markdown-Format mit Überschriften, Absätzen, Listen und Aufgaben |
| `metadata` | object | Seiten-Metadaten einschließlich Titel, URL und Zeitstempeln |
### `notion_read_database`
Datenbankinformationen und -struktur aus Notion lesen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `databaseId` | string | Ja | Die ID der zu lesenden Notion-Datenbank |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Datenbankinformationen einschließlich Titel, Eigenschaften-Schema und Metadaten |
| `metadata` | object | Datenbank-Metadaten einschließlich Titel, ID, URL, Zeitstempeln und Eigenschaften-Schema |
### `notion_write`
Inhalte zu einer Notion-Seite hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `pageId` | string | Ja | Die ID der Notion-Seite, zu der Inhalte hinzugefügt werden sollen |
| `content` | string | Ja | Der Inhalt, der zur Seite hinzugefügt werden soll |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung, die bestätigt, dass der Inhalt zur Seite hinzugefügt wurde |
### `notion_create_page`
Eine neue Seite in Notion erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `parentId` | string | Ja | ID der übergeordneten Seite |
| `title` | string | Nein | Titel der neuen Seite |
| `content` | string | Nein | Optionaler Inhalt, der bei der Erstellung zur Seite hinzugefügt wird |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung, die die Seitenerstellung bestätigt |
| `metadata` | object | Seiten-Metadaten einschließlich Titel, Seiten-ID, URL und Zeitstempel |
### `notion_query_database`
Notion-Datenbankeinträge mit erweiterter Filterung abfragen und filtern
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `databaseId` | string | Ja | Die ID der abzufragenden Datenbank |
| `filter` | string | Nein | Filterbedingungen als JSON \(optional\) |
| `sorts` | string | Nein | Sortierkriterien als JSON-Array \(optional\) |
| `pageSize` | number | Nein | Anzahl der zurückzugebenden Ergebnisse \(Standard: 100, max: 100\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Formatierte Liste von Datenbankeinträgen mit ihren Eigenschaften |
| `metadata` | object | Abfrage-Metadaten einschließlich Gesamtergebnisanzahl, Paginierungsinformationen und Array mit Rohergebnissen |
### `notion_search`
Durchsuche alle Seiten und Datenbanken im Notion-Workspace
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Nein | Suchbegriffe \(leer lassen, um alle Seiten zu erhalten\) |
| `filterType` | string | Nein | Nach Objekttyp filtern: page, database oder leer lassen für alle |
| `pageSize` | number | Nein | Anzahl der zurückzugebenden Ergebnisse \(Standard: 100, max: 100\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Formatierte Liste der Suchergebnisse mit Seiten und Datenbanken |
| `metadata` | object | Suchdaten einschließlich Gesamtanzahl der Ergebnisse, Paginierungsinformationen und Array der Rohergebnisse |
### `notion_create_database`
Erstelle eine neue Datenbank in Notion mit benutzerdefinierten Eigenschaften
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `parentId` | string | Ja | ID der übergeordneten Seite, auf der die Datenbank erstellt wird |
| `title` | string | Ja | Titel für die neue Datenbank |
| `properties` | string | Nein | Datenbankeigenschaften als JSON-Objekt \(optional, erstellt eine Standard-"Name"-Eigenschaft, wenn leer\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `content` | string | Erfolgsmeldung mit Datenbankdetails und Eigenschaftsliste |
| `metadata` | object | Datenbankmetadaten einschließlich ID, Titel, URL, Erstellungszeit und Eigenschaftsschema |
## Notizen
- Kategorie: `tools`
- Typ: `notion`

View File

@@ -0,0 +1,120 @@
---
title: OneDrive
description: Dateien erstellen, hochladen und auflisten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="onedrive"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon" fill='currentColor' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'>
<g>
<path
d='M12.20245,11.19292l.00031-.0011,6.71765,4.02379,4.00293-1.68451.00018.00068A6.4768,6.4768,0,0,1,25.5,13c.14764,0,.29358.0067.43878.01639a10.00075,10.00075,0,0,0-18.041-3.01381C7.932,10.00215,7.9657,10,8,10A7.96073,7.96073,0,0,1,12.20245,11.19292Z'
fill='#0364b8'
/>
<path
d='M12.20276,11.19182l-.00031.0011A7.96073,7.96073,0,0,0,8,10c-.0343,0-.06805.00215-.10223.00258A7.99676,7.99676,0,0,0,1.43732,22.57277l5.924-2.49292,2.63342-1.10819,5.86353-2.46746,3.06213-1.28859Z'
fill='#0078d4'
/>
<path
d='M25.93878,13.01639C25.79358,13.0067,25.64764,13,25.5,13a6.4768,6.4768,0,0,0-2.57648.53178l-.00018-.00068-4.00293,1.68451,1.16077.69528L23.88611,18.19l1.66009.99438,5.67633,3.40007a6.5002,6.5002,0,0,0-5.28375-9.56805Z'
fill='#1490df'
/>
<path
d='M25.5462,19.18437,23.88611,18.19l-3.80493-2.2791-1.16077-.69528L15.85828,16.5042,9.99475,18.97166,7.36133,20.07985l-5.924,2.49292A7.98889,7.98889,0,0,0,8,26H25.5a6.49837,6.49837,0,0,0,5.72253-3.41556Z'
fill='#28a8ea'
/>
</g>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[OneDrive](https://onedrive.live.com) ist Microsofts Cloud-Speicher- und Dateisynchronisierungsdienst, der es Benutzern ermöglicht, Dateien sicher zu speichern, darauf zuzugreifen und sie geräteübergreifend zu teilen. OneDrive ist tief in das Microsoft 365-Ökosystem integriert und unterstützt nahtlose Zusammenarbeit, Versionskontrolle und Echtzeitzugriff auf Inhalte für Teams und Organisationen.
Erfahren Sie, wie Sie das OneDrive-Tool in Sim integrieren, um Ihre Cloud-Dateien automatisch abzurufen, zu verwalten und in Ihren Workflows zu organisieren. Dieses Tutorial führt Sie durch die Verbindung mit OneDrive, die Einrichtung des Dateizugriffs und die Verwendung gespeicherter Inhalte zur Automatisierung. Ideal für die Synchronisierung wichtiger Dokumente und Medien mit Ihren Agenten in Echtzeit.
Mit OneDrive können Sie:
- **Dateien sicher in der Cloud speichern**: Dokumente, Bilder und andere Dateien von jedem Gerät aus hochladen und darauf zugreifen
- **Ihre Inhalte organisieren**: Strukturierte Ordner erstellen und Dateiversionen mühelos verwalten
- **In Echtzeit zusammenarbeiten**: Dateien teilen, gleichzeitig mit anderen bearbeiten und Änderungen verfolgen
- **Geräteübergreifender Zugriff**: OneDrive von Desktop-, Mobil- und Webplattformen aus nutzen
- **Integration mit Microsoft 365**: Nahtlos mit Word, Excel, PowerPoint und Teams arbeiten
- **Berechtigungen kontrollieren**: Dateien und Ordner mit benutzerdefinierten Zugriffseinstellungen und Ablaufkontrollen teilen
In Sim ermöglicht die OneDrive-Integration Ihren Agenten die direkte Interaktion mit Ihrem Cloud-Speicher. Agenten können neue Dateien in bestimmte Ordner hochladen, bestehende Dateien abrufen und lesen sowie Ordnerinhalte auflisten, um Informationen dynamisch zu organisieren und darauf zuzugreifen. Diese Integration ermöglicht es Ihren Agenten, Dateioperationen in intelligente Workflows einzubinden Automatisierung der Dokumentenaufnahme, Inhaltsanalyse und strukturiertes Speichermanagement. Durch die Verbindung von Sim mit OneDrive befähigen Sie Ihre Agenten, Cloud-Dokumente programmatisch zu verwalten und zu nutzen, wodurch manuelle Schritte entfallen und die Automatisierung durch sicheren Echtzeit-Dateizugriff verbessert wird.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integriert OneDrive in den Workflow. Kann Dateien erstellen, hochladen und auflisten. Erfordert OAuth.
## Tools
### `onedrive_upload`
Eine Datei auf OneDrive hochladen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fileName` | string | Ja | Der Name der hochzuladenden Datei |
| `content` | string | Ja | Der Inhalt der hochzuladenden Datei |
| `folderSelector` | string | Nein | Wählen Sie den Ordner aus, in den die Datei hochgeladen werden soll |
| `manualFolderId` | string | Nein | Manuell eingegebene Ordner-ID \(erweiterter Modus\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die Datei erfolgreich hochgeladen wurde |
| `file` | object | Das hochgeladene Dateiobjekt mit Metadaten einschließlich ID, Name, webViewLink, webContentLink und Zeitstempeln |
### `onedrive_create_folder`
Einen neuen Ordner in OneDrive erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `folderName` | string | Ja | Name des zu erstellenden Ordners |
| `folderSelector` | string | Nein | Wählen Sie den übergeordneten Ordner aus, in dem der Ordner erstellt werden soll |
| `manualFolderId` | string | Nein | Manuell eingegebene übergeordnete Ordner-ID \(erweiterter Modus\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob der Ordner erfolgreich erstellt wurde |
| `file` | object | Das erstellte Ordnerobjekt mit Metadaten einschließlich ID, Name, webViewLink und Zeitstempeln |
### `onedrive_list`
Dateien und Ordner in OneDrive auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `folderSelector` | string | Nein | Wählen Sie den Ordner aus, aus dem Dateien aufgelistet werden sollen |
| `manualFolderId` | string | Nein | Die manuell eingegebene Ordner-ID (erweiterter Modus) |
| `query` | string | Nein | Eine Abfrage zum Filtern der Dateien |
| `pageSize` | number | Nein | Die Anzahl der zurückzugebenden Dateien |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob Dateien erfolgreich aufgelistet wurden |
| `files` | array | Array von Datei- und Ordnerobjekten mit Metadaten |
| `nextPageToken` | string | Token zum Abrufen der nächsten Ergebnisseite (optional) |
## Hinweise
- Kategorie: `tools`
- Typ: `onedrive`

View File

@@ -0,0 +1,72 @@
---
title: Embeddings
description: Open AI Embeddings generieren
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="openai"
color="#10a37f"
icon={true}
iconSvg={`<svg className="block-icon"
viewBox='0 0 24 24'
role='img'
xmlns='http://www.w3.org/2000/svg'
>
<path
d='M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z'
fill='currentColor'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[OpenAI](https://www.openai.com) ist ein führendes Unternehmen für KI-Forschung und -Implementierung, das eine Reihe leistungsstarker KI-Modelle und APIs anbietet. OpenAI bietet modernste Technologien, darunter große Sprachmodelle (wie GPT-4), Bildgenerierung (DALL-E) und Embeddings, die es Entwicklern ermöglichen, anspruchsvolle KI-gestützte Anwendungen zu erstellen.
Mit OpenAI können Sie:
- **Text generieren**: Menschenähnlichen Text für verschiedene Anwendungen mit GPT-Modellen erstellen
- **Bilder erstellen**: Textbeschreibungen mit DALL-E in visuelle Inhalte umwandeln
- **Embeddings erzeugen**: Text in numerische Vektoren für semantische Suche und Analyse umwandeln
- **KI-Assistenten entwickeln**: Konversationsagenten mit spezialisiertem Wissen erstellen
- **Daten verarbeiten und analysieren**: Erkenntnisse und Muster aus unstrukturiertem Text extrahieren
- **Sprachen übersetzen**: Inhalte mit hoher Genauigkeit zwischen verschiedenen Sprachen konvertieren
- **Inhalte zusammenfassen**: Lange Texte verdichten und dabei wichtige Informationen bewahren
In Sim ermöglicht die OpenAI-Integration Ihren Agenten, diese leistungsstarken KI-Fähigkeiten programmatisch als Teil ihrer Workflows zu nutzen. Dies erlaubt anspruchsvolle Automatisierungsszenarien, die natürliches Sprachverständnis, Inhaltsgenerierung und semantische Analyse kombinieren. Ihre Agenten können Vektoreinbettungen aus Text generieren, die als numerische Darstellungen semantische Bedeutungen erfassen und fortschrittliche Such-, Klassifizierungs- und Empfehlungssysteme ermöglichen. Zusätzlich können Agenten durch die DALL-E-Integration Bilder aus Textbeschreibungen erstellen, was Möglichkeiten für die Generierung visueller Inhalte eröffnet. Diese Integration überbrückt die Lücke zwischen Ihrer Workflow-Automatisierung und modernsten KI-Fähigkeiten und ermöglicht Ihren Agenten, Kontext zu verstehen, relevante Inhalte zu generieren und intelligente Entscheidungen auf Basis semantischen Verständnisses zu treffen. Durch die Verbindung von Sim mit OpenAI können Sie Agenten erstellen, die Informationen intelligenter verarbeiten, kreative Inhalte generieren und personalisierte Erfahrungen für Benutzer liefern.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Embeddings in den Workflow integrieren. Kann Embeddings aus Text generieren. Erfordert API-Schlüssel.
## Tools
### `openai_embeddings`
Embeddings aus Text mit OpenAI generieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `input` | string | Ja | Text, für den Embeddings generiert werden sollen |
| `model` | string | Nein | Modell, das für Embeddings verwendet werden soll |
| `encodingFormat` | string | Nein | Das Format, in dem die Embeddings zurückgegeben werden sollen |
| `apiKey` | string | Ja | OpenAI API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Erfolgsstatus der Operation |
| `output` | object | Ergebnisse der Embedding-Generierung |
## Hinweise
- Kategorie: `tools`
- Typ: `openai`

View File

@@ -0,0 +1,236 @@
---
title: Outlook
description: Zugriff auf Outlook
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="outlook"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
xmlns='http://www.w3.org/2000/svg'
version='1.1'
id='Livello_1'
x='0px'
y='0px'
viewBox='0 0 1831.085 1703.335'
enableBackground='new 0 0 1831.085 1703.335'
>
<path
fill='#0A2767'
d='M1831.083,894.25c0.1-14.318-7.298-27.644-19.503-35.131h-0.213l-0.767-0.426l-634.492-375.585 c-2.74-1.851-5.583-3.543-8.517-5.067c-24.498-12.639-53.599-12.639-78.098,0c-2.934,1.525-5.777,3.216-8.517,5.067L446.486,858.693 l-0.766,0.426c-19.392,12.059-25.337,37.556-13.278,56.948c3.553,5.714,8.447,10.474,14.257,13.868l634.492,375.585 c2.749,1.835,5.592,3.527,8.517,5.068c24.498,12.639,53.599,12.639,78.098,0c2.925-1.541,5.767-3.232,8.517-5.068l634.492-375.585 C1823.49,922.545,1831.228,908.923,1831.083,894.25z'
/>
<path
fill='#0364B8'
d='M520.453,643.477h416.38v381.674h-416.38V643.477z M1745.917,255.5V80.908 c1-43.652-33.552-79.862-77.203-80.908H588.204C544.552,1.046,510,37.256,511,80.908V255.5l638.75,170.333L1745.917,255.5z'
/>
<path fill='#0078D4' d='M511,255.5h425.833v383.25H511V255.5z' />
<path
fill='#28A8EA'
d='M1362.667,255.5H936.833v383.25L1362.667,1022h383.25V638.75L1362.667,255.5z'
/>
<path fill='#0078D4' d='M936.833,638.75h425.833V1022H936.833V638.75z' />
<path fill='#0364B8' d='M936.833,1022h425.833v383.25H936.833V1022z' />
<path fill='#14447D' d='M520.453,1025.151h416.38v346.969h-416.38V1025.151z' />
<path fill='#0078D4' d='M1362.667,1022h383.25v383.25h-383.25V1022z' />
<linearGradient
id='SVGID_1_'
gradientUnits='userSpaceOnUse'
x1='1128.4584'
y1='811.0833'
x2='1128.4584'
y2='1.9982'
gradientTransform='matrix(1 0 0 -1 0 1705.3334)'
>
<stop offset='0' style={{ stopColor: '#35B8F1' }} />
<stop offset='1' style={{ stopColor: '#28A8EA' }} />
</linearGradient>
<path
fill='url(#SVGID_1_)'
d='M1811.58,927.593l-0.809,0.426l-634.492,356.848c-2.768,1.703-5.578,3.321-8.517,4.769 c-10.777,5.132-22.481,8.029-34.407,8.517l-34.663-20.27c-2.929-1.47-5.773-3.105-8.517-4.897L447.167,906.003h-0.298 l-21.036-11.753v722.384c0.328,48.196,39.653,87.006,87.849,86.7h1230.914c0.724,0,1.363-0.341,2.129-0.341 c10.18-0.651,20.216-2.745,29.808-6.217c4.145-1.756,8.146-3.835,11.966-6.217c2.853-1.618,7.75-5.152,7.75-5.152 c21.814-16.142,34.726-41.635,34.833-68.772V894.25C1831.068,908.067,1823.616,920.807,1811.58,927.593z'
/>
<path
opacity='0.5'
fill='#0A2767'
enableBackground='new '
d='M1797.017,891.397v44.287l-663.448,456.791L446.699,906.301 c0-0.235-0.191-0.426-0.426-0.426l0,0l-63.023-37.899v-31.938l25.976-0.426l54.932,31.512l1.277,0.426l4.684,2.981 c0,0,645.563,368.346,647.267,369.197l24.698,14.478c2.129-0.852,4.258-1.703,6.813-2.555 c1.278-0.852,640.879-360.681,640.879-360.681L1797.017,891.397z'
/>
<path
fill='#1490DF'
d='M1811.58,927.593l-0.809,0.468l-634.492,356.848c-2.768,1.703-5.578,3.321-8.517,4.769 c-24.641,12.038-53.457,12.038-78.098,0c-2.918-1.445-5.76-3.037-8.517-4.769L446.657,928.061l-0.766-0.468 c-12.25-6.642-19.93-19.409-20.057-33.343v722.384c0.305,48.188,39.616,87.004,87.803,86.7c0.001,0,0.002,0,0.004,0h1229.636 c48.188,0.307,87.5-38.509,87.807-86.696c0-0.001,0-0.002,0-0.004V894.25C1831.068,908.067,1823.616,920.807,1811.58,927.593z'
/>
<path
opacity='0.1'
enableBackground='new '
d='M1185.52,1279.629l-9.496,5.323c-2.752,1.752-5.595,3.359-8.517,4.812 c-10.462,5.135-21.838,8.146-33.47,8.857l241.405,285.479l421.107,101.476c11.539-8.716,20.717-20.178,26.7-33.343L1185.52,1279.629 z'
/>
<path
opacity='0.05'
enableBackground='new '
d='M1228.529,1255.442l-52.505,29.51c-2.752,1.752-5.595,3.359-8.517,4.812 c-10.462,5.135-21.838,8.146-33.47,8.857l113.101,311.838l549.538,74.989c21.649-16.254,34.394-41.743,34.407-68.815v-9.326 L1228.529,1255.442z'
/>
<path
fill='#28A8EA'
d='M514.833,1703.333h1228.316c18.901,0.096,37.335-5.874,52.59-17.033l-697.089-408.331 c-2.929-1.47-5.773-3.105-8.517-4.897L447.125,906.088h-0.298l-20.993-11.838v719.914 C425.786,1663.364,465.632,1703.286,514.833,1703.333C514.832,1703.333,514.832,1703.333,514.833,1703.333z'
/>
<path
opacity='0.1'
enableBackground='new '
d='M1022,418.722v908.303c-0.076,31.846-19.44,60.471-48.971,72.392 c-9.148,3.931-19,5.96-28.957,5.962H425.833V383.25H511v-42.583h433.073C987.092,340.83,1021.907,375.702,1022,418.722z'
/>
<path
opacity='0.2'
enableBackground='new '
d='M979.417,461.305v908.302c0.107,10.287-2.074,20.469-6.388,29.808 c-11.826,29.149-40.083,48.273-71.54,48.417H425.833V383.25h475.656c12.356-0.124,24.533,2.958,35.344,8.943 C962.937,405.344,979.407,432.076,979.417,461.305z'
/>
<path
opacity='0.2'
enableBackground='new '
d='M979.417,461.305v823.136c-0.208,43-34.928,77.853-77.927,78.225H425.833V383.25 h475.656c12.356-0.124,24.533,2.958,35.344,8.943C962.937,405.344,979.407,432.076,979.417,461.305z'
/>
<path
opacity='0.2'
enableBackground='new '
d='M936.833,461.305v823.136c-0.046,43.067-34.861,78.015-77.927,78.225H425.833 V383.25h433.072c43.062,0.023,77.951,34.951,77.927,78.013C936.833,461.277,936.833,461.291,936.833,461.305z'
/>
<linearGradient
id='SVGID_2_'
gradientUnits='userSpaceOnUse'
x1='162.7469'
y1='1383.0741'
x2='774.0864'
y2='324.2592'
gradientTransform='matrix(1 0 0 -1 0 1705.3334)'
>
<stop offset='0' style={{ stopColor: '#1784D9' }} />
<stop offset='0.5' style={{ stopColor: '#107AD5' }} />
<stop offset='1' style={{ stopColor: '#0A63C9' }} />
</linearGradient>
<path
fill='url(#SVGID_2_)'
d='M78.055,383.25h780.723c43.109,0,78.055,34.947,78.055,78.055v780.723 c0,43.109-34.946,78.055-78.055,78.055H78.055c-43.109,0-78.055-34.947-78.055-78.055V461.305 C0,418.197,34.947,383.25,78.055,383.25z'
/>
<path
fill='#FFFFFF'
d='M243.96,710.631c19.238-40.988,50.29-75.289,89.17-98.495c43.057-24.651,92.081-36.94,141.675-35.515 c45.965-0.997,91.321,10.655,131.114,33.683c37.414,22.312,67.547,55.004,86.742,94.109c20.904,43.09,31.322,90.512,30.405,138.396 c1.013,50.043-9.706,99.628-31.299,144.783c-19.652,40.503-50.741,74.36-89.425,97.388c-41.327,23.734-88.367,35.692-136.011,34.578 c-46.947,1.133-93.303-10.651-134.01-34.067c-37.738-22.341-68.249-55.07-87.892-94.28c-21.028-42.467-31.57-89.355-30.745-136.735 C212.808,804.859,223.158,755.686,243.96,710.631z M339.006,941.858c10.257,25.912,27.651,48.385,50.163,64.812 c22.93,16.026,50.387,24.294,78.353,23.591c29.783,1.178,59.14-7.372,83.634-24.358c22.227-16.375,39.164-38.909,48.715-64.812 c10.677-28.928,15.946-59.572,15.543-90.404c0.33-31.127-4.623-62.084-14.649-91.554c-8.855-26.607-25.246-50.069-47.182-67.537 c-23.88-17.79-53.158-26.813-82.91-25.55c-28.572-0.74-56.644,7.593-80.184,23.804c-22.893,16.496-40.617,39.168-51.1,65.365 c-23.255,60.049-23.376,126.595-0.341,186.728L339.006,941.858z'
/>
<path fill='#50D9FF' d='M1362.667,255.5h383.25v383.25h-383.25V255.5z' />
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Microsoft Outlook](https://outlook.office365.com) ist eine umfassende E-Mail- und Kalenderplattform, die Benutzern hilft, Kommunikation, Termine und Aufgaben effizient zu verwalten. Als Teil der Microsoft-Produktivitätssuite bietet Outlook robuste Tools zum Senden und Organisieren von E-Mails, Koordinieren von Meetings und nahtloser Integration mit Microsoft 365-Anwendungen — so können Einzelpersonen und Teams über verschiedene Geräte hinweg organisiert und vernetzt bleiben.
Mit Microsoft Outlook können Sie:
- **E-Mails senden und empfangen**: Kommunizieren Sie klar und professionell mit Einzelpersonen oder Verteilerlisten
- **Kalender und Termine verwalten**: Planen Sie Meetings, setzen Sie Erinnerungen und sehen Sie Verfügbarkeiten
- **Ihren Posteingang organisieren**: Nutzen Sie Ordner, Kategorien und Regeln, um Ihre E-Mails zu strukturieren
- **Auf Kontakte und Aufgaben zugreifen**: Behalten Sie wichtige Personen und Aktionspunkte an einem Ort im Blick
- **Mit Microsoft 365 integrieren**: Arbeiten Sie nahtlos mit Word, Excel, Teams und anderen Microsoft-Apps
- **Geräteübergreifender Zugriff**: Nutzen Sie Outlook auf Desktop, Web und Mobilgeräten mit Echtzeit-Synchronisation
- **Datenschutz und Sicherheit gewährleisten**: Nutzen Sie Verschlüsselung und Compliance-Kontrollen auf Unternehmensebene
In Sim ermöglicht die Microsoft Outlook-Integration Ihren Agenten, direkt programmatisch mit E-Mail- und Kalenderdaten zu interagieren. Dies ermöglicht leistungsstarke Automatisierungsszenarien wie das Senden benutzerdefinierter E-Mail-Updates, das Analysieren eingehender Nachrichten für Workflow-Trigger, das Erstellen von Kalenderereignissen und das Verwalten von Aufgabenerinnerungen. Durch die Verbindung von Sim mit Microsoft Outlook können intelligente Agenten Kommunikation automatisieren, Terminplanung optimieren und die Übersicht über die Organisationskorrespondenz behalten alles innerhalb Ihres Workflow-Ökosystems.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integrieren Sie Outlook in den Workflow. Kann E-Mail-Nachrichten lesen, entwerfen und senden. Erfordert OAuth. Kann im Trigger-Modus verwendet werden, um einen Workflow auszulösen, wenn eine neue E-Mail empfangen wird.
## Tools
### `outlook_send`
E-Mails über Outlook versenden
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `to` | string | Ja | E-Mail-Adresse des Empfängers |
| `subject` | string | Ja | E-Mail-Betreff |
| `body` | string | Ja | E-Mail-Inhalt |
| `replyToMessageId` | string | Nein | Nachrichten-ID für Antworten \(für Threading\) |
| `conversationId` | string | Nein | Konversations-ID für Threading |
| `cc` | string | Nein | CC-Empfänger \(durch Kommas getrennt\) |
| `bcc` | string | Nein | BCC-Empfänger \(durch Kommas getrennt\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des erfolgreichen E-Mail-Versands |
| `status` | string | Zustellungsstatus der E-Mail |
| `timestamp` | string | Zeitstempel, wann die E-Mail gesendet wurde |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `outlook_draft`
E-Mails mit Outlook erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `to` | string | Ja | E-Mail-Adresse des Empfängers |
| `subject` | string | Ja | Betreff der E-Mail |
| `body` | string | Ja | Inhalt der E-Mail |
| `cc` | string | Nein | CC-Empfänger \(durch Komma getrennt\) |
| `bcc` | string | Nein | BCC-Empfänger \(durch Komma getrennt\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status der erfolgreichen Erstellung des E-Mail-Entwurfs |
| `messageId` | string | Eindeutige Kennung für die entworfene E-Mail |
| `status` | string | Entwurfsstatus der E-Mail |
| `subject` | string | Betreff der entworfenen E-Mail |
| `timestamp` | string | Zeitstempel, wann der Entwurf erstellt wurde |
| `message` | string | Erfolgs- oder Fehlermeldung |
### `outlook_read`
E-Mails aus Outlook lesen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `folder` | string | Nein | Ordner-ID, aus der E-Mails gelesen werden sollen \(Standard: Posteingang\) |
| `maxResults` | number | Nein | Maximale Anzahl der abzurufenden E-Mails \(Standard: 1, max: 10\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Statusmeldung |
| `results` | array | Array von E-Mail-Nachrichtenobjekten |
### `outlook_forward`
Eine bestehende Outlook-Nachricht an bestimmte Empfänger weiterleiten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `messageId` | string | Ja | Die ID der weiterzuleitenden Nachricht |
| `to` | string | Ja | E-Mail-Adresse(n) der Empfänger, durch Kommas getrennt |
| `comment` | string | Nein | Optionaler Kommentar, der mit der weitergeleiteten Nachricht eingefügt wird |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Erfolgs- oder Fehlermeldung |
| `results` | object | Details zum Zustellungsergebnis |
## Hinweise
- Kategorie: `tools`
- Typ: `outlook`

View File

@@ -0,0 +1,101 @@
---
title: Parallel AI
description: Suche mit Parallel AI
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="parallel_ai"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
fill='currentColor'
viewBox='0 0 271 270'
xmlns='http://www.w3.org/2000/svg'
>
<path
d='M267.804 105.65H193.828C194.026 106.814 194.187 107.996 194.349 109.178H76.6703C76.4546 110.736 76.2388 112.312 76.0591 113.87H1.63342C1.27387 116.198 0.950289 118.543 0.698608 120.925H75.3759C75.2501 122.483 75.1602 124.059 75.0703 125.617H195.949C196.003 126.781 196.057 127.962 196.093 129.144H270.68V125.384C270.195 118.651 269.242 112.061 267.804 105.65Z'
fill='#1D1C1A'
/>
<path
d='M195.949 144.401H75.0703C75.1422 145.977 75.2501 147.535 75.3759 149.093H0.698608C0.950289 151.457 1.2559 153.802 1.63342 156.148H76.0591C76.2388 157.724 76.4366 159.282 76.6703 160.84H194.349C194.187 162.022 194.008 163.186 193.828 164.367H267.804C269.242 157.957 270.195 151.367 270.68 144.634V140.874H196.093C196.057 142.055 196.003 143.219 195.949 144.401Z'
fill='#1D1C1A'
/>
<path
d='M190.628 179.642H80.3559C80.7514 181.218 81.1828 182.776 81.6143 184.334H9.30994C10.2448 186.715 11.2515 189.061 12.3121 191.389H83.7536C84.2749 192.965 84.7962 194.523 85.3535 196.08H185.594C185.163 197.262 184.732 198.426 184.282 199.608H254.519C258.6 192.177 261.98 184.316 264.604 176.114H191.455C191.185 177.296 190.898 178.46 190.61 179.642H190.628Z'
fill='#1D1C1A'
/>
<path
d='M177.666 214.883H93.3352C94.1082 216.458 94.9172 218.034 95.7441 219.574H29.8756C31.8351 221.992 33.8666 224.337 35.9699 226.63H99.6632C100.598 228.205 101.551 229.781 102.522 231.321H168.498C167.761 232.503 167.006 233.685 166.233 234.849H226.762C234.474 227.847 241.36 219.95 247.292 211.355H179.356C178.799 212.537 178.26 213.719 177.684 214.883H177.666Z'
fill='#1D1C1A'
/>
<path
d='M154.943 250.106H116.058C117.371 251.699 118.701 253.257 120.067 254.797H73.021C91.6094 264.431 112.715 269.946 135.096 270C135.24 270 135.366 270 135.492 270C135.618 270 135.761 270 135.887 270C164.04 269.911 190.178 261.28 211.805 246.56H157.748C156.813 247.742 155.878 248.924 154.925 250.088L154.943 250.106Z'
fill='#1D1C1A'
/>
<path
d='M116.059 19.9124H154.943C155.896 21.0764 156.831 22.2582 157.766 23.4401H211.823C190.179 8.72065 164.058 0.0895344 135.906 0C135.762 0 135.636 0 135.51 0C135.384 0 135.24 0 135.115 0C112.715 0.0716275 91.6277 5.56904 73.0393 15.2029H120.086C118.719 16.7429 117.389 18.3187 116.077 19.8945L116.059 19.9124Z'
fill='#1D1C1A'
/>
<path
d='M93.3356 55.1532H177.667C178.242 56.3171 178.799 57.499 179.339 58.6808H247.274C241.342 50.0855 234.457 42.1886 226.744 35.187H166.215C166.988 36.351 167.743 37.5328 168.48 38.7147H102.504C101.533 40.2726 100.58 41.8305 99.6456 43.4063H35.9523C33.831 45.6804 31.7996 48.0262 29.858 50.4616H95.7265C94.8996 52.0195 94.1086 53.5774 93.3176 55.1532H93.3356Z'
fill='#1D1C1A'
/>
<path
d='M80.3736 90.3758H190.646C190.933 91.5398 191.221 92.7216 191.491 93.9035H264.64C262.015 85.7021 258.636 77.841 254.555 70.4097H184.318C184.767 71.5736 185.199 72.7555 185.63 73.9373H85.3893C84.832 75.4952 84.2927 77.0531 83.7893 78.6289H12.3479C11.2872 80.9389 10.2805 83.2847 9.3457 85.6842H81.65C81.2186 87.2421 80.7871 88.8 80.3916 90.3758H80.3736Z'
fill='#1D1C1A'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Parallel AI](https://parallel.ai/) ist eine fortschrittliche Websuche- und Inhaltsextraktionsplattform, die umfassende, hochwertige Ergebnisse für jede Anfrage liefert. Durch die Nutzung intelligenter Verarbeitung und großflächiger Datenextraktion ermöglicht Parallel AI Benutzern und Agenten den Zugriff, die Analyse und die Synthese von Informationen aus dem gesamten Web mit Geschwindigkeit und Genauigkeit.
Mit Parallel AI können Sie:
- **Intelligent im Web suchen**: Relevante, aktuelle Informationen aus einer Vielzahl von Quellen abrufen
- **Inhalte extrahieren und zusammenfassen**: Präzise, aussagekräftige Auszüge aus Webseiten und Dokumenten erhalten
- **Suchziele anpassen**: Anfragen auf spezifische Bedürfnisse oder Fragen für gezielte Ergebnisse zuschneiden
- **Ergebnisse im großen Maßstab verarbeiten**: Große Mengen von Suchergebnissen mit erweiterten Verarbeitungsoptionen handhaben
- **In Arbeitsabläufe integrieren**: Parallel AI innerhalb von Sim nutzen, um Recherche, Inhaltssammlung und Wissensextraktion zu automatisieren
- **Ausgabedetailgrad steuern**: Die Anzahl der Ergebnisse und die Menge an Inhalt pro Ergebnis festlegen
- **Sichere API-Zugriffe**: Ihre Suchen und Daten mit API-Schlüssel-Authentifizierung schützen
In Sim ermöglicht die Parallel AI-Integration Ihren Agenten, Websuchen durchzuführen und Inhalte programmatisch zu extrahieren. Dies ermöglicht leistungsstarke Automatisierungsszenarien wie Echtzeit-Recherche, Wettbewerbsanalyse, Inhaltsüberwachung und Erstellung von Wissensdatenbanken. Durch die Verbindung von Sim mit Parallel AI erschließen Sie die Fähigkeit für Agenten, Webdaten als Teil Ihrer automatisierten Arbeitsabläufe zu sammeln, zu verarbeiten und zu nutzen.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisung
Integrieren Sie Parallel AI in den Workflow. Kann im Web suchen. Benötigt API-Schlüssel.
## Tools
### `parallel_search`
Durchsuchen Sie das Web mit Parallel AI. Bietet umfassende Suchergebnisse mit intelligenter Verarbeitung und Inhaltsextraktion.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `objective` | string | Ja | Das Suchziel oder die zu beantwortende Frage |
| `search_queries` | string | Nein | Optionale, durch Kommas getrennte Liste von auszuführenden Suchanfragen |
| `processor` | string | Nein | Verarbeitungsmethode: base oder pro \(Standard: base\) |
| `max_results` | number | Nein | Maximale Anzahl der zurückzugebenden Ergebnisse \(Standard: 5\) |
| `max_chars_per_result` | number | Nein | Maximale Zeichen pro Ergebnis \(Standard: 1500\) |
| `apiKey` | string | Ja | Parallel AI API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `results` | array | Suchergebnisse mit Auszügen aus relevanten Seiten |
## Hinweise
- Kategorie: `tools`
- Typ: `parallel_ai`

View File

@@ -0,0 +1,68 @@
---
title: Perplexity
description: Verwende Perplexity AI-Chatmodelle
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="perplexity"
color="#20808D"
icon={true}
iconSvg={`<svg className="block-icon" viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' >
<path
d='M19.785 0v7.272H22.5V17.62h-2.935V24l-7.037-6.194v6.145h-1.091v-6.152L4.392 24v-6.465H1.5V7.188h2.884V0l7.053 6.494V.19h1.09v6.49L19.786 0zm-7.257 9.044v7.319l5.946 5.234V14.44l-5.946-5.397zm-1.099-.08l-5.946 5.398v7.235l5.946-5.234V8.965zm8.136 7.58h1.844V8.349H13.46l6.105 5.54v2.655zm-8.982-8.28H2.59v8.195h1.8v-2.576l6.192-5.62zM5.475 2.476v4.71h5.115l-5.115-4.71zm13.219 0l-5.115 4.71h5.115v-4.71z'
fill='currentColor'
fillRule='nonzero'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Perplexity AI](https://www.perplexity.ai) ist eine KI-gestützte Such- und Antwortmaschine, die die Fähigkeiten großer Sprachmodelle mit Echtzeit-Websuche kombiniert, um genaue, aktuelle Informationen und umfassende Antworten auf komplexe Fragen zu liefern.
Mit Perplexity AI kannst du:
- **Genaue antworten erhalten**: Erhalte umfassende Antworten auf Fragen mit Zitaten aus zuverlässigen Quellen
- **Auf echtzeit-informationen zugreifen**: Erhalte aktuelle Informationen durch die Websuchfunktionen von Perplexity
- **Themen tiefgehend erforschen**: Tauche tiefer in Themen ein mit Folgefragen und verwandten Informationen
- **Informationen überprüfen**: Prüfe die Glaubwürdigkeit von Antworten durch bereitgestellte Quellen und Referenzen
- **Inhalte generieren**: Erstelle Zusammenfassungen, Analysen und kreative Inhalte basierend auf aktuellen Informationen
- **Effizient recherchieren**: Optimiere Rechercheprozesse mit umfassenden Antworten auf komplexe Anfragen
- **Konversationell interagieren**: Führe natürliche Dialoge, um Fragen zu verfeinern und Themen zu erkunden
In Sim ermöglicht die Perplexity-Integration deinen Agenten, diese leistungsstarken KI-Fähigkeiten programmatisch als Teil ihrer Workflows zu nutzen. Dies erlaubt anspruchsvolle Automatisierungsszenarien, die natürliches Sprachverständnis, Echtzeit-Informationsabruf und Inhaltsgenerierung kombinieren. Deine Agenten können Anfragen formulieren, umfassende Antworten mit Zitaten erhalten und diese Informationen in ihre Entscheidungsprozesse oder Ausgaben einbeziehen. Diese Integration überbrückt die Lücke zwischen deiner Workflow-Automatisierung und dem Zugriff auf aktuelle, zuverlässige Informationen, wodurch deine Agenten fundiertere Entscheidungen treffen und genauere Antworten liefern können. Durch die Verbindung von Sim mit Perplexity kannst du Agenten erstellen, die mit den neuesten Informationen auf dem Laufenden bleiben, gut recherchierte Antworten liefern und wertvollere Erkenntnisse für Benutzer bereitstellen - alles ohne manuelle Recherche oder Informationssammlung.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisung
Integrieren Sie Perplexity in den Workflow. Kann Vervollständigungen mit Perplexity AI-Chatmodellen generieren. Erfordert API-Schlüssel.
## Tools
### `perplexity_chat`
Generieren Sie Vervollständigungen mit Perplexity AI-Chatmodellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `systemPrompt` | string | Nein | System-Prompt zur Steuerung des Modellverhaltens |
| `content` | string | Ja | Der Inhalt der Benutzernachricht, der an das Modell gesendet wird |
| `model` | string | Ja | Modell für Chat-Vervollständigungen \(z.B. sonar, mistral\) |
| `max_tokens` | number | Nein | Maximale Anzahl der zu generierenden Tokens |
| `temperature` | number | Nein | Sampling-Temperatur zwischen 0 und 1 |
| `apiKey` | string | Ja | Perplexity API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Status des Operationserfolgs |
| `output` | object | Ergebnisse der Chat-Vervollständigung |
## Hinweise
- Kategorie: `tools`
- Typ: `perplexity`

View File

@@ -0,0 +1,161 @@
---
title: Pinecone
description: Verwende die Pinecone Vektordatenbank
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="pinecone"
color="#0D1117"
icon={true}
iconSvg={`<svg className="block-icon"
viewBox='0 0 256 288'
version='1.1'
xmlns='http://www.w3.org/2000/svg'
xmlnsXlink='http://www.w3.org/1999/xlink'
preserveAspectRatio='xMidYMid'
>
<path
d='M108.633615,254.43629 C117.713862,254.43629 125.074857,261.797284 125.074857,270.877532 C125.074857,279.957779 117.713862,287.318774 108.633615,287.318774 C99.5533677,287.318774 92.1923728,279.957779 92.1923728,270.877532 C92.1923728,261.797284 99.5533677,254.43629 108.633615,254.43629 Z M199.849665,224.438339 L216.09705,229.252379 L203.199913,272.780219 C202.072982,276.58361 198.458049,279.095992 194.500389,278.826397 L190.516677,278.552973 L190.419263,278.633409 L149.02918,275.728903 L150.180842,258.822508 L177.989056,260.709686 L159.783784,234.447622 L173.709616,224.792379 L191.938895,251.08702 L199.849665,224.438339 Z M23.0126771,194.347476 L39.9158866,195.544979 L37.935897,223.348728 L64.1501315,205.120082 L73.8271476,219.030793 L47.578736,237.278394 L74.3707554,245.173037 L69.5818063,261.427835 L25.8485266,248.543243 C22.0304448,247.418369 19.5101155,243.787479 19.7913963,239.817092 L23.0126771,194.347476 Z M132.151306,170.671396 L162.658679,207.503468 L148.909247,218.891886 L130.753266,196.972134 L124.866941,230.673893 L107.280249,227.599613 L113.172232,193.845272 L88.7296311,208.256891 L79.6674587,192.874434 L120.745504,168.674377 C124.522104,166.449492 129.355297,167.295726 132.151306,170.671396 Z M217.504528,145.960198 L232.744017,137.668804 L254.94482,178.473633 C256.889641,182.048192 256.088221,186.494171 253.017682,189.164674 L249.876622,191.878375 L217.826246,219.77131 L206.441034,206.680621 L227.988588,187.934494 L195.893546,182.152609 L198.972402,165.078949 L231.044844,170.857793 L217.504528,145.960198 Z M37.7821805,103.299272 L49.2622123,116.306888 L28.0106317,135.050179 L60.1668233,140.664193 L57.1863573,157.755303 L24.9947229,152.136967 L38.822104,177.134576 L23.6411026,185.532577 L1.08439616,144.756992 C-0.885025494,141.196884 -0.115545265,136.746375 2.93488097,134.054184 L37.7821805,103.299272 Z M146.476311,89.8796828 L176.88045,126.612847 L163.1271,137.996532 L144.975445,116.067101 L139.08912,149.778947 L121.502428,146.704666 L127.374238,113.081452 L103.025237,127.354817 L93.9976317,111.952048 L131.398812,90.0233663 L131.435631,89.880899 L131.600545,89.9023265 L135.085833,87.870141 C138.861877,85.6569913 143.68556,86.5079996 146.476311,89.8796828 Z M185.655786,71.8143168 L192.305535,55.7902703 L235.318239,73.6399229 C239.072486,75.1978811 241.2415,79.1537636 240.536356,83.1568091 L239.820231,87.1385839 L232.47517,128.919545 L215.389188,125.909819 L220.312646,97.9413879 L191.776157,113.7129 L183.390302,98.5251862 L211.981072,82.7408038 L185.655786,71.8143168 Z M103.71696,40.2373824 L104.456513,57.5706533 L76.0432671,58.785006 L97.4730368,83.2749086 L84.4165529,94.6993319 L62.9507932,70.1728358 L57.949673,98.1737132 L40.8716575,95.1191088 L49.0561498,49.3603563 C49.771444,45.3612115 53.1664633,42.3942036 57.2253811,42.2210231 L61.246149,42.0411642 L61.3363168,41.9758 L103.71696,40.2373824 Z M161.838155,3.27194826 L192.104824,40.2369789 L178.291207,51.5474574 L160.327329,29.6043227 L154.268381,63.2715157 L136.697231,60.1096121 L142.766468,26.3665075 L118.24002,40.7062765 L109.232678,25.2916494 L150.427675,1.21987397 C154.218286,-0.995121237 159.056796,-0.124957814 161.838155,3.27194826 Z'
fill='currentColor'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Pinecone](https://www.pinecone.io) ist eine Vektordatenbank, die für die Entwicklung von hochleistungsfähigen Vektorsuchanwendungen konzipiert wurde. Sie ermöglicht die effiziente Speicherung, Verwaltung und Ähnlichkeitssuche von hochdimensionalen Vektoreinbettungen und ist damit ideal für KI-Anwendungen, die semantische Suchfunktionen erfordern.
Mit Pinecone können Sie:
- **Vektoreinbettungen speichern**: Effiziente Verwaltung hochdimensionaler Vektoren im großen Maßstab
- **Ähnlichkeitssuche durchführen**: Finden Sie die ähnlichsten Vektoren zu einem Abfragevektor in Millisekunden
- **Semantische Suche aufbauen**: Erstellen Sie Sucherlebnisse, die auf Bedeutung statt auf Schlüsselwörtern basieren
- **Empfehlungssysteme implementieren**: Generieren Sie personalisierte Empfehlungen basierend auf Inhaltsähnlichkeit
- **Machine-Learning-Modelle bereitstellen**: Operationalisieren Sie ML-Modelle, die auf Vektorähnlichkeit basieren
- **Nahtlos skalieren**: Verarbeiten Sie Milliarden von Vektoren mit konstanter Leistung
- **Echtzeit-Indizes pflegen**: Aktualisieren Sie Ihre Vektordatenbank in Echtzeit, wenn neue Daten eintreffen
In Sim ermöglicht die Pinecone-Integration Ihren Agenten, Vektorsuchfunktionen programmatisch als Teil ihrer Workflows zu nutzen. Dies erlaubt anspruchsvolle Automatisierungsszenarien, die natürliche Sprachverarbeitung mit semantischer Suche und Abruf kombinieren. Ihre Agenten können Embeddings aus Text generieren, diese Vektoren in Pinecone-Indizes speichern und Ähnlichkeitssuchen durchführen, um die relevantesten Informationen zu finden. Diese Integration überbrückt die Lücke zwischen Ihren KI-Workflows und der Vektorsuchinfrastruktur und ermöglicht eine intelligentere Informationsgewinnung basierend auf semantischer Bedeutung statt exakter Schlüsselwortübereinstimmung. Durch die Verbindung von Sim mit Pinecone können Sie Agenten erstellen, die Kontext verstehen, relevante Informationen aus großen Datensätzen abrufen und genauere sowie personalisierte Antworten an Benutzer liefern - alles ohne komplexes Infrastrukturmanagement oder spezialisiertes Wissen über Vektordatenbanken.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integrieren Sie Pinecone in den Workflow. Kann Embeddings generieren, Text einfügen, mit Text suchen, Vektoren abrufen und mit Vektoren suchen. Erfordert API-Schlüssel.
## Tools
### `pinecone_generate_embeddings`
Generieren von Embeddings aus Text mit Pinecone
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `model` | string | Ja | Modell zur Generierung von Embeddings |
| `inputs` | array | Ja | Array von Texteingaben, für die Embeddings generiert werden sollen |
| `apiKey` | string | Ja | Pinecone API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `data` | array | Generierte Embedding-Daten mit Werten und Vektortyp |
| `model` | string | Für die Generierung von Embeddings verwendetes Modell |
| `vector_type` | string | Typ des generierten Vektors \(dicht/spärlich\) |
| `usage` | object | Nutzungsstatistiken für die Embedding-Generierung |
### `pinecone_upsert_text`
Text-Datensätze in einen Pinecone-Index einfügen oder aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `indexHost` | string | Ja | Vollständige Pinecone-Index-Host-URL |
| `namespace` | string | Ja | Namespace, in den Datensätze eingefügt werden sollen |
| `records` | array | Ja | Datensatz oder Array von Datensätzen zum Einfügen, jeder enthält _id, Text und optionale Metadaten |
| `apiKey` | string | Ja | Pinecone API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `statusText` | string | Status des Einfügevorgangs |
| `upsertedCount` | number | Anzahl der erfolgreich eingefügten Datensätze |
### `pinecone_search_text`
Nach ähnlichem Text in einem Pinecone-Index suchen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `indexHost` | string | Ja | Vollständige Pinecone-Index-Host-URL |
| `namespace` | string | Nein | Namespace, in dem gesucht werden soll |
| `searchQuery` | string | Ja | Text, nach dem gesucht werden soll |
| `topK` | string | Nein | Anzahl der zurückzugebenden Ergebnisse |
| `fields` | array | Nein | Felder, die in den Ergebnissen zurückgegeben werden sollen |
| `filter` | object | Nein | Filter, der auf die Suche angewendet werden soll |
| `rerank` | object | Nein | Parameter für die Neusortierung |
| `apiKey` | string | Ja | Pinecone API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `matches` | array | Suchergebnisse mit ID, Bewertung und Metadaten |
### `pinecone_search_vector`
Suche nach ähnlichen Vektoren in einem Pinecone-Index
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `indexHost` | string | Ja | Vollständige Pinecone-Index-Host-URL |
| `namespace` | string | Nein | Namespace, in dem gesucht werden soll |
| `vector` | array | Ja | Zu suchender Vektor |
| `topK` | number | Nein | Anzahl der zurückzugebenden Ergebnisse |
| `filter` | object | Nein | Filter für die Suche |
| `includeValues` | boolean | Nein | Vektorwerte in der Antwort einschließen |
| `includeMetadata` | boolean | Nein | Metadaten in der Antwort einschließen |
| `apiKey` | string | Ja | Pinecone API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `matches` | array | Vektorsuchergebnisse mit ID, Bewertung, Werten und Metadaten |
| `namespace` | string | Namespace, in dem die Suche durchgeführt wurde |
### `pinecone_fetch`
Vektoren nach ID aus einem Pinecone-Index abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `indexHost` | string | Ja | Vollständige Pinecone-Index-Host-URL |
| `ids` | array | Ja | Array von Vektor-IDs zum Abrufen |
| `namespace` | string | Nein | Namespace, aus dem Vektoren abgerufen werden sollen |
| `apiKey` | string | Ja | Pinecone API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `matches` | Array | Abgerufene Vektoren mit ID, Werten, Metadaten und Bewertung |
## Hinweise
- Kategorie: `tools`
- Typ: `pinecone`

View File

@@ -0,0 +1,183 @@
---
title: PostgreSQL
description: Verbindung zur PostgreSQL-Datenbank herstellen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="postgresql"
color="#336791"
icon={true}
iconSvg={`<svg className="block-icon"
viewBox='-4 0 264 264'
xmlns='http://www.w3.org/2000/svg'
preserveAspectRatio='xMinYMin meet'
>
<path d='M255.008 158.086c-1.535-4.649-5.556-7.887-10.756-8.664-2.452-.366-5.26-.21-8.583.475-5.792 1.195-10.089 1.65-13.225 1.738 11.837-19.985 21.462-42.775 27.003-64.228 8.96-34.689 4.172-50.492-1.423-57.64C233.217 10.847 211.614.683 185.552.372c-13.903-.17-26.108 2.575-32.475 4.549-5.928-1.046-12.302-1.63-18.99-1.738-12.537-.2-23.614 2.533-33.079 8.15-5.24-1.772-13.65-4.27-23.362-5.864-22.842-3.75-41.252-.828-54.718 8.685C6.622 25.672-.937 45.684.461 73.634c.444 8.874 5.408 35.874 13.224 61.48 4.492 14.718 9.282 26.94 14.237 36.33 7.027 13.315 14.546 21.156 22.987 23.972 4.731 1.576 13.327 2.68 22.368-4.85 1.146 1.388 2.675 2.767 4.704 4.048 2.577 1.625 5.728 2.953 8.875 3.74 11.341 2.835 21.964 2.126 31.027-1.848.056 1.612.099 3.152.135 4.482.06 2.157.12 4.272.199 6.25.537 13.374 1.447 23.773 4.143 31.049.148.4.347 1.01.557 1.657 1.345 4.118 3.594 11.012 9.316 16.411 5.925 5.593 13.092 7.308 19.656 7.308 3.292 0 6.433-.432 9.188-1.022 9.82-2.105 20.973-5.311 29.041-16.799 7.628-10.86 11.336-27.217 12.007-52.99.087-.729.167-1.425.244-2.088l.16-1.362 1.797.158.463.031c10.002.456 22.232-1.665 29.743-5.154 5.935-2.754 24.954-12.795 20.476-26.351' />
<path
d='M237.906 160.722c-29.74 6.135-31.785-3.934-31.785-3.934 31.4-46.593 44.527-105.736 33.2-120.211-30.904-39.485-84.399-20.811-85.292-20.327l-.287.052c-5.876-1.22-12.451-1.946-19.842-2.067-13.456-.22-23.664 3.528-31.41 9.402 0 0-95.43-39.314-90.991 49.444.944 18.882 27.064 142.873 58.218 105.422 11.387-13.695 22.39-25.274 22.39-25.274 5.464 3.63 12.006 5.482 18.864 4.817l.533-.452c-.166 1.7-.09 3.363.213 5.332-8.026 8.967-5.667 10.541-21.711 13.844-16.235 3.346-6.698 9.302-.471 10.86 7.549 1.887 25.013 4.561 36.813-11.958l-.47 1.885c3.144 2.519 5.352 16.383 4.982 28.952-.37 12.568-.617 21.197 1.86 27.937 2.479 6.74 4.948 21.905 26.04 17.386 17.623-3.777 26.756-13.564 28.027-29.89.901-11.606 2.942-9.89 3.07-20.267l1.637-4.912c1.887-15.733.3-20.809 11.157-18.448l2.64.232c7.99.363 18.45-1.286 24.589-4.139 13.218-6.134 21.058-16.377 8.024-13.686h.002'
fill='#336791'
/>
<path
d='M108.076 81.525c-2.68-.373-5.107-.028-6.335.902-.69.523-.904 1.129-.962 1.546-.154 1.105.62 2.327 1.096 2.957 1.346 1.784 3.312 3.01 5.258 3.28.282.04.563.058.842.058 3.245 0 6.196-2.527 6.456-4.392.325-2.336-3.066-3.893-6.355-4.35M196.86 81.599c-.256-1.831-3.514-2.353-6.606-1.923-3.088.43-6.082 1.824-5.832 3.659.2 1.427 2.777 3.863 5.827 3.863.258 0 .518-.017.78-.054 2.036-.282 3.53-1.575 4.24-2.32 1.08-1.136 1.706-2.402 1.591-3.225'
fill='#FFF'
/>
<path
d='M247.802 160.025c-1.134-3.429-4.784-4.532-10.848-3.28-18.005 3.716-24.453 1.142-26.57-.417 13.995-21.32 25.508-47.092 31.719-71.137 2.942-11.39 4.567-21.968 4.7-30.59.147-9.463-1.465-16.417-4.789-20.665-13.402-17.125-33.072-26.311-56.882-26.563-16.369-.184-30.199 4.005-32.88 5.183-5.646-1.404-11.801-2.266-18.502-2.376-12.288-.199-22.91 2.743-31.704 8.74-3.82-1.422-13.692-4.811-25.765-6.756-20.872-3.36-37.458-.814-49.294 7.571-14.123 10.006-20.643 27.892-19.38 53.16.425 8.501 5.269 34.653 12.913 59.698 10.062 32.964 21 51.625 32.508 55.464 1.347.449 2.9.763 4.613.763 4.198 0 9.345-1.892 14.7-8.33a529.832 529.832 0 0 1 20.261-22.926c4.524 2.428 9.494 3.784 14.577 3.92.01.133.023.266.035.398a117.66 117.66 0 0 0-2.57 3.175c-3.522 4.471-4.255 5.402-15.592 7.736-3.225.666-11.79 2.431-11.916 8.435-.136 6.56 10.125 9.315 11.294 9.607 4.074 1.02 7.999 1.523 11.742 1.523 9.103 0 17.114-2.992 23.516-8.781-.197 23.386.778 46.43 3.586 53.451 2.3 5.748 7.918 19.795 25.664 19.794 2.604 0 5.47-.303 8.623-.979 18.521-3.97 26.564-12.156 29.675-30.203 1.665-9.645 4.522-32.676 5.866-45.03 2.836.885 6.487 1.29 10.434 1.289 8.232 0 17.731-1.749 23.688-4.514 6.692-3.108 18.768-10.734 16.578-17.36zm-44.106-83.48c-.061 3.647-.563 6.958-1.095 10.414-.573 3.717-1.165 7.56-1.314 12.225-.147 4.54.42 9.26.968 13.825 1.108 9.22 2.245 18.712-2.156 28.078a36.508 36.508 0 0 1-1.95-4.009c-.547-1.326-1.735-3.456-3.38-6.404-6.399-11.476-21.384-38.35-13.713-49.316 2.285-3.264 8.084-6.62 22.64-4.813zm-17.644-61.787c21.334.471 38.21 8.452 50.158 23.72 9.164 11.711-.927 64.998-30.14 110.969a171.33 171.33 0 0 0-.886-1.117l-.37-.462c7.549-12.467 6.073-24.802 4.759-35.738-.54-4.488-1.05-8.727-.92-12.709.134-4.22.692-7.84 1.232-11.34.663-4.313 1.338-8.776 1.152-14.037.139-.552.195-1.204.122-1.978-.475-5.045-6.235-20.144-17.975-33.81-6.422-7.475-15.787-15.84-28.574-21.482 5.5-1.14 13.021-2.203 21.442-2.016zM66.674 175.778c-5.9 7.094-9.974 5.734-11.314 5.288-8.73-2.912-18.86-21.364-27.791-50.624-7.728-25.318-12.244-50.777-12.602-57.916-1.128-22.578 4.345-38.313 16.268-46.769 19.404-13.76 51.306-5.524 64.125-1.347-.184.182-.376.352-.558.537-21.036 21.244-20.537 57.54-20.485 59.759-.002.856.07 2.068.168 3.735.362 6.105 1.036 17.467-.764 30.334-1.672 11.957 2.014 23.66 10.111 32.109a36.275 36.275 0 0 0 2.617 2.468c-3.604 3.86-11.437 12.396-19.775 22.426zm22.479-29.993c-6.526-6.81-9.49-16.282-8.133-25.99 1.9-13.592 1.199-25.43.822-31.79-.053-.89-.1-1.67-.127-2.285 3.073-2.725 17.314-10.355 27.47-8.028 4.634 1.061 7.458 4.217 8.632 9.645 6.076 28.103.804 39.816-3.432 49.229-.873 1.939-1.698 3.772-2.402 5.668l-.546 1.466c-1.382 3.706-2.668 7.152-3.465 10.424-6.938-.02-13.687-2.984-18.819-8.34zm1.065 37.9c-2.026-.506-3.848-1.385-4.917-2.114.893-.42 2.482-.992 5.238-1.56 13.337-2.745 15.397-4.683 19.895-10.394 1.031-1.31 2.2-2.794 3.819-4.602l.002-.002c2.411-2.7 3.514-2.242 5.514-1.412 1.621.67 3.2 2.702 3.84 4.938.303 1.056.643 3.06-.47 4.62-9.396 13.156-23.088 12.987-32.921 10.526zm69.799 64.952c-16.316 3.496-22.093-4.829-25.9-14.346-2.457-6.144-3.665-33.85-2.808-64.447.011-.407-.047-.8-.159-1.17a15.444 15.444 0 0 0-.456-2.162c-1.274-4.452-4.379-8.176-8.104-9.72-1.48-.613-4.196-1.738-7.46-.903.696-2.868 1.903-6.107 3.212-9.614l.549-1.475c.618-1.663 1.394-3.386 2.214-5.21 4.433-9.848 10.504-23.337 3.915-53.81-2.468-11.414-10.71-16.988-23.204-15.693-7.49.775-14.343 3.797-17.761 5.53-.735.372-1.407.732-2.035 1.082.954-11.5 4.558-32.992 18.04-46.59 8.489-8.56 19.794-12.788 33.568-12.56 27.14.444 44.544 14.372 54.366 25.979 8.464 10.001 13.047 20.076 14.876 25.51-13.755-1.399-23.11 1.316-27.852 8.096-10.317 14.748 5.644 43.372 13.315 57.129 1.407 2.521 2.621 4.7 3.003 5.626 2.498 6.054 5.732 10.096 8.093 13.046.724.904 1.426 1.781 1.96 2.547-4.166 1.201-11.649 3.976-10.967 17.847-.55 6.96-4.461 39.546-6.448 51.059-2.623 15.21-8.22 20.875-23.957 24.25zm68.104-77.936c-4.26 1.977-11.389 3.46-18.161 3.779-7.48.35-11.288-.838-12.184-1.569-.42-8.644 2.797-9.547 6.202-10.503.535-.15 1.057-.297 1.561-.473.313.255.656.508 1.032.756 6.012 3.968 16.735 4.396 31.874 1.271l.166-.033c-2.042 1.909-5.536 4.471-10.49 6.772z'
fill='#FFF'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
Das [PostgreSQL](https://www.postgresql.org/)-Tool ermöglicht es Ihnen, eine Verbindung zu jeder PostgreSQL-Datenbank herzustellen und eine Vielzahl von Datenbankoperationen direkt innerhalb Ihrer agentischen Workflows durchzuführen. Mit sicherer Verbindungshandhabung und flexibler Konfiguration können Sie Ihre Daten einfach verwalten und mit ihnen interagieren.
Mit dem PostgreSQL-Tool können Sie:
- **Daten abfragen**: Führen Sie SELECT-Abfragen aus, um Daten aus Ihren PostgreSQL-Tabellen mit der `postgresql_query` Operation abzurufen.
- **Datensätze einfügen**: Fügen Sie mit der `postgresql_insert` Operation neue Zeilen zu Ihren Tabellen hinzu, indem Sie die Tabelle und die einzufügenden Daten angeben.
- **Datensätze aktualisieren**: Ändern Sie bestehende Daten in Ihren Tabellen mit der `postgresql_update` Operation, indem Sie die Tabelle, neue Daten und WHERE-Bedingungen angeben.
- **Datensätze löschen**: Entfernen Sie Zeilen aus Ihren Tabellen mit der `postgresql_delete` Operation, indem Sie die Tabelle und WHERE-Bedingungen angeben.
- **Raw SQL ausführen**: Führen Sie beliebige benutzerdefinierte SQL-Befehle mit der `postgresql_execute` Operation für fortgeschrittene Anwendungsfälle aus.
Das PostgreSQL-Tool ist ideal für Szenarien, in denen Ihre Agenten mit strukturierten Daten interagieren müssen wie z.B. bei der Automatisierung von Berichten, der Synchronisierung von Daten zwischen Systemen oder der Unterstützung datengesteuerter Workflows. Es vereinfacht den Datenbankzugriff und macht es einfach, Ihre PostgreSQL-Daten programmatisch zu lesen, zu schreiben und zu verwalten.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integrieren Sie PostgreSQL in den Workflow. Kann Abfragen, Einfügungen, Aktualisierungen, Löschungen und die Ausführung von Raw-SQL durchführen.
## Tools
### `postgresql_query`
Führt eine SELECT-Abfrage auf einer PostgreSQL-Datenbank aus
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | PostgreSQL-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | PostgreSQL-Server-Port \(Standard: 5432\) |
| `database` | string | Ja | Datenbankname für die Verbindung |
| `username` | string | Ja | Datenbank-Benutzername |
| `password` | string | Ja | Datenbank-Passwort |
| `ssl` | string | Nein | SSL-Verbindungsmodus \(disabled, required, preferred\) |
| `query` | string | Ja | SQL SELECT-Abfrage zur Ausführung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `rows` | array | Array der von der Abfrage zurückgegebenen Zeilen |
| `rowCount` | number | Anzahl der zurückgegebenen Zeilen |
### `postgresql_insert`
Daten in PostgreSQL-Datenbank einfügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | PostgreSQL-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | PostgreSQL-Server-Port (Standard: 5432) |
| `database` | string | Ja | Name der Datenbank, zu der eine Verbindung hergestellt werden soll |
| `username` | string | Ja | Datenbank-Benutzername |
| `password` | string | Ja | Datenbank-Passwort |
| `ssl` | string | Nein | SSL-Verbindungsmodus (disabled, required, preferred) |
| `table` | string | Ja | Tabellenname, in den Daten eingefügt werden sollen |
| `data` | object | Ja | Datenobjekt zum Einfügen (Schlüssel-Wert-Paare) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `rows` | array | Eingefügte Daten (wenn RETURNING-Klausel verwendet wird) |
| `rowCount` | number | Anzahl der eingefügten Zeilen |
### `postgresql_update`
Daten in PostgreSQL-Datenbank aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | PostgreSQL-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | PostgreSQL-Server-Port (Standard: 5432) |
| `database` | string | Ja | Name der Datenbank, zu der eine Verbindung hergestellt werden soll |
| `username` | string | Ja | Datenbank-Benutzername |
| `password` | string | Ja | Datenbank-Passwort |
| `ssl` | string | Nein | SSL-Verbindungsmodus (disabled, required, preferred) |
| `table` | string | Ja | Tabellenname, in dem Daten aktualisiert werden sollen |
| `data` | object | Ja | Datenobjekt mit zu aktualisierenden Feldern (Schlüssel-Wert-Paare) |
| `where` | string | Ja | WHERE-Klausel-Bedingung (ohne WHERE-Schlüsselwort) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `rows` | array | Aktualisierte Daten (wenn RETURNING-Klausel verwendet wurde) |
| `rowCount` | number | Anzahl der aktualisierten Zeilen |
### `postgresql_delete`
Daten aus PostgreSQL-Datenbank löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | PostgreSQL-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | PostgreSQL-Server-Port (Standard: 5432) |
| `database` | string | Ja | Name der Datenbank, zu der verbunden werden soll |
| `username` | string | Ja | Datenbank-Benutzername |
| `password` | string | Ja | Datenbank-Passwort |
| `ssl` | string | Nein | SSL-Verbindungsmodus (disabled, required, preferred) |
| `table` | string | Ja | Tabellenname, aus der Daten gelöscht werden sollen |
| `where` | string | Ja | WHERE-Klausel-Bedingung (ohne WHERE-Schlüsselwort) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `rows` | array | Gelöschte Daten (wenn RETURNING-Klausel verwendet wurde) |
| `rowCount` | number | Anzahl der gelöschten Zeilen |
### `postgresql_execute`
Rohe SQL-Abfrage auf PostgreSQL-Datenbank ausführen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `host` | string | Ja | PostgreSQL-Server-Hostname oder IP-Adresse |
| `port` | number | Ja | PostgreSQL-Server-Port (Standard: 5432) |
| `database` | string | Ja | Name der Datenbank, zu der verbunden werden soll |
| `username` | string | Ja | Datenbank-Benutzername |
| `password` | string | Ja | Datenbank-Passwort |
| `ssl` | string | Nein | SSL-Verbindungsmodus (disabled, required, preferred) |
| `query` | string | Ja | Rohe SQL-Abfrage zur Ausführung |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `rows` | array | Array der von der Abfrage zurückgegebenen Zeilen |
| `rowCount` | number | Anzahl der betroffenen Zeilen |
## Hinweise
- Kategorie: `tools`
- Typ: `postgresql`

View File

@@ -0,0 +1,178 @@
---
title: Qdrant
description: Verwenden Sie die Qdrant-Vektordatenbank
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="qdrant"
color="#1A223F"
icon={true}
iconSvg={`<svg className="block-icon" fill='none' viewBox='0 0 49 56' xmlns='http://www.w3.org/2000/svg'>
<g clipPath='url(#b)'>
<path
d='m38.489 51.477-1.1167-30.787-2.0223-8.1167 13.498 1.429v37.242l-8.2456 4.7589-2.1138-4.5259z'
clipRule='evenodd'
fill='#24386C'
fillRule='evenodd'
/>
<path
d='m48.847 14-8.2457 4.7622-17.016-3.7326-19.917 8.1094-3.3183-9.139 12.122-7 12.126-7 12.123 7 12.126 7z'
clipRule='evenodd'
fill='#7589BE'
fillRule='evenodd'
/>
<path
d='m0.34961 13.999 8.2457 4.7622 4.7798 14.215 16.139 12.913-4.9158 10.109-12.126-7.0004-12.123-7v-28z'
clipRule='evenodd'
fill='#B2BFE8'
fillRule='evenodd'
/>
<path
d='m30.066 38.421-5.4666 8.059v9.5207l7.757-4.4756 3.9968-5.9681'
clipRule='evenodd'
fill='#24386C'
fillRule='evenodd'
/>
<path
d='m24.602 36.962-7.7603-13.436 1.6715-4.4531 6.3544-3.0809 7.488 7.5343-7.7536 13.436z'
clipRule='evenodd'
fill='#7589BE'
fillRule='evenodd'
/>
<path
d='m16.843 23.525 7.7569 4.4756v8.9585l-7.1741 0.3087-4.3397-5.5412 3.7569-8.2016z'
clipRule='evenodd'
fill='#B2BFE8'
fillRule='evenodd'
/>
<path
d='m24.6 28 7.757-4.4752 5.2792 8.7903-6.3886 5.2784-6.6476-0.6346v-8.9589z'
clipRule='evenodd'
fill='#24386C'
fillRule='evenodd'
/>
<path
d='m32.355 51.524 8.2457 4.476v-37.238l-8.0032-4.6189-7.9995-4.6189-8.0031 4.6189-7.9995 4.6189v18.479l7.9995 4.6189 8.0031 4.6193 7.757-4.4797v9.5244zm0-19.045-7.757 4.4793-7.7569-4.4793v-8.9549l7.7569-4.4792 7.757 4.4792v8.9549z'
clipRule='evenodd'
fill='#DC244C'
fillRule='evenodd'
/>
<path d='m24.603 46.483v-9.5222l-7.7166-4.4411v9.5064l7.7166 4.4569z' fill='url(#a)' />
</g>
<defs>
<linearGradient
id='a'
x1='23.18'
x2='15.491'
y1='38.781'
y2='38.781'
gradientUnits='userSpaceOnUse'
>
<stop stopColor='#FF3364' offset='0' />
<stop stopColor='#C91540' stopOpacity='0' offset='1' />
</linearGradient>
<clipPath id='b'>
<rect transform='translate(.34961)' fill='#fff' />
</clipPath>
</defs>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Qdrant](https://qdrant.tech) ist eine Open-Source-Vektordatenbank, die für die effiziente Speicherung, Verwaltung und Abfrage hochdimensionaler Vektoreinbettungen entwickelt wurde. Qdrant ermöglicht schnelle und skalierbare semantische Suche und ist damit ideal für KI-Anwendungen, die Ähnlichkeitssuche, Empfehlungssysteme und kontextbezogene Informationsabfrage erfordern.
Mit Qdrant können Sie:
- **Vektoreinbettungen speichern**: Effiziente Verwaltung und Persistierung hochdimensionaler Vektoren im großen Maßstab
- **Semantische Ähnlichkeitssuche durchführen**: Finden Sie in Echtzeit die ähnlichsten Vektoren zu einem Abfragevektor
- **Daten filtern und organisieren**: Verwenden Sie fortschrittliche Filterung, um Suchergebnisse basierend auf Metadaten oder Payload einzugrenzen
- **Bestimmte Punkte abrufen**: Rufen Sie Vektoren und ihre zugehörigen Payloads per ID ab
- **Nahtlos skalieren**: Bewältigen Sie große Sammlungen und Workloads mit hohem Durchsatz
In Sim ermöglicht die Qdrant-Integration Ihren Agenten, programmatisch mit Qdrant als Teil ihrer Workflows zu interagieren. Unterstützte Operationen umfassen:
- **Upsert**: Einfügen oder Aktualisieren von Punkten (Vektoren und Payloads) in einer Qdrant-Sammlung
- **Search**: Durchführung einer Ähnlichkeitssuche, um Vektoren zu finden, die einem gegebenen Abfragevektor am ähnlichsten sind, mit optionaler Filterung und Anpassung der Ergebnisse
- **Fetch**: Abrufen bestimmter Punkte aus einer Sammlung anhand ihrer IDs, mit Optionen zum Einbeziehen von Payloads und Vektoren
Diese Integration ermöglicht es Ihren Agenten, leistungsstarke Vektorsuch- und Verwaltungsfunktionen zu nutzen und fortschrittliche Automatisierungsszenarien wie semantische Suche, Empfehlungen und kontextbezogenen Abruf zu ermöglichen. Durch die Verbindung von Sim mit Qdrant können Sie Agenten erstellen, die Kontext verstehen, relevante Informationen aus großen Datensätzen abrufen und intelligentere und personalisierte Antworten liefern alles ohne komplexe Infrastruktur verwalten zu müssen.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integrieren Sie Qdrant in den Workflow. Kann Punkte einfügen, suchen und abrufen. Benötigt API-Schlüssel.
## Tools
### `qdrant_upsert_points`
Punkte in einer Qdrant-Sammlung einfügen oder aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `url` | string | Ja | Qdrant-Basis-URL |
| `apiKey` | string | Nein | Qdrant-API-Schlüssel \(optional\) |
| `collection` | string | Ja | Sammlungsname |
| `points` | array | Ja | Array von Punkten zum Einfügen/Aktualisieren |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `status` | string | Status der Upsert-Operation |
| `data` | object | Ergebnisdaten der Upsert-Operation |
### `qdrant_search_vector`
Suche nach ähnlichen Vektoren in einer Qdrant-Sammlung
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `url` | string | Ja | Qdrant-Basis-URL |
| `apiKey` | string | Nein | Qdrant-API-Schlüssel \(optional\) |
| `collection` | string | Ja | Sammlungsname |
| `vector` | array | Ja | Zu suchender Vektor |
| `limit` | number | Nein | Anzahl der zurückzugebenden Ergebnisse |
| `filter` | object | Nein | Filter für die Suche |
| `with_payload` | boolean | Nein | Payload in Antwort einschließen |
| `with_vector` | boolean | Nein | Vektor in Antwort einschließen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `data` | array | Vektorsuchergebnisse mit ID, Bewertung, Payload und optionalen Vektordaten |
| `status` | string | Status des Suchvorgangs |
### `qdrant_fetch_points`
Punkte anhand der ID aus einer Qdrant-Sammlung abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `url` | string | Ja | Qdrant-Basis-URL |
| `apiKey` | string | Nein | Qdrant-API-Schlüssel \(optional\) |
| `collection` | string | Ja | Sammlungsname |
| `ids` | array | Ja | Array von abzurufenden Punkt-IDs |
| `with_payload` | boolean | Nein | Payload in Antwort einschließen |
| `with_vector` | boolean | Nein | Vektor in Antwort einschließen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `data` | array | Abgerufene Punkte mit ID, Payload und optionalen Vektordaten |
| `status` | string | Status des Abrufvorgangs |
## Hinweise
- Kategorie: `tools`
- Typ: `qdrant`

View File

@@ -0,0 +1,87 @@
---
title: Reddit
description: Zugriff auf Reddit-Daten und -Inhalte
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="reddit"
color="#FF5700"
icon={true}
iconSvg={`<svg className="block-icon"
viewBox='0 0 50 50'
fill='#FFFFFF'
role='img'
xmlns='http://www.w3.org/2000/svg'
>
<path
d='M 29 3 C 26.894531 3 24.433594 4.652344 24.0625 12.03125 C 24.375 12.023438 24.683594 12 25 12 C 25.351563 12 25.714844 12.019531 26.0625 12.03125 C 26.300781 7.597656 27.355469 5 29 5 C 29.703125 5 30.101563 5.382813 30.84375 6.1875 C 31.710938 7.128906 32.84375 8.351563 35.0625 8.8125 C 35.027344 8.550781 35 8.269531 35 8 C 35 7.578125 35.042969 7.179688 35.125 6.78125 C 33.75 6.40625 33.023438 5.613281 32.3125 4.84375 C 31.519531 3.984375 30.609375 3 29 3 Z M 41 4 C 38.792969 4 37 5.796875 37 8 C 37 10.203125 38.792969 12 41 12 C 43.207031 12 45 10.203125 45 8 C 45 5.796875 43.207031 4 41 4 Z M 25 14 C 12.867188 14 3 20.179688 3 29 C 3 37.820313 12.867188 45 25 45 C 37.132813 45 47 37.820313 47 29 C 47 20.179688 37.132813 14 25 14 Z M 7.5 14.9375 C 6.039063 14.9375 4.652344 15.535156 3.59375 16.59375 C 1.871094 18.316406 1.515625 20.792969 2.5 22.84375 C 4.011719 19.917969 6.613281 17.421875 9.96875 15.5625 C 9.207031 15.175781 8.363281 14.9375 7.5 14.9375 Z M 42.5 14.9375 C 41.636719 14.9375 40.792969 15.175781 40.03125 15.5625 C 43.386719 17.421875 45.988281 19.917969 47.5 22.84375 C 48.484375 20.792969 48.128906 18.316406 46.40625 16.59375 C 45.347656 15.535156 43.960938 14.9375 42.5 14.9375 Z M 17 23 C 18.65625 23 20 24.34375 20 26 C 20 27.65625 18.65625 29 17 29 C 15.34375 29 14 27.65625 14 26 C 14 24.34375 15.34375 23 17 23 Z M 33 23 C 34.65625 23 36 24.34375 36 26 C 36 27.65625 34.65625 29 33 29 C 31.34375 29 30 27.65625 30 26 C 30 24.34375 31.34375 23 33 23 Z M 16.0625 34 C 16.3125 34.042969 16.558594 34.183594 16.71875 34.40625 C 16.824219 34.554688 19.167969 37.6875 25 37.6875 C 30.910156 37.6875 33.257813 34.46875 33.28125 34.4375 C 33.597656 33.988281 34.234375 33.867188 34.6875 34.1875 C 35.136719 34.503906 35.222656 35.109375 34.90625 35.5625 C 34.789063 35.730469 31.9375 39.6875 25 39.6875 C 18.058594 39.6875 15.210938 35.730469 15.09375 35.5625 C 14.777344 35.109375 14.859375 34.503906 15.3125 34.1875 C 15.539063 34.027344 15.8125 33.957031 16.0625 34 Z'
fill='currentColor'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Reddit](https://www.reddit.com/) ist eine soziale Plattform, auf der Nutzer Inhalte in themenbasierten Communities, sogenannten Subreddits, teilen und diskutieren.
In Sim können Sie die Reddit-Integration für folgende Zwecke nutzen:
- **Beiträge abrufen**: Rufen Sie Beiträge aus beliebigen Subreddits ab, mit Optionen zum Sortieren (Hot, New, Top, Rising) und Filtern von Top-Beiträgen nach Zeit (Tag, Woche, Monat, Jahr, Gesamte Zeit).
- **Kommentare abrufen**: Holen Sie Kommentare zu einem bestimmten Beitrag, mit Optionen zum Sortieren und Festlegen der Anzahl der Kommentare.
Diese Operationen ermöglichen es Ihren Agenten, auf Reddit-Inhalte zuzugreifen und diese als Teil Ihrer automatisierten Workflows zu analysieren.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integrieren Sie Reddit in den Workflow. Kann Beiträge und Kommentare aus einem Subreddit abrufen. Erfordert OAuth.
## Tools
### `reddit_get_posts`
Beiträge aus einem Subreddit mit verschiedenen Sortieroptionen abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `subreddit` | string | Ja | Der Name des Subreddits, aus dem Beiträge abgerufen werden sollen \(ohne das r/ Präfix\) |
| `sort` | string | Nein | Sortiermethode für Beiträge: "hot", "new", "top" oder "rising" \(Standard: "hot"\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Beiträge \(Standard: 10, max: 100\) |
| `time` | string | Nein | Zeitfilter für nach "top" sortierte Beiträge: "day", "week", "month", "year" oder "all" \(Standard: "day"\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `subreddit` | string | Name des Subreddits, aus dem Beiträge abgerufen wurden |
| `posts` | array | Array von Beiträgen mit Titel, Autor, URL, Punktzahl, Kommentaranzahl und Metadaten |
### `reddit_get_comments`
Kommentare von einem bestimmten Reddit-Beitrag abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `postId` | string | Ja | Die ID des Reddit-Beitrags, von dem Kommentare abgerufen werden sollen |
| `subreddit` | string | Ja | Das Subreddit, in dem sich der Beitrag befindet (ohne das r/-Präfix) |
| `sort` | string | Nein | Sortiermethode für Kommentare: "confidence", "top", "new", "controversial", "old", "random", "qa" (Standard: "confidence") |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Kommentare (Standard: 50, max: 100) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `post` | object | Beitragsinformationen einschließlich ID, Titel, Autor, Inhalt und Metadaten |
## Hinweise
- Kategorie: `tools`
- Typ: `reddit`

View File

@@ -0,0 +1,73 @@
---
title: Resend
description: E-Mails mit Resend versenden.
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="resend"
color="#181C1E"
icon={true}
iconSvg={`<svg className="block-icon"
viewBox='0 0 1800 1800'
fill='none'
xmlns='http://www.w3.org/2000/svg'
>
<path
d='M1000.46 450C1174.77 450 1278.43 553.669 1278.43 691.282C1278.43 828.896 1174.77 932.563 1000.46 932.563H912.382L1350 1350H1040.82L707.794 1033.48C683.944 1011.47 672.936 985.781 672.935 963.765C672.935 932.572 694.959 905.049 737.161 893.122L908.712 847.244C973.85 829.812 1018.81 779.353 1018.81 713.298C1018.8 632.567 952.745 585.78 871.095 585.78H450V450H1000.46Z'
fill='#FDFDFD'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Resend](https://resend.com/) ist ein moderner E-Mail-Service, der für Entwickler konzipiert wurde, um Transaktions- und Marketing-E-Mails einfach zu versenden. Er bietet eine einfache, zuverlässige API und ein Dashboard zur Verwaltung von E-Mail-Zustellung, Vorlagen und Analysen, was ihn zu einer beliebten Wahl für die Integration von E-Mail-Funktionalität in Anwendungen und Workflows macht.
Mit Resend können Sie:
- **Transaktions-E-Mails versenden**: Liefern Sie Passwort-Zurücksetzungen, Benachrichtigungen, Bestätigungen und mehr mit hoher Zustellbarkeit
- **Vorlagen verwalten**: Erstellen und aktualisieren Sie E-Mail-Vorlagen für konsistentes Branding und Messaging
- **Analysen verfolgen**: Überwachen Sie Zustell-, Öffnungs- und Klickraten, um Ihre E-Mail-Performance zu optimieren
- **Einfach integrieren**: Nutzen Sie eine unkomplizierte API und SDKs für eine nahtlose Integration in Ihre Anwendungen
- **Sicherheit gewährleisten**: Profitieren Sie von robuster Authentifizierung und Domain-Verifizierung zum Schutz Ihrer E-Mail-Reputation
In Sim ermöglicht die Resend-Integration Ihren Agenten, E-Mails programmatisch als Teil Ihrer automatisierten Workflows zu versenden. Dies ermöglicht Anwendungsfälle wie das Senden von Benachrichtigungen, Warnungen oder benutzerdefinierten Nachrichten direkt von Ihren Sim-gestützten Agenten. Durch die Verbindung von Sim mit Resend können Sie Kommunikationsaufgaben automatisieren und eine zeitnahe und zuverlässige E-Mail-Zustellung ohne manuelle Eingriffe sicherstellen. Die Integration nutzt Ihren Resend-API-Schlüssel und hält Ihre Anmeldedaten sicher, während sie leistungsstarke E-Mail-Automatisierungsszenarien ermöglicht.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisung
Integrieren Sie Resend in den Workflow. Kann E-Mails versenden. Benötigt API-Schlüssel.
## Tools
### `resend_send`
Senden Sie eine E-Mail mit Ihrem eigenen Resend API-Schlüssel und Absenderadresse
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `fromAddress` | string | Ja | E-Mail-Adresse, von der gesendet wird |
| `to` | string | Ja | E-Mail-Adresse des Empfängers |
| `subject` | string | Ja | Betreff der E-Mail |
| `body` | string | Ja | Inhalt der E-Mail |
| `resendApiKey` | string | Ja | Resend API-Schlüssel zum Versenden von E-Mails |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die E-Mail erfolgreich gesendet wurde |
| `to` | string | E-Mail-Adresse des Empfängers |
| `subject` | string | Betreff der E-Mail |
| `body` | string | Inhalt der E-Mail |
## Hinweise
- Kategorie: `tools`
- Typ: `resend`

View File

@@ -0,0 +1,90 @@
---
title: S3
description: S3-Dateien anzeigen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="s3"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
preserveAspectRatio='xMidYMid'
viewBox='0 0 256 310'
xmlns='http://www.w3.org/2000/svg'
>
<path d='m20.624 53.686-20.624 10.314v181.02l20.624 10.254.124-.149v-201.297z' fill='#8c3123' />
<path d='m131 229-110.376 26.274v-201.588l110.376 25.701z' fill='#e05243' />
<path d='m81.178 187.866 46.818 5.96.294-.678.263-76.77-.557-.6-46.818 5.874z' fill='#8c3123' />
<path
d='m127.996 229.295 107.371 26.035.169-.269-.003-201.195-.17-.18-107.367 25.996z'
fill='#8c3123'
/>
<path d='m174.827 187.866-46.831 5.96v-78.048l46.831 5.874z' fill='#e05243' />
<path d='m174.827 89.631-46.831 8.535-46.818-8.535 46.759-12.256z' fill='#5e1f18' />
<path d='m174.827 219.801-46.831-8.591-46.818 8.591 46.761 13.053z' fill='#f2b0a9' />
<path
d='m81.178 89.631 46.818-11.586.379-.117v-77.615l-.379-.313-46.818 23.413z'
fill='#8c3123'
/>
<path d='m174.827 89.631-46.831-11.586v-78.045l46.831 23.413z' fill='#e05243' />
<path
d='m127.996 309.428-46.823-23.405v-66.217l46.823 11.582.689.783-.187 75.906z'
fill='#8c3123'
/>
<g fill='#e05243'>
<path d='m127.996 309.428 46.827-23.405v-66.217l-46.827 11.582z' />
<path d='m235.367 53.686 20.633 10.314v181.02l-20.633 10.31z' />
</g>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Amazon S3](https://aws.amazon.com/s3/) ist ein hochskalierbarer, sicherer und langlebiger Cloud-Speicherdienst von Amazon Web Services. Er wurde entwickelt, um beliebige Datenmengen von überall im Web zu speichern und abzurufen, was ihn zu einer der am häufigsten genutzten Cloud-Speicherlösungen für Unternehmen aller Größen macht.
Mit Amazon S3 können Sie:
- **Unbegrenzt Daten speichern**: Laden Sie Dateien jeder Größe und jeden Typs mit praktisch unbegrenzter Speicherkapazität hoch
- **Von überall zugreifen**: Rufen Sie Ihre Dateien von überall auf der Welt mit geringer Latenz ab
- **Datenhaltbarkeit sicherstellen**: Profitieren Sie von 99,999999999% (11 Neunen) Haltbarkeit durch automatische Datenreplikation
- **Zugriff kontrollieren**: Verwalten Sie Berechtigungen und Zugriffskontrollen mit detaillierten Sicherheitsrichtlinien
- **Automatisch skalieren**: Bewältigen Sie unterschiedliche Arbeitslasten ohne manuelle Eingriffe oder Kapazitätsplanung
- **Nahtlos integrieren**: Verbinden Sie sich einfach mit anderen AWS-Diensten und Anwendungen von Drittanbietern
- **Kosten optimieren**: Wählen Sie aus mehreren Speicherklassen, um Kosten basierend auf Zugriffsmustern zu optimieren
In Sim ermöglicht die S3-Integration Ihren Agenten das Abrufen und Zugreifen auf Dateien, die in Ihren Amazon S3-Buckets gespeichert sind, mithilfe sicherer vorsignierter URLs. Dies ermöglicht leistungsstarke Automatisierungsszenarien wie die Verarbeitung von Dokumenten, die Analyse gespeicherter Daten, das Abrufen von Konfigurationsdateien und den Zugriff auf Medieninhalte als Teil Ihrer Workflows. Ihre Agenten können Dateien sicher von S3 abrufen, ohne Ihre AWS-Anmeldeinformationen preiszugeben, wodurch es einfach wird, in der Cloud gespeicherte Assets in Ihre Automatisierungsprozesse einzubinden. Diese Integration überbrückt die Lücke zwischen Ihrer Cloud-Speicherung und KI-Workflows und ermöglicht einen nahtlosen Zugriff auf Ihre gespeicherten Daten unter Beibehaltung der Sicherheitsstandards durch die robusten Authentifizierungsmechanismen von AWS.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisung
S3 in den Workflow integrieren. Kann vorsignierte URLs für S3-Objekte erhalten. Erfordert Zugriffsschlüssel und geheimen Zugriffsschlüssel.
## Tools
### `s3_get_object`
Ein Objekt aus einem AWS S3-Bucket abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `accessKeyId` | string | Ja | Ihre AWS Access Key ID |
| `secretAccessKey` | string | Ja | Ihr AWS Secret Access Key |
| `s3Uri` | string | Ja | S3-Objekt-URL |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `url` | string | Vorsignierte URL zum Herunterladen des S3-Objekts |
| `metadata` | object | Dateimetadaten einschließlich Typ, Größe, Name und Datum der letzten Änderung |
## Hinweise
- Kategorie: `tools`
- Typ: `s3`

View File

@@ -0,0 +1,38 @@
---
title: Zeitplan
description: Workflow-Ausführung nach Zeitplan auslösen
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="schedule"
color="#7B68EE"
icon={true}
iconSvg={`<svg className="block-icon"
xmlns='http://www.w3.org/2000/svg'
viewBox='0 0 24 24'
fill='none'
stroke='currentColor'
strokeWidth='2'
strokeLinecap='round'
strokeLinejoin='round'
>
<path d='M8 2v4' />
<path d='M16 2v4' />
<rect x='3' y='4' rx='2' />
<path d='M3 10h18' />
</svg>`}
/>
## Gebrauchsanweisung
Integrieren Sie den Zeitplan in den Workflow. Kann einen Workflow nach einer Zeitplankonfiguration auslösen.
## Hinweise
- Kategorie: `triggers`
- Typ: `schedule`

View File

@@ -0,0 +1,108 @@
---
title: Serper
description: Durchsuchen Sie das Web mit Serper
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="serper"
color="#2B3543"
icon={true}
iconSvg={`<svg className="block-icon" viewBox='0 0 654 600' xmlns='http://www.w3.org/2000/svg' >
<path
d='M324 38C356 37 389 36 417 47C452 56 484 72 509 94C539 118 561 145 577 176C593 205 601 238 606 271C610 343 590 403 552 452C528 482 499 507 467 523C438 539 404 547 372 552C297 556 235 534 184 492C133 449 103 392 93 330C93 292 89 255 102 224C112 189 128 158 149 132C194 78 255 46 322 38'
fill='rgb(71,97,118)'
/>
<path
d='M326 39C286 43 250 55 217 75C185 94 156 120 137 150C100 204 87 266 95 336C107 402 142 462 198 502C249 538 309 556 378 551C415 545 449 533 477 516C511 497 535 472 557 445C592 393 611 333 605 265C595 196 563 140 511 95C484 73 452 57 419 48C390 38 359 38 327 39'
fill='rgb(71,97,119)'
/>
<path
d='M342 40C407 42 465 61 513 103C541 126 562 155 576 184C592 217 600 251 600 288C602 357 579 416 535 465C510 493 478 515 445 528C416 541 385 546 352 546C284 548 225 523 178 481C130 436 103 379 96 313C94 244 113 186 151 138C179 103 209 80 245 64C276 50 307 44 340 41'
fill='rgb(71,97,119)'
/>
<path
d='M344 42C309 44 277 51 247 64C209 81 180 103 153 136C114 186 95 244 96 312C104 379 131 435 177 480C225 522 284 547 351 546C385 545 416 540 443 528C478 514 509 492 533 466C578 416 601 357 600 289C599 251 591 217 576 187C561 156 541 127 515 105C466 63 409 44 346 41'
fill='rgb(71,97,118)'
/>
<path
d='M327 81C378 78 423 89 462 114C511 144 546 196 557 248C567 306 559 363 530 406C498 457 448 492 395 503C338 513 282 506 239 477C192 450 156 402 143 351C126 296 137 235 163 190C198 130 258 89 325 82'
fill='rgb(44,56,71)'
/>
<path
d='M329 83C260 89 199 129 165 189C138 235 127 296 144 349C157 401 193 449 237 475C282 505 338 512 393 503C448 491 497 457 529 408C558 363 566 306 557 250C545 196 511 145 464 116C424 91 380 79 330 82'
fill='rgb(43,55,70)'
/>
<path
d='M334 87C381 83 423 94 458 117C510 148 544 201 554 258C562 317 551 370 521 412C487 460 440 491 385 500C331 507 281 499 241 473C191 444 157 394 145 339C136 284 143 227 171 186C207 129 265 91 332 87'
fill='rgb(41,53,67)'
/>
<path
d='M335 88C267 90 208 129 173 184C144 227 137 284 145 338C158 393 191 443 240 471C281 498 331 506 384 500C439 490 487 459 519 413C550 370 561 317 554 259C543 201 509 149 460 119C424 96 383 85 337 88'
fill='rgb(41,53,67)'
/>
<path
d='M347 166C361 164 373 169 387 168C412 180 437 193 447 221C449 232 443 243 434 248C403 245 398 204 365 207C338 206 315 210 297 228C294 238 289 257 303 260C337 280 382 276 417 292C436 300 448 314 455 330C457 349 462 373 449 385C435 408 413 418 391 427C361 429 328 436 304 421C280 413 260 392 250 370C246 356 255 343 268 343C293 360 316 398 356 389C382 390 409 380 416 357C389 295 298 335 260 276C246 256 248 233 258 214C279 184 309 167 346 167'
fill='rgb(121,172,205)'
/>
<path
d='M349 168C312 167 280 183 259 212C249 233 247 256 260 274C299 334 390 294 422 354C409 381 382 391 357 389C316 399 293 361 272 342C255 344 247 356 251 368C260 391 280 412 302 420C328 435 361 428 389 428C412 417 434 407 447 386C461 373 456 349 456 332C428 270 351 289 304 262C288 258 293 239 295 229C314 209 338 204 363 204C398 203 403 244 431 249C443 242 448 232 449 222C436 193 412 181 388 172C374 170 363 166 350 167'
fill='rgb(125,177,211)'
/>
<path
d='M349 169C386 169 425 185 441 220C444 231 441 240 432 243C409 237 402 209 380 206C347 200 314 201 293 226C290 238 286 256 297 262C332 283 375 281 411 295C431 304 446 317 452 337C455 360 452 383 434 396C415 415 391 421 366 426C338 430 316 422 295 413C276 402 261 385 254 366C254 353 261 343 275 348C290 381 325 398 360 394C388 395 411 382 420 360C425 342 413 334 404 327C359 304 298 318 265 276C253 254 255 235 261 214C280 187 314 173 346 170'
fill='rgb(137,195,233)'
/>
<path
d='M349 171C316 173 281 187 263 214C256 235 254 254 266 273C300 316 359 304 401 325C413 333 426 342 422 358C412 382 388 396 363 395C326 399 290 382 278 348C262 345 254 353 253 365C261 384 277 401 292 411C316 421 338 429 365 426C390 420 415 414 432 398C451 383 454 360 453 338C445 317 430 305 413 296C375 282 332 284 299 264C285 257 288 239 291 228C304 212 319 205 336 202C378 193 403 213 423 244C438 244 443 232 441 222C425 186 388 171 352 170'
fill='rgb(139,198,236)'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Serper](https://www.serper.com/) ist eine Google-Such-API, die Entwicklern programmatischen Zugriff auf Google-Suchergebnisse bietet. Sie stellt eine zuverlässige, leistungsstarke Möglichkeit dar, Google-Suchfunktionen in Anwendungen zu integrieren, ohne die Komplexität von Web-Scraping oder die Einschränkungen anderer Such-APIs.
Mit Serper können Sie:
- **Auf Google-Suchergebnisse zugreifen**: Strukturierte Daten aus Google-Suchergebnissen programmatisch abrufen
- **Verschiedene Suchtypen durchführen**: Web-Suchen, Bildersuchen, Nachrichtensuchen und mehr ausführen
- **Umfangreiche Metadaten abrufen**: Titel, Snippets, URLs und andere relevante Informationen aus Suchergebnissen erhalten
- **Ihre Anwendungen skalieren**: Suchgestützte Funktionen mit einer zuverlässigen und schnellen API erstellen
- **Ratenbegrenzungen vermeiden**: Konsistenten Zugriff auf Suchergebnisse ohne Sorge vor IP-Sperren erhalten
In Sim ermöglicht die Serper-Integration Ihren Agenten, die Leistungsfähigkeit der Websuche als Teil ihrer Workflows zu nutzen. Dies erlaubt anspruchsvolle Automatisierungsszenarien, die aktuelle Informationen aus dem Internet erfordern. Ihre Agenten können Suchanfragen formulieren, relevante Ergebnisse abrufen und diese Informationen nutzen, um Entscheidungen zu treffen oder Antworten zu liefern. Diese Integration überbrückt die Lücke zwischen Ihrer Workflow-Automatisierung und dem umfangreichen Wissen, das im Web verfügbar ist, und ermöglicht Ihren Agenten den Zugriff auf Echtzeit-Informationen ohne manuelle Eingriffe. Durch die Verbindung von Sim mit Serper können Sie Agenten erstellen, die mit den neuesten Informationen aktuell bleiben, genauere Antworten liefern und mehr Wert für Benutzer schaffen.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integrieren Sie Serper in den Workflow. Kann das Web durchsuchen. Erfordert API-Schlüssel.
## Tools
### `serper_search`
Ein leistungsstarkes Websuch-Tool, das Zugriff auf Google-Suchergebnisse über die Serper.dev API bietet. Unterstützt verschiedene Arten von Suchen, einschließlich regulärer Websuche, Nachrichten, Orte und Bilder, wobei jedes Ergebnis relevante Metadaten wie Titel, URLs, Snippets und typenspezifische Informationen enthält.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Ja | Die Suchanfrage |
| `num` | number | Nein | Anzahl der zurückzugebenden Ergebnisse |
| `gl` | string | Nein | Ländercode für Suchergebnisse |
| `hl` | string | Nein | Sprachcode für Suchergebnisse |
| `type` | string | Nein | Art der durchzuführenden Suche |
| `apiKey` | string | Ja | Serper API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `searchResults` | array | Suchergebnisse mit Titeln, Links, Textausschnitten und typspezifischen Metadaten \(Datum für Nachrichten, Bewertung für Orte, Bild-URL für Bilder\) |
## Hinweise
- Kategorie: `tools`
- Typ: `serper`

View File

@@ -0,0 +1,205 @@
---
title: Sharepoint
description: Mit Seiten und Listen arbeiten
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="sharepoint"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon" fill='currentColor' viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'>
<circle fill='#036C70' cx='16.31' cy='8.90' r='8.90' />
<circle fill='#1A9BA1' cx='23.72' cy='17.05' r='8.15' />
<circle fill='#37C6D0' cx='17.42' cy='24.83' r='6.30' />
<path
fill='#000000'
opacity='0.1'
d='M17.79,8.03v15.82c0,0.55-0.34,1.04-0.85,1.25c-0.16,0.07-0.34,0.10-0.51,0.10H11.13c-0.01-0.13-0.01-0.24-0.01-0.37c0-0.12,0-0.25,0.01-0.37c0.14-2.37,1.59-4.46,3.77-5.40v-1.38c-4.85-0.77-8.15-5.32-7.39-10.17c0.01-0.03,0.01-0.07,0.02-0.10c0.04-0.25,0.09-0.50,0.16-0.74h8.74c0.74,0,1.36,0.60,1.36,1.36z'
/>
<path
fill='#000000'
opacity='0.2'
d='M15.69,7.41H7.54c-0.82,4.84,2.43,9.43,7.27,10.25c0.15,0.02,0.29,0.05,0.44,0.06c-2.30,1.09-3.97,4.18-4.12,6.73c-0.01,0.12-0.02,0.25-0.01,0.37c0,0.13,0,0.24,0.01,0.37c0.01,0.25,0.05,0.50,0.10,0.74h4.47c0.55,0,1.04-0.34,1.25-0.85c0.07-0.16,0.10-0.34,0.10-0.51V8.77c0-0.75-0.61-1.36-1.36-1.36z'
/>
<path
fill='#000000'
opacity='0.2'
d='M15.69,7.41H7.54c-0.82,4.84,2.43,9.43,7.27,10.26c0.10,0.02,0.20,0.03,0.30,0.05c-2.22,1.17-3.83,4.26-3.97,6.75h4.56c0.75,0,1.35-0.61,1.36-1.36V8.77c0-0.75-0.61-1.36-1.36-1.36z'
/>
<path
fill='#000000'
opacity='0.2'
d='M14.95,7.41H7.54c-0.78,4.57,2.08,8.97,6.58,10.11c-1.84,2.43-2.27,5.61-2.58,7.22h3.82c0.75,0,1.35-0.61,1.36-1.36V8.77c0-0.75-0.61-1.36-1.36-1.36z'
/>
<path
fill='#008789'
d='M1.36,7.41h13.58c0.75,0,1.36,0.61,1.36,1.36v13.58c0,0.75-0.61,1.36-1.36,1.36H1.36c-0.75,0-1.36-0.61-1.36-1.36V8.77C0,8.02,0.61,7.41,1.36,7.41z'
/>
<path
fill='#FFFFFF'
d='M6.07,15.42c-0.32-0.21-0.58-0.49-0.78-0.82c-0.19-0.34-0.28-0.73-0.27-1.12c-0.02-0.53,0.16-1.05,0.50-1.46c0.36-0.41,0.82-0.71,1.34-0.87c0.59-0.19,1.21-0.29,1.83-0.28c0.82-0.03,1.63,0.08,2.41,0.34v1.71c-0.34-0.20-0.71-0.35-1.09-0.44c-0.42-0.10-0.84-0.15-1.27-0.15c-0.45-0.02-0.90,0.08-1.31,0.28c-0.31,0.14-0.52,0.44-0.52,0.79c0,0.21,0.08,0.41,0.22,0.56c0.17,0.18,0.37,0.32,0.59,0.42c0.25,0.12,0.62,0.29,1.11,0.49c0.05,0.02,0.11,0.04,0.16,0.06c0.49,0.19,0.96,0.42,1.40,0.69c0.34,0.21,0.62,0.49,0.83,0.83c0.21,0.39,0.31,0.82,0.30,1.26c0.02,0.54-0.14,1.08-0.47,1.52c-0.33,0.40-0.77,0.69-1.26,0.85c-0.58,0.18-1.19,0.27-1.80,0.26c-0.55,0-1.09-0.04-1.63-0.13c-0.45-0.07-0.90-0.20-1.32-0.39v-1.80c0.40,0.29,0.86,0.50,1.34,0.64c0.48,0.15,0.97,0.23,1.47,0.24c0.46,0.03,0.92-0.07,1.34-0.28c0.29-0.16,0.46-0.47,0.46-0.80c0-0.23-0.09-0.45-0.25-0.61c-0.20-0.20-0.44-0.36-0.69-0.48c-0.30-0.15-0.73-0.34-1.31-0.59C6.91,16.14,6.48,15.80,6.07,15.42z'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[SharePoint](https://www.microsoft.com/en-us/microsoft-365/sharepoint/collaboration) ist eine kollaborative Plattform von Microsoft, die es Benutzern ermöglicht, interne Websites zu erstellen und zu verwalten, Dokumente zu teilen und Teamressourcen zu organisieren. Sie bietet eine leistungsstarke, flexible Lösung für die Erstellung digitaler Arbeitsumgebungen und die Optimierung des Inhaltsmanagements in Organisationen.
Mit SharePoint können Sie:
- **Team- und Kommunikationsseiten erstellen**: Richten Sie Seiten und Portale ein, um Zusammenarbeit, Ankündigungen und Inhaltsverteilung zu unterstützen
- **Inhalte organisieren und teilen**: Speichern Sie Dokumente, verwalten Sie Dateien und ermöglichen Sie Versionskontrolle mit sicheren Freigabefunktionen
- **Seiten anpassen**: Fügen Sie Textbereiche hinzu, um jede Seite an die Bedürfnisse Ihres Teams anzupassen
- **Auffindbarkeit verbessern**: Nutzen Sie Metadaten, Such- und Navigationswerkzeuge, damit Benutzer schnell finden, was sie benötigen
- **Sicher zusammenarbeiten**: Steuern Sie den Zugriff mit robusten Berechtigungseinstellungen und Microsoft 365-Integration
In Sim ermöglicht die SharePoint-Integration Ihren Agenten, SharePoint-Websites und -Seiten im Rahmen ihrer Workflows zu erstellen und darauf zuzugreifen. Dies ermöglicht automatisiertes Dokumentenmanagement, Wissensaustausch und die Erstellung von Arbeitsumgebungen ohne manuellen Aufwand. Agenten können neue Projektseiten erstellen, Dateien hoch- oder herunterladen und Ressourcen dynamisch organisieren, basierend auf Workflow-Eingaben. Durch die Verbindung von Sim mit SharePoint bringen Sie strukturierte Zusammenarbeit und Inhaltsmanagement in Ihre Automatisierungsabläufe und geben Ihren Agenten die Möglichkeit, Teamaktivitäten zu koordinieren, wichtige Informationen bereitzustellen und eine einheitliche Informationsquelle in Ihrer Organisation zu pflegen.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integrieren Sie SharePoint in den Workflow. Lesen/erstellen Sie Seiten, listen Sie Websites auf und arbeiten Sie mit Listen (lesen, erstellen, Elemente aktualisieren). Erfordert OAuth.
## Tools
### `sharepoint_create_page`
Eine neue Seite in einer SharePoint-Website erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Nein | Die ID der SharePoint-Website (interne Verwendung) |
| `siteSelector` | string | Nein | Wählen Sie die SharePoint-Website aus |
| `pageName` | string | Ja | Der Name der zu erstellenden Seite |
| `pageTitle` | string | Nein | Der Titel der Seite (standardmäßig der Seitenname, wenn nicht angegeben) |
| `pageContent` | string | Nein | Der Inhalt der Seite |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `page` | object | Informationen zur erstellten SharePoint-Seite |
### `sharepoint_read_page`
Eine bestimmte Seite von einer SharePoint-Website lesen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteSelector` | string | Nein | Wählen Sie die SharePoint-Website aus |
| `siteId` | string | Nein | Die ID der SharePoint-Website (interne Verwendung) |
| `pageId` | string | Nein | Die ID der zu lesenden Seite |
| `pageName` | string | Nein | Der Name der zu lesenden Seite (Alternative zur pageId) |
| `maxPages` | number | Nein | Maximale Anzahl der zurückzugebenden Seiten beim Auflisten aller Seiten (Standard: 10, max: 50) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `page` | object | Informationen über die SharePoint-Seite |
### `sharepoint_list_sites`
Details aller SharePoint-Websites auflisten
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteSelector` | string | Nein | SharePoint-Website auswählen |
| `groupId` | string | Nein | Die Gruppen-ID für den Zugriff auf eine Gruppen-Teamwebsite |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `site` | object | Informationen über die aktuelle SharePoint-Website |
### `sharepoint_create_list`
Eine neue Liste in einer SharePoint-Website erstellen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteId` | string | Nein | Die ID der SharePoint-Website (interne Verwendung) |
| `siteSelector` | string | Nein | SharePoint-Website auswählen |
| `listDisplayName` | string | Ja | Anzeigename der zu erstellenden Liste |
| `listDescription` | string | Nein | Beschreibung der Liste |
| `listTemplate` | string | Nein | Listenvorlagenname (z.B. 'genericList') |
| `pageContent` | string | Nein | Optionales JSON von Spalten. Entweder ein Array von Spaltendefinitionen auf oberster Ebene oder ein Objekt mit \{ columns: \[...\] \}. |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `list` | object | Informationen zur erstellten SharePoint-Liste |
### `sharepoint_get_list`
Metadaten (und optional Spalten/Elemente) für eine SharePoint-Liste abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteSelector` | string | Nein | SharePoint-Website auswählen |
| `siteId` | string | Nein | Die ID der SharePoint-Website (interne Verwendung) |
| `listId` | string | Nein | Die ID der abzurufenden Liste |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `list` | object | Informationen über die SharePoint-Liste |
### `sharepoint_update_list`
Eigenschaften (Felder) eines SharePoint-Listenelements aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteSelector` | string | Nein | SharePoint-Website auswählen |
| `siteId` | string | Nein | Die ID der SharePoint-Website (interne Verwendung) |
| `listId` | string | Nein | Die ID der Liste, die das Element enthält |
| `itemId` | string | Ja | Die ID des zu aktualisierenden Listenelements |
| `listItemFields` | object | Ja | Feldwerte, die im Listenelement aktualisiert werden sollen |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `item` | object | Aktualisiertes SharePoint-Listenelement |
### `sharepoint_add_list_items`
Ein neues Element zu einer SharePoint-Liste hinzufügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `siteSelector` | string | Nein | SharePoint-Website auswählen |
| `siteId` | string | Nein | Die ID der SharePoint-Website (interne Verwendung) |
| `listId` | string | Ja | Die ID der Liste, zu der das Element hinzugefügt werden soll |
| `listItemFields` | object | Ja | Feldwerte für das neue Listenelement |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `item` | object | Erstelltes SharePoint-Listenelement |
## Hinweise
- Kategorie: `tools`
- Typ: `sharepoint`

View File

@@ -0,0 +1,137 @@
---
title: Slack
description: Sende Nachrichten an Slack oder löse Workflows durch Slack-Ereignisse aus
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="slack"
color="#611f69"
icon={true}
iconSvg={`<svg className="block-icon" viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg' >
<g>
<path
d='M53.8412698,161.320635 C53.8412698,176.152381 41.8539683,188.139683 27.0222222,188.139683 C12.1904762,188.139683 0.203174603,176.152381 0.203174603,161.320635 C0.203174603,146.488889 12.1904762,134.501587 27.0222222,134.501587 L53.8412698,134.501587 L53.8412698,161.320635 Z M67.2507937,161.320635 C67.2507937,146.488889 79.2380952,134.501587 94.0698413,134.501587 C108.901587,134.501587 120.888889,146.488889 120.888889,161.320635 L120.888889,228.368254 C120.888889,243.2 108.901587,255.187302 94.0698413,255.187302 C79.2380952,255.187302 67.2507937,243.2 67.2507937,228.368254 L67.2507937,161.320635 Z'
fill='#E01E5A'
/>
<path
d='M94.0698413,53.6380952 C79.2380952,53.6380952 67.2507937,41.6507937 67.2507937,26.8190476 C67.2507937,11.9873016 79.2380952,-7.10542736e-15 94.0698413,-7.10542736e-15 C108.901587,-7.10542736e-15 120.888889,11.9873016 120.888889,26.8190476 L120.888889,53.6380952 L94.0698413,53.6380952 Z M94.0698413,67.2507937 C108.901587,67.2507937 120.888889,79.2380952 120.888889,94.0698413 C120.888889,108.901587 108.901587,120.888889 94.0698413,120.888889 L26.8190476,120.888889 C11.9873016,120.888889 0,108.901587 0,94.0698413 C0,79.2380952 11.9873016,67.2507937 26.8190476,67.2507937 L94.0698413,67.2507937 Z'
fill='#36C5F0'
/>
<path
d='M201.549206,94.0698413 C201.549206,79.2380952 213.536508,67.2507937 228.368254,67.2507937 C243.2,67.2507937 255.187302,79.2380952 255.187302,94.0698413 C255.187302,108.901587 243.2,120.888889 228.368254,120.888889 L201.549206,120.888889 L201.549206,94.0698413 Z M188.139683,94.0698413 C188.139683,108.901587 176.152381,120.888889 161.320635,120.888889 C146.488889,120.888889 134.501587,108.901587 134.501587,94.0698413 L134.501587,26.8190476 C134.501587,11.9873016 146.488889,-1.42108547e-14 161.320635,-1.42108547e-14 C176.152381,-1.42108547e-14 188.139683,11.9873016 188.139683,26.8190476 L188.139683,94.0698413 Z'
fill='#2EB67D'
/>
<path
d='M161.320635,201.549206 C176.152381,201.549206 188.139683,213.536508 188.139683,228.368254 C188.139683,243.2 176.152381,255.187302 161.320635,255.187302 C146.488889,255.187302 134.501587,243.2 134.501587,228.368254 L134.501587,201.549206 L161.320635,201.549206 Z M161.320635,188.139683 C146.488889,188.139683 134.501587,176.152381 134.501587,161.320635 C134.501587,146.488889 146.488889,134.501587 161.320635,134.501587 L228.571429,134.501587 C243.403175,134.501587 255.390476,146.488889 255.390476,161.320635 C255.390476,176.152381 243.403175,188.139683 228.571429,188.139683 L161.320635,188.139683 Z'
fill='#ECB22E'
/>
</g>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Slack](https://www.slack.com/) ist eine Business-Kommunikationsplattform, die Teams einen einheitlichen Ort für Nachrichten, Tools und Dateien bietet.
<iframe
width="100%"
height="400"
src="https://www.youtube.com/embed/J5jz3UaWmE8"
title="Slack Integration mit Sim"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen
></iframe>
Mit Slack kannst du:
- **Agent-Benachrichtigungen automatisieren**: Sende Echtzeit-Updates von deinen Sim-Agenten an jeden Slack-Kanal
- **Webhook-Endpunkte erstellen**: Konfiguriere Slack-Bots als Webhooks, um Sim-Workflows durch Slack-Aktivitäten auszulösen
- **Agent-Workflows verbessern**: Integriere Slack-Messaging in deine Agenten, um Ergebnisse, Warnungen und Statusupdates zu liefern
- **Slack-Canvases erstellen und teilen**: Erstelle programmatisch kollaborative Dokumente (Canvases) in Slack-Kanälen
- **Nachrichten aus Kanälen lesen**: Rufe aktuelle Nachrichten aus jedem Slack-Kanal ab und verarbeite sie für Monitoring oder Workflow-Auslöser
In Sim ermöglicht die Slack-Integration Ihren Agenten, im Rahmen ihrer Workflows auf verschiedene Weise programmatisch mit Slack zu interagieren:
- **Nachrichten senden**: Agenten können formatierte Nachrichten an jeden Slack-Kanal oder Benutzer senden und unterstützen dabei Slacks mrkdwn-Syntax für umfangreiche Formatierung.
- **Canvases erstellen**: Agenten können Slack-Canvases (kollaborative Dokumente) direkt in Kanälen erstellen und teilen, was den Austausch von umfangreicheren Inhalten und Dokumentationen ermöglicht.
- **Nachrichten lesen**: Agenten können aktuelle Nachrichten aus Kanälen lesen, was Überwachung, Berichterstattung oder das Auslösen weiterer Aktionen basierend auf Kanalaktivitäten ermöglicht.
Dies ermöglicht leistungsstarke Automatisierungsszenarien wie das Senden von Benachrichtigungen, Warnungen, Updates und Berichten direkt an die Kommunikationszentrale Ihres Teams, das Teilen strukturierter Dokumente oder die Überwachung von Gesprächen für Workflow-Auslöser. Ihre Agenten können zeitnahe Informationen liefern, Ergebnisse aus abgeschlossenen Prozessen teilen, kollaborative Dokumente erstellen oder Teammitglieder benachrichtigen, wenn Aufmerksamkeit erforderlich ist. Diese Integration überbrückt die Lücke zwischen Ihren KI-Workflows und der Kommunikation Ihres Teams und stellt sicher, dass alle ohne manuelles Eingreifen informiert bleiben. Durch die Verbindung von Sim mit Slack können Sie Agenten erstellen, die Ihr Team automatisch mit relevanten Informationen zur richtigen Zeit auf dem Laufenden halten, die Zusammenarbeit durch automatisches Teilen von Erkenntnissen verbessern und den Bedarf an manuellen Statusaktualisierungen reduzieren alles unter Nutzung Ihres bestehenden Slack-Arbeitsbereichs, in dem Ihr Team bereits kommuniziert.
{/* MANUAL-CONTENT-END */}
## Nutzungsanweisungen
Integrieren Sie Slack in den Workflow. Kann Nachrichten senden, Canvases erstellen und Nachrichten lesen. Erfordert OAuth. Kann im Auslösemodus verwendet werden, um einen Workflow zu starten, wenn eine Nachricht an einen Kanal gesendet wird.
## Tools
### `slack_message`
Senden Sie Nachrichten an Slack-Kanäle oder Benutzer über die Slack-API. Unterstützt Slack mrkdwn-Formatierung.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | Nein | Authentifizierungsmethode: oauth oder bot_token |
| `botToken` | string | Nein | Bot-Token für Custom Bot |
| `channel` | string | Ja | Ziel-Slack-Kanal \(z.B. #general\) |
| `text` | string | Ja | Zu sendender Nachrichtentext \(unterstützt Slack mrkdwn-Formatierung\) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `ts` | string | Zeitstempel der Nachricht |
| `channel` | string | Kanal-ID, wohin die Nachricht gesendet wurde |
### `slack_canvas`
Erstellen und teilen Sie Slack-Canvases in Kanälen. Canvases sind kollaborative Dokumente innerhalb von Slack.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | Nein | Authentifizierungsmethode: oauth oder bot_token |
| `botToken` | string | Nein | Bot-Token für Custom Bot |
| `channel` | string | Ja | Ziel-Slack-Kanal \(z.B. #general\) |
| `title` | string | Ja | Titel des Canvas |
| `content` | string | Ja | Canvas-Inhalt im Markdown-Format |
| `document_content` | object | Nein | Strukturierter Canvas-Dokumentinhalt |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `canvas_id` | string | ID des erstellten Canvas |
| `channel` | string | Kanal, in dem das Canvas erstellt wurde |
| `title` | string | Titel des Canvas |
### `slack_message_reader`
Lesen Sie die neuesten Nachrichten aus Slack-Kanälen. Rufen Sie den Konversationsverlauf mit Filteroptionen ab.
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `authMethod` | string | Nein | Authentifizierungsmethode: oauth oder bot_token |
| `botToken` | string | Nein | Bot-Token für benutzerdefinierten Bot |
| `channel` | string | Ja | Slack-Kanal, aus dem Nachrichten gelesen werden sollen (z.B. #general) |
| `limit` | number | Nein | Anzahl der abzurufenden Nachrichten (Standard: 10, max: 100) |
| `oldest` | string | Nein | Beginn des Zeitraums (Zeitstempel) |
| `latest` | string | Nein | Ende des Zeitraums (Zeitstempel) |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `messages` | array | Array von Nachrichtenobjekten aus dem Kanal |
## Hinweise
- Kategorie: `tools`
- Typ: `slack`

View File

@@ -0,0 +1,58 @@
---
title: SMS
description: Senden Sie SMS-Nachrichten über den internen SMS-Dienst
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="sms"
color="#E0E0E0"
icon={true}
iconSvg={`<svg className="block-icon"
fill='#000000'
viewBox='0 0 32 32'
xmlns='http://www.w3.org/2000/svg'
>
<path d='M 2 5 L 2 25 L 7 25 L 7 30.09375 L 8.625 28.78125 L 13.34375 25 L 30 25 L 30 5 Z M 4 7 L 28 7 L 28 23 L 12.65625 23 L 12.375 23.21875 L 9 25.90625 L 9 23 L 4 23 Z M 8 12 L 8 14 L 24 14 L 24 12 Z M 8 16 L 8 18 L 20 18 L 20 16 Z' />
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
Der SMS-Block ermöglicht es Ihnen, Textnachrichten direkt aus Ihren Workflows über Sims eigene SMS-Infrastruktur, die von Twilio betrieben wird, zu versenden. Diese Integration ermöglicht es Ihnen, Benachrichtigungen, Warnungen und andere wichtige Informationen programmgesteuert an mobile Geräte der Benutzer zu senden, ohne dass externe Konfigurationen oder OAuth erforderlich sind.
Unser interner SMS-Dienst ist auf Zuverlässigkeit und einfache Bedienung ausgelegt, was ihn ideal für die Automatisierung von Kommunikation macht und sicherstellt, dass Ihre Nachrichten die Empfänger effizient erreichen.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisung
Senden Sie SMS-Nachrichten direkt über den internen SMS-Dienst, der von Twilio betrieben wird. Keine externe Konfiguration oder OAuth erforderlich. Perfekt für das Senden von Benachrichtigungen, Warnungen oder allgemeinen Textnachrichten aus Ihren Workflows. Erfordert gültige Telefonnummern mit Ländervorwahlen.
## Tools
### `sms_send`
Senden Sie eine SMS-Nachricht über den internen SMS-Dienst, der von Twilio betrieben wird
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `to` | string | Ja | Telefonnummer des Empfängers \(inklusive Ländervorwahl, z.B. +1234567890\) |
| `body` | string | Ja | Inhalt der SMS-Nachricht |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `success` | boolean | Ob die SMS erfolgreich gesendet wurde |
| `to` | string | Telefonnummer des Empfängers |
| `body` | string | Inhalt der SMS-Nachricht |
## Hinweise
- Kategorie: `tools`
- Typ: `sms`

View File

@@ -0,0 +1,208 @@
---
title: Supabase
description: Supabase-Datenbank verwenden
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="supabase"
color="#1C1C1C"
icon={true}
iconSvg={`<svg className="block-icon" viewBox='0 0 27 27' xmlns='http://www.w3.org/2000/svg'>
<path
d='M15.4057 26.2606C14.7241 27.1195 13.3394 26.649 13.3242 25.5519L13.083 9.50684H23.8724C25.8262 9.50684 26.9157 11.7636 25.7006 13.2933L15.4057 26.2606Z'
fill='url(#paint0_linear)'
/>
<path
d='M15.4057 26.2606C14.7241 27.1195 13.3394 26.649 13.3242 25.5519L13.083 9.50684H23.8724C25.8262 9.50684 26.9157 11.7636 25.7006 13.2933L15.4057 26.2606Z'
fill='url(#paint1_linear)'
fillOpacity='0.2'
/>
<path
d='M11.0167 0.443853C11.6983 -0.415083 13.0832 0.0553814 13.0982 1.15237L13.2042 17.1976H2.55005C0.596215 17.1976 -0.493259 14.9408 0.721603 13.4111L11.0167 0.443853Z'
fill='#3ECF8E'
/>
<defs>
<linearGradient
id='paint0_linear'
x1='13.084'
y1='13.0655'
x2='22.6727'
y2='17.087'
gradientUnits='userSpaceOnUse'
>
<stop stopColor='#249361' />
<stop offset='1' stopColor='#3ECF8E' />
</linearGradient>
<linearGradient
id='paint1_linear'
x1='8.83277'
y1='7.24485'
x2='13.2057'
y2='15.477'
gradientUnits='userSpaceOnUse'
>
<stop />
<stop offset='1' stopOpacity='0' />
</linearGradient>
</defs>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Supabase](https://www.supabase.com/) ist eine leistungsstarke Open-Source-Backend-as-a-Service-Plattform, die Entwicklern eine Reihe von Tools zum Erstellen, Skalieren und Verwalten moderner Anwendungen bietet. Supabase bietet eine vollständig verwaltete [PostgreSQL](https://www.postgresql.org/)-Datenbank, robuste Authentifizierung, sofortige RESTful- und GraphQL-APIs, Echtzeit-Abonnements, Dateispeicherung und Edge-Funktionen alles über eine einheitliche und entwicklerfreundliche Oberfläche zugänglich. Die Open-Source-Natur und Kompatibilität mit gängigen Frameworks machen es zu einer überzeugenden Alternative zu Firebase, mit dem zusätzlichen Vorteil der SQL-Flexibilität und Transparenz.
**Warum Supabase?**
- **Sofortige APIs:** Jede Tabelle und Ansicht in Ihrer Datenbank ist sofort über REST- und GraphQL-Endpunkte verfügbar, was die Erstellung datengesteuerter Anwendungen ohne benutzerdefinierten Backend-Code erleichtert.
- **Echtzeit-Daten:** Supabase ermöglicht Echtzeit-Abonnements, sodass Ihre Apps sofort auf Änderungen in Ihrer Datenbank reagieren können.
- **Authentifizierung & Autorisierung:** Integrierte Benutzerverwaltung mit Unterstützung für E-Mail, OAuth, SSO und mehr, plus zeilenbasierte Sicherheit für granulare Zugriffskontrolle.
- **Speicher:** Sicheres Hochladen, Bereitstellen und Verwalten von Dateien mit integriertem Speicher, der sich nahtlos in Ihre Datenbank integriert.
- **Edge-Funktionen:** Bereitstellen von serverlosen Funktionen in der Nähe Ihrer Benutzer für benutzerdefinierte Logik mit geringer Latenz.
**Verwendung von Supabase in Sim**
Die Supabase-Integration von Sim macht es mühelos, Ihre agentischen Workflows mit Ihren Supabase-Projekten zu verbinden. Mit nur wenigen Konfigurationsfeldern Ihrer Projekt-ID, Tabellennamen und Service-Rolle-Secret können Sie sicher direkt aus Ihren Sim-Blöcken mit Ihrer Datenbank interagieren. Die Integration abstrahiert die Komplexität von API-Aufrufen und ermöglicht es Ihnen, sich auf den Aufbau von Logik und Automatisierungen zu konzentrieren.
**Hauptvorteile der Verwendung von Supabase in Sim:**
- **No-code/Low-code Datenbankoperationen:** Abfragen, Einfügen, Aktualisieren und Löschen von Zeilen in Ihren Supabase-Tabellen ohne SQL oder Backend-Code zu schreiben.
- **Flexible Abfragen:** Verwenden Sie die [PostgREST-Filtersyntax](https://postgrest.org/en/stable/api.html#operators) für erweiterte Abfragen, einschließlich Filtern, Sortieren und Begrenzen von Ergebnissen.
- **Nahtlose Integration:** Verbinden Sie Supabase einfach mit anderen Tools und Diensten in Ihrem Workflow und ermöglichen Sie leistungsstarke Automatisierungen wie Datensynchronisierung, Auslösen von Benachrichtigungen oder Anreicherung von Datensätzen.
- **Sicher und skalierbar:** Alle Operationen verwenden Ihr Supabase Service-Rolle-Secret und gewährleisten sicheren Zugriff auf Ihre Daten mit der Skalierbarkeit einer verwalteten Cloud-Plattform.
Ob Sie interne Tools erstellen, Geschäftsprozesse automatisieren oder Produktionsanwendungen betreiben Supabase in Sim bietet eine schnelle, zuverlässige und entwicklerfreundliche Möglichkeit, Ihre Daten und Backend-Logik zu verwalten ohne Infrastrukturverwaltung. Konfigurieren Sie einfach Ihren Block, wählen Sie die benötigte Operation und lassen Sie Sim den Rest erledigen.
{/* MANUAL-CONTENT-END */}
## Gebrauchsanweisung
Integrieren Sie Supabase in den Workflow. Kann viele Zeilen abrufen, eine Zeile abrufen, erstellen, aktualisieren, löschen und upserten.
## Tools
### `supabase_query`
Daten aus einer Supabase-Tabelle abfragen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `table` | string | Ja | Der Name der abzufragenden Supabase-Tabelle |
| `filter` | string | Nein | PostgREST-Filter \(z.B. "id=eq.123"\) |
| `orderBy` | string | Nein | Spalte zum Sortieren \(fügen Sie DESC für absteigend hinzu\) |
| `limit` | number | Nein | Maximale Anzahl der zurückzugebenden Zeilen |
| `apiKey` | string | Ja | Ihr Supabase Service-Rolle-Secret-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | array | Array der von der Abfrage zurückgegebenen Datensätze |
### `supabase_insert`
Daten in eine Supabase-Tabelle einfügen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID (z.B. jdrkgepadsdopsntdlom) |
| `table` | string | Ja | Der Name der Supabase-Tabelle, in die Daten eingefügt werden sollen |
| `data` | any | Ja | Die einzufügenden Daten |
| `apiKey` | string | Ja | Ihr Supabase Service-Role-Secret-Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | array | Array der eingefügten Datensätze |
### `supabase_get_row`
Eine einzelne Zeile aus einer Supabase-Tabelle basierend auf Filterkriterien abrufen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID (z.B. jdrkgepadsdopsntdlom) |
| `table` | string | Ja | Der Name der Supabase-Tabelle für die Abfrage |
| `filter` | string | Ja | PostgREST-Filter zum Finden der spezifischen Zeile (z.B. "id=eq.123") |
| `apiKey` | string | Ja | Ihr Supabase Service-Role-Secret-Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | array | Array mit den Zeilendaten, falls gefunden, leeres Array, falls nicht gefunden |
### `supabase_update`
Zeilen in einer Supabase-Tabelle basierend auf Filterkriterien aktualisieren
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID (z.B. jdrkgepadsdopsntdlom) |
| `table` | string | Ja | Der Name der zu aktualisierenden Supabase-Tabelle |
| `filter` | string | Ja | PostgREST-Filter zur Identifizierung der zu aktualisierenden Zeilen (z.B. "id=eq.123") |
| `data` | object | Ja | Daten, die in den übereinstimmenden Zeilen aktualisiert werden sollen |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | array | Array der aktualisierten Datensätze |
### `supabase_delete`
Zeilen aus einer Supabase-Tabelle basierend auf Filterkriterien löschen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID (z.B. jdrkgepadsdopsntdlom) |
| `table` | string | Ja | Der Name der Supabase-Tabelle, aus der gelöscht werden soll |
| `filter` | string | Ja | PostgREST-Filter zur Identifizierung der zu löschenden Zeilen (z.B. "id=eq.123") |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | array | Array der gelöschten Datensätze |
### `supabase_upsert`
Daten in eine Supabase-Tabelle einfügen oder aktualisieren (Upsert-Operation)
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `projectId` | string | Ja | Ihre Supabase-Projekt-ID \(z.B. jdrkgepadsdopsntdlom\) |
| `table` | string | Ja | Der Name der Supabase-Tabelle, in die Daten eingefügt werden sollen |
| `data` | any | Ja | Die Daten, die eingefügt oder aktualisiert werden sollen \(Upsert\) |
| `apiKey` | string | Ja | Ihr Supabase Service Role Secret Key |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `message` | string | Statusmeldung der Operation |
| `results` | array | Array der eingefügten/aktualisierten Datensätze |
## Hinweise
- Kategorie: `tools`
- Typ: `supabase`

View File

@@ -0,0 +1,104 @@
---
title: Tavily
description: Informationen suchen und extrahieren
---
import { BlockInfoCard } from "@/components/ui/block-info-card"
<BlockInfoCard
type="tavily"
color="#0066FF"
icon={true}
iconSvg={`<svg className="block-icon" viewBox='0 0 600 600' xmlns='http://www.w3.org/2000/svg' >
<path
d='M432 291C415 294 418 313 417 326C380 328 342 327 306 328C316 344 312 368 301 381C339 384 377 383 414 384C419 393 415 404 419 412C424 419 431 422 437 421C554 393 539 314 425 290'
fill='rgb(248,202,81)'
/>
<path
d='M263 87C260 88 257 89 255 93C237 121 219 147 204 174C203 184 206 191 212 195C222 198 231 196 239 197C241 238 240 277 241 316C257 307 276 309 294 308C296 273 295 234 296 199C309 196 328 200 333 183C314 149 299 103 267 83'
fill='rgb(109,164,249)'
/>
<path
d='M314 356L316 354C386 355 457 354 527 355C504 385 469 400 440 421C431 421 424 418 421 411C415 402 420 389 416 383C384 371 284 406 312 358'
fill='rgb(250,188,28)'
/>
<path
d='M314 356C281 405 384 369 410 384C422 388 415 402 421 409C425 417 431 420 437 420C469 400 504 384 529 360C456 355 386 356 317 355'
fill='rgb(251,186,23)'
/>
<path
d='M264 325C271 325 290 329 283 339C236 384 186 436 139 482C133 481 133 477 131 474C133 477 133 481 135 482C174 490 213 472 250 466C261 447 246 435 235 426C254 406 271 389 289 372C303 352 287 324 266 326'
fill='rgb(251,156,158)'
/>
<path
d='M263 327C260 328 256 328 253 330C233 348 216 367 197 384C188 381 183 371 175 368C166 367 161 369 156 372C148 409 133 447 133 482C173 430 281 366 277 323'
fill='rgb(248,56,63)'
/>
<path
d='M258 326C235 341 218 365 198 382C186 376 176 360 161 368L160 369L157 369C149 378 150 391 146 401C150 391 149 379 157 370C174 359 185 376 195 385C219 365 238 337 262 325'
fill='rgb(242,165,165)'
/>
</svg>`}
/>
{/* MANUAL-CONTENT-START:intro */}
[Tavily](https://www.tavily.com/) ist eine KI-gestützte Such-API, die speziell für LLM-Anwendungen entwickelt wurde. Sie bietet zuverlässige Informationsabruffunktionen in Echtzeit mit Funktionen, die für KI-Anwendungsfälle optimiert sind, einschließlich semantischer Suche, Inhaltsextraktion und strukturiertem Datenabruf.
Mit Tavily können Sie:
- **Kontextbezogene Suchen durchführen**: Erhalten Sie relevante Ergebnisse basierend auf semantischem Verständnis anstatt nur auf Keyword-Matching
- **Strukturierte Inhalte extrahieren**: Ziehen Sie spezifische Informationen aus Webseiten in einem sauberen, nutzbaren Format
- **Auf Echtzeit-Informationen zugreifen**: Rufen Sie aktuelle Daten aus dem gesamten Web ab
- **Mehrere URLs gleichzeitig verarbeiten**: Extrahieren Sie Inhalte von mehreren Webseiten in einer einzigen Anfrage
- **KI-optimierte Ergebnisse erhalten**: Bekommen Sie Suchergebnisse, die speziell für die Verarbeitung durch KI-Systeme formatiert sind
In Sim ermöglicht die Tavily-Integration Ihren Agenten, das Web zu durchsuchen und Informationen als Teil ihrer Workflows zu extrahieren. Dies erlaubt anspruchsvolle Automatisierungsszenarien, die aktuelle Informationen aus dem Internet benötigen. Ihre Agenten können Suchanfragen formulieren, relevante Ergebnisse abrufen und Inhalte von bestimmten Webseiten extrahieren, um ihre Entscheidungsprozesse zu unterstützen. Diese Integration überbrückt die Lücke zwischen Ihrer Workflow-Automatisierung und dem umfangreichen Wissen, das im Web verfügbar ist, und ermöglicht Ihren Agenten den Zugriff auf Echtzeit-Informationen ohne manuelle Eingriffe. Durch die Verbindung von Sim mit Tavily können Sie Agenten erstellen, die mit den neuesten Informationen auf dem Laufenden bleiben, genauere Antworten liefern und mehr Wert für Benutzer schaffen.
{/* MANUAL-CONTENT-END */}
## Nutzungsanleitung
Integrieren Sie Tavily in den Workflow. Kann das Web durchsuchen und Inhalte von bestimmten URLs extrahieren. Benötigt API-Schlüssel.
## Tools
### `tavily_search`
KI-gestützte Websuchen mit Tavily durchführen
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `query` | string | Ja | Die auszuführende Suchanfrage |
| `max_results` | number | Nein | Maximale Anzahl an Ergebnissen \(1-20\) |
| `apiKey` | string | Ja | Tavily API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `query` | string | Die ausgeführte Suchanfrage |
| `results` | array | Ergebnisse des Tools |
### `tavily_extract`
Extrahieren Sie Rohinhalt von mehreren Webseiten gleichzeitig mit Tavily
#### Eingabe
| Parameter | Typ | Erforderlich | Beschreibung |
| --------- | ---- | -------- | ----------- |
| `urls` | string | Ja | URL oder Array von URLs, von denen Inhalte extrahiert werden sollen |
| `extract_depth` | string | Nein | Die Extraktionstiefe \(basic=1 Kredit/5 URLs, advanced=2 Kredite/5 URLs\) |
| `apiKey` | string | Ja | Tavily API-Schlüssel |
#### Ausgabe
| Parameter | Typ | Beschreibung |
| --------- | ---- | ----------- |
| `results` | array | Die URL, die extrahiert wurde |
## Hinweise
- Kategorie: `tools`
- Typ: `tavily`

Some files were not shown because too many files have changed in this diff Show More