docs: updated docs to mention that skills only function if function calling is enabled
+3
@@ -78,6 +78,9 @@ cannot be persisted to a file and saved.
|
||||
Skills are modular knowledge or capability packs the LLM can load and unload mid-conversation. Multiple skills can be
|
||||
loaded at once; their instructions stack and their tools/MCP servers union with the active role/agent/session.
|
||||
|
||||
> **Requires function calling.** Skills depend on Coyote's function calling system. If `function_calling_support: false`
|
||||
> in your global config, the `.skill load` and `.skill unload` commands refuse, and the model cannot load skills itself.
|
||||
|
||||
| Command | Description |
|
||||
|------------------------|---------------------------------------------------------------------------------------------------|
|
||||
| `.skill loaded` | List currently-loaded skills in this session |
|
||||
|
||||
+22
-7
@@ -11,6 +11,13 @@ Common uses:
|
||||
- **Toolkit unlocks** that grant a small bundle of tools or MCP servers without changing the active role.
|
||||
- **One-shot helpers** that auto-unload after the model finishes a task (see [auto_unload](#auto-unload)).
|
||||
|
||||
> **Prerequisite: function calling must be enabled.** Skills are built on top of Coyote's function calling system so as
|
||||
> to not overwhelm the context with skill descriptions. `skill__list`, `skill__load`, and `skill__unload` meta-tools are
|
||||
> themselves function calls, and most skills grant tools the model needs to invoke. If your global config has
|
||||
> `function_calling_support: false`, the entire skills system is disabled: the meta-tools are not registered, the REPL
|
||||
> `.skill load` command refuses, and `coyote --skill <name>` exits with a clear error. See [Function Calling](Tools) to
|
||||
> enable it.
|
||||
|
||||
---
|
||||
|
||||
# Skill Definition
|
||||
@@ -175,13 +182,19 @@ filtered out of the response and cannot be loaded. `skill__load` rejects it with
|
||||
|
||||
## Validation
|
||||
|
||||
Three validation points enforce these rules:
|
||||
Four validation points enforce these rules:
|
||||
|
||||
| Where | What is checked | Severity |
|
||||
|------------------------|---------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------|
|
||||
| **Config load** | Every name in any `enabled_skills` exists on disk AND is in global `visible_skills` (when `visible_skills` is set). | **Hard error**. Refuses to start with the offending name + level. |
|
||||
| **Runtime list/build** | For each enabled skill: declared tools require function calling; declared MCPs require MCP support. | **Filter + warn**. Incompatible skills are dropped from `skill__list`. |
|
||||
| **`skill__load` call** | Skill is in the effective enabled set AND compatible with current feature flags. | **Tool error to model** with a distinct message per failure mode. |
|
||||
| Where | What is checked | Severity |
|
||||
|-------------------------|---------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------|
|
||||
| **Global feature gate** | `function_calling_support: true` is required for skills to exist at all (registry/tools/REPL/CLI). | **Skills are silently disabled**. No `skill__*` tools, `.skill load` and `--skill` refuse. |
|
||||
| **Config load** | Every name in any `enabled_skills` exists on disk and is in global `visible_skills` (when `visible_skills` is set). | **Hard error**. Refuses to start with the offending name + level. |
|
||||
| **Runtime list/build** | For each enabled skill: declared MCPs require MCP support. | **Filter + warn**. Incompatible skills are dropped from `skill__list`. |
|
||||
| **`skill__load` call** | Skill is in the effective enabled set and its declared MCPs are usable. | **Tool error to model** with a distinct message per failure mode. |
|
||||
|
||||
> **Skills require function calling.** Skills are useless without it. The meta-tools (`skill__list`, `skill__load`,
|
||||
> `skill__unload`) are themselves function calls, and most skills grant tools the model needs to invoke. If
|
||||
> `function_calling_support: false` in your global config, the entire skills feature is off. The REPL `.skill load`
|
||||
> command, the CLI `--skill <name>` flag, and the model's own `skill__load` invocation all refuse with a clear error.
|
||||
|
||||
---
|
||||
|
||||
@@ -274,4 +287,6 @@ When skills are enabled, the model has three tools available for managing them i
|
||||
| `skill__unload` | `name: string` | Unloads a loaded skill. Releases its MCP server handles. |
|
||||
|
||||
These are how the model discovers and uses skills mid-conversation. You can disable this discovery channel by setting
|
||||
`skills_enabled: false` at any level; the three tools then disappear from the model's function list entirely.
|
||||
`skills_enabled: false` at any level; the three tools then disappear from the model's function list entirely. The same
|
||||
happens if `function_calling_support: false` is set globally. Without function calling, the skill system has no surface
|
||||
to operate on, so it is silently disabled across REPL, CLI, agents, and the model's tool list.
|
||||
|
||||
Reference in New Issue
Block a user