【要約】LLMルーターの自動プロファイル選択をrule-basedでどこまでやるか—CodeRouter v1.6 auto_router [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
LLMルーターの分類にLLMを用いると、分類処理によるレイテンシの増加、常駐プロセスによる運用コストの増大、および分類理由の不透明化(ブラックボックス化)を招く。また、ストリーム出力開始後の誤判定は修正不能であり、システムの決定論的な挙動を損なうリスクがある。
// Approach
精度と解釈可能性のバランスを考慮し、4種類のMatcherを用いたrule-based方式を採用。画像有無やコード密度に基づくプリセットルールを提供し、ユーザー定義時は既存ルールを上書きするreplace-only方式を採る。エラーは起動時に検知するfast-fail設計とし、実行時の曖昧さを排除した。
// Result
複雑なDSL化を避け、依存関係を最小限に抑えた設計により、現実のリクエストの9割をカバー可能とした。ログへの詳細な信号出力とPrometheusメトリクスによる監視を統合し、ルールの妥当性を事後的に検証できる観測基盤を構築した。
Senior Engineer Insight
> 極めて実戦的で、妥協のない設計である。特に「LLMによる分類」という甘い誘惑を、レイテンシと観測性の観点から明確に拒絶している点に、大規模システムを運用するプロの視点を感じる。決定論的な挙動を保証するために、実行時エラーを避け、起動時に全ての整合性をチェックするfast-fail戦略は、SREの観点からも極めて高く評価できる。複雑な条件分岐をあえて制限し、DSL化による複雑性の増大を防ぐ「引き算の設計」も、長期的なメンテナンス性を考慮した賢明な判断だ。