AgentSkills v OpenClaw: Jak naučit AI ovládat váš počítač

AIKOD tým11. března 2026
AgentSkills v OpenClaw: Jak naučit AI ovládat váš počítač

AgentSkills v OpenClaw: Jak naučit AI ovládat váš počítač

Máte nainstalovaný OpenClaw a úspěšně jste spustili první úkol. Agent vytvořil soubor, možná prohledal pár složek. Ale tušíte, že to je jen špička ledovce — někde jste četli o "skills", které umožňují agentovi pracovat s API, automatizovat prohlížeč nebo analyzovat data. Jak ale tyto schopnosti využít? A co když potřebujete něco, co žádný existující skill nepokrývá?

AgentSkills jsou stavební bloky, které dělají z OpenClaw skutečně užitečný nástroj. Představte si je jako nástroje v kufříku řemeslníka — kladivo, šroubovák, pilka. Každý skill má specifický účel a agent sám rozhoduje, který použít pro daný úkol. Rozdíl oproti tradičním nástrojům je v tom, že skills jsou programovatelné a můžete si vytvářet vlastní. Tím se OpenClaw mění z obecného asistenta na specializovaného pomocníka přesně pro vaše potřeby.

V tomto článku projdeme anatomii AgentSkills — jak fungují pod kapotou a proč je pochopení jejich struktury klíčové pro efektivní použití. Představíme 10 nejužitečnějších vestavěných skills s praktickými příklady. Krok za krokem vytvoříme vlastní skill pro konkrétní business případ. A na závěr probereme best practices pro bezpečnost a debugging, protože špatně napsaný skill může napáchat víc škody než užitku.

Článek předpokládá, že máte základní zkušenost s OpenClaw — pokud ne, doporučujeme nejprve přečíst náš úvodní článek o OpenClaw. Znalost příkazové řádky je nutná, základy Pythonu jsou výhodou pro sekci o tvorbě vlastních skills.

Obsah

Co jsou AgentSkills a jak fungují

AgentSkill je modulární komponenta, která rozšiřuje schopnosti OpenClaw agenta o konkrétní funkcionalitu. Když agentovi zadáte úkol, jeho LLM mozek analyzuje požadavek a rozhodne, které skills potřebuje k dosažení cíle. Skill pak provede konkrétní akci — spustí příkaz, zavolá API, zpracuje soubor — a vrátí výsledek zpět agentovi pro další rozhodování.

Klíčový koncept je tool calling (volání nástrojů). Moderní jazykové modely jako GPT-4 nebo Claude umí nejen generovat text, ale také strukturovaně volat externí funkce. OpenClaw využívá tuto schopnost — každý skill je registrován jako nástroj, který LLM může zavolat s konkrétními parametry. Model vidí seznam dostupných skills, jejich popisy a očekávané vstupy. Na základě kontextu úkolu rozhodne, který skill použít a s jakými argumenty.

Úkol: "Stáhni obsah webu aikod.cz a ulož ho do souboru"

LLM analýza:
├── Potřebuji stáhnout webovou stránku → http_request skill
├── Potřebuji uložit obsah do souboru → file_write skill
└── Pořadí: nejdřív stáhnout, pak uložit

Vykonání:
1. http_request(url="https://aikod.cz") → vrátí HTML
2. file_write(path="aikod.html", content=HTML) → vrátí "success"

Odpověď: "Stáhl jsem obsah aikod.cz a uložil do souboru aikod.html"

Skills jsou organizovány do kategorií podle typu funkcionality. Vestavěná knihovna OpenClaw obsahuje přes 100 skills rozdělených do logických skupin:

Kategorie Příklady skills Typické použití
Shell shell_exec, process_list, process_kill Spouštění příkazů, správa procesů
File file_read, file_write, file_search, file_delete Práce se soubory a složkami
HTTP http_get, http_post, http_download API volání, stahování souborů
Web browser_open, browser_screenshot, web_scrape Automatizace prohlížeče
Code code_analyze, code_format, git_commit Vývojářské nástroje
Data json_parse, csv_read, data_transform Zpracování dat

Tabulka ukazuje přehled hlavních kategorií. V praxi většina úkolů kombinuje skills z více kategorií — například analýza konkurenčního webu vyžaduje http_get pro stažení stránky, web_scrape pro extrakci dat a file_write pro uložení výsledků.

💡 Tip: Můžete zobrazit seznam všech dostupných skills příkazem openclaw skills list. Pro detail konkrétního skillu použijte openclaw skills info <název>.

Důležité je pochopit, že skills nejsou inteligentní — jsou to jednoduché funkce, které provedou přesně to, co jim řeknete. Inteligence je v LLM, který rozhoduje, kdy a jak skills použít. Proto kvalita promptu a kontextu přímo ovlivňuje, jak efektivně agent skills využije.

Anatomie skillu: struktura a životní cyklus

Každý AgentSkill má definovanou strukturu, která umožňuje LLM pochopit, co skill dělá a jak ho správně zavolat. Pochopení této struktury je klíčové jak pro efektivní použití vestavěných skills, tak pro tvorbu vlastních.

Základní komponenty skillu:

{
  name: "file_read",                    // Unikátní identifikátor
  description: "Přečte obsah souboru a vrátí ho jako text",
  category: "file",                     // Kategorie pro organizaci

  parameters: {                         // Definice vstupních parametrů
    type: "object",
    properties: {
      path: {
        type: "string",
        description: "Absolutní nebo relativní cesta k souboru"
      },
      encoding: {
        type: "string",
        default: "utf-8",
        description: "Kódování souboru"
      }
    },
    required: ["path"]                  // Povinné parametry
  },

  returns: {                            // Definice výstupu
    type: "string",
    description: "Obsah souboru jako text"
  },

  examples: [                           // Příklady použití pro LLM
    {
      input: { path: "/etc/hosts" },
      output: "127.0.0.1 localhost\n..."
    }
  ],

  permissions: ["file:read"],           // Vyžadovaná oprávnění
  riskLevel: "low"                      // Úroveň rizika
}

Životní cyklus volání skillu probíhá v několika fázích:

  1. Rozhodnutí — LLM na základě úkolu rozhodne, že potřebuje konkrétní skill
  2. Validace — OpenClaw zkontroluje, že skill existuje a parametry jsou validní
  3. Autorizace — Ověření, že uživatel povolil požadovaná oprávnění
  4. Vykonání — Skill provede svou funkci
  5. Zpracování výstupu — Výsledek je formátován a předán zpět LLM
  6. Pokračování — LLM rozhodne, zda je úkol hotový nebo potřebuje další kroky

Příklad z praxe: Vývojář v Ostravě debugoval problém, kdy agent nemohl číst konfigurační soubory. Příčina byla v životním cyklu — skill file_read vyžadoval oprávnění file:read, ale uživatel při instalaci povolil pouze file:write. Pochopení permission modelu ušetřilo hodiny frustrace.

Permission model je klíčový pro bezpečnost. Každý skill deklaruje, jaká oprávnění potřebuje. OpenClaw při prvním spuštění požádá uživatele o schválení jednotlivých kategorií oprávnění. Můžete granulárně kontrolovat, co agent smí:

# Zobrazení aktuálních oprávnění
openclaw permissions list

# Přidání oprávnění
openclaw permissions grant file:read file:write

# Odebrání oprávnění
openclaw permissions revoke shell:exec

Risk level (low, medium, high, critical) pomáhá identifikovat potenciálně nebezpečné skills. Skill s riskLevel: "critical" (například shell_exec_sudo) vyžaduje explicitní potvrzení před každým spuštěním.

10 nejužitečnějších vestavěných skills

Z více než 100 vestavěných skills jsme vybrali 10, které pokrývají většinu běžných případů použití. Každý skill uvádíme s praktickým příkladem.

1. shell_exec — Spouštění příkazů

Nejuniverzálnější skill. Spustí libovolný příkaz v shellu a vrátí výstup.

# Příklad použití
openclaw "Kolik místa zabírá složka ~/Downloads?"

# Agent interně volá:
shell_exec(command="du -sh ~/Downloads")
# Výstup: "4.2G    /home/user/Downloads"

2. file_search — Vyhledávání souborů

Prohledává souborový systém podle názvu, přípony nebo obsahu.

openclaw "Najdi všechny Python soubory v projektu, které obsahují 'TODO'"

# Agent kombinuje:
file_search(pattern="*.py", contains="TODO", path="./")

3. http_get — HTTP požadavky

Stahuje obsah z URL. Podporuje hlavičky, autentizaci a timeout.

openclaw "Zkontroluj, jestli je API na api.example.com dostupné"

# Agent volá:
http_get(url="https://api.example.com/health", timeout=5)

4. json_parse — Zpracování JSON

Parsuje JSON a umožňuje extrakci specifických hodnot pomocí JSONPath.

openclaw "Z odpovědi API vytáhni všechny emaily uživatelů"

# Agent kombinuje http_get + json_parse:
json_parse(data=response, path="$.users[*].email")

5. web_scrape — Web scraping

Extrahuje strukturovaná data z webových stránek pomocí CSS selektorů.

openclaw "Stáhni všechny nadpisy článků z aikod.cz/svet-ai"

# Agent volá:
web_scrape(url="https://aikod.cz/svet-ai", selector="h2.article-title")

6. git_status / git_commit — Git operace

Kompletní sada skills pro práci s Git repozitáři.

openclaw "Commitni všechny změny s popisem 'Fix: oprava validace formuláře'"

# Agent postupně volá:
git_status()
git_add(files=".")
git_commit(message="Fix: oprava validace formuláře")

7. process_monitor — Monitoring procesů

Sleduje běžící procesy, jejich spotřebu CPU/RAM.

openclaw "Který proces zabírá nejvíc paměti?"

# Agent volá:
process_monitor(sort_by="memory", limit=5)

8. cron_schedule — Plánování úloh

Vytváří a spravuje cron joby pro periodické úkoly.

openclaw "Každý den v 8:00 mi pošli email se shrnutím logů"

# Agent vytvoří cron job:
cron_schedule(schedule="0 8 * * *", command="openclaw 'Analyzuj logy a pošli report'")

9. data_transform — Transformace dat

Konvertuje data mezi formáty (CSV↔JSON↔XML) a provádí základní transformace.

openclaw "Převeď tento CSV na JSON a seskup záznamy podle města"

# Agent volá:
data_transform(input="data.csv", format="json", group_by="city")

10. notification_send — Notifikace

Odesílá notifikace přes různé kanály (email, Slack, desktop).

openclaw "Až skončí build, pošli mi Slack zprávu"

# Agent nastaví callback:
notification_send(channel="slack", message="Build dokončen", webhook=SLACK_URL)

📌 Důležité: Kompletní dokumentaci všech skills najdete na docs.openclaw.ai/skills. Každý skill má detailní popis parametrů, příklady a known issues.

Kombinace těchto základních skills pokryje většinu automatizačních potřeb. Ale co když potřebujete něco specifického pro váš workflow? V další sekci si ukážeme, jak vytvořit vlastní skill.

Tvorba vlastního skillu krok za krokem

Představme si konkrétní situaci: pracujete v e-shopu a denně kontrolujete stav objednávek v interním systému. Chcete, aby OpenClaw uměl automaticky zjistit stav objednávky podle čísla. Žádný vestavěný skill tohle neumí — je čas vytvořit vlastní.

Krok 1: Definice požadavků

Nejdřív si ujasněte, co skill musí umět:

  • Vstup: číslo objednávky (string)
  • Výstup: stav objednávky (string) + detaily (objekt)
  • API endpoint: https://api.eshop.cz/orders/{id}
  • Autentizace: API key v headeru

Krok 2: Vytvoření souboru skillu

Skills se ukládají do ~/.openclaw/skills/. Vytvořte nový soubor:

// ~/.openclaw/skills/eshop_order_status.js

module.exports = {
  name: "eshop_order_status",
  description: "Zjistí stav objednávky v e-shopu podle čísla objednávky",
  category: "custom",

  parameters: {
    type: "object",
    properties: {
      order_id: {
        type: "string",
        description: "Číslo objednávky (např. ORD-2026-12345)"
      }
    },
    required: ["order_id"]
  },

  returns: {
    type: "object",
    properties: {
      status: { type: "string" },
      created_at: { type: "string" },
      items_count: { type: "number" },
      total_price: { type: "number" }
    }
  },

  permissions: ["http:external"],
  riskLevel: "low",

  // Hlavní funkce skillu
  async execute(params, context) {
    const { order_id } = params;
    const apiKey = context.env.ESHOP_API_KEY;

    if (!apiKey) {
      throw new Error("Chybí ESHOP_API_KEY v environment variables");
    }

    const response = await fetch(`https://api.eshop.cz/orders/${order_id}`, {
      headers: {
        "Authorization": `Bearer ${apiKey}`,
        "Content-Type": "application/json"
      }
    });

    if (!response.ok) {
      if (response.status === 404) {
        return { error: `Objednávka ${order_id} nenalezena` };
      }
      throw new Error(`API error: ${response.status}`);
    }

    const data = await response.json();

    return {
      status: data.status,
      created_at: data.created_at,
      items_count: data.items.length,
      total_price: data.total_price
    };
  }
};

Krok 3: Registrace a testování

# Nastavení API klíče
openclaw config set env.ESHOP_API_KEY "váš-api-klíč"

# Reload skills
openclaw skills reload

# Test skillu
openclaw "Jaký je stav objednávky ORD-2026-12345?"

Krok 4: Vylepšení a error handling

Příklad z praxe: První verze skillu pro logistickou firmu padala, když API vracelo neočekávaný formát data. Po přidání validace a fallback hodnot skill funguje spolehlivě i při částečných odpovědích z API.

// Robustnější verze s validací
async execute(params, context) {
  const { order_id } = params;

  // Validace formátu čísla objednávky
  if (!/^ORD-\d{4}-\d+$/.test(order_id)) {
    return {
      error: "Neplatný formát čísla objednávky. Očekávám ORD-YYYY-XXXXX"
    };
  }

  try {
    const response = await fetch(/*...*/);
    const data = await response.json();

    // Bezpečná extrakce s fallback hodnotami
    return {
      status: data.status || "unknown",
      created_at: data.created_at || null,
      items_count: Array.isArray(data.items) ? data.items.length : 0,
      total_price: typeof data.total_price === "number" ? data.total_price : null
    };
  } catch (err) {
    context.log.error(`Chyba při volání API: ${err.message}`);
    return { error: `Nepodařilo se zjistit stav: ${err.message}` };
  }
}

Vytvoření vlastního skillu vyžaduje základní znalost JavaScriptu, ale výsledek stojí za to — máte nástroj přesně na míru vašim potřebám, který můžete sdílet s kolegy nebo komunitou.

Praktické příklady automatizace

Teorie je důležitá, ale pojďme se podívat na reálné scénáře, kde kombinace skills vytváří skutečnou hodnotu.

Automatizace faktur

Účetní oddělení dostává faktury emailem v různých formátech. Cíl: automaticky extrahovat klíčové údaje a uložit do tabulky.

openclaw "Projdi všechny PDF v ~/invoices, extrahuj částku, datum a dodavatele,
a vytvoř CSV souhrnný report"

Agent použije kombinaci:

  • file_search — najde všechny PDF soubory
  • pdf_extract — extrahuje text z PDF
  • data_transform — strukturuje data do CSV
  • file_write — uloží výsledný report

Příklad z praxe: Účetní firma v Plzni tímto způsobem zpracovává 200+ faktur měsíčně. Čas na zpracování klesl z 8 hodin na 30 minut + kontrola výstupů.

Monitoring konkurence

Marketingové oddělení chce sledovat ceny konkurenčních produktů.

openclaw "Každý den v 6:00 zkontroluj ceny produktů na competitor.cz/kategorie/xyz,
porovnej s našimi cenami v prices.csv a pošli report na [email protected]"

Skills v akci:

  • cron_schedule — nastaví denní spouštění
  • web_scrape — stáhne ceny z konkurenčního webu
  • csv_read — načte vlastní ceny
  • data_transform — vytvoří porovnávací report
  • email_send — odešle report

Správa serverů

DevOps tým potřebuje rychle zjistit stav produkčních serverů.

openclaw "Zkontroluj disk space na všech serverech v ~/.ssh/config,
pokud je někde méně než 20% volného místa, vytvoř ticket v Jira"

Agent orchestruje:

  • file_read — načte SSH config
  • ssh_exec — spustí df -h na každém serveru
  • data_transform — parsuje výstupy
  • jira_create_ticket — vytvoří ticket (custom skill)

Pro vývoj AI agentů na míru doporučujeme začít analýzou, které úkoly jsou opakované a časově náročné. Často překvapí, kolik práce lze automatizovat jednoduchými kombinacemi skills. Pro jednoduché případy zákaznické podpory zvažte naše AI chatboty.

Best practices pro bezpečné skills

Vlastní skills mohou být bezpečnostní riziko, pokud nejsou správně napsané. Tady jsou klíčová pravidla, která dodržujeme při vývoji skills pro naše klienty.

1. Nikdy nepředávejte uživatelský vstup přímo do shell příkazů

// ŠPATNĚ — zranitelné vůči command injection
shell_exec({ command: `cat ${userInput}` })

// SPRÁVNĚ — použijte parametrizované volání
file_read({ path: userInput })

2. Validujte všechny vstupy

// Validace před zpracováním
if (!order_id || typeof order_id !== 'string') {
  throw new Error('Invalid order_id');
}

// Whitelist povolených hodnot
const allowedStatuses = ['pending', 'shipped', 'delivered'];
if (!allowedStatuses.includes(status)) {
  throw new Error('Invalid status');
}

3. Minimalizujte oprávnění

Skill by měl vyžadovat jen ta oprávnění, která skutečně potřebuje. Skill pro čtení souborů nepotřebuje shell:exec.

4. Logujte citlivé operace

context.log.info(`Accessing order ${order_id} for user ${context.user}`);

5. Používejte timeout pro externí volání

const controller = new AbortController();
const timeout = setTimeout(() => controller.abort(), 5000);

try {
  const response = await fetch(url, { signal: controller.signal });
} finally {
  clearTimeout(timeout);
}

⚠️ Pozor: V únoru 2026 bylo objeveno, že některé third-party skills z neoficiálních repozitářů obsahovaly backdoor pro exfiltraci dat. Používejte pouze skills z ověřených zdrojů nebo si je sami zkontrolujte.

Checklist bezpečnosti vlastního skillu:

  • Žádné hardcoded credentials (použijte environment variables)
  • Validace všech vstupních parametrů
  • Timeout pro všechna síťová volání
  • Error handling bez leakování citlivých informací
  • Minimální vyžadovaná oprávnění
  • Logování pro audit trail

Debugging a testování

Když skill nefunguje podle očekávání, systematický přístup k debuggingu ušetří hodiny frustrace.

Verbose mode zobrazí detailní informace o každém kroku:

openclaw --verbose "Jaký je stav objednávky ORD-2026-12345?"

Výstup ukáže:

  • Které skills agent zvažoval
  • Jaké parametry předal
  • Surový výstup ze skillu
  • Jak LLM interpretoval výsledek

Izolované testování skillu bez LLM vrstvy:

openclaw skills test eshop_order_status --params '{"order_id": "ORD-2026-12345"}'

Tento příkaz spustí skill přímo a zobrazí výstup, bez zapojení agenta. Ideální pro ověření, že skill sám o sobě funguje správně.

Logování do souboru:

openclaw config set log.file ~/.openclaw/debug.log
openclaw config set log.level debug

Příklad z praxe: Skill pro integraci s CRM systémem vracel prázdné výsledky. Debug log odhalil, že API vracelo data v jiném časovém pásmu, než skill očekával. Oprava zabrala 5 minut, hledání problému bez logů by trvalo hodiny.

Unit testy pro vlastní skills:

// tests/eshop_order_status.test.js
const skill = require('../skills/eshop_order_status');

describe('eshop_order_status', () => {
  it('should validate order_id format', async () => {
    const result = await skill.execute({ order_id: 'invalid' }, mockContext);
    expect(result.error).toContain('Neplatný formát');
  });

  it('should handle API errors gracefully', async () => {
    // Mock failed API response
    fetchMock.mockRejectOnce(new Error('Network error'));

    const result = await skill.execute({ order_id: 'ORD-2026-12345' }, mockContext);
    expect(result.error).toBeDefined();
  });
});

Pokročilé techniky

Pro ty, kdo chtějí vytěžit z AgentSkills maximum, zde jsou pokročilé techniky.

Řetězení skills — jeden skill může volat jiné skills:

async execute(params, context) {
  // Zavolej jiný skill
  const fileContent = await context.callSkill('file_read', {
    path: params.config_path
  });

  // Zpracuj výsledek
  const config = JSON.parse(fileContent);

  // Zavolej další skill s konfigurací
  return await context.callSkill('http_post', {
    url: config.webhook_url,
    body: params.data
  });
}

Streaming pro dlouhé operace:

async *execute(params, context) {
  const files = await getFiles(params.path);

  for (const file of files) {
    yield { progress: `Zpracovávám ${file}...` };
    const result = await processFile(file);
    yield { file, result };
  }

  yield { complete: true, processed: files.length };
}

Caching pro opakované dotazy:

async execute(params, context) {
  const cacheKey = `order_${params.order_id}`;

  // Zkus cache (platnost 5 minut)
  const cached = await context.cache.get(cacheKey);
  if (cached) return cached;

  // Fetch z API
  const result = await fetchFromApi(params.order_id);

  // Ulož do cache
  await context.cache.set(cacheKey, result, { ttl: 300 });

  return result;
}

Tyto techniky umožňují vytvářet sofistikované workflows, které by jinak vyžadovaly samostatné aplikace.

Pro firemní nasazení s centrální správou a enterprise bezpečností doporučujeme prostudovat článek OpenClaw pro firmy. Pokud teprve začínáte s OpenClaw, vraťte se k úvodnímu článku.

FAQ

Kolik vlastních skills mohu mít?

Technicky neomezeně. Prakticky doporučujeme držet počet skills rozumný — LLM musí pochopit, který skill použít, a příliš mnoho možností může vést ke špatným rozhodnutím. Pokud máte více než 20-30 custom skills, zvažte jejich seskupení do kategorií nebo vytvoření "meta-skills", které orchestrují menší skills.

Mohu sdílet vlastní skills s komunitou?

Ano, OpenClaw má oficiální repozitář komunitních skills na GitHub. Pro publikování musíte projít code review zaměřené na bezpečnost. Populární skills z komunity zahrnují integrace s Notion, Airtable, různými CRM systémy a českými službami jako Fakturoid nebo Pohoda.

Jak aktualizovat skill bez přerušení běžícího agenta?

OpenClaw podporuje hot-reload skills. Příkaz openclaw skills reload načte změny bez restartu agenta. Pro produkční prostředí doporučujeme verzování skills a postupný rollout — nejdřív otestovat na development instanci.

Co když skill potřebuje přístup k databázi?

Můžete vytvořit skill, který se připojuje k databázi pomocí příslušného driveru (pg pro PostgreSQL, mysql2 pro MySQL atd.). Důrazně doporučujeme používat read-only credentials a parametrizované dotazy pro prevenci SQL injection. Pro citlivá data zvažte, zda není lepší vystavit REST API a volat ho přes HTTP skill.

Jak měřit výkon skills?

OpenClaw automaticky měří dobu běhu každého skillu. Statistiky zobrazíte příkazem openclaw stats skills. Pro detailnější analýzu můžete přidat vlastní metriky do skillu pomocí context.metrics.record('operation_name', duration).

Shrnutí

AgentSkills jsou srdcem OpenClaw — transformují obecného AI asistenta na specializovaný nástroj pro vaše konkrétní potřeby. Vestavěná knihovna pokrývá většinu běžných případů, ale skutečná síla přichází s vlastními skills, které přesně odpovídají vašim workflow.

Klíčové body k zapamatování: skills jsou jednoduché funkce, inteligence je v LLM; bezpečnost je kritická — validujte vstupy a minimalizujte oprávnění; debugging vyžaduje systematický přístup s verbose logováním. S těmito znalostmi jste připraveni automatizovat úkoly, které by jinak zabraly hodiny manuální práce.


Potřebujete pomoc s vývojem vlastních AgentSkills nebo integrací OpenClaw do firemních procesů? Máme zkušenosti s nasazením AI agentů v českých firmách od e-commerce po logistiku. Napište na [email protected] nebo využijte kontaktní formulář — rádi probereme vaše potřeby.