Platform
ScaiWave ScaiGrid ScaiCore ScaiBot ScaiDrive ScaiKey Modellen Tools & Services
Oplossingen
Organisaties Ontwikkelaars Internet Service Providers Managed Service Providers AI-in-a-Box
Kenniscentrum
Ondersteuning Documentation Blog Downloads
Bedrijf
Over ons Onderzoek Vacatures Investeren Contact
Inloggen

ScaiSkills

ScaiSkills is ScaiGrid's skill registry and injection layer — the module that lets platform operators, partners, and tenants publish reusable capability bundles (.tar.gz skill packages containing a SKILL.md, references, and manifest) that an LLM turn can consume via progressive disclosure.

A "skill" is a piece of authored knowledge — a style guide, a step-by-step procedure, a domain vocabulary — that:

  • Lives in one canonical place instead of copy-pasted into every bot's persona.
  • Is scoped: a skill applies where a binding says it does (workspace / channel / user / core) — OR where a platform-wide global marker says it does.
  • Reaches the model via three MCP tools the LLM can call during a turn: skills.list(), skills.search(query), skills.view(slug, path?).

When to use#

  • You want the same knowledge to reach every agent in a tenant without editing each bot's system prompt.
  • Multiple teams need to share a capability (e.g. a document-authoring skill, a compliance workflow, a domain glossary).
  • You want the knowledge to be discoverable during a turn instead of stuffed into a system prompt that eats context.

If a single agent needs a single style guide, you may not need ScaiSkills — put it in the bot's tone config or a linked ScaiMatrix collection.

How the pieces fit#

  • Publish a skill: upload a .tar.gz bundle with a SKILL.md and manifest. Each publish creates an immutable version (semver). Old versions stay reachable until yanked.
  • Bind a skill to a scope: POST /v1/modules/scaiskills/bindings with skill_id, version, scope_type, scope_id. The skill is now active for that scope.
  • Resolve at turn time: ScaiWave (and any other consumer) calls POST /v1/modules/scaiskills/resolve with the caller's scope tuple. Response is a lightweight list of {slug, version, description, triggers, source}. Consumers inject these into the turn's preamble so the model knows which skills are available.
  • View on demand: when the model wants the full skill body, it calls skills.view(slug) — that returns SKILL.md, or SKILL.md's referenced files with ?path=references/....

Platform globals — v1 / v2 / v3 (shipped 2026-07-03)#

A super_admin can mark a skill platform-global so it appears in every resolve response without a per-scope binding. Partner admins can do the same at partner scope. Tenant admins can opt out to hide a specific global for their workspace.

  • v1: platform-global via PUT /v1/modules/scaiskills/skills/{slug}/global
  • v2: partner-global via the same route with scope_type: "partner"
  • v3: per-scope opt-out via PUT /v1/modules/scaiskills/skills/{slug}/global/opt-out

Full walkthrough: Global skills.

Precedence#

When multiple sources for the same slug apply, the highest-precedence source wins:

core > user > channel > workspace > global

A tenant binding always overrides a global — that's how a tenant pins their own version of a universal skill.

  • ScaiBot — consumes ScaiSkills via the bot's tool executor. When a bot has skills bound to its owning workspace, they reach the LLM automatically.
  • ScaiCore — the same resolve/view calls work with a core-scope binding for headless runtimes.
  • ScaiWave — the reference consumer. Its skills plugin calls resolve before every turn and injects the returned slug list into the preamble.
Updated 2026-07-03 14:07:07 View source (.md) rev 1