pub struct SkillsConfig {Show 20 fields
pub paths: Vec<String>,
pub max_active_skills: usize,
pub disambiguation_threshold: f32,
pub min_injection_score: f32,
pub cosine_weight: f32,
pub hybrid_search: bool,
pub learning: LearningConfig,
pub trust: TrustConfig,
pub prompt_mode: SkillPromptMode,
pub two_stage_matching: bool,
pub confusability_threshold: f32,
pub rl_routing_enabled: bool,
pub rl_learning_rate: f32,
pub rl_weight: f32,
pub rl_persist_interval: u32,
pub rl_warmup_updates: u32,
pub rl_embed_dim: Option<usize>,
pub generation_provider: ProviderName,
pub generation_output_dir: Option<String>,
pub mining: SkillMiningConfig,
}Expand description
Skill discovery and matching configuration, nested under [skills] in TOML.
Controls where skills are loaded from, how they are ranked during retrieval, the RL re-ranking head, NL skill generation, and automated skill mining.
§Example (TOML)
[skills]
paths = ["~/.config/zeph/skills"]
max_active_skills = 5
disambiguation_threshold = 0.20
hybrid_search = trueFields§
§paths: Vec<String>Directories to scan for *.skill.md / SKILL.md files.
max_active_skills: usize§disambiguation_threshold: f32§min_injection_score: f32§cosine_weight: f32§hybrid_search: bool§learning: LearningConfig§trust: TrustConfig§prompt_mode: SkillPromptMode§two_stage_matching: boolEnable two-stage category-first skill matching (requires category set in SKILL.md).
Falls back to flat matching when no multi-skill categories are available.
confusability_threshold: f32Warn when any two skills have cosine similarity ≥ this threshold. Set to 0.0 (default) to disable the confusability check entirely.
rl_routing_enabled: boolEnable RL routing head for skill re-ranking (disabled by default).
rl_learning_rate: f32Learning rate for REINFORCE weight updates.
rl_weight: f32Blend weight: final_score = (1-rl_weight)*cosine + rl_weight*rl_score.
rl_persist_interval: u32Persist weights every N updates (0 = persist every update).
rl_warmup_updates: u32Skip RL blending for the first N updates (cold-start warmup).
rl_embed_dim: Option<usize>Embedding dimension for the RL routing head.
Must match the output dimension of the configured embedding provider.
Defaults to None → 1536 (text-embedding-3-small output dimension).
generation_provider: ProviderNameProvider name for /skill create NL generation. Empty = primary provider.
generation_output_dir: Option<String>Directory where generated skills are written. Defaults to first entry in paths.
mining: SkillMiningConfigSkill mining configuration.
Trait Implementations§
Source§impl Debug for SkillsConfig
impl Debug for SkillsConfig
Source§impl<'de> Deserialize<'de> for SkillsConfig
impl<'de> Deserialize<'de> for SkillsConfig
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<SkillsConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<SkillsConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for SkillsConfig
impl Serialize for SkillsConfig
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for SkillsConfig
impl RefUnwindSafe for SkillsConfig
impl Send for SkillsConfig
impl Sync for SkillsConfig
impl Unpin for SkillsConfig
impl UnsafeUnpin for SkillsConfig
impl UnwindSafe for SkillsConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request