skm 0.1.0

Agent Skill Engine - Selection, enforcement, and optimization for SKILL.md
Documentation

skm (Agent Skill Engine)

The missing runtime layer for Agent Skills: selection, enforcement, and optimization as a framework-agnostic Rust crate.

Quick Start

use skm::prelude::*;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // 1. Build registry
    let registry = SkillRegistry::new(&["./skills"]).await?;

    // 2. Build embedding provider (BGE-M3 by default)
    let embedder = BgeM3Provider::new()?;

    // 3. Build selection engine
    let selector = CascadeSelector::builder()
        .with_triggers()
        .with_semantic(Arc::new(embedder), SemanticConfig::default())
        .build(&registry)?;

    // 4. Select a skill
    let outcome = selector.select(
        "Extract tables from this PDF",
        &registry,
        &SelectionContext::default(),
    ).await?;

    println!("Selected: {:?}", outcome.selected);
    Ok(())
}

Crate Structure

  • skm-core - Skill schema, parser, registry
  • skm-embed - Embedding abstraction + providers
  • skm-select - Multi-strategy selection engine
  • skm-disclose - Progressive disclosure / context management
  • skm-enforce - Execution guardrails & hooks
  • skm-learn - Evaluation, metrics, optimization