Introduction to Skills

Skills provide agents with structured domain expertise through instructions, scripts, and reference documentation.

Kern Skills integration, based on Anthropic's Agent Skills specification, is a way to extend your agent's capabilities by providing specific skills.

Using Skills, your agents will be able to gradually discover, obtain and utilize specialized knowledge and capabilities.

What is a Skill?

A skill is a self-contained package an Agent can use to extend its capabilities in a specific domain, or to acquire a new specific capability.

All skills contain:

  • Instructions: Detailed guidance on when and how to apply the skill (in SKILL.md)
  • Scripts: Optional executable code templates the agent can run
  • References: Optional supporting documentation (guides, cheatsheets, examples)

Why Use Skills?

Domain Expertise on Demand

Instead of filling the system message with instructions to cover every usecase, skills let you organize domain knowledge into focused packages.

The agent loads only what it needs, allowing you to save tokens and ultimately reduce costs.

Reusable Knowledge Packages

Create skills once, use them across multiple agents. A code review skill can be shared between your debugging agent, PR review agent, and code generation agent.

Progressive Discovery

Skills use lazy loading to keep context windows efficient:

  1. Browse: The agent sees skill summaries in its system prompt
  2. Load: When a task matches a skill, the agent loads full instructions
  3. Reference: The agent accesses detailed documentation as needed
  4. Execute: The agent can run scripts from the skill

Quick Example

1from kern.agent import Agent
2from kern.models.openai import OpenAIResponses
3from kern.skills import Skills, LocalSkills
4
5# Load skills from a directory
6agent = Agent(
7 model=OpenAIResponses(id="gpt-5.2"),
8 skills=Skills(loaders=[LocalSkills("/path/to/skills")])
9)
10
11# The agent now has access to skill tools:
12# - get_skill_instructions(skill_name)
13# - get_skill_reference(skill_name, reference_path)
14# - get_skill_script(skill_name, script_path)

Skill Structure

1my-skill/
2 SKILL.md # Instructions with YAML frontmatter
3 scripts/ # Optional executable scripts
4 helper.py
5 references/ # Optional reference documentation
6 guide.md

Learn More