Skip to main content

Crate skm

Crate skm 

Source
Expand description

§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

Re-exports§

pub use skm_core;
pub use skm_disclose;
pub use skm_embed;
pub use skm_enforce;
pub use skm_learn;
pub use skm_select;

Modules§

prelude
Prelude module with commonly used types.