Skip to main content

Command Palette

Search for a command to run...

What is a "Skill" in Agentic AI?

Updated
6 min read
What is a "Skill" in Agentic AI?
N
AI enthusiast

Claude Code, OpenWebUI, and LangChain all use the same term — but mean three different things. Here is the technical breakdown.


The Cross-Platform Core Definition

A skill in Agentic AI is a reusable, on-demand loadable knowledge and instruction package that injects domain-specific behavior into an agent — at runtime, context-sensitively, without being a standalone agent or an executable tool.

The key distinctions:

Concept What it is When it runs
System Prompt Static instructions Always, from the start
Tool / Function Executable code with input/output When the agent calls it
Skill Injected knowledge/process package On-demand, when the task matches

Claude Code Skills — The Reference Implementation

A Claude skill is a folder, not a single file. The structure:

my-skill/
  SKILL.md          ← YAML frontmatter + Markdown (required)
  scripts/          ← Python, Bash (optional)
  references/       ← docs Claude opens on-demand
  assets/           ← templates, fonts, images

Progressive Disclosure

This is the defining mechanism. At startup, the agent loads only the YAML header of each skill (100 tokens). The full body is only injected when a task matches (2,000 tokens). With 20 skills, that means 2,000 tokens at startup instead of 40,000.

Startup:    [Header 1, ~100t] [Header 2, ~100t] ... [Header 20, ~100t]
                                    ↓ task matched?
On-demand:  [SKILL.md body — instructions + references, ~2,000t]
                                    ↓ Claude reads references, decides via reasoning
On-demand:  [reference.md | examples.md | scripts/]
             ← Claude.Read() — a normal filesystem tool call

How does Claude know when to load "page 327"?

There is no automatic routing mechanism. The SKILL.md contains explicit, annotated references — a table of contents that drives Claude's reasoning:

## Additional resources

- Rate Limiting → reference.md section 3 — load when user asks about limits
- Error Codes   → errors.md — load on every error-debugging task

Claude reads this index, evaluates the user's task, and decides: "User is asking about rate limits → I need reference.md section 3." It then opens the file using its normal file-reading tools. The intelligence is in the quality of the references inside SKILL.md, not in any automatic loading logic.

Can Claude execute Python?

Yes — but with an important distinction: the SKILL.md itself is not executable; it is instructions. The Python scripts in the scripts/ folder are called by Claude via its Bash/Code-Execution tools when the instructions specify it. The path is available via ${CLAUDE_SKILL_DIR}, independent of the working directory.

Open Standard

The Agent Skills Specification was introduced with Claude Code but is an open standard (agentskills.io), adopted by Cursor, Codex CLI, Gemini CLI, and GitHub Copilot. A skill you write works across all of these without modification.


The first and most important constraint: OpenWebUI skills are plain-text instructions — no executable code. For actions requiring computation, API calls, or system access, you must use Tools (Python scripts), which is a separate mechanism entirely.

Three Invocation Modes

1. $-mention in chat
   → opens a skill picker, full content injected into system prompt
   → applies to a single message only

2. Per-chat toggle (+ integrations menu)
   → full content injected, stays active for the entire conversation

3. Model-attached skills (Lazy Loading)
   → only the manifest (name + description) injected by default
   → model receives a view_skill builtin tool
   → calls view_skill(skill_name) when it needs the full content
   → ⚠ requires native function calling support

The Architectural Position

The official OWUI documentation summarizes the architecture clearly:

System Prompt = "Knows how it should be done"
Skill = "Checks what was done"
MCP Tool = "Executes it and reports back"

This reveals the key difference: OWUI skills run after the model response as output validation/post-processing — not as pre-context injection that specializes the agent before it acts. There is no coding harness, no filesystem, no tool calls originating from within a skill.


LangChain Skills — No Independent Architecture

This is the most surprising finding: LangChain Skills are technically identical to Claude Code Skills. LangChain did not develop its own skill architecture. They published a curated library of SKILL.md files that run inside Claude Code.

The proof is in the installation command:

npx skills add langchain-ai/langchain-skills --skill '*' --yes

# Binding to a specific agent:
npx skills add langchain-ai/langchain-skills \
  --agent claude-code --skill '*' --yes --global

The --agent claude-code flag says everything. LangChain uses the open agentskills.io standard that Anthropic introduced. The result speaks for itself: on the LangChain eval set, Claude Code's performance on LangChain-specific tasks jumps from 29% to 95% — through better instructions, not a different execution system.


Direct Comparison

Dimension Claude Code OpenWebUI LangChain
What it is Reference implementation Standalone concept, chat-interface Content library in Claude's format
Format SKILL.md + scripts/ + assets/ Markdown + YAML, UI-managed SKILL.md — identical to Claude
Storage Filesystem OWUI database GitHub repo, installed locally
Execution timing Pre-context injection Post-processing after response Pre-context injection (is Claude Code)
Can execute Python? ✅ Yes ❌ No — plain text only ✅ Yes (via Claude Code)
Progressive Disclosure ✅ Header ~100 tokens ⚠ Model-attached mode only ✅ Identical to Claude
Trigger mechanism Description-matching / /slash-command $-mention, toggle, model-binding Description-matching (Claude Code)
Coding harness ✅ Filesystem, terminal, tools ❌ Chat interface only ✅ Filesystem, terminal, tools
Open standard ✅ agentskills.io ❌ OWUI-specific ✅ Uses agentskills.io
Own architecture? ✅ Yes ✅ Yes ❌ No — adapted format

The Mental Model

Claude Code Skills  ←── agentskills.io Open Standard ──→  LangChain Skills
(reference impl.)          [identical format]              (content library)

────────────────────────────────────────────────────────────────────────────

OpenWebUI Skills
(parallel concept — own impl., chat-context injection, no coding harness)

The decisive architectural break: OWUI skills are prompt packages for a chat interface without their own execution environment. Claude Code skills are specialization packages for an agent that operates on a filesystem, executes code, and calls tools. Same term — fundamentally different execution contexts.


TL;DR — Working Definition

A skill is an on-demand loadable, context-sensitive specialization package for an agent — structured instructions (Markdown/YAML) plus optional executable code.

  • Unlike a tool, a skill does not perform an action — it configures the agent's behavior for a specific task domain.

  • Unlike a system prompt, it is not permanently in context — it is loaded on-demand via Progressive Disclosure only when needed.

  • Claude Code = reference architecture with a true open standard.

  • LangChain = content library in the same format, no independent architecture.

  • OpenWebUI = independent concept, plain-text instructions only, fundamentally different execution model.