-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Labels
M28Milestone 28: VectorStore AbstractionMilestone 28: VectorStore AbstractioncorellmLLM provider relatedLLM provider related
Description
Problem
Skill matching currently uses embedding similarity + text heuristics to classify user intent. When multiple skills have close similarity scores, the choice can be unreliable.
Solution
Use Extractor<T> with a typed IntentClassification struct to get deterministic skill selection from the LLM:
#[derive(Deserialize, JsonSchema)]
struct IntentClassification {
skill_name: String,
confidence: f32,
params: HashMap<String, String>,
}When embedding similarity is ambiguous (top-2 delta < threshold), fall back to Extractor for disambiguation. This adds an LLM call only when needed.
Acceptance criteria
IntentClassificationstruct withJsonSchemaderive- Integration point in skill matcher when top candidates are close
- Unit test with MockProvider verifying disambiguation
- No regression in existing skill matching tests
Part of Epic #549
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
M28Milestone 28: VectorStore AbstractionMilestone 28: VectorStore AbstractioncorellmLLM provider relatedLLM provider related