From 9f3f2e21d8639c0bbcf8b4836fb7e1c13e53e700 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 13:51:43 +0100 Subject: [PATCH] i18n - docs translations (#18122) Created by Github action Co-authored-by: github-actions --- .../developers/extend/capabilities/apps.mdx | 70 ++++++++++++---- .../developers/extend/capabilities/apps.mdx | 70 ++++++++++++---- .../developers/extend/capabilities/apps.mdx | 82 ++++++++++++++----- .../developers/extend/capabilities/apps.mdx | 70 ++++++++++++---- .../developers/extend/capabilities/apps.mdx | 70 ++++++++++++---- .../developers/extend/capabilities/apps.mdx | 48 ++++++++++- .../developers/extend/capabilities/apps.mdx | 70 ++++++++++++---- .../developers/extend/capabilities/apps.mdx | 48 ++++++++++- .../developers/extend/capabilities/apps.mdx | 48 ++++++++++- 9 files changed, 468 insertions(+), 108 deletions(-) diff --git a/packages/twenty-docs/l/ar/developers/extend/capabilities/apps.mdx b/packages/twenty-docs/l/ar/developers/extend/capabilities/apps.mdx index 09a813141d..f8e3cd9eb8 100644 --- a/packages/twenty-docs/l/ar/developers/extend/capabilities/apps.mdx +++ b/packages/twenty-docs/l/ar/developers/extend/capabilities/apps.mdx @@ -15,6 +15,7 @@ description: أنشئ وأدِر تخصيصات Twenty على هيئة كود. * عرِّف كائنات وحقولًا مخصصة على شكل كود (نموذج بيانات مُدار) * أنشئ وظائف منطقية مع مشغلات مخصصة +* حدد المهارات لوكلاء الذكاء الاصطناعي * انشر التطبيق نفسه عبر مساحات عمل متعددة ## المتطلبات الأساسية @@ -45,13 +46,13 @@ yarn twenty app:dev يدعم المُنشئ ثلاثة أوضاع للتحكم في ملفات الأمثلة التي سيتم تضمينها: ```bash filename="Terminal" -# الافتراضي (شامل): جميع الأمثلة (كائن، حقل، دالة منطقية، مكوّن الواجهة الأمامية، عرض، عنصر قائمة التنقل) +# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill) npx create-twenty-app@latest my-app -# الأدنى: الملفات الأساسية فقط (application-config.ts و default-role.ts) +# Minimal: only core files (application-config.ts and default-role.ts) npx create-twenty-app@latest my-app --minimal -# التفاعلي: اختر الأمثلة التي تريد تضمينها +# Interactive: select which examples to include npx create-twenty-app@latest my-app --interactive ``` @@ -102,24 +103,26 @@ my-twenty-app/ eslint.config.mjs tsconfig.json README.md - public/ # مجلد الأصول العامة (صور، خطوط، إلخ) + public/ # Public assets folder (images, fonts, etc.) src/ - ├── application-config.ts # مطلوب - إعدادات التطبيق الرئيسية + ├── application-config.ts # Required - main application configuration ├── roles/ - │ └── default-role.ts # الدور الافتراضي للدوال المنطقية + │ └── default-role.ts # Default role for logic functions ├── objects/ - │ └── example-object.ts # تعريف كائن مخصص — مثال + │ └── example-object.ts # Example custom object definition ├── fields/ - │ └── example-field.ts # تعريف حقل مستقل — مثال + │ └── example-field.ts # Example standalone field definition ├── logic-functions/ - │ ├── hello-world.ts # دالة منطقية — مثال - │ └── post-install.ts # دالة منطقية لما بعد التثبيت + │ ├── hello-world.ts # Example logic function + │ └── post-install.ts # Post-install logic function ├── front-components/ - │ └── hello-world.tsx # مكوّن واجهة أمامية — مثال + │ └── hello-world.tsx # Example front component ├── views/ - │ └── example-view.ts # تعريف عرض محفوظ — مثال - └── navigation-menu-items/ - └── example-navigation-menu-item.ts # رابط تنقّل في الشريط الجانبي — مثال + │ └── example-view.ts # Example saved view definition + ├── navigation-menu-items/ + │ └── example-navigation-menu-item.ts # Example sidebar navigation link + └── skills/ + └── example-skill.ts # Example AI agent skill definition ``` مع `--minimal`، سيتم إنشاء الملفات الأساسية فقط (`application-config.ts` و`roles/default-role.ts` و`logic-functions/post-install.ts`). مع `--interactive`، تختار ملفات الأمثلة التي تريد تضمينها. @@ -148,6 +151,7 @@ my-twenty-app/ | `defineField()` | امتدادات الحقول للكائنات الموجودة | | `defineView()` | تعريفات العروض المحفوظة | | `defineNavigationMenuItem()` | تعريفات عناصر قائمة التنقل | +| `defineSkill()` | AI agent skill definitions | **تسمية الملفات مرنة.** يعتمد اكتشاف الكيانات على بنية الشجرة المجردة (AST) — إذ يقوم SDK بفحص ملفات المصدر لديك بحثًا عن النمط `export default define({...})`. يمكنك تنظيم ملفاتك ومجلداتك كيفما تشاء. التجميع حسب نوع الكيان (مثلًا، `logic-functions/` و`roles/`) هو مجرد عرف لتنظيم الشيفرة، وليس مطلبًا إلزاميًا. @@ -169,7 +173,7 @@ export default defineObject({ ستضيف الأوامر اللاحقة مزيدًا من الملفات والمجلدات: * `yarn twenty app:dev` سيولّد تلقائيًا عميل API مضبوط الأنواع في `node_modules/twenty-sdk/generated` (عميل Twenty مضبوط الأنواع + أنواع مساحة العمل). -* `yarn twenty entity:add` سيضيف ملفات تعريف الكيانات تحت `src/` لكائناتك المخصصة أو الوظائف أو المكونات الواجهية أو الأدوار. +* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more. ## المصادقة @@ -222,6 +226,7 @@ yarn twenty auth:status | `defineField()` | وسّع الكائنات الموجودة بحقول إضافية | | `defineView()` | تعريف العروض المحفوظة للكائنات | | `defineNavigationMenuItem()` | تعريف روابط التنقل في الشريط الجانبي | +| `defineSkill()` | Define AI agent skills | تتحقق هذه الدوال من تكوينك وقت البناء وتوفّر إكمالًا تلقائيًا في بيئة التطوير وأمان الأنواع. @@ -741,6 +746,41 @@ export default defineFrontComponent({ * **مُنشأ بالقالب**: شغّل `yarn twenty entity:add` واختر خيار إضافة مكوّن أمامي جديد. * **يدوي**: أنشئ ملفًا جديدًا `*.front-component.tsx` واستخدم `defineFrontComponent()`. +### المهارات + +Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation: + +```typescript +// src/skills/example-skill.ts +import { defineSkill } from 'twenty-sdk'; + +export default defineSkill({ + universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890', + name: 'sales-outreach', + label: 'Sales Outreach', + description: 'Guides the AI agent through a structured sales outreach process', + icon: 'IconBrain', + content: `You are a sales outreach assistant. When reaching out to a prospect: +1. Research the company and recent news +2. Identify the prospect's role and likely pain points +3. Draft a personalized message referencing specific details +4. Keep the tone professional but conversational`, +}); +``` + +النقاط الرئيسية: + +* `name` is a unique identifier string for the skill (kebab-case recommended). +* `label` is the human-readable display name shown in the UI. +* `content` contains the skill instructions — this is the text the AI agent uses. +* `icon` (optional) sets the icon displayed in the UI. +* `description` (optional) provides additional context about the skill's purpose. + +You can create new skills in two ways: + +* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill. +* **Manual**: Create a new file and use `defineSkill()`, following the same pattern. + ### عميل مُولَّد مضبوط الأنواع يُولَّد العميل مضبوط الأنواع تلقائيًا بواسطة `yarn twenty app:dev` ويُخزَّن في `node_modules/twenty-sdk/generated` استنادًا إلى مخطط مساحة العمل لديك. استخدمه في وظائفك: diff --git a/packages/twenty-docs/l/cs/developers/extend/capabilities/apps.mdx b/packages/twenty-docs/l/cs/developers/extend/capabilities/apps.mdx index 86d24ea404..711a2c35ae 100644 --- a/packages/twenty-docs/l/cs/developers/extend/capabilities/apps.mdx +++ b/packages/twenty-docs/l/cs/developers/extend/capabilities/apps.mdx @@ -15,6 +15,7 @@ Aplikace vám umožňují vytvářet a spravovat přizpůsobení Twenty **jako k * Definujte vlastní objekty a pole jako kód (spravovaný datový model) * Vytvářejte logické funkce s vlastními spouštěči +* Definujte dovednosti agentů AI * Nasazujte stejnou aplikaci do více pracovních prostorů ## Předpoklady @@ -45,13 +46,13 @@ yarn twenty app:dev Nástroj pro generování kostry podporuje tři režimy pro řízení toho, které ukázkové soubory jsou zahrnuty: ```bash filename="Terminal" -# Výchozí (úplný): všechny příklady (objekt, pole, logická funkce, front-endová komponenta, zobrazení, položka navigační nabídky) +# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill) npx create-twenty-app@latest my-app -# Minimální: pouze základní soubory (application-config.ts a default-role.ts) +# Minimal: only core files (application-config.ts and default-role.ts) npx create-twenty-app@latest my-app --minimal -# Interaktivní: vyberte, které příklady zahrnout +# Interactive: select which examples to include npx create-twenty-app@latest my-app --interactive ``` @@ -102,24 +103,26 @@ my-twenty-app/ eslint.config.mjs tsconfig.json README.md - public/ # Složka s veřejnými prostředky (obrázky, písma apod.) + public/ # Public assets folder (images, fonts, etc.) src/ - ├── application-config.ts # Povinné – hlavní konfigurace aplikace + ├── application-config.ts # Required - main application configuration ├── roles/ - │ └── default-role.ts # Výchozí role pro logické funkce + │ └── default-role.ts # Default role for logic functions ├── objects/ - │ └── example-object.ts # Ukázková definice vlastního objektu + │ └── example-object.ts # Example custom object definition ├── fields/ - │ └── example-field.ts # Ukázková samostatná definice pole + │ └── example-field.ts # Example standalone field definition ├── logic-functions/ - │ ├── hello-world.ts # Ukázková logická funkce - │ └── post-install.ts # Postinstalační logická funkce + │ ├── hello-world.ts # Example logic function + │ └── post-install.ts # Post-install logic function ├── front-components/ - │ └── hello-world.tsx # Ukázková front-endová komponenta + │ └── hello-world.tsx # Example front component ├── views/ - │ └── example-view.ts # Ukázková definice uloženého zobrazení - └── navigation-menu-items/ - └── example-navigation-menu-item.ts # Ukázkový odkaz postranní navigace + │ └── example-view.ts # Example saved view definition + ├── navigation-menu-items/ + │ └── example-navigation-menu-item.ts # Example sidebar navigation link + └── skills/ + └── example-skill.ts # Example AI agent skill definition ``` S volbou `--minimal` se vytvoří pouze základní soubory (`application-config.ts`, `roles/default-role.ts` a `logic-functions/post-install.ts`). S volbou `--interactive` si vyberete, které ukázkové soubory chcete zahrnout. @@ -148,6 +151,7 @@ SDK detekuje entity analýzou vašich souborů TypeScript a hledá volání **`e | `defineField()` | Rozšíření polí u existujících objektů | | `defineView()` | Definice uložených zobrazení | | `defineNavigationMenuItem()` | Definice položek navigační nabídky | +| `defineSkill()` | AI agent skill definitions | **Pojmenování souborů je flexibilní.** Detekce entit je založená na AST — SDK prochází vaše zdrojové soubory a hledá vzor `export default define({...})`. Soubory a složky můžete organizovat, jak chcete. Seskupování podle typu entity (např. `logic-functions/`, `roles/`) je pouze konvence pro organizaci kódu, nikoli požadavek. @@ -169,7 +173,7 @@ export default defineObject({ Pozdější příkazy přidají další soubory a složky: * `yarn twenty app:dev` automaticky vygeneruje typovaného klienta API v `node_modules/twenty-sdk/generated` (typovaný klient Twenty + typy pracovního prostoru). -* `yarn twenty entity:add` přidá soubory s definicemi entit do `src/` pro vaše vlastní objekty, funkce, frontové komponenty nebo role. +* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more. ## Ověření @@ -222,6 +226,7 @@ SDK poskytuje pomocné funkce pro definování entit vaší aplikace. Jak je pop | `defineField()` | Rozšiřte existující objekty o další pole | | `defineView()` | Definujte uložená zobrazení pro objekty | | `defineNavigationMenuItem()` | Definujte odkazy postranní navigace | +| `defineSkill()` | Define AI agent skills | Tyto funkce validují vaši konfiguraci v době sestavení a poskytují automatické doplňování v IDE a typovou bezpečnost. @@ -741,6 +746,41 @@ Nové frontendové komponenty můžete vytvořit dvěma způsoby: * **Vygenerované**: Spusťte `yarn twenty entity:add` a zvolte možnost přidat novou frontendovou komponentu. * **Ruční**: Vytvořte nový soubor `*.front-component.tsx` a použijte `defineFrontComponent()`. +### Dovednosti + +Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation: + +```typescript +// src/skills/example-skill.ts +import { defineSkill } from 'twenty-sdk'; + +export default defineSkill({ + universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890', + name: 'sales-outreach', + label: 'Sales Outreach', + description: 'Guides the AI agent through a structured sales outreach process', + icon: 'IconBrain', + content: `You are a sales outreach assistant. When reaching out to a prospect: +1. Research the company and recent news +2. Identify the prospect's role and likely pain points +3. Draft a personalized message referencing specific details +4. Keep the tone professional but conversational`, +}); +``` + +Hlavní body: + +* `name` is a unique identifier string for the skill (kebab-case recommended). +* `label` is the human-readable display name shown in the UI. +* `content` contains the skill instructions — this is the text the AI agent uses. +* `icon` (optional) sets the icon displayed in the UI. +* `description` (optional) provides additional context about the skill's purpose. + +You can create new skills in two ways: + +* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill. +* **Manual**: Create a new file and use `defineSkill()`, following the same pattern. + ### Generovaný typovaný klient Typovaný klient je automaticky generován pomocí `yarn twenty app:dev` a ukládá se do `node_modules/twenty-sdk/generated` podle schématu vašeho pracovního prostoru. Použijte jej ve svých funkcích: diff --git a/packages/twenty-docs/l/de/developers/extend/capabilities/apps.mdx b/packages/twenty-docs/l/de/developers/extend/capabilities/apps.mdx index 2515e0c90f..5cd0cdf916 100644 --- a/packages/twenty-docs/l/de/developers/extend/capabilities/apps.mdx +++ b/packages/twenty-docs/l/de/developers/extend/capabilities/apps.mdx @@ -15,6 +15,7 @@ Mit Apps können Sie Twenty-Anpassungen **als Code** erstellen und verwalten. An * Benutzerdefinierte Objekte und Felder als Code definieren (verwaltetes Datenmodell) * Logikfunktionen mit benutzerdefinierten Triggern erstellen +* Fähigkeiten für KI-Agenten definieren * Dieselbe App in mehreren Workspaces bereitstellen ## Voraussetzungen @@ -45,13 +46,13 @@ yarn twenty app:dev Das Scaffolding-Tool unterstützt drei Modi, um zu steuern, welche Beispieldateien enthalten sind: ```bash filename="Terminal" -# Standard (umfassend): alle Beispiele (Objekt, Feld, Logikfunktion, Frontend-Komponente, View, Navigationsmenüeintrag) +# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill) npx create-twenty-app@latest my-app -# Minimal: nur Kerndateien (application-config.ts und default-role.ts) +# Minimal: only core files (application-config.ts and default-role.ts) npx create-twenty-app@latest my-app --minimal -# Interaktiv: wähle aus, welche Beispiele enthalten sein sollen +# Interactive: select which examples to include npx create-twenty-app@latest my-app --interactive ``` @@ -102,24 +103,26 @@ my-twenty-app/ eslint.config.mjs tsconfig.json README.md - public/ # Ordner für öffentliche Assets (Bilder, Schriftarten usw.) + public/ # Public assets folder (images, fonts, etc.) src/ - application-config.ts # Erforderlich  Hauptkonfiguration der Anwendung - roles/ -  default-role.ts # Standardrolle für Logikfunktionen - objects/ -  example-object.ts # Beispiel für eine benutzerdefinierte Objektdefinition - fields/ -  example-field.ts # Beispiel für eine eigenständige Felddefinition - logic-functions/ -  hello-world.ts # Beispiel für eine Logikfunktion -  post-install.ts # Post-Installations-Logikfunktion - front-components/ -  hello-world.tsx # Beispiel für eine Frontend-Komponente - views/ -  example-view.ts # Beispiel für eine gespeicherte View-Definition - navigation-menu-items/ - example-navigation-menu-item.ts # Beispiel für einen Navigationslink in der Seitenleiste + ├── application-config.ts # Required - main application configuration + ├── roles/ + │ └── default-role.ts # Default role for logic functions + ├── objects/ + │ └── example-object.ts # Example custom object definition + ├── fields/ + │ └── example-field.ts # Example standalone field definition + ├── logic-functions/ + │ ├── hello-world.ts # Example logic function + │ └── post-install.ts # Post-install logic function + ├── front-components/ + │ └── hello-world.tsx # Example front component + ├── views/ + │ └── example-view.ts # Example saved view definition + ├── navigation-menu-items/ + │ └── example-navigation-menu-item.ts # Example sidebar navigation link + └── skills/ + └── example-skill.ts # Example AI agent skill definition ``` Mit `--minimal` werden nur die Kerndateien erstellt (`application-config.ts`, `roles/default-role.ts` und `logic-functions/post-install.ts`). Mit `--interactive` wählst du aus, welche Beispieldateien enthalten sein sollen. @@ -148,6 +151,7 @@ Das SDK erkennt Entitäten, indem es Ihre TypeScript-Dateien nach Aufrufen von * | `defineField()` | Felderweiterungen für bestehende Objekte | | `defineView()` | Gespeicherte View-Definitionen | | `defineNavigationMenuItem()` | Definitionen von Navigationsmenüeinträgen | +| `defineSkill()` | AI agent skill definitions | **Dateibenennung ist flexibel.** Die Entitätserkennung ist AST-basiert — das SDK durchsucht Ihre Quelldateien nach dem Muster `export default define({...})`. Sie können Ihre Dateien und Ordner nach Belieben organisieren. Die Gruppierung nach Entitätstyp (z. B. `logic-functions/`, `roles/`) ist lediglich eine Konvention zur Codeorganisation, keine Voraussetzung. @@ -169,7 +173,7 @@ export default defineObject({ Spätere Befehle fügen weitere Dateien und Ordner hinzu: * `yarn twenty app:dev` generiert automatisch einen typisierten API-Client in `node_modules/twenty-sdk/generated` (typisierter Twenty-Client + Arbeitsbereichs-Typen). -* `yarn twenty entity:add` fügt unter `src/` Entitätsdefinitionsdateien für benutzerdefinierte Objekte, Funktionen, Frontend-Komponenten oder Rollen hinzu. +* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more. ## Authentifizierung @@ -222,6 +226,7 @@ Das SDK stellt Hilfsfunktionen bereit, um die Entitäten Ihrer App zu definieren | `defineField()` | Bestehende Objekte mit zusätzlichen Feldern erweitern | | `defineView()` | Gespeicherte Views für Objekte definieren | | `defineNavigationMenuItem()` | Seitenleisten-Navigationslinks definieren | +| `defineSkill()` | Define AI agent skills | Diese Funktionen validieren Ihre Konfiguration zur Build-Zeit und bieten IDE-Autovervollständigung sowie Typsicherheit. @@ -741,6 +746,41 @@ Sie können neue Frontend-Komponenten auf zwei Arten erstellen: * **Generiert**: Führen Sie `yarn twenty entity:add` aus und wählen Sie die Option zum Hinzufügen einer neuen Frontend-Komponente. * **Manuell**: Erstellen Sie eine neue `*.front-component.tsx`-Datei und verwenden Sie `defineFrontComponent()`. +### Fähigkeiten + +Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation: + +```typescript +// src/skills/example-skill.ts +import { defineSkill } from 'twenty-sdk'; + +export default defineSkill({ + universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890', + name: 'sales-outreach', + label: 'Sales Outreach', + description: 'Guides the AI agent through a structured sales outreach process', + icon: 'IconBrain', + content: `You are a sales outreach assistant. When reaching out to a prospect: +1. Research the company and recent news +2. Identify the prospect's role and likely pain points +3. Draft a personalized message referencing specific details +4. Keep the tone professional but conversational`, +}); +``` + +Hauptpunkte: + +* `name` is a unique identifier string for the skill (kebab-case recommended). +* `label` is the human-readable display name shown in the UI. +* `content` contains the skill instructions — this is the text the AI agent uses. +* `icon` (optional) sets the icon displayed in the UI. +* `description` (optional) provides additional context about the skill's purpose. + +You can create new skills in two ways: + +* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill. +* **Manual**: Create a new file and use `defineSkill()`, following the same pattern. + ### Generierter typisierter Client Der typisierte Client wird von `yarn twenty app:dev` automatisch generiert und basierend auf Ihrem Arbeitsbereichs-Schema in `node_modules/twenty-sdk/generated` gespeichert. Verwenden Sie ihn in Ihren Funktionen: diff --git a/packages/twenty-docs/l/it/developers/extend/capabilities/apps.mdx b/packages/twenty-docs/l/it/developers/extend/capabilities/apps.mdx index d3b143f8b4..01e6b267ef 100644 --- a/packages/twenty-docs/l/it/developers/extend/capabilities/apps.mdx +++ b/packages/twenty-docs/l/it/developers/extend/capabilities/apps.mdx @@ -15,6 +15,7 @@ Le app ti consentono di creare e gestire le personalizzazioni di Twenty **come c * Definisci oggetti e campi personalizzati come codice (modello dati gestito) * Crea funzioni logiche con trigger personalizzati +* Definire le abilità per gli agenti IA * Distribuisci la stessa app su più spazi di lavoro ## Prerequisiti @@ -45,13 +46,13 @@ yarn twenty app:dev Lo strumento di scaffolding supporta tre modalità per controllare quali file di esempio vengono inclusi: ```bash filename="Terminal" -# Predefinita (esaustiva): tutti gli esempi (oggetto, campo, funzione logica, componente front-end, vista, voce del menu di navigazione) +# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill) npx create-twenty-app@latest my-app -# Minimale: solo i file principali (application-config.ts e default-role.ts) +# Minimal: only core files (application-config.ts and default-role.ts) npx create-twenty-app@latest my-app --minimal -# Interattiva: seleziona quali esempi includere +# Interactive: select which examples to include npx create-twenty-app@latest my-app --interactive ``` @@ -102,24 +103,26 @@ my-twenty-app/ eslint.config.mjs tsconfig.json README.md - public/ # Cartella delle risorse pubbliche (immagini, font, ecc.) + public/ # Public assets folder (images, fonts, etc.) src/ - ├── application-config.ts # Obbligatorio - configurazione principale dell'applicazione + ├── application-config.ts # Required - main application configuration ├── roles/ - │ └── default-role.ts # Ruolo predefinito per le funzioni logiche + │ └── default-role.ts # Default role for logic functions ├── objects/ - │ └── example-object.ts # Definizione di oggetto personalizzato di esempio + │ └── example-object.ts # Example custom object definition ├── fields/ - │ └── example-field.ts # Definizione di campo autonomo di esempio + │ └── example-field.ts # Example standalone field definition ├── logic-functions/ - │ ├── hello-world.ts # Funzione logica di esempio - │ └── post-install.ts # Funzione logica post-installazione + │ ├── hello-world.ts # Example logic function + │ └── post-install.ts # Post-install logic function ├── front-components/ - │ └── hello-world.tsx # Componente front-end di esempio + │ └── hello-world.tsx # Example front component ├── views/ - │ └── example-view.ts # Definizione di vista salvata di esempio - └── navigation-menu-items/ - └── example-navigation-menu-item.ts # Link di navigazione della barra laterale di esempio + │ └── example-view.ts # Example saved view definition + ├── navigation-menu-items/ + │ └── example-navigation-menu-item.ts # Example sidebar navigation link + └── skills/ + └── example-skill.ts # Example AI agent skill definition ``` Con `--minimal`, vengono creati solo i file principali (`application-config.ts`, `roles/default-role.ts` e `logic-functions/post-install.ts`). Con `--interactive`, scegli quali file di esempio includere. @@ -148,6 +151,7 @@ L'SDK rileva le entità analizzando i tuoi file TypeScript alla ricerca di chiam | `defineField()` | Estensioni di campo per oggetti esistenti | | `defineView()` | Definizioni di viste salvate | | `defineNavigationMenuItem()` | Definizioni delle voci del menu di navigazione | +| `defineSkill()` | AI agent skill definitions | **La denominazione dei file è flessibile.** Il rilevamento delle entità è basato sull'AST — l'SDK esegue la scansione dei file sorgente alla ricerca del pattern `export default define({...})`. Puoi organizzare file e cartelle come preferisci. Raggruppare per tipo di entità (ad es., `logic-functions/`, `roles/`) è solo una convenzione per l'organizzazione del codice, non un requisito. @@ -169,7 +173,7 @@ export default defineObject({ Comandi successivi aggiungeranno altri file e cartelle: * `yarn twenty app:dev` genererà automaticamente un client API tipizzato in `node_modules/twenty-sdk/generated` (client Twenty tipizzato + tipi dell'area di lavoro). -* `yarn twenty entity:add` aggiungerà file di definizione delle entità sotto `src/` per i tuoi oggetti, funzioni, componenti front-end o ruoli personalizzati. +* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more. ## Autenticazione @@ -222,6 +226,7 @@ L'SDK fornisce funzioni helper per definire le entità della tua app. Come descr | `defineField()` | Estendi gli oggetti esistenti con campi aggiuntivi | | `defineView()` | Definisce viste salvate per gli oggetti | | `defineNavigationMenuItem()` | Definisce i link di navigazione della barra laterale | +| `defineSkill()` | Define AI agent skills | Queste funzioni convalidano la configurazione in fase di build e offrono il completamento automatico nell'IDE e la sicurezza dei tipi. @@ -741,6 +746,41 @@ Puoi creare nuovi componenti front-end in due modi: * **Generata dallo scaffolder**: Esegui `yarn twenty entity:add` e scegli l'opzione per aggiungere un nuovo componente front-end. * **Manuale**: Crea un nuovo file `*.front-component.tsx` e usa `defineFrontComponent()`. +### Abilità + +Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation: + +```typescript +// src/skills/example-skill.ts +import { defineSkill } from 'twenty-sdk'; + +export default defineSkill({ + universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890', + name: 'sales-outreach', + label: 'Sales Outreach', + description: 'Guides the AI agent through a structured sales outreach process', + icon: 'IconBrain', + content: `You are a sales outreach assistant. When reaching out to a prospect: +1. Research the company and recent news +2. Identify the prospect's role and likely pain points +3. Draft a personalized message referencing specific details +4. Keep the tone professional but conversational`, +}); +``` + +Punti chiave: + +* `name` is a unique identifier string for the skill (kebab-case recommended). +* `label` is the human-readable display name shown in the UI. +* `content` contains the skill instructions — this is the text the AI agent uses. +* `icon` (optional) sets the icon displayed in the UI. +* `description` (optional) provides additional context about the skill's purpose. + +You can create new skills in two ways: + +* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill. +* **Manual**: Create a new file and use `defineSkill()`, following the same pattern. + ### Client tipizzato generato Il client tipizzato è generato automaticamente da `yarn twenty app:dev` e salvato in `node_modules/twenty-sdk/generated` in base allo schema della tua area di lavoro. Usalo nelle tue funzioni: diff --git a/packages/twenty-docs/l/pt/developers/extend/capabilities/apps.mdx b/packages/twenty-docs/l/pt/developers/extend/capabilities/apps.mdx index e2f13124b3..359f3905f7 100644 --- a/packages/twenty-docs/l/pt/developers/extend/capabilities/apps.mdx +++ b/packages/twenty-docs/l/pt/developers/extend/capabilities/apps.mdx @@ -15,6 +15,7 @@ Os aplicativos permitem criar e gerenciar personalizações do Twenty **como có * Defina objetos e campos personalizados como código (modelo de dados gerenciado) * Crie funções de lógica com gatilhos personalizados +* Definir habilidades para agentes de IA * Implemente o mesmo aplicativo em vários espaços de trabalho ## Pré-requisitos @@ -45,13 +46,13 @@ yarn twenty app:dev O gerador de estrutura oferece suporte a três modos para controlar quais arquivos de exemplo são incluídos: ```bash filename="Terminal" -# Padrão (exhaustivo): todos os exemplos (objeto, campo, função de lógica, componente de front-end, visualização, item do menu de navegação) +# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill) npx create-twenty-app@latest my-app -# Mínimo: apenas arquivos principais (application-config.ts e default-role.ts) +# Minimal: only core files (application-config.ts and default-role.ts) npx create-twenty-app@latest my-app --minimal -# Interativo: selecione quais exemplos incluir +# Interactive: select which examples to include npx create-twenty-app@latest my-app --interactive ``` @@ -102,24 +103,26 @@ my-twenty-app/ eslint.config.mjs tsconfig.json README.md - public/ # Pasta de recursos públicos (imagens, fontes, etc.) + public/ # Public assets folder (images, fonts, etc.) src/ - ├── application-config.ts # Obrigatório - configuração principal da aplicação + ├── application-config.ts # Required - main application configuration ├── roles/ - │ └── default-role.ts # Papel padrão para funções de lógica + │ └── default-role.ts # Default role for logic functions ├── objects/ - │ └── example-object.ts # Exemplo de definição de objeto personalizado + │ └── example-object.ts # Example custom object definition ├── fields/ - │ └── example-field.ts # Exemplo de definição de campo independente + │ └── example-field.ts # Example standalone field definition ├── logic-functions/ - │ ├── hello-world.ts # Exemplo de função de lógica - │ └── post-install.ts # Função de lógica de pós-instalação + │ ├── hello-world.ts # Example logic function + │ └── post-install.ts # Post-install logic function ├── front-components/ - │ └── hello-world.tsx # Exemplo de componente de front-end + │ └── hello-world.tsx # Example front component ├── views/ - │ └── example-view.ts # Exemplo de definição de visualização salva - └── navigation-menu-items/ - └── example-navigation-menu-item.ts # Exemplo de link de navegação da barra lateral + │ └── example-view.ts # Example saved view definition + ├── navigation-menu-items/ + │ └── example-navigation-menu-item.ts # Example sidebar navigation link + └── skills/ + └── example-skill.ts # Example AI agent skill definition ``` Com `--minimal`, apenas os arquivos principais são criados (`application-config.ts`, `roles/default-role.ts` e `logic-functions/post-install.ts`). Com `--interactive`, você escolhe quais arquivos de exemplo incluir. @@ -148,6 +151,7 @@ O SDK detecta entidades analisando seus arquivos TypeScript em busca de chamadas | `defineField()` | Extensões de campos para objetos existentes | | `defineView()` | Definições de visualizações salvas | | `defineNavigationMenuItem()` | Definições de itens do menu de navegação | +| `defineSkill()` | AI agent skill definitions | **A nomeação de arquivos é flexível.** A detecção de entidades é baseada em AST — o SDK varre seus arquivos fonte em busca do padrão `export default define({...})`. Você pode organizar seus arquivos e pastas como quiser. Agrupar por tipo de entidade (por exemplo, `logic-functions/`, `roles/`) é apenas uma convenção para organização do código, não um requisito. @@ -169,7 +173,7 @@ export default defineObject({ Comandos posteriores adicionarão mais arquivos e pastas: * `yarn twenty app:dev` vai gerar automaticamente um cliente de API tipado em `node_modules/twenty-sdk/generated` (cliente Twenty tipado + tipos do espaço de trabalho). -* `yarn twenty entity:add` adicionará arquivos de definição de entidade em `src/` para seus objetos, funções, componentes de front-end ou papéis personalizados. +* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more. ## Autenticação @@ -222,6 +226,7 @@ O SDK fornece funções utilitárias para definir as entidades do seu app. Confo | `defineField()` | Estender objetos existentes com campos adicionais | | `defineView()` | Define visualizações salvas para objetos | | `defineNavigationMenuItem()` | Define links de navegação da barra lateral | +| `defineSkill()` | Define AI agent skills | Essas funções validam sua configuração em tempo de compilação e oferecem autocompletar na IDE e segurança de tipos. @@ -741,6 +746,41 @@ Você pode criar novos componentes de front-end de duas formas: * **Gerado automaticamente**: Execute `yarn twenty entity:add` e escolha a opção para adicionar um novo componente de front-end. * **Manual**: Crie um novo arquivo `*.front-component.tsx` e use `defineFrontComponent()`. +### Habilidades + +Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation: + +```typescript +// src/skills/example-skill.ts +import { defineSkill } from 'twenty-sdk'; + +export default defineSkill({ + universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890', + name: 'sales-outreach', + label: 'Sales Outreach', + description: 'Guides the AI agent through a structured sales outreach process', + icon: 'IconBrain', + content: `You are a sales outreach assistant. When reaching out to a prospect: +1. Research the company and recent news +2. Identify the prospect's role and likely pain points +3. Draft a personalized message referencing specific details +4. Keep the tone professional but conversational`, +}); +``` + +Pontos-chave: + +* `name` is a unique identifier string for the skill (kebab-case recommended). +* `label` is the human-readable display name shown in the UI. +* `content` contains the skill instructions — this is the text the AI agent uses. +* `icon` (optional) sets the icon displayed in the UI. +* `description` (optional) provides additional context about the skill's purpose. + +You can create new skills in two ways: + +* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill. +* **Manual**: Create a new file and use `defineSkill()`, following the same pattern. + ### Cliente tipado gerado O cliente tipado é gerado automaticamente pelo `yarn twenty app:dev` e armazenado em `node_modules/twenty-sdk/generated` com base no esquema do seu espaço de trabalho. Use-o em suas funções: diff --git a/packages/twenty-docs/l/ro/developers/extend/capabilities/apps.mdx b/packages/twenty-docs/l/ro/developers/extend/capabilities/apps.mdx index 2271c02cd0..1a38ba7f49 100644 --- a/packages/twenty-docs/l/ro/developers/extend/capabilities/apps.mdx +++ b/packages/twenty-docs/l/ro/developers/extend/capabilities/apps.mdx @@ -15,6 +15,7 @@ Aplicațiile vă permit să construiți și să gestionați personalizările Twe * Definiți obiecte și câmpuri personalizate sub formă de cod (model de date gestionat) * Creați funcții de logică cu declanșatoare personalizate +* Definiți abilități pentru agenți de IA * Implementați aceeași aplicație în mai multe spații de lucru ## Cerințe @@ -45,7 +46,7 @@ yarn twenty app:dev Generatorul de schelet acceptă trei moduri pentru a controla ce fișiere de exemplu sunt incluse: ```bash filename="Terminal" -# Implicit (exhaustiv): toate exemplele (obiect, câmp, funcție logică, componentă de interfață, vizualizare, element de meniu de navigare) +# Implicit (exhaustiv): toate exemplele (obiect, câmp, funcție logică, componentă de interfață, vizualizare, element de meniu de navigare, abilitate) npx create-twenty-app@latest my-app # Minimal: doar fișierele de bază (application-config.ts și default-role.ts) @@ -118,8 +119,10 @@ my-twenty-app/ │ └── hello-world.tsx # Exemplu de componentă de interfață ├── views/ │ └── example-view.ts # Exemplu de definiție a unei vizualizări salvate - └── navigation-menu-items/ - └── example-navigation-menu-item.ts # Exemplu de link de navigare în bara laterală + ├── navigation-menu-items/ + │ └── example-navigation-menu-item.ts # Exemplu de link de navigare în bara laterală + └── skills/ + └── example-skill.ts # Exemplu de definiție a unei abilități a agentului AI ``` Cu `--minimal`, sunt create doar fișierele de bază (`application-config.ts`, `roles/default-role.ts` și `logic-functions/post-install.ts`). Cu `--interactive`, alegi ce fișiere de exemplu să incluzi. @@ -148,6 +151,7 @@ SDK-ul detectează entitățile analizând fișierele TypeScript pentru apeluri | `defineField()` | Extensii de câmp pentru obiectele existente | | `defineView()` | Definiții pentru vizualizări salvate | | `defineNavigationMenuItem()` | Definiții pentru elemente de meniu de navigare | +| `defineSkill()` | Definiții ale abilităților agentului AI | **Denumirea fișierelor este flexibilă.** Detectarea entităților se bazează pe AST — SDK-ul scanează fișierele sursă pentru tiparul `export default define({...})`. Puteți organiza fișierele și folderele cum doriți. Gruparea după tipul de entitate (de exemplu, `logic-functions/`, `roles/`) este doar o convenție pentru organizarea codului, nu o cerință. @@ -169,7 +173,7 @@ export default defineObject({ Comenzile ulterioare vor adăuga mai multe fișiere și foldere: * `yarn twenty app:dev` va genera automat un client API tipizat în `node_modules/twenty-sdk/generated` (client Twenty tipizat + tipuri ale spațiului de lucru). -* `yarn twenty entity:add` va adăuga fișiere de definire a entităților în `src/` pentru obiectele, funcțiile, componentele front-end sau rolurile personalizate. +* `yarn twenty entity:add` va adăuga fișiere de definire a entităților în `src/` pentru obiectele, funcțiile, componentele front-end, rolurile, abilitățile și altele. ## Autentificare @@ -222,6 +226,7 @@ SDK-ul oferă funcții ajutătoare pentru definirea entităților aplicației. D | `defineField()` | Extindeți obiectele existente cu câmpuri suplimentare | | `defineView()` | Definește vizualizări salvate pentru obiecte | | `defineNavigationMenuItem()` | Definește linkuri de navigare în bara laterală | +| `defineSkill()` | Definiți abilități pentru agentul AI | Aceste funcții validează configurația în timpul build-ului și oferă completare automată în IDE și siguranța tipurilor. @@ -741,6 +746,41 @@ Puteți crea componente Front noi în două moduri: * **Generat**: Rulați `yarn twenty entity:add` și alegeți opțiunea de a adăuga o componentă frontend nouă. * **Manual**: Creați un fișier nou `*.front-component.tsx` și folosiți `defineFrontComponent()`. +### Abilități + +Abilitățile definesc instrucțiuni și capabilități reutilizabile pe care agenții AI le pot folosi în spațiul dvs. de lucru. Folosiți `defineSkill()` pentru a defini abilități cu validare încorporată: + +```typescript +// src/skills/example-skill.ts +import { defineSkill } from 'twenty-sdk'; + +export default defineSkill({ + universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890', + name: 'sales-outreach', + label: 'Abordare de vânzări', + description: 'Ghidează agentul AI printr-un proces structurat de abordare de vânzări', + icon: 'IconBrain', + content: `Ești un asistent pentru abordare de vânzări. Când contactezi un potențial client: +1. Cercetează compania și noutățile recente +2. Identifică rolul potențialului client și probabilele puncte sensibile +3. Redactează un mesaj personalizat care face referire la detalii specifice +4. Păstrează un ton profesionist, dar conversațional`, +}); +``` + +Puncte cheie: + +* `name` este un șir identificator unic pentru abilitate (se recomandă kebab-case). +* `label` este numele lizibil afișat în interfața cu utilizatorul (UI). +* `content` conține instrucțiunile abilității — acesta este textul pe care agentul AI îl folosește. +* `icon` (opțional) setează pictograma afișată în UI. +* `description` (opțional) oferă context suplimentar despre scopul abilității. + +Puteți crea abilități noi în două moduri: + +* **Generat**: Rulați `yarn twenty entity:add` și alegeți opțiunea de a adăuga o abilitate nouă. +* **Manual**: Creați un fișier nou și folosiți `defineSkill()`, urmând același model. + ### Client tipizat generat Clientul tipizat este generat automat de `yarn twenty app:dev` și stocat în `node_modules/twenty-sdk/generated`, pe baza schemei spațiului tău de lucru. Folosiți-l în funcțiile dvs.: diff --git a/packages/twenty-docs/l/ru/developers/extend/capabilities/apps.mdx b/packages/twenty-docs/l/ru/developers/extend/capabilities/apps.mdx index eefd7f3eb1..8bce0cdcfc 100644 --- a/packages/twenty-docs/l/ru/developers/extend/capabilities/apps.mdx +++ b/packages/twenty-docs/l/ru/developers/extend/capabilities/apps.mdx @@ -15,6 +15,7 @@ description: Создавайте и управляйте настройками * Определяйте пользовательские объекты и поля в виде кода (управляемая модель данных) * Создавайте логические функции с пользовательскими триггерами +* Определите навыки для ИИ-агентов * Развёртывайте одно и то же приложение в нескольких рабочих пространствах ## Требования @@ -45,13 +46,13 @@ yarn twenty app:dev Генератор каркаса поддерживает три режима для управления тем, какие примерные файлы включаются: ```bash filename="Terminal" -# По умолчанию (полный набор): все примеры (объект, поле, логическая функция, фронтенд-компонент, представление, пункт меню навигации) +# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill) npx create-twenty-app@latest my-app -# Минимальный: только основные файлы (application-config.ts и default-role.ts) +# Minimal: only core files (application-config.ts and default-role.ts) npx create-twenty-app@latest my-app --minimal -# Интерактивный: выбрать, какие примеры включить +# Interactive: select which examples to include npx create-twenty-app@latest my-app --interactive ``` @@ -102,24 +103,26 @@ my-twenty-app/ eslint.config.mjs tsconfig.json README.md - public/ # Папка публичных ресурсов (изображения, шрифты и т. д.) + public/ # Public assets folder (images, fonts, etc.) src/ - ├── application-config.ts # Обязательный — основная конфигурация приложения + ├── application-config.ts # Required - main application configuration ├── roles/ - │ └── default-role.ts # Роль по умолчанию для логических функций + │ └── default-role.ts # Default role for logic functions ├── objects/ - │ └── example-object.ts # Пример определения пользовательского объекта + │ └── example-object.ts # Example custom object definition ├── fields/ - │ └── example-field.ts # Пример определения отдельного поля + │ └── example-field.ts # Example standalone field definition ├── logic-functions/ - │ ├── hello-world.ts # Пример логической функции - │ └── post-install.ts # Постустановочная логическая функция + │ ├── hello-world.ts # Example logic function + │ └── post-install.ts # Post-install logic function ├── front-components/ - │ └── hello-world.tsx # Пример фронтенд-компонента + │ └── hello-world.tsx # Example front component ├── views/ - │ └── example-view.ts # Пример определения сохранённого представления - └── navigation-menu-items/ - └── example-navigation-menu-item.ts # Пример ссылки боковой панели навигации + │ └── example-view.ts # Example saved view definition + ├── navigation-menu-items/ + │ └── example-navigation-menu-item.ts # Example sidebar navigation link + └── skills/ + └── example-skill.ts # Example AI agent skill definition ``` С `--minimal` создаются только основные файлы (`application-config.ts`, `roles/default-role.ts` и `logic-functions/post-install.ts`). С `--interactive` вы выбираете, какие примерные файлы включить. @@ -148,6 +151,7 @@ SDK обнаруживает сущности, разбирая ваши фай | `defineField()` | Расширения полей для существующих объектов | | `defineView()` | Определения сохранённых представлений | | `defineNavigationMenuItem()` | Определения пунктов меню навигации | +| `defineSkill()` | AI agent skill definitions | **Имена файлов заданы гибко.** Обнаружение сущностей основано на AST — SDK сканирует ваши исходные файлы в поисках шаблона `export default define({...})`. Вы можете организовывать файлы и папки как угодно. Группировка по типу сущности (например, `logic-functions/`, `roles/`) — это лишь соглашение для организации кода, а не требование. @@ -169,7 +173,7 @@ export default defineObject({ Позднее команды добавят больше файлов и папок: * `yarn twenty app:dev` автоматически сгенерирует типизированный клиент API в `node_modules/twenty-sdk/generated` (типизированный клиент Twenty + типы рабочего пространства). -* `yarn twenty entity:add` добавит файлы определений сущностей в `src/` для ваших пользовательских объектов, функций, фронтенд-компонентов или ролей. +* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more. ## Аутентификация @@ -222,6 +226,7 @@ SDK предоставляет вспомогательные функции д | `defineField()` | Расширение существующих объектов дополнительными полями | | `defineView()` | Определяйте сохранённые представления для объектов | | `defineNavigationMenuItem()` | Определяйте ссылки боковой панели навигации | +| `defineSkill()` | Define AI agent skills | Эти функции проверяют вашу конфигурацию на этапе сборки и обеспечивают автодополнение в IDE и безопасность типов. @@ -741,6 +746,41 @@ export default defineFrontComponent({ * **Сгенерировано**: Запустите `yarn twenty entity:add` и выберите опцию добавления нового фронтенд-компонента. * **Вручную**: Создайте новый файл `*.front-component.tsx` и используйте `defineFrontComponent()`. +### Навыки + +Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation: + +```typescript +// src/skills/example-skill.ts +import { defineSkill } from 'twenty-sdk'; + +export default defineSkill({ + universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890', + name: 'sales-outreach', + label: 'Sales Outreach', + description: 'Guides the AI agent through a structured sales outreach process', + icon: 'IconBrain', + content: `You are a sales outreach assistant. When reaching out to a prospect: +1. Research the company and recent news +2. Identify the prospect's role and likely pain points +3. Draft a personalized message referencing specific details +4. Keep the tone professional but conversational`, +}); +``` + +Основные моменты: + +* `name` is a unique identifier string for the skill (kebab-case recommended). +* `label` is the human-readable display name shown in the UI. +* `content` contains the skill instructions — this is the text the AI agent uses. +* `icon` (optional) sets the icon displayed in the UI. +* `description` (optional) provides additional context about the skill's purpose. + +You can create new skills in two ways: + +* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill. +* **Manual**: Create a new file and use `defineSkill()`, following the same pattern. + ### Сгенерированный типизированный клиент Типизированный клиент автоматически генерируется с помощью `yarn twenty app:dev` и сохраняется в `node_modules/twenty-sdk/generated` на основе схемы вашего рабочего пространства. Используйте его в своих функциях: diff --git a/packages/twenty-docs/l/tr/developers/extend/capabilities/apps.mdx b/packages/twenty-docs/l/tr/developers/extend/capabilities/apps.mdx index 4fa64f13ce..4db6106ced 100644 --- a/packages/twenty-docs/l/tr/developers/extend/capabilities/apps.mdx +++ b/packages/twenty-docs/l/tr/developers/extend/capabilities/apps.mdx @@ -15,6 +15,7 @@ Uygulamalar, Twenty özelleştirmelerini **kod olarak** oluşturup yönetmenizi * Özel nesneleri ve alanları kod olarak tanımlayın (yönetilen veri modeli) * Özel tetikleyicilerle mantık fonksiyonları oluşturun +* Yapay zekâ ajanları için becerileri tanımlayın * Aynı uygulamayı birden çok çalışma alanına dağıtın ## Ön Gereksinimler @@ -45,7 +46,7 @@ yarn twenty app:dev İskelet oluşturucu, hangi örnek dosyaların dahil edileceğini kontrol etmek için üç modu destekler: ```bash filename="Terminal" -# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item) +# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill) npx create-twenty-app@latest my-app # Minimal: only core files (application-config.ts and default-role.ts) @@ -118,8 +119,10 @@ my-twenty-app/ │ └── hello-world.tsx # Example front component ├── views/ │ └── example-view.ts # Example saved view definition - └── navigation-menu-items/ - └── example-navigation-menu-item.ts # Example sidebar navigation link + ├── navigation-menu-items/ + │ └── example-navigation-menu-item.ts # Example sidebar navigation link + └── skills/ + └── example-skill.ts # Example AI agent skill definition ``` `--minimal` ile yalnızca çekirdek dosyalar oluşturulur (`application-config.ts`, `roles/default-role.ts` ve `logic-functions/post-install.ts`). `--interactive` ile hangi örnek dosyaların dahil edileceğini siz seçersiniz. @@ -148,6 +151,7 @@ SDK, TypeScript dosyalarınızı **`export default define({...})`** ça | `defineField()` | Mevcut nesneler için alan genişletmeleri | | `defineView()` | Kaydedilmiş görünüm tanımları | | `defineNavigationMenuItem()` | Gezinme menüsü öğesi tanımları | +| `defineSkill()` | AI agent skill definitions | **Dosya adlandırma esnektir.** Varlık algılama AST tabanlıdır — SDK, kaynak dosyalarınızı `export default define({...})` desenini bulmak için tarar. Dosyalarınızı ve klasörlerinizi dilediğiniz gibi düzenleyebilirsiniz. Varlık türüne göre gruplama (örn. `logic-functions/`, `roles/`) bir gereklilik değil, yalnızca kod organizasyonu için bir gelenektir. @@ -169,7 +173,7 @@ export default defineObject({ İlerideki komutlar daha fazla dosya ve klasör ekleyecektir: * `yarn twenty app:dev`, `node_modules/twenty-sdk/generated` içinde tipli bir API istemcisini otomatik olarak oluşturur (tipli Twenty istemcisi + çalışma alanı türleri). -* `yarn twenty entity:add`, özel nesneleriniz, fonksiyonlarınız, ön bileşenleriniz veya rolleriniz için `src/` altında varlık tanım dosyaları ekler. +* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more. ## Kimlik Doğrulama @@ -222,6 +226,7 @@ SDK, uygulama varlıklarınızı tanımlamak için yardımcı fonksiyonlar sağl | `defineField()` | Mevcut nesneleri ek alanlarla genişletin | | `defineView()` | Nesneler için kaydedilmiş görünümler tanımlayın | | `defineNavigationMenuItem()` | Kenar çubuğu gezinme bağlantılarını tanımlayın | +| `defineSkill()` | Define AI agent skills | Bu fonksiyonlar, derleme zamanında yapılandırmanızı doğrular ve IDE otomatik tamamlama ile tür güvenliği sağlar. @@ -741,6 +746,41 @@ Yeni ön uç bileşenlerini iki şekilde oluşturabilirsiniz: * **Şablondan**: `yarn twenty entity:add` çalıştırın ve yeni bir ön uç bileşeni ekleme seçeneğini seçin. * **Manuel**: Yeni bir `*.front-component.tsx` dosyası oluşturun ve `defineFrontComponent()` kullanın. +### Beceriler + +Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation: + +```typescript +// src/skills/example-skill.ts +import { defineSkill } from 'twenty-sdk'; + +export default defineSkill({ + universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890', + name: 'sales-outreach', + label: 'Sales Outreach', + description: 'Guides the AI agent through a structured sales outreach process', + icon: 'IconBrain', + content: `You are a sales outreach assistant. When reaching out to a prospect: +1. Research the company and recent news +2. Identify the prospect's role and likely pain points +3. Draft a personalized message referencing specific details +4. Keep the tone professional but conversational`, +}); +``` + +Önemli noktalar: + +* `name` is a unique identifier string for the skill (kebab-case recommended). +* `label` is the human-readable display name shown in the UI. +* `content` contains the skill instructions — this is the text the AI agent uses. +* `icon` (optional) sets the icon displayed in the UI. +* `description` (optional) provides additional context about the skill's purpose. + +You can create new skills in two ways: + +* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill. +* **Manual**: Create a new file and use `defineSkill()`, following the same pattern. + ### Oluşturulmuş türlendirilmiş istemci Tipli istemci, `yarn twenty app:dev` tarafından otomatik olarak oluşturulur ve çalışma alanı şemanıza göre `node_modules/twenty-sdk/generated` içine kaydedilir. Fonksiyonlarınızda kullanın: diff --git a/packages/twenty-docs/l/zh/developers/extend/capabilities/apps.mdx b/packages/twenty-docs/l/zh/developers/extend/capabilities/apps.mdx index 75f5c13ea0..2cde36ebde 100644 --- a/packages/twenty-docs/l/zh/developers/extend/capabilities/apps.mdx +++ b/packages/twenty-docs/l/zh/developers/extend/capabilities/apps.mdx @@ -15,6 +15,7 @@ description: 以代码的形式构建并管理 Twenty 自定义项。 * 以代码定义自定义对象和字段(受管理的数据模型) * 构建带有自定义触发器的逻辑函数 +* 为 AI 智能体定义技能 * 将同一个应用部署到多个工作空间 ## 先决条件 @@ -45,7 +46,7 @@ yarn twenty app:dev The scaffolder supports three modes for controlling which example files are included: ```bash filename="Terminal" -# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item) +# Default (exhaustive): all examples (object, field, logic function, front component, view, navigation menu item, skill) npx create-twenty-app@latest my-app # Minimal: only core files (application-config.ts and default-role.ts) @@ -118,8 +119,10 @@ my-twenty-app/ │ └── hello-world.tsx # Example front component ├── views/ │ └── example-view.ts # Example saved view definition - └── navigation-menu-items/ - └── example-navigation-menu-item.ts # Example sidebar navigation link + ├── navigation-menu-items/ + │ └── example-navigation-menu-item.ts # Example sidebar navigation link + └── skills/ + └── example-skill.ts # Example AI agent skill definition ``` With `--minimal`, only the core files are created (`application-config.ts`, `roles/default-role.ts`, and `logic-functions/post-install.ts`). With `--interactive`, you choose which example files to include. @@ -148,6 +151,7 @@ With `--minimal`, only the core files are created (`application-config.ts`, `rol | `defineField()` | 现有对象的字段扩展 | | `defineView()` | Saved view definitions | | `defineNavigationMenuItem()` | Navigation menu item definitions | +| `defineSkill()` | AI agent skill definitions | **文件命名是灵活的。** 实体检测基于 AST — SDK 会扫描你的源文件以查找 `export default define({...})` 模式。 你可以按照自己的喜好组织文件和文件夹。 按实体类型分组(例如 `logic-functions/`、`roles/`)只是代码组织的一种约定,并非必需。 @@ -169,7 +173,7 @@ export default defineObject({ 后续命令将添加更多文件和文件夹: * `yarn twenty app:dev` 将在 `node_modules/twenty-sdk/generated` 中自动生成一个类型化的 API 客户端(类型化的 Twenty 客户端 + 工作区类型)。 -* `yarn twenty entity:add` 会在 `src/` 下为你的自定义对象、函数、前端组件或角色添加实体定义文件。 +* `yarn twenty entity:add` will add entity definition files under `src/` for your custom objects, functions, front components, roles, skills, and more. ## 身份验证 @@ -222,6 +226,7 @@ twenty-sdk 提供你在应用中使用的类型化构件和辅助函数。 以 | `defineField()` | 为现有对象扩展额外字段 | | `defineView()` | Define saved views for objects | | `defineNavigationMenuItem()` | Define sidebar navigation links | +| `defineSkill()` | Define AI agent skills | 这些函数会在构建时校验你的配置,并提供 IDE 自动补全和类型安全。 @@ -741,6 +746,41 @@ export default defineFrontComponent({ * **脚手架生成**:运行 `yarn twenty entity:add` 并选择添加新前端组件的选项。 * **手动**:创建一个新的 `*.front-component.tsx` 文件,并使用 `defineFrontComponent()`。 +### 技能 + +Skills define reusable instructions and capabilities that AI agents can use within your workspace. Use `defineSkill()` to define skills with built-in validation: + +```typescript +// src/skills/example-skill.ts +import { defineSkill } from 'twenty-sdk'; + +export default defineSkill({ + universalIdentifier: 'a1b2c3d4-e5f6-7890-abcd-ef1234567890', + name: 'sales-outreach', + label: 'Sales Outreach', + description: 'Guides the AI agent through a structured sales outreach process', + icon: 'IconBrain', + content: `You are a sales outreach assistant. When reaching out to a prospect: +1. Research the company and recent news +2. Identify the prospect's role and likely pain points +3. Draft a personalized message referencing specific details +4. Keep the tone professional but conversational`, +}); +``` + +关键点: + +* `name` is a unique identifier string for the skill (kebab-case recommended). +* `label` is the human-readable display name shown in the UI. +* `content` contains the skill instructions — this is the text the AI agent uses. +* `icon` (optional) sets the icon displayed in the UI. +* `description` (optional) provides additional context about the skill's purpose. + +You can create new skills in two ways: + +* **Scaffolded**: Run `yarn twenty entity:add` and choose the option to add a new skill. +* **Manual**: Create a new file and use `defineSkill()`, following the same pattern. + ### 生成的类型化客户端 类型化客户端由 `yarn twenty app:dev` 自动生成,并基于你的工作区架构存放在 `node_modules/twenty-sdk/generated`。 在你的函数中使用它: