0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

一人で完全オフラインで動く、AI コーディング支援用のナレッジ基盤を作った

0
Last updated at Posted at 2026-05-29

はじめに

フロントエンドのコンポーネントライブラリを保守しています。AI コーディングアシスタントをチームに浸透させようとしたとき、3 つの壁にぶつかりました。

幻覚(hallucination):AI がコンポーネントの API やプロパティを「それっぽく」でっち上げる
Token コストの肥大化:プロジェクト全体を毎回プロンプトに突っ込むと入力 Token が爆発する。2026 年 6 月に GitHub Copilot が従量課金へ移行する関係で、標準的な使い方でもプラン枠を超えるリスクがあった
ナレッジが個人に閉じる:AI ツールが各自バラバラに使われ、ノウハウがチーム・組織に蓄積されない

この 3 つを「同じ 1 つのアーキテクチャ」で同時に解くことを設計目標にしました。

アーキテクチャ:3 層構成

Project Repo → MCP Server → LSP Repo
(プロジェクト) (検索の核・不変) (言語別パーサ)

MCP Server:FastAPI + uvicorn によるローカルサービス。完全オフライン動作で、外部 API へのデータ送信は一切なし
検索の核は MCP Server に集約し、言語スタックへの非依存を実現
言語ごとの差分は LSP Repo 側のパーサに閉じ込める(後述の拡張性につながる)

検索エンジン:ハイブリッド + 意図感知降権
純粋なベクトル検索だけだと、コードや技術ドキュメントでは精度が伸びません。そこで以下を組み合わせました。

語彙検索(lexical):シンボル名の完全一致に強い
セマンティック検索:bge-m3 を ONNX Runtime でローカル推論(1024 次元)
意図感知降権(intent-aware deweighting):クエリの意図に合わない候補のスコアを下げる

bge-m3 を ONNX 化してローカルで回すことで、埋め込みのために外部 API を叩く必要がなくなり、コストとデータ持ち出しの問題が同時に消えます。
AI Agent Skills:3 スキル設計
AI エージェントから叩く窓口を 3 つに絞りました。
Skill役割search_kbナレッジ検索describe_kb記述・説明の取得update_kbナレッジ更新
自動同期:git hook → 増分ベクトル再構築
企業ナレッジ基盤が腐る最大の理由は「誰も更新しない」ことです。これを仕組みで潰しました。

git hook をトリガに、自動で増分ベクトル再構築を走らせる
つまり「コードを書く=ナレッジ基盤が更新される」。更新は人間の自律ではなく、ツールの自動的な副産物になる

実測ベンチマーク

検索精度 P@1 = 90%以上(bge-m3 混合モード)
LLM への入力 Token を 80%以上 圧縮
検索遅延 約 50ms/query(体感閾値より 1 桁低い)
品質テスト 5 套件すべて通過(シンボル精確命中/隔離性/Barrel 導航/フィールド型検索/公開シンボル網羅)
完全プライベート・オフライン(外部 API・データ送信なし)

拡張性:プラガブルなパーサ
言語スタックへの非依存は「設計思想」だけではなく、実装パスがあります。
MCP Server(不変)
ハイブリッド検索 + bge-m3 + 意図降権

┌────┼────┬────────┐
Flutter------TS-------Python -------------Java/etc
(本番) (設計) (設計) (設計)
新しい言語に対応するには パーサを 1 つ足すだけで、検索の核は触りません。実測済みのものは「本番」、設計レベルで対応済みのものは「設計」と区別しています。

まとめ

外部 API に依存せず、混合検索で精度を担保し、git hook で維持コストをゼロにする——この 3 点が「使われ続けるナレッジ基盤」の条件だと考えています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?