Japanese version: IModelVectorRouter (インターフェース仕様)
IModelVectorRouter (Interface Specification)
1. Responsibility Boundary
IModelVectorRouter is the routing boundary interface that selects an optimal model/provider based on required capability vectors and execution constraints.
- Role:
- Non-role:
Perform multi-dimensional capability matching, apply rule/constraint-based filtering, and produce deterministic final routing decisions.
Actual inference execution belongs to the selected implementation. Capability registration and lifecycle management belong to ICapabilityRegistry.
2. Contract Signature
namespace AIKernel.Abstractions.Routing;\n\nusing AIKernel.Abstractions.Models;\n\npublic interface IModelVectorRouter\n{\n Task<ModelRoutingDecision> RouteAsync(\n ModelCapacityVector requiredCapacity,\n RuleEvaluationContext ruleEvaluationContext,\n IExecutionConstraints executionConstraints,\n CancellationToken cancellationToken = default);\n\n ModelType SelectOptimalModel(ModelCapacityVector requirement, IEnumerable<ModelType> candidates);\n\n IEnumerable<(ModelType Model, float Score)> RankModels(\n ModelCapacityVector requirement,\n IEnumerable<ModelType> candidates);\n\n bool VerifyDeterministicRouting(ModelRoutingDecision decision1, ModelRoutingDecision decision2);\n}
3. Related Use Cases
UC-03Model vector routing:UC-22Dynamic capacity control and model routing:UC-30Token/vector estimation:
Core path for selecting execution units from requirement vectors.
Optimizes routing under changing budget, load, and capability conditions.
Evaluates executability against estimated task vectors.
4. Governance & Determinism
- Deterministic routing:
- Fail-Closed:
Identical capability requirements, rule context, and execution constraints must yield identical ModelRoutingDecision outputs.
If no candidate satisfies mandatory capabilities, the implementation must terminate as deny/failure rather than silently degrading to a weaker route.
5. Exception Contract
This interface does not hard-code specific exception types. Implementations should explicitly handle:
- No viable route:
- Constraint violations:
No candidates exist, or all candidates are excluded by constraints.
IExecutionConstraints (budget, region, latency, etc.) makes execution impossible.
6. Implementation Notes
- Multi-axis evaluation:
- Auditability:
Evaluate multiple ModelCapacityVector axes in an explainable way instead of collapsing everything into a single opaque metric.
Keep routing rationale (scores, exclusion reasons, tie-break basis) traceable in ModelRoutingDecision.
Changelog
- v0.0.0 / v0.0.0.0: Initial draft
- v0.0.1 (2026-05-06): Version upgrade aligned with documentation guidelines
architecture/interfaces/routing/IModelVectorRouter.md