Skip to content
User Guide

Settings → AI → Skills

Skills are reusable playbooks the AI can pull on demand. A skill is a Markdown body — typically a short operational brief or a step-by-step procedure — that an admin authors once and that compatible agents discover at runtime via two meta-tools (list_skills / load_skill).

MisterShell ships with built-in platform briefs as part of its resource-type support. Their name, description, body, and scope are managed by the platform and can change on upgrade. Administrators control whether each built-in skill is enabled.

You can also create custom skills for site-specific procedures (e.g. “how we onboard a new branch router”, “OSPF triage on our core”). Creating and editing custom skills requires the Base edition; without it, the Add Skill button and the edit control on custom skills stay visible but locked, with a padlock explaining what is missing.

Table columns

ColumnNotes
ToggleInline enable/disable. Disabled skills never surface to the AI.
NameThe skill’s unique name. A built-in chip appears on platform-shipped skills.
DescriptionThe one-line purpose shown to the AI in list_skills.
Agent typesWhich agents can discover this skill. all means no restriction.
Resource typesWhich resource types this skill targets. all means no restriction.
ActionsEdit / Delete (Delete is disabled for built-in skills).

Common tasks

Enable or disable a skill

Click the toggle at the start of the row. The change saves immediately and applies on the AI’s next turn.

Create a custom skill

  1. Click Add Skill at the top right.
  2. Fill the form:
    • Name — short, hyphenated, unique (e.g. onboard-branch-router).
    • Description — one-line purpose. The AI sees this when it calls list_skills and uses it to decide whether to load the body.
    • Enabled — leave on unless you want to author the body before exposing it.
    • Agent types — restrict discovery to specific agent types (e.g. Session Assist only) or leave empty for all agents.
    • Resource types — restrict discovery to specific resource types (e.g. cisco_ios, cisco_iosxe) or leave empty for all types.
    • Body — the Markdown content the AI loads. Supports {{ variables }} (the left rail lists every variable available to the selected agent type).
  3. Click Save.

Edit a custom skill

  1. Click the blue edit icon on the row.
  2. Update any field.
  3. Click Save.

View a built-in skill

Built-in rows carry a View (eye) icon instead of an edit icon. It opens the skill read-only — inspect the content, then Close. The only thing you control on a built-in skill is its enabled state, via the toggle on the row.

Delete a custom skill

  1. Click the red trash icon. The button is greyed out for built-in skills.
  2. Confirm.

How the AI uses a skill

At every turn, the AI can call:

  • list_skills() — returns the skills compatible with the current agent and resource context.
  • load_skill(name) — returns the rendered body for the named skill.

A skill is compatible when:

  • is_enabled is true, and
  • its agent_types either includes the current agent type or is empty (unrestricted), and
  • its resource_types either includes the current resource type or is empty (unrestricted), and
  • every {{ variable }} it references exists in the agent’s variable surface (skills referencing variables an agent doesn’t expose are hidden from list_skills automatically).

The variables current_date, current_time, and facts_available are available to every skill. facts_available is a boolean reflecting the deployment-wide Facts setting, so a skill can use {% if facts_available %}...{% endif %} to show Facts guidance only when the feature is enabled.

When an agent has skill discovery wired in, the system prompt already includes a one-line hint instructing the model to call list_skills early on platform-specific or non-trivial requests. You don’t need to repeat it in your custom prompts.

Writing a good skill

  • Operational priorities, idioms, pitfalls — beats step-by-step command lists. The AI already knows commands; what it doesn’t know is the spirit of the platform.
  • Scope tightly — a skill that fires only when relevant beats a broad one. Use the resource_types filter aggressively.
  • Use only documented variables — the Available Variables pane beside the editor lists what’s available. Skills referencing undeclared variables are hidden from discovery.
  • Keep the description action-oriented — the AI uses it to decide whether to load. “Triage interface flapping on Cisco IOS” beats “Cisco IOS notes”.

Built-in skills

Every supported resource type ships with a platform brief — operational priorities, idioms, pitfalls, and what “done” looks like for that platform. They are scoped to the agent types that operate on that resource (typically Session Assist and Quick Action).

You can enable or disable a built-in skill. You cannot rename, re-scope, edit, or delete it. Create a custom skill when you need a site-specific variant; custom content survives restarts and upgrades.

Permissions

  • Read / list: app.ai.read.
  • Create / edit / toggle: app.ai.write.
  • Delete (custom only): app.ai.delete.