What is a "Skill" in Agentic AI?

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.
OpenWebUI Skills — A Related but Fundamentally Different Concept
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.
