Skip to content

Comments

feat(core): structured intent classification via Extractor#559

Merged
bug-ops merged 3 commits intomainfrom
feat/549-structured-output-integration
Feb 18, 2026
Merged

feat(core): structured intent classification via Extractor#559
bug-ops merged 3 commits intomainfrom
feat/549-structured-output-integration

Conversation

@bug-ops
Copy link
Owner

@bug-ops bug-ops commented Feb 18, 2026

Summary

  • Add IntentClassification struct with JsonSchema derive for LLM-based skill disambiguation
  • Add chat_typed<T>() free function in zeph-llm for structured output extraction
  • Introduce ScoredMatch to propagate similarity scores from InMemory and Qdrant backends
  • Integrate disambiguation into rebuild_system_prompt() — triggers only when top-2 delta < configurable threshold (default 0.05)
  • Add disambiguation_threshold to [skills] config section

Test plan

  • 17 new unit tests covering disambiguation, ScoredMatch, IntentClassification, chat_typed parsing
  • 1642 total tests pass, no regressions
  • clippy clean, fmt clean
  • Security audit: no blocking issues (4 low/info findings documented)

Closes #550
Part of Epic #549

@github-actions github-actions bot added enhancement New feature or request size/XL llm LLM provider related skills SKILL.md system rust core dependencies and removed size/XL labels Feb 18, 2026
@bug-ops bug-ops force-pushed the feat/549-structured-output-integration branch from 13fd961 to fa6e0f9 Compare February 18, 2026 19:24
Add LLM-based disambiguation when skill matching scores are ambiguous.
Introduces IntentClassification struct with JsonSchema, chat_typed<T>
free function in zeph-llm, and ScoredMatch to propagate similarity
scores from both InMemory and Qdrant backends. Disambiguation triggers
only when top-2 candidate delta falls below configurable threshold.
@bug-ops bug-ops force-pushed the feat/549-structured-output-integration branch from fa6e0f9 to f8e436b Compare February 18, 2026 19:31
Add integration test validating full disambiguation pipeline through
agent loop with MockProvider. Add unit test documenting that threshold
0.0 effectively disables disambiguation. Update changelog, docs, and
README for #550.
@github-actions github-actions bot added documentation Improvements or additions to documentation tests size/XL and removed size/L labels Feb 18, 2026
@bug-ops bug-ops enabled auto-merge (squash) February 18, 2026 19:57
@bug-ops bug-ops merged commit 276350e into main Feb 18, 2026
20 checks passed
@bug-ops bug-ops deleted the feat/549-structured-output-integration branch February 18, 2026 19:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core dependencies documentation Improvements or additions to documentation enhancement New feature or request llm LLM provider related rust size/XL skills SKILL.md system tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(core): structured intent classification via Extractor

1 participant