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(®istry)?;
// 4. Select a skill
let outcome = selector.select(
"Extract tables from this PDF",
®istry,
&SelectionContext::default(),
).await?;
println!("Selected: {:?}", outcome.selected);
Ok(())
}§Crate Structure
skm-core- Skill schema, parser, registryskm-embed- Embedding abstraction + providersskm-select- Multi-strategy selection engineskm-disclose- Progressive disclosure / context managementskm-enforce- Execution guardrails & hooksskm-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.