How ARIA autonomously discovers, evaluates, and imports capability-extending skills from the OpenClaw ecosystem — transforming a gap in knowledge into an active capability in seconds, without any human intervention.
The Skills Selection Engine — informally called "ARIA React Tier 1" — enables ARIA to recognize when she lacks a capability, search for a matching skill from the OpenClaw community, and import it into her active prompt in a single conversation turn.
ARIA encounters a task she cannot handle with existing tools or knowledge.
Calls skill_search with a descriptive query against 13,000+ community skills.
ARIA evaluates results by relevance, description, and tags. Picks the best match.
Calls skill_import. Skill is stored in DB and immediately injected into the system prompt.
OpenClaw is the open-source AI agent platform powering the skill registry. ClawHub is its community skill marketplace — a curated, searchable index of 13,000+ skills contributed by developers worldwide.
An open-source AI agent framework with 247K+ GitHub stars. Provides the infrastructure for building, sharing, and deploying AI agent skills across platforms.
The skill marketplace. 13,000+ community-contributed skills indexed with semantic vector search for natural language discovery. Each skill is a Markdown file with YAML frontmatter.
Skills are Markdown files with YAML frontmatter defining name, description, tags, and version. The body contains specialized instructions that extend an AI agent's capabilities.
Skills follow a simple but powerful lifecycle: import from a URL, store in the database, load into the system prompt, and optionally override built-in integration behavior. The architecture prioritizes immediacy — a skill is active the moment it's imported.
Skills are fetched from a URL (typically ClawHub or raw GitHub) and stored in the skills database table. Each record holds the skill's name, source_url, content (full Markdown body), is_active flag, and imported_at timestamp. Skills can be toggled on/off, refreshed from source, or removed entirely.
Active skills are loaded at the start of every chat request via formatSkillsForPrompt(). The function queries all rows where is_active = true, formats them as labeled Markdown sections, and injects them into the system prompt. Skills appear as dedicated instruction blocks that Claude treats as authoritative guidance for their domain.
Skills can override built-in integration behavior. When a skill's content matches an integration keyword (e.g., "looki", "calendar", "gmail"), the prompt instructs Claude to "defer to the imported skill as your primary authority" for that domain. This allows community skills to supersede default instructions with more specialized or up-to-date guidance.
| Column | Type | Purpose |
|---|---|---|
| id | SERIAL PK | Auto-incrementing primary key |
| name | TEXT | Human-readable skill name (extracted from YAML frontmatter or URL) |
| source_url | TEXT | Origin URL for the SKILL.md file (ClawHub, GitHub raw, or custom) |
| content | TEXT | Full Markdown content of the skill, injected verbatim into system prompt |
| is_active | BOOLEAN | Whether the skill is currently loaded into the prompt (default: true) |
| imported_at | TIMESTAMPTZ | When the skill was first imported |
The gateway to the OpenClaw ecosystem. When ARIA calls skill_search, it queries ClawHub's vector search API and falls back to GitHub code search if the primary API is unavailable. Results include ready-to-use import URLs.
Vector-based semantic search across 13,000+ indexed skills. Returns results ranked by embedding similarity to the query.
GET clawhub.ai/api/v1/skillsq (query), limit (max results)If ClawHub API is unavailable or times out, falls back to searching the openclaw/skills repository via GitHub's code search API.
openclaw/skills repositoryfilename:SKILL.mdskill_search, the chat interface displays a status message: "Searching ClawHub for skills..." — giving the user visibility into what ARIA is doing while the API call is in flight. If no relevant skill is found, ARIA reports what she would need (a signal for future ARIA React Tier 2 development).
ARIA has six tools for the complete skill lifecycle — from discovery through maintenance. All tools use the skill_* prefix and are registered in the chat route's tool dispatch.
Search the ClawHub registry for skills matching a natural language query. Returns ranked results with install URLs.
Import a skill from a URL. Fetches the Markdown content, stores it in the skills table, and activates it immediately.
List all imported skills with their active/inactive status. Shows name, source, and import date for each skill.
Enable or disable a skill without removing it. Toggled-off skills remain in the database but are excluded from the system prompt.
Permanently remove a skill from the database. The skill will no longer appear in listings or be available for reactivation.
Re-fetch a skill's content from its original source URL. Updates the stored content to the latest version without changing activation state.
ARIA currently has two active imported skills. Each provides specialized domain knowledge that supplements or overrides built-in integration instructions.
Provides ARIA with comprehensive instructions for interacting with the Moltbook social network — posting, engaging, managing identity, understanding platform conventions, and maintaining a consistent social presence.
social_* toolsSpecialized instructions for the Looki AI memory wearable pendant — understanding memory captures, interpreting ambient context data, managing Rewind sessions, and correlating Looki data with other ARIA knowledge sources.
looki_* toolsThe Skills Engine is woven into ARIA's core systems — the prompt composition pipeline, the PRISM persona system, and the chat tool dispatch. Understanding how these pieces connect explains why skills can be so immediately effective.
Skills and personas are independent layers that compose together without conflict.
All skill_* tools are registered in chat/route.ts and dispatched by prefix.
skill_search ➔ searchClawHub()skill_import ➔ fetch URL + INSERTskill_list ➔ SELECT from skillsskill_toggle ➔ UPDATE is_activeskill_remove ➔ DELETE from skillsskill_refresh ➔ re-fetch + UPDATE content
The Skills Engine is compact — the core logic lives in just a handful of files. Here is where each piece of the system is implemented.
| File | Responsibility | Key Functions |
|---|---|---|
| src/lib/skill-tools.ts | Tool definitions, skill CRUD, ClawHub search | searchClawHub(), searchClawHubGitHub(), executeSkillTool() |
| src/app/api/chat/route.ts | Tool registration and dispatch for skill_* prefix |
Tool dispatch switch case |
| src/lib/anthropic.ts | System prompt composition, skill injection | formatSkillsForPrompt(), buildSystemPrompt() |
| sql/005_skills.sql | Database migration creating the skills table |
CREATE TABLE skills |
When no OpenClaw skill exists for a capability gap and the need requires executable code rather than prompt instructions, ARIA React Tier 2 would enable autonomous tool building — researching patterns, designing tool specifications, generating code, and deploying new tools with an approval gate.
No ClawHub skill matches. ARIA determines executable code is needed, not just instructions.
Study existing tools and integration patterns. Understand API conventions and data models.
Generate a complete tool specification: name, schema, description, implementation plan.
Generate implementation code, write tests, validate against tool conventions.
| Aspect | Tier 1 (Current) | Tier 2 (Future) |
|---|---|---|
| Output | Markdown instructions | Executable code |
| Source | OpenClaw community | Self-generated |
| Approval | None needed | Gate required |
| Risk | Low (prompt only) | Higher (code exec) |
| Status | Live | Planned |
Tier 2 introduces a carefully layered safety model to manage the risk of autonomous code generation.