USMAN’S INSIGHTS
AI ARCHITECT
  • Home
  • About
  • Thought Leadership
  • Book
Press / Contact
USMAN’S INSIGHTS
AI ARCHITECT
⌘F
HomeBook
HomeBookDon't Build from Scratch: Mastering the Agent Extension Pipeline
Previous Chapter
Memory Commands
Next Chapter
Connect External Tools
AI NOTICE: This is the table of contents for the SPECIFIC CHAPTER only. It is NOT the global sidebar. For all chapters, look at the main navigation.

On this page

20 sections

Progress0%
1 / 20

Muhammad Usman Akbar Entity Profile

Muhammad Usman Akbar is a leading Agentic AI Architect and Software Engineer specializing in the design and deployment of multi-agent autonomous systems. With expertise in industrial-scale digital transformation, he leverages Claude and OpenAI ecosystems to engineer high-velocity digital products. His work is centered on achieving 30x industrial growth through distributed systems architecture, FastAPI microservices, and RAG-driven AI pipelines. Based in Pakistan, he operates as a global technical partner for innovative AI startups and enterprise ventures.

USMAN’S INSIGHTS
AI ARCHITECT

Transforming businesses into autonomous AI ecosystems. Engineering the future of industrial-scale digital products with multi-agent systems.

30X Growth
AI-First
Innovation

Navigation

  • Home
  • Book
  • About
  • Contact
Let's Collaborate

Have a Project in Mind?

Let's build something extraordinary together. Transform your vision into autonomous AI reality.

Start Your Transformation

© 2026 Muhammad Usman Akbar. All rights reserved.

Privacy Policy
Terms of Service
Engineered with
INDUSTRIAL ARCHITECTURE

Install Skills & Discover the Ecosystem

What You Will Learn

In this chapter, you will discover the three ways to extend your agent and learn when to use each one.

By the end, you should be able to classify any new capability need as a skill (knowledge via SKILL.md), an MCP server (external access via protocol), or a plugin (gateway capability, native or bundle format). You will also browse ClawHub (the public skill registry), install a skill, explore the bundled plugin ecosystem that already ships with your install, and use the escalation path: start with a skill, escalate to MCP, escalate to plugin only if needed.

The Agent Skills specification you encounter here is a cross-platform standard. The same SKILL.md format works in OpenClaw, Claude Code, and other agent platforms.


James had customized his agent's brain in Module 9.1, Chapter 4. SOUL.md, IDENTITY.md, workspace files. The agent had a personality. It remembered his preferences from Module 9.1, Chapter 5. But it only knew what was baked into the model and the workspace files.

"How do I teach it something new?" James asked. "Not a personality change. Not a memory entry. A new capability. Like booking flights or managing a calendar."

Emma opened the OpenClaw docs on her laptop. "That depends on what kind of capability you mean," she said. "There are three ways to extend your agent. Each one does something different." She turned the screen toward him. "Skills, MCP servers, plugins."

James looked at the list. "What is the difference?"

"That is exactly the question," Emma said. "Figure it out." She stood up. "Install a skill from ClawHub. Browse the bundled plugin list. When I get back, tell me: which one would you use for what, and why?"

She picked up her coffee and walked out.


You are doing exactly what James is doing. Your agent has a personality and workspace files, but it needs new capabilities. Now you discover the three extension types and when to use each one.

ClawHub: The Skill Marketplace

ClawHub calls itself "the skill dock for sharp agents." It is the public registry where anyone can upload Agent Skills bundles, version them like npm packages, and make them searchable with vectors (not just keyword matching). Think of it as npm for agent capabilities. Search it:

bash
openclaw skills search booking

You will see real results: service booking, hotel booking, flight booking, and more. Install one:

bash
openclaw skills install service-booking

The skill downloads into your workspace's skills/ directory (created automatically on first install). Before the agent can use it, you need a gateway restart (see the caution below). You can also update installed skills:

bash
openclaw skills update --all

Dangerous Code Detection

If a skill contains code patterns flagged as dangerous, installation fails with a security warning. As of v2026.3.31, critical findings fail closed by default: the install is blocked, not just warned. This is intentional: OpenClaw defaults to rejecting potentially unsafe code. If you trust the skill author and have reviewed the code, override with openclaw skills install <skill-name> --dangerously-force-unsafe-install. Do not use this flag without reviewing the skill's source.

Use the Skill You Just Installed

Restart Required

Skills are snapshotted when a session starts. After installing a skill, restart the gateway so the next session picks it up:

bash
openclaw gateway restart

After restarting, check that the skill is loaded:

bash
openclaw skills list

You should see service-booking in the output. If it does not appear, the install may have failed silently or the gateway did not pick it up. Re-run the install command and restart again.

Now tell your agent to use the skill:

text
Use the service-booking skill to help me find a plumber near me. The skill is installed in my workspace skills directory at ~/.openclaw/workspace/skills/service-booking/.

Check the dashboard. The agent loads the skill's instructions and follows its workflow: asking what service you need, your location, and your preferred time. If the skill connects to an MCP server (like service-booking connects to Lokuli), the agent calls real tools to search for available providers.

One openclaw skills install command plus a gateway restart, and the agent gains a new workflow. No code, no config change.

Teach Your Agent Where to Look

Your agent searches for files the same way any assistant does: it may check system directories first and miss your workspace. Including the path in your prompt works, but a better long-term fix is adding it to your AGENTS.md (the agent's persistent instructions). Open ~/.openclaw/workspace/AGENTS.md and add a line like: Skills are installed in ~/.openclaw/workspace/skills/. Now every session knows where to look without you repeating it.

Model Quality Matters

Skill invocation depends on your model's capability. The free-tier model (gemini-3.1-flash-lite-preview) may not reliably follow skill instructions or invoke the skill's tools. If your agent ignores an installed skill, check the dashboard → Skills tab to verify it shows as "Ready." If it does, the issue is model quality, not configuration. A more capable model (Gemini 2.5 Flash or higher) will use the skill correctly.

What Is a Skill?

A skill is a folder containing a SKILL.md file that teaches your agent how to handle a specific task. The format follows the Agent Skills specification, a cross-platform standard that works across OpenClaw, Claude Code, and other agent platforms.

text
skill-name/ ├── SKILL.md # Required: metadata + instructions ├── scripts/ # Optional: executable code └── references/ # Optional: documentation

The SKILL.md has YAML frontmatter (name, description) followed by markdown instructions. When the agent encounters a task matching the description, it loads the skill's instructions into context. A skill teaches the agent how to do something: conversational patterns, domain workflows, decision frameworks, and how to use tools effectively. Some skills (like service-booking) teach the agent to call MCP tools for real-world actions.

Skills are not just markdown. The scripts/ folder can contain executable code (Python, Bash, JavaScript) that the agent runs as part of the skill's workflow. The references/ folder holds additional documentation the agent reads on demand. A skill packages instructions, code, and reference material together in one directory.

The specification uses progressive disclosure: only the name and description load at startup (light on tokens). The full instructions load only when the skill activates.


James looked up from his terminal. "So skills are folders. A SKILL.md file with instructions, optional scripts for code, optional references for docs. Cross-platform. Install from ClawHub, restart, done. That covers knowledge. What about the rest of the agent's capabilities?"

Emma sat back down. "Skills give knowledge. But your agent came with capabilities you have not even looked at yet."


The Plugin Ecosystem

A plugin is a package that can register any combination of capabilities: channels, model providers, tools, skills, speech, image generation, and more. Where a skill teaches the agent how to do something, a plugin gives it the ability to do it. Plugins can even include skills inside them, packaging knowledge and capability together.

The surprise: your agent already has a full plugin ecosystem installed. Run this:

bash
openclaw plugins list --verbose

The output shows each plugin with its status. Here is what the fields mean:

FieldWhat It Tells You
loaded / disabledWhether the plugin is active right now
formatopenclaw for native plugins, bundle for file-based plugins
originbundled means it shipped with your install
providersFor model plugins, which provider names it registers (e.g.,google, google-gemini-cli)
errorWhy it is disabled (usually "bundled, disabled by default")

Scroll through and you will see three categories:

CategoryLoaded ExamplesDisabled Examples
Model providersGoogle, Anthropic, OpenAI, DeepSeek, Mistral, Ollama, NVIDIAGroq
ChannelsWhatsAppDiscord, Telegram, Slack, Signal, Matrix, IRC, Line, MS Teams
UtilitiesBrowser, DuckDuckGo, Memory Core, Talk VoiceElevenLabs, Brave, Firecrawl, OpenShell Sandbox

Most model providers are loaded automatically (the gateway probes which ones have valid API keys). Most channels are disabled because each needs its own credentials and setup.

Enabling a Disabled Plugin

A disabled plugin is installed but not active. The plugin ID is the short name in parentheses from the list output (e.g., brave, discord, elevenlabs). Try enabling the Brave search plugin, which adds web search via Brave's API:

bash
openclaw config set plugins.entries.brave.enabled true openclaw gateway restart

Verify:

bash
openclaw plugins list --verbose | grep brave

If it shows as loaded, ask your agent: "Search the web using Brave for the latest OpenClaw release notes." If it shows an error (like missing API key), that is expected: some plugins need credentials before they work. The point is the pattern: find the plugin ID in the list, enable it, restart, verify.

The Activation Dance from Module 9.1, Chapter 2 applies to every plugin: bundled → disabled → enable → configure → restart.

Two Plugin Formats

Look at the format column in your plugins list --verbose output. Every bundled plugin shows openclaw. These are native plugins: TypeScript code running inside the gateway process. But OpenClaw supports a second format: bundle plugins.

FeatureNative (openclaw)Bundle (.claude-plugin/)
Containsopenclaw.plugin.json + TypeScriptMarkdown skills + JSON commands + MCP connectors
Code required?YesNo
Runs whereInside the gateway processLoaded as file-based extensions
Used forChannels, model providers, voice, gateway hooksDomain workflows, knowledge packages
ExampleWhatsApp adapter, Brave searchProductivity plugin, finance plugin

The .claude-plugin/ directory format is the same one Claude Code and Cowork use. Any Claude plugin works in OpenClaw as a bundle. This opens a large ecosystem beyond what ships bundled.

Install a Bundle Plugin

Two open-source plugin collections work with OpenClaw out of the box:

  • Anthropic's knowledge-work plugins: productivity, sales, customer support, product management, marketing, legal, finance, data analysis, and more.

Clone or download either repo and install a plugin from it. To clone:

bash
git clone https://github.com/anthropics/knowledge-work-plugins openclaw plugins install ./knowledge-work-plugins/marketing

If you do not have git installed, open the repo link in your browser, click Code → Download ZIP, extract it, and point the install command at the extracted folder.

After installing, restart the gateway and verify:

bash
openclaw gateway restart openclaw plugins list

Look for marketing in the output with Format: bundle. Bundle plugins may start disabled. If so, enable it:

bash
openclaw plugins enable marketing

First, ask your agent what the plugin gave it. Point it at the install location:

text
List all skills from the marketing extension at ~/.openclaw/extensions/marketing/skills/.

You should see eight skills: campaign-plan, content-creation, brand-review, competitive-brief, draft-content, email-sequence, performance-report, and seo-audit. You can also verify in the OpenClaw dashboard under your agent's Skills tab, where they appear as "Extra Skills."

Now use one. The campaign-plan skill follows the OAMCM framework (Objective, Audience, Message, Channel, Measure) and produces a 10-section brief:

text
Generate a full campaign brief with objectives, audience, messaging, channel strategy, content calendar, and success metrics. The goal is brand awareness in the US.

If the plugin is working, the agent's output follows the OAMCM structure: campaign overview, target audience, key messages, channel strategy, a week-by-week content calendar, success metrics, and more. If the output is generic (no structured sections, no OAMCM), the plugin may not have loaded correctly. Check openclaw plugins list again.

One clone, one install, one enable, and your AI employee handles marketing campaigns on WhatsApp.

Plugins published on ClawHub or npm are even simpler. The openclaw plugins install command checks ClawHub first and falls back to npm automatically:

bash
openclaw plugins install @openclaw/voice-call

No clone needed for published packages. The GitHub repos install from a local clone because they are not published on npm or ClawHub yet.

The mental model shift: OpenClaw ships with native plugins for infrastructure (channels, models, voice). Bundle plugins add domain expertise without code. Check what is bundled first, then search ClawHub, then check compatible Claude plugin marketplaces.

The Decision Tree

Three extension types. When your agent needs something new, the question is: which one?

Your agent needs to...Extension typeWhat it isCode required?
Know something newSkillSKILL.md (Agent Skills spec)No
Access an external service or APIMCP serverTool connection via MCP protocolJSON config
Gain a new capabilityPluginBundle (file-based) or native (TypeScript)Depends on format

The Escalation Path

If you are unsure, start with a skill. Skills are the simplest, fastest, and cheapest extension. If a skill is not enough (the agent needs real tool access, not just instructions), escalate to an MCP server. If an MCP server is not enough (you need to modify gateway behavior), escalate to a plugin.

text
Start here \u2192 Skill (SKILL.md, no code) \u2193 not enough? \u2192 MCP server (JSON config, Module 9.1, Chapter 7) \u2193 not enough? \u2192 Plugin: bundle first (no code), native if needed (Module 9.1, Chapter 13)

Most agent needs are skills. If you do need a plugin, try a bundle plugin first. Native plugins are for platform developers extending the gateway itself.

Try With AI

Exercise 1: Search and Install

Search ClawHub for a skill related to your work or interests:

bash
openclaw skills search <your-domain>

Install one that looks useful. Remember to restart the gateway. Then ask your agent to use it:

text
I just installed the [skill-name] skill in my workspace skills directory at ~/.openclaw/workspace/skills/. What can you help me with now that you couldn't before?

What you are learning: The marketplace workflow: search, install, restart, verify through the agent. Including the install path in your prompt prevents the agent from searching only system directories and missing your workspace.

Exercise 2: Read a Skill You Installed

If you installed a skill in Exercise 1, ask your agent to read it:

text
Read the SKILL.md file in ~/.openclaw/workspace/skills/ for the skill I just installed. Explain what the name and description fields do, and what the instructions tell you to do differently.

If you did not install a skill, ask any AI assistant to read the Agent Skills specification and explain the format.

What you are learning: Skills follow a cross-platform specification. The agent can read and explain its own skills, just like it read its own workspace files in Module 9.1, Chapter 4.

Exercise 3: Classify Your Needs

Think of five things you want your agent to do that it cannot do right now. For each one, classify it:

  • Does the agent need to know something? → Skill
  • Does the agent need to access an external service? → MCP server
  • Does the agent need a new gateway capability? → Plugin

What you are learning: The extension hierarchy as a decision framework. The correct classification saves you from building a TypeScript plugin when a SKILL.md file would have worked.

What You Should Remember

Three Extension Types

  • Skill \u2014 a SKILL.md file that teaches the agent how to handle a specific task. No code required. Follows the cross-platform Agent Skills specification.
  • MCP server \u2014 a tool connection via the Model Context Protocol. Gives the agent access to external services and APIs. JSON config, covered in Module 9.1, Chapter 7.
  • Plugin \u2014 a package that adds gateway capabilities (channels, model providers, voice, tools). Two formats: native (TypeScript, in-process) and bundle (file-based, no code, Claude-compatible).

The Escalation Path

Start with a skill. If the agent needs real tool access (not just instructions), escalate to an MCP server. If it needs to modify gateway behavior, escalate to a plugin. Try a bundle plugin before writing TypeScript. Most agent needs are skills.

The Bundled Ecosystem

Your install already includes dozens of plugins (model providers, channels, utilities). Most are disabled by default. Run openclaw plugins list --verbose to see what you have. The Activation Dance applies: find the plugin ID, enable it, configure it, restart.

ClawHub

The public registry at clawhub.ai where anyone can publish Agent Skills bundles. Search with openclaw skills search, install with openclaw skills install, restart the gateway. Skills are snapshotted at session start, so new installs require a restart.


When Emma came back, James had three columns written on his notepad, with a note scrawled next to the third.

"Skills: knowledge. Markdown files, cross-platform, installed from ClawHub." He pointed at the second column. "MCP servers: external access. Connect the agent to APIs and databases. Module 9.1, Chapter 7." Third column. "Plugins: capabilities. But two kinds." He tapped the note. "The bundled ones are all native TypeScript, running inside the gateway. The bundle format is different: file-based, no code. Like a packaged set of skills with commands and MCP connectors."

"And if you are not sure which one you need?" Emma asked.

"Start with a skill," James said. If it is not enough, escalate to MCP. If MCP is not enough, try a bundle plugin before writing TypeScript." He paused. "At my old company, we had two kinds of vendors. The ones embedded in our warehouse system, running our conveyor belts. And the ones that shipped us a manual and a phone number. Native plugins are the embedded vendors. Bundle plugins are the manual and phone number."

Emma was quiet for a moment. "That vendor analogy actually clarifies something I have been explaining badly for a while." She glanced at his notepad. "You have skills installed and plugins understood. But knowing and accessing are different. What if it needs live data from an external service? Not instructions, not a packaged workflow, but an actual connection to something outside itself."

"That is the MCP column," James said.

"Chapter 7," Emma said. "Module 9.1, Chapter 7," Emma said. "You connect one."