agent-fabric
OpenClaw
Skills

Skills

A skill is a named bundle of tools, prompts, and (optionally) policy rules that can be enabled and disabled per turn — so the model only sees the schemas relevant to the active task.

Why

Tool schemas are expensive context. A registry of 40 tools eats 8–12k tokens. Most turns need 2–5 tools. Skills + progressive disclosure cut the tools section by 60–80% without losing capability.

Define a skill

import { skill } from '@veridex/agents-openclaw';
 
const codeReview = skill({
  id: 'code-review',
  description: 'Tools for reviewing pull requests.',
  tools: [readDiff, runLint, summariseFile, postReviewComment],
  policies: [pleaseDontDeleteRepo],
});

Register and toggle

const agent = createAgent({
  name: '...',
  instructions: '...',
  skills: [codeReview, deepResearch, treasuryReports],
});
 
// The agent itself can toggle via the built-in tool:
//   skill_manage({ action: 'enable', skillId: 'code-review' })

skill_manage is itself a tool (safetyClass: 'read'). Its calls are policy-gated and audited like any other.

React inspector

import { useSkills } from '@veridex/agents-react';
 
function SkillToggle({ runId }: { runId: string }) {
  const { available, enabled, enable, disable } = useSkills({ runId });
  return available.map(s => (
    <Toggle key={s.id} label={s.id}
      on={enabled.includes(s.id)}
      onChange={v => v ? enable(s.id) : disable(s.id)} />
  ));
}

Skill packs

Skills can ship as packs:

import { devopsSkillPack } from '@veridex/agents-openclaw/packs';
 
const agent = createAgent({ skills: devopsSkillPack({ kubeConfig: '...' }) });