C3 AI Documentation Home

Create and Add Skills

This page is the complete guide for creating a skill and attaching it to an agent.

Before you begin

You can register a skill from Studio or from a Python notebook. Both paths produce the same GenaiCore.Skill entity.

For either path:

  • Confirm the target agent type supports skills through GenaiCore.Agent.WithSkills.

For the Python notebook path only:

  • Confirm you can run Python method calls in your C3 environment (for example, IPython notebook or service shell).
  • Ensure you have the py-llm_312 kernel installed in your Jupyter environment and set that as the runtime.

Author a skill

Create a folder that includes SKILL.md at the root.

Minimum structure:

Text
my-skill/
  SKILL.md

Your SKILL.md must include YAML frontmatter with name and description.

Markdown
---
name: my-skill
description: Summarize support tickets and produce a weekly digest.
---

# Skill Instructions

When asked to summarize support tickets, read reference files first, then run scripts if needed.

Validation rules enforced by the platform during skill registration:

  • name is required, must be kebab case (for example, this-is-kebab-case), and must be unique. Names cannot start or end with a hyphen and cannot contain consecutive hyphens.
  • description is required and must be non-empty.
  • SKILL.md must be at the root of the skill folder inside the ZIP, and the folder name must match the ZIP filename.

Package the skill as a ZIP archive

From the parent directory of the skill folder:

Command Line
zip -r my-skill.zip my-skill

The resulting archive must contain the SKILL.md root file for that skill folder.

Register the skill

You can register the ZIP from Studio (recommended for 8.11 and later) or from a Python notebook. Both paths run the same validation and produce a GenaiCore.Skill entity.

Register from Studio

  1. Open Studio and navigate to Agents > Gallery.
  2. Select the Skills tab.
  3. Select + Upload Skill.
  4. In the modal, choose the .zip file you packaged.
  5. On the Review step, confirm that the parsed Name and Description match the frontmatter in SKILL.md. Validation errors appear in the modal.
  6. Select Confirm.

After upload, the Skill Workbench opens for the new skill. For a complete walkthrough of the Studio surface, see Manage Agent Skills in Studio.

Register from a Python notebook

Register the ZIP by calling GenaiCore.Skill.createFromZip().

From within your Python notebook environment, make sure you are using the py-llm_312 runtime and then run the following code.

Python
skill = c3.GenaiCore.Skill.createFromZip(zip_file_name)

What this method call does:

  1. Validates the ZIP format and SKILL.md frontmatter.
  2. Unpacks and stores skill files in the platform file system.
  3. Creates a GenaiCore.Skill entity you can attach to agents.

Add the skill to an agent

After you create a GenaiCore.Skill entity, attach it to an agent in the UI:

  1. Go to the Agent Workbench and select the agent. You can only add skills to a draft agent.
  2. In the agent configuration, in the Skills section, select the + icon.
  3. The skill is available in the list of skills to select. Select the skill and add it to the agent configuration.

To create or edit an agent, see Create Agents from Scratch.

Troubleshoot

  • Expected a .zip file: Ensure the path ends in .zip.
  • SKILL.md file not found: Ensure SKILL.md is present in the skill folder's root directory before zipping.
  • Invalid name: Update frontmatter name to kebab case (for example, this-is-kebab-case). Names cannot start or end with a hyphen and cannot contain consecutive hyphens.
  • already exists: Use a unique skill name or remove the previous skill.
  • ZIP filename does not match frontmatter name: Rename the .zip so the filename without extension matches the name field in SKILL.md. For example, a skill named my-skill must be packaged as my-skill.zip.
  • Skill not used by agent: Confirm the agent prompt and query are relevant to the skill's instructions, then run again.

See also

Was this page helpful?