C3 AI Documentation Home

Agent Skills Overview

A skill is a reusable add-on for an agent that gives it focused instructions for a specific task. A skill can also include optional scripts, references, and assets that the agent can use while running.

While a tool is a single capability the agent can call (such as reading a file or running a command), a skill combines instructions, references, and optional scripts so the agent uses tools in a repeatable way. Without a skill, the agent may produce inconsistent results on a task each time. With the skill attached, the agent follows a standard template that is defined in a SKILL.md file, can run additional scripts that are included with the skill, and produces more consistent outputs.

Skill capabilities

Skills enable agents to:

  • Receive task-specific instructions through SKILL.md content injected at runtime.
  • Read reference materials, templates, and data files bundled with the skill.
  • Apply consistent, versioned procedures across multiple agents and environments.
  • Encapsulate reusable workflows in a self-contained, distributable package.

Understand how skills work with agents

Skills attached to an agent are downloaded to a local temporary directory each time the agent runs. At startup, the skill names and descriptions from each skill's SKILL.md frontmatter are injected into the agent's system prompt. This gives the LLM awareness of which skills are available and when to use them.

For this injection to work, the agent's system prompt must include the SKILLS placeholder. Skill names must be lowercase, and unique across the environment.

During execution, the agent calls a tool to load the full SKILL.md content for a relevant skill, then follows the instructions inside it. If the skill includes scripts, the agent uses another tool to run them and produce outputs. For example, the Dynamic Agent calls the tool read_skill to load a skill's content and the tool execute_staged_command to run its scripts.

Skill Types

The platform provides the following Types to define and use skills:

  • GenaiCore.Skill: Entity type that stores skill metadata and the path to the unpacked skill folder on the file system. Supports creation from a ZIP archive and member functions for reading skill content.
  • GenaiCore.Skill.Metadata: Value type that holds the parsed frontmatter from SKILL.md, including the required name and description fields and any optional metadata fields.

Add skills to agents

At a high level, you add the registered skill to an agent configuration so the agent can use it on its next run.

For the complete process and detailed steps, see Create and Add Skills.

Test skills

Test skill behavior from the Agent Workbench by submitting queries that should trigger the skill and verifying that the agent calls the respective tool used by the agent (for example, read_skill for the Dynamic Agent) in the trace output. Confirm the expected outputs are produced when scripts are executed. Test with and without the skill attached to distinguish skill-driven behavior from the agent's default behavior.

Skill permissions

All users can view available skills and add them to agent configurations. Users with the GenaiCore.AgentAdmin or C3.AppAdmin role can also remove registered skills from the platform. A skill cannot be deleted while it is still referenced by an agent configuration.

Learn more about roles that affect agents and tools in the Agent and Tool Gallery.

See also

Was this page helpful?