.SKILL
Mit dem SkillService (RAGAI.SKILL) steuerst du die Skills deines Bots zur Laufzeit. Skills sind erweiterbare Funktionalitäten der Reflact AI-Engine, die du je nach Bedarf aktivieren, deaktivieren oder forcieren kannst. Jeder Skill besitzt eine eindeutige SkillID, über die er referenziert wird. Skills sind hierarchisch organisiert – ein Skill kann Kinder-Skills besitzen, die du gezielt bis zu einer bestimmten Tiefe ansprechen kannst.
Methoden
.getSkills()
Gibt ein Array aller verfügbaren Skills des Bots mit ihrem aktuellen Status (SkillState) zurück. Jeder Eintrag enthält die Skill-ID, den Aktivierungsstatus und weitere Metadaten.
const skills = await RAGAI.SKILL.getSkills();
console.log(skills);
// [{ id: 'skill-1', enabled: true, ... }, { id: 'skill-2', enabled: false, ... }]
.disableAllSkills()
Deaktiviert alle Skills des Bots für die aktuelle Chat-Session. Das ist nützlich, wenn du einen definierten Ausgangszustand schaffen möchtest, bevor du gezielt einzelne Skills aktivierst.
await RAGAI.SKILL.disableAllSkills();
.enableSkills(skillIds)
Aktiviert die angegebenen Skills anhand ihrer Skill-IDs. Gibt den aktualisierten Skill-Status zurück.
const result = await RAGAI.SKILL.enableSkills(['skill-begruessung', 'skill-faq']);
console.log(result.skills); // Aktualisierte SkillState-Liste
.disableSkills(skillIds)
Deaktiviert die angegebenen Skills anhand ihrer Skill-IDs.
const result = await RAGAI.SKILL.disableSkills(['skill-faq']);
console.log(result.skills);
.enableSkillAndChildren(skillId, depth?)
Aktiviert den angegebenen Skill und alle seine Kinder-Skills bis zur angegebenen Tiefe. Ohne Angabe der Tiefe werden alle Kinder aktiviert.
// Skill und Kinder bis Tiefe 2 aktivieren
const result = await RAGAI.SKILL.enableSkillAndChildren('skill-kategorie', 2);
console.log(result.skills);
.disableSkillAndChildren(skillId, depth?)
Deaktiviert den angegebenen Skill und alle seine Kinder-Skills bis zur angegebenen Tiefe.
// Skill und Kinder bis Tiefe 3 deaktivieren
const result = await RAGAI.SKILL.disableSkillAndChildren('skill-kategorie', 3);
console.log(result.skills);
.skillsForNextRun(skillIds)
Forciert die angegebenen Skills für den nächsten KI-Aufruf. Die Skills werden unabhängig vom aktuellen Aktivierungsstatus an die KI übergeben. Die Forcierung gilt nur für den nächsten Run und wird danach automatisch aufgehoben.
const result = await RAGAI.SKILL.skillsForNextRun(['skill-spezial-antwort']);
console.log(result.skills);
.unforceAllSkills()
Hebt die Forcierung aller Skills auf, die über skillsForNextRun() gesetzt wurden.
const result = await RAGAI.SKILL.unforceAllSkills();
console.log(result.skills);
.getSkillIdChildren(skillId, depth?)
Gibt ein Array mit den IDs aller Kinder-Skills des angegebenen Skills zurück – bis zur angegebenen Tiefe.
const kinder = await RAGAI.SKILL.getSkillIdChildren('skill-kategorie', 2);
console.log(kinder); // ['skill-kategorie-1', 'skill-kategorie-2', ...]
.getSkillDepth(skillId)
Gibt die Tiefe (Verschachtelungsebene) eines Skills in der Skill-Hierarchie zurück.
const tiefe = RAGAI.SKILL.getSkillDepth('skill-kategorie-1-a');
console.log(tiefe); // z. B. 3
.getSkillPath(skillId)
Gibt den Pfad eines Skills als Array von Strings zurück. Der Pfad wird auf Basis von Trennzeichen (Zahlen) im Skill-ID aufgelöst.
const pfad = RAGAI.SKILL.getSkillPath('skill-1-2-3');
console.log(pfad); // ['skill', '1', '2', '3']
.getTreeFromSkillIds(skillIds)
Erstellt aus den übergebenen Skill-IDs eine Baumstruktur (SkillTreeItem[]) und gibt die obersten Knoten zurück. Das ist nützlich, um eine hierarchische Darstellung der Skills zu erzeugen.
const baum = RAGAI.SKILL.getTreeFromSkillIds(['skill-1', 'skill-1-a', 'skill-2']);
console.log(baum);
// [{ id: 'skill-1', children: [{ id: 'skill-1-a', ... }] }, { id: 'skill-2', children: [] }]
.skillIdsToTreeItems(skillIds)
Wandelt die angegebenen Skill-IDs in eine flache Liste von SkillTreeItem-Objekten um, die die Baumstruktur abbilden.
const items = RAGAI.SKILL.skillIdsToTreeItems(['skill-1', 'skill-1-a', 'skill-2']);
console.log(items);
Beispiel: Skills dynamisch umschalten
// Alle Skills deaktivieren und nur bestimmte aktivieren
await RAGAI.SKILL.disableAllSkills();
await RAGAI.SKILL.enableSkills(['skill-smalltalk', 'skill-faq']);
// Für den nächsten Run einen speziellen Skill forcieren
await RAGAI.SKILL.skillsForNextRun(['skill-deep-analysis']);
// Kinder-Skills einer Kategorie aktivieren
await RAGAI.SKILL.enableSkillAndChildren('skill-onboarding', 2);
// Alle verfügbaren Skills auflisten
const alleSkills = await RAGAI.SKILL.getSkills();
alleSkills.forEach(s => {
console.log(`${s.id}: ${s.enabled ? 'aktiv' : 'inaktiv'}`);
});