Self-learning skill router for AI agents. 6-stage pipeline (RAG history, keyword match, BM25 body retrieval, Thompson sampling, handbook competence, DPP diversity) with anti-hallucination protections and Beta-posterior self-learning.
Four tools with complete schemas and descriptions, but significant gaps in parameter documentation and output structure. Tool names lack action verbs (route_skills, record_outcome are acceptable; router_stats and router_history are discovery-oriented but generic). Descriptions are present (avg 95 chars) but lack WHEN/WHY guidance. Parameters mostly documented but missing constraints (enums, ranges). No output schemas documented. Error handling is minimal, tool implementations return plain strings without structured error classification or recovery guidance. The server implements basic MCP protocol correctly but lacks production-grade polish.
Record whether routed skills were helpful — feeds the self-learning loop
Find the best skills for a given task or user query using G6 agentic self-learning router
Show the last 10 routing decisions for debugging and audit
Show Skill Router G6 stats: handbook, posteriors, history counts and top competent skills
No output schemas documented. Tools return plain text strings; LLMs cannot parse structured results or chain downstream calls. E.g., route_skills returns 'Recommended skills for: "query"\n\nexplanation\n\nFinal: skill1, skill2', unstructured and unparseable.
Parameter 'skills' in record_outcome accepts oneOf [array, string] but lacks validation. LLMs may pass malformed input; no error guidance on what constitutes valid skill names.
Tool names router_stats and router_history lack action verbs. 'get_router_stats' and 'list_routing_history' would be clearer and follow verb_noun convention (baseline: 90% of A+ tools start with action verb).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Descriptions lack WHEN/WHY context. E.g., 'Record whether routed skills were helpful' does not explain when to call this (after using skills) or why (feeds self-learning). LLMs need explicit guidance on tool selection.
Error handling returns plain strings ('Error: query is required'). No structured error classification (retryable vs user-fixable vs fatal) or recovery guidance. LLMs cannot determine next action.