Content last updated 2026-06-25

AI Context Abstraction Layer ADR-001: gem ベースのアーキテクチャ

AI Context Abstraction Layer を ActiveContext Ruby gem として実装するための意思決定記録。

ステータス

承認済み

コンテキスト

AI Context Abstraction Layer は、異なるベクターストア(Elasticsearch、OpenSearch、pgvector を使用する PostgreSQL)にまたがるセマンティック検索のための統一インターフェースを提供する重要なコンポーネントです。このレイヤーには次が必要です。

  1. 複数の GitLab サービスで再利用できること
  2. 単体で保守およびテストできること
  3. GitLab 固有の実装から明確に分離されていること
  4. 将来のベクターストアバックエンド向けに拡張できること

決定

私たちは次のように決定しました。

  1. ActiveContext Abstraction Layer を、GitLab Rails リポジトリ内の gems/gitlab-active-context に配置される Ruby gem として実装する
  2. gem の名前を ActiveContext とし、したがってすべての gem クラスを ActiveContext:: の名前空間配下に置く
  3. GitLab 固有の実装は Ai::ActiveContext の名前空間配下に置く(例: Ai::ActiveContext::Collections::CodeAi::ActiveContext::References::Code

参考文献