コンテンツにスキップ
Zenn Dev Taka4 Articles Fb3809bc7e4a82

56本 → 5本、88%削減 — TiDB FTS+Vectorで作るAbility Discovery Layer

  • URL: https://zenn.dev/taka4/articles/fb3809bc7e4a82
  • 日付: 2026-06-26
  • Tier: Tier 3
  • 要旨: AIエージェントが保有するMCPサーバー・スキルが56本に増えた際のTool Explosion問題を解決するAbility Discovery Layerの実装記事。TiDB CloudのFTS(全文検索)とVector Hybrid Searchを組み合わせ、ユーザーのクエリに応じて必要なツールをTop-5本に絞り込むことでトークン消費を平均88%削減した。日本語クエリの精度改善にはLLMによるQuery Expansionを使い英語キーワードを付与する手法を採用し、nomic-embed-textのベクトル検索精度が大幅に向上することを実証している。

詳細

MCPサーバー・スキルが56本に増加した環境でのTool Explosion問題を解消するAbility Discovery Layerの設計と実装。TypeScript + Node.js 22 + TiDB Cloud Serverless(ap-northeast-1)+ Ollama構成。

  • 問題の規模:全56本のツール説明テキストで約2,258トークン消費。関係のないツールがコンテキストを圧迫し精度も低下
  • 解決策:discover_toolsを1回呼ぶだけでTop-5本を取得。トークン消費2,318→約279(88%削減)、ツール数56→5(91%削減)
  • スキーマ設計:search_text Generated Column(name + descriptionの結合)にFULLTEXT INDEX(MULTILINGUAL)とVECTOR INDEXを共存
  • FTS検索:TiDB CloudのFTS_MATCH_WORD()はWHERE句で単独使用が必要(WHERE FTS_MATCH_WORD() > 0はエラー)
  • Vector検索:Ollama + nomic-embed-text(768次元)でVEC_COSINE_DISTANCEを使用
  • Query Expansion:日本語クエリをqwen3:14bで英語キーワードに展開することでベクトル検索精度が大幅改善(Vector距離が密集する問題を解消)
  • mem9 Boost:個人利用履歴でTop-5のパーソナライズも実現