ENGINEERING BLOG DIGEST // JP
NO. 2026-08 — TRANSLATED SUMMARY REPORT
Cerebras Engineering Blog — 日本語要約

Cerebras はいかにして
社内ナレッジベースを構築したか

1 日 15,000 件超の質問に答える社内検索基盤 ——「Cerebras Knowledge」の設計と実装、その全貌

原文: How We Built Our Knowledge Base 著者: Isaac Tai / Daniel Kim / Mike Gao 公開: 2026-07-15 要約作成: 2026-08-04
ナレッジベースのアーキテクチャを表すアイソメトリックイラスト: Slack・コード・Wiki・DB の4ソースから埋め込みテーブルへデータが流れ、検索・融合レイヤーを経て回答に至る
KEY VISUAL — 原記事の内容をもとに gpt-image-2 で高解像度再構成(2560×1280)
TL;DR — 3分で掴む要点
SECTION 01

はじめに — 数字で見る Cerebras Knowledge

INTRODUCTION

Cerebras の社員は、社内ナレッジベースに毎日 15,000 件以上の質問を投げている。ローンチからわずか 3 ヶ月で、同社で最も広く使われる社内ツールのひとつになった。利用者は人間に限らない——自動化パイプラインや AI エージェントも、このナレッジベースを日常的に叩いている。

Cerebras のチームはデータセンター運用、チップ設計、ハードウェア、学習、推論、クラウドプラットフォームと極めて広い領域にまたがる。毎年数百人の新しい社員が加わる中で、コミュニケーションチャンネルは同じ質問で埋まりつつあった。

「X はどこにある?」
「Y の専門家は誰?」
「Z って何?」

Cerebras Knowledge は、人とシステムを有用な情報へつなぐために作られた。その全体像が図 1 である。データソース群から単一の埋め込みストア(pgvector・3072 次元・HNSW インデックス)へ、そして 6 系統の並列検索、RRF と LLM リランクによる融合、引用付きの回答合成へと積み上がる垂直スタックだ。

Exploded vertical stack of the internal knowledge base Sources feed distillation, embeddings, retrieval, fusion, and synthesis layers. 1 2 SYNTHESIS ANSWER + CITATIONS FUSION + RERANK RRF (K=60) -> LLM RERANK RETRIEVAL SIX LISTS IN PARALLEL EMBEDDINGS PGVECTOR - 3072-DIM - HNSW DISTILLATION LLM EXTRACTORS SOURCES SLACK - WIKI - CODE - INCIDENTS
図 1ナレッジベース全体の分解スタック図。下層から DATA SOURCES → EMBEDDINGS(PGVECTOR・3072 次元・HNSW)→ RETRIEVAL(6 系統並列)→ FUSION + RERANK(RRF K=60 → LLM リランク)→ SYNTHESIS(引用付き回答)。INTERACTIVE マウス追従の視差エフェクト付き(原記事の図をそのまま収載)。
SECTION 02

データがある場所へ出向く

MEETING DATA WHERE IT LIVES

組織内の情報探索が難しいのは、データがツールに散らばっているからだ。そして四半期に一度くらいの頻度で、誰かが同じ「名案」を提案する——「全部を 1 つのプラットフォームに記録しよう。そうすれば情報は一箇所に集まる」。この Single Source of Truth の夢は、現実にはまず機能しない。

情報はそれを生むのに最も都合が良く、道具として手に馴染む場所で生成される。ドキュメントへの修正提案、Slack のスレッド、GitHub のコード参照、Jira のステータスメタデータ。各プラットフォームは長年のプロダクトエンジニアリングと分析によってそれぞれのドメインに最適化されている。プルリクエストの議論を Google Docs でやるのは悪夢でしかない。

そこで Cerebras は、既存の行動をほぼ変えなくてよいシステムを設計方針に据えた。データ収集側で言えば、各プラットフォームから直接データを抽出するということだ。

SECTION 03

ナレッジベースの解剖学

ANATOMY OF A KNOWLEDGE BASE

Cerebras Knowledge が提供するものは 3 つに整理できる。

① 収集と保存
社内データを集めて保存するプラットフォーム。
② クエリ
そのデータへ問い合わせるプラットフォーム。
③ 認証・認可
監査とアナリティクスを備えた、認証・認可を強制するレイヤー。

中核にあるのは単一の Postgres テーブルだ。多様なソース由来の埋め込み・生の要約・メタデータをすべてこの 1 テーブルが保持する。システムは全社からデータを継続的に取り込み、常にクエリ可能なデータストアを維持する。

データインターフェースは意図的にシンプルに保たれている。狙いは 2 つ——ほとんどの形式のデータを受け入れられること、そしてCerebras の他の開発者が自分でカスタムコネクタを書けること。Slack スレッドからネットリスト(チップ設計データ)まで、あらゆるソースが同じ埋め込みテーブルに着地し、テーブルに入ったものは即座に同じインターフェースで検索可能になる。

Many data sources feeding one queryable embeddings table SLACK WIKI / CONFLUENCE CODE REPOS NETLISTS PRM DOCS CUSTOM DATABASES EMBEDDINGS QUERY DOCUMENT EMBEDDING METADATA SOURCE + TIMESTAMPS MCP - WEB UI - AGENTS ONE EMBEDDINGS TABLE ONE CONNECTOR PER SOURCE
図 2多様なデータソース(SLACK / WIKI / CONFLUENCE / CODE REPOS / NETLISTS / PRM DOCS / CUSTOM DATABASES)が 1 枚の埋め込みテーブルへ流れ込み、単一のクエリ面から検索される。

各データソースは「データが何であるか」「どう接続するか」「どの頻度で取得するか」を定義する。生成される埋め込み行は、出自が Slack でもコードリポジトリでもドキュメントシステムでもカスタム DB でも、まったく同じインターフェースに従う。

SECTION 04

Slack — 最重要データソースの攻略

SLACK: INGESTION, DISTILLATION AND BURSTING

Slack は設計上最も重要なデータソースだった。全社を横断して、最も鮮度の高いエンジニアリング議論が交わされる場所だからだ。

Slack event flow from Socket Mode through distillation and embedding SOCKET EVENT ROUTE BOT REPLY REINGEST_THREAD UPSERT THREAD SYNC_WORKER DISTILL THREAD VECTOR BURST VECTORS @MENTION / DM TRACKED CHANNEL RESET WATERMARKS
図 3Slack 取り込みのイベントフロー。SOCKET EVENT → ルーティング(@メンション・DM はボット応答へ)→ REINGEST_THREAD → スレッド全体の UPSERT → SYNC_WORKER → 蒸留 → スレッドベクトル + バーストベクトルの書き込み。

非構造化された会話をどう処理するかHOW WE PROCESS UNSTRUCTURED SLACK CONVERSATIONS

チームはまず「生テキストへの素朴な埋め込み」で十分かをテストし、ベクトル検索単体では関連データを拾いきれないことをすぐに突き止めた。Slack メッセージには固有の難しさがある。

  • 情報密度の振れ幅が極端に大きい。「はいよろしく」も、カーネルの詳細解説も、同じ 1 メッセージである。
  • メッセージ長はまちまちで、コサイン類似度では短いメッセージが長く詳細なメッセージにしばしば勝ってしまう
  • メッセージの意味が前後の会話に依存することが多い。

必要なのはハイブリッドアプローチだった。Slack 取り込みは、すべてのスレッドが複数の検索技術から同時に到達可能になるよう設計されている。各技術は互いの弱点を補い合う。

全文検索
埋め込みがぼかしてしまう「正確なトークン」を捕まえる。エラー文字列、フラグ名、ホスト名。エンジニアがエラーメッセージをそのまま貼り付けたとき、字句の完全一致はほぼ常に最良の証拠であり、意味的類似度がそれを上回るべきではない。
埋め込み検索
言い換え(パラフレーズ)を捕まえる。「restore が manifest ロード後にハングする」と質問する人と、「checkpoint が NFS マウントで停止する」と答えた人は、語彙をまったく共有しないかもしれない。異なる言葉で書かれた質問と回答をつなぐのはベクトル類似度だ。
逆文書頻度(IDF)
シグナルとノイズを分離する。珍しい設定フラグのような希少トークンを軸にした短いメッセージは上位に来るべきだ。「いいね、ありがとう!」は埋め込み空間では多くのクエリの近くに位置するが、語の希少性を考慮すればスコアはほぼゼロになる。
時間減衰
「Slack の回答には賞味期限がある」ことをエンコードする。同じ質問に答える 2 つのスレッドがあるとき、6 ヶ月前のものはもう存在しないインフラを説明しているかもしれない。関連度が拮抗するなら、新しいスレッドが勝つ。
SEARCH / SLACK CANDIDATES FULL-TEXT
QUERY

“restore hangs after manifest load”

  1. 2W AGO
    NO SHARED TOKENS PARAPHRASE MATCH CKPT_PREFETCH: RARE RECENT WINS TIE
    Thread

    Checkpoint stalls on the NFS mount — set CKPT_PREFETCH=4.

  2. 1D AGO
    EXACT TOKENS ERR_MANIFEST_TIMEOUT: RARE
    Message

    ERR_MANIFEST_TIMEOUT: restore hangs after manifest load.

  3. 3H AGO
    FALSE NEIGHBOR NO RARE TOKENS
    Message

    sounds good, thanks! will try that

  4. 8MO AGO
    ALSO MATCHES 8 MO: DECAYED
    Thread

    restore hangs after manifest load → use LEGACY_FETCHER=1.

BOOSTED BY THIS SIGNAL PENALIZED
図 4ハイブリッド検索のインタラクティブデモ。クエリ「restore hangs after manifest load」に対し、全文検索(共有トークンなしで失敗)・埋め込み(パラフレーズで一致)・IDF(希少トークン ckpt_prefetch を検出)・時間減衰(新しい方が勝つ)の各判定を切り替えて見られる。INTERACTIVE

重要なのは、単一のスコアラーを信用しないという原則だ。各技術が同じコーパスに対してそれぞれのランキングを生成し、それらの「見え方」はクエリ時に融合される(SECTION 07 のリランキング参照)。

Socket Mode — リアルタイム取り込みSOCKET MODE

データをリアルタイムに収集するため、ワークスペースに Slack ボットをインストールし Socket Mode で稼働させている。Slack が永続 WebSocket 越しにすべてのメッセージイベントをプッシュしてくるため、Web API のポーリングでレート制限を浪費せずに済む。

イベント到着時は即座に ACK を返し、安定したイベント ID で重複排除し、取り込みコンシューマ向けにマークする。ここで面白いのは、取り込みコンシューマが新着メッセージを単体では保存しないことだ。メッセージが属するスレッドを解決し、親とすべての返信を含む会話全体を Slack API から再取得し、スレッド丸ごとを 1 行として書き戻す。既存スレッドへの返信は親と兄弟メッセージすべての再取得を引き起こすので、保存されたコンテンツ・参加者リスト・最終活動時刻は常に会話の完全な状態を反映する。

また、Slack チャンネルごとに独立したデータソースを持たせている。これによりデータ鮮度を細かくチューニングできる。たとえば多忙なインシデントチャンネルだけ取り込み頻度を上げる、といった運用が可能だ。

スレッドの蒸留THREADS AND MESSAGES — DISTILLATION

生の Slack テキストは、Postgres の全文検索(GIN)インデックスによって着地した瞬間からキーワード検索可能になる。しかし有用なベクトル検索のためには追加処理を行う。「蒸留(distillation)」と呼ばれる工程で、LLM がスレッド全体から構造化データを抽出する。

  • エンジニアが実際に検索しそうな一行の質問文
  • 短い要約
  • 解決策(resolution)
  • 言及されたシステムとコード参照
#CKPT-SUPPORT / THREAD_8F42 FULL THREAD INPUT
  1. 09:14
    QUESTION
    Maya

    Restore stalls after manifest load on the larger cluster. Small runs are fine.

  2. 09:17
    SUMMARY
    Owen

    I can reproduce with 128 shards. The logs stop before cache warmup.

  3. 09:18
    CONTEXT
    Sam

    My laptop also stalls when it sees Monday.

  4. 09:21
    RESOLUTION
    Maya

    Setting CKPT_PREFETCH=4 makes it complete. The default is too high for the NFS mount.

STRUCTURED ARTIFACT ONE PER THREAD
{
"question" "Why does restore stall after manifest load?"
"summary" "Large restores stop before cache warmup."
"resolution" "Set CKPT_PREFETCH=4 for the NFS mount."
"systems" ["checkpoint restore", "NFS"]
"code_refs" ["CKPT_PREFETCH"]
}
EMBEDDING ROW PGVECTOR
NORMALIZED DOCUMENT

Question + summary + resolution + systems + code references

sourceslack_thread
source_idthread_8f42
embedding3,072 dims
metadatachannel + authors + time
図 5蒸留のインタラクティブデモ。#ckpt-support チャンネルの生スレッド(雑談やノイズを含む)から、LLM が QUESTION / SUMMARY / RESOLUTION / CONTEXT を抽出していく様子をステージ切替で追える。INTERACTIVE

埋め込まれるのはこれらの抽出データであり、元のトランスクリプトは直接埋め込まれない。実験では、スレッドを一貫したフォーマットに正規化したとき精度が大きく向上した。付加されたメタデータはセマンティックマッチにもより有用なシグナルを与える。

バースト — 埋もれた重要メッセージの救出BURSTING

ここまでで Slack 検索は十分良くなったが、同じ問題に繰り返し遭遇した。長いスレッドの中の重要なメッセージが、スレッドレベルの要約に必ずしも反映されないのだ。

個々のメッセージのシグナルを増幅するために使うのがバースト(bursting)だ。バーストとは同一著者による連続したメッセージのまとまりのこと。バースト単位で、スレッドのトピックを文脈として先頭に付与した上で埋め込む(Anthropic の Contextual Retrieval の考え方 [02])。答えが「スレッド要約に語彙が残らない 1 本の脱線メッセージ」に眠っていることがあるからで、バースト埋め込みはそのメッセージを単独で発見可能にする。

低シグナルなデータが DB に到達するのを防ぐため、各バーストは重み付きシグナルの組み合わせでスコアリングされ、閾値を超えたものだけが埋め込まれる。

  • コーパス全体で相対的に希少なトークン(IDF 4.0 以上)を含む。
  • 結合後のバーストが200 文字以上ある。
  • バースト内の 1 つ以上のメッセージにリアクションが付いている(ソーシャルブースト)。
A Slack thread split into same-author bursts and filtered by signal AUTHOR A - SHORT AUTHOR A - FOLLOW-UP AUTHOR B - TECHNICAL DETAIL AUTHOR B - RESOLUTION AUTHOR C - ACK BURST 01 - FILTERED BURST 02 - EMBEDDED SHORT - COMMON TOKENS - NO REACTIONS LONG - RARE TERMS - REACTED TO
図 6バーストのフィルタリング。短く一般的なトークンだけでリアクションもない BURST 01 は棄却され、希少語を含みリアクションが付いた BURST 02 だけが埋め込まれる。

蒸留の後、基準を満たしたバーストは埋め込まれ、スレッドレベルのレコードと並んで同じ埋め込みテーブルに格納される。

SECTION 05

コードリポジトリと CocoIndex

CODE REPOSITORIES

当初、コードリポジトリの埋め込みが本当に必要かは社内でも議論があった。Claude Code のような CLI ツールの台頭で「grep があれば十分では?」という感覚があったからだ。しかし業界内の対話と、大規模コードベースでのセマンティック検索に関する Cursor の知見 [10] を読み、試すことを決めた。

Cerebras には多数の内部リポジトリがあり、中には 40 GB を超えるものもある。最大の懸念は「どう効率的に最新状態を保つか」だった。

CocoIndex による差分埋め込みUSING COCOINDEX TO MAINTAIN CODE EMBEDDINGS

数度の実験を経て採用したのが CocoIndex——コードベースのベクトル化に特化したオープンソースのドキュメント埋め込みフレームワークだ。

各リポジトリのコードは、粗→細の順に並べた言語別の正規表現境界で分割する。スプリッタはまずクラスのような高水準の境界を試し、チャンクがまだ大きすぎればメソッド境界、さらに小さいブロックへとフォールバックする。得られたチャンクを埋め込み、ベクトルを Postgres に書き込む。1 つのファイルからファイルレベル・関数レベルなど複数の粒度の埋め込みが生成されることもある。

図 7言語対応チャンキングのインタラクティブデモ。checkpoint_loader.cc を「N トークンごとの機械的分割(関数本体がウィンドウ境界で泣き別れ)」と「言語境界を意識した分割(意味の通ったノード単位)」で切り替えて比較できる。INTERACTIVE

CocoIndex は同期メタデータを Postgres で管理し、コミットごとに変更されたコードチャンクだけを再埋め込み・再エクスポートする。リポジトリ全体の再計算は不要だ。同期状態と埋め込みストアが同じデータベースに同居する構成は、Cerebras のスタックと特に相性が良かった。

コードベースの数が増えてからは、リポジトリのオンボーディングをチームが自分で提出できる設定ファイルに移行した。ファイルパスレベルの許可リスト・拒否リストもここに含まれる。

SECTION 06

カスタムデータソース

CUSTOM DATA SOURCES

既に自前のデータベースを持つチームは、ナレッジベースに参加するためだけにデータを Slack やドキュメントシステムへ移したくはなかった。彼らが求めたのは、既存のテーブルの上に同じクエリ面が乗ることだ。

これを支えるのがプラグインスクリプト方式だ。チームは「自分たちのシステムからデータを読み、埋め込みテーブルと同じ形の行を出力する小さな Python モジュール」と、対応するデータソース定義をプルリクエストで提出する。

スクリプトが他のすべての埋め込み行と同じスキーマで共有データベースに書き込む限り、スタックの残りは一切変更なしで動く。そのデータは Slack・コード・ドキュメントと並んで検索可能になり、システムの他の場所に特別扱いのコードは存在しない。

SECTION 07

クエリパイプライン — 計画・融合・合成

PLANNING, RERANKING, MCP AND WEB UI

プランニングとツールのファンアウトPLANNING AND TOOL FAN-OUT

すべてのクエリは、まず短いプランニングパスを通る。LLM が「どのツールとデータソースが効きそうか」を判断する工程だ。主要ツールは次の 6 つ。

subsystem_index
ファイル単位の LLM 要約。
search
Slack・Wiki・コードなど全インデックスを横断する統合ベクトルパイプライン。内部でマージとリランクまで行う。
search_slack
Slack への直接検索。
search_code
ソースリポジトリへの ripgrep。
recent_prs
質問に関連する最近のプルリクエスト。
who_knows
そのトピックについて実績のある専門家(人)を探す。

プランナーは「何がインデックスされているか」のコンパクトな記述——どんなプロジェクトがあり、各プロジェクトでどのソースが使え、各ソースが何に答えるのが得意か——の上で動く。ユーザーのクエリとアクティブなスコープを入力に、ツール選択を出力し、エグゼキュータがそれらを並列にファンアウトして共通のエビデンス形式に正規化し、最終合成 LLM へ渡す [04]。

Planner, parallel tool execution, evidence normalization, and synthesis QUESTION PLANNER SEARCH SEARCH_SLACK SEARCH_CODE RECENT_PRS WHO_KNOWS EVIDENCE SYNTHESIS NORMALIZED ROWS ANSWER + CITATIONS
図 8クエリ実行の全体フロー。QUESTION → PLANNER がツールを選択 → SEARCH / SEARCH_SLACK / SEARCH_CODE / RECENT_PRS / WHO_KNOWS を並列実行 → 正規化されたエビデンス → SYNTHESIS。

リランキング — RRF と小型リランカーRERANKING

語彙がクエリと重なっているだけで、別の質問に答えている文書が上位に浮上してしまうことがある。リランキングの前段として、互換性のない各リトリーバーの結果リストを Reciprocal Rank Fusion(RRF)[03] で結合する。各文書について、出現したリストごとに weight / (60 + rank) を加算する(デフォルト weight は 1.0、平滑化定数は 60)。

図 9RRF のインタラクティブデモ。VECTOR / FTS / THREAD SUMMARIES 各リストのランキングが Σ 1/(60+rank) で融合され、複数リストに顔を出す文書が単独 1 位の文書を逆転する様子を実際のスコア計算で確認できる。INTERACTIVE

平滑化定数の働きで、単独の強い一票よりも合意(コンセンサス)が重視される。複数のリトリーバーで上位に顔を出す文書は、どれか 1 つで 1 位を取っただけの文書に勝てる。その後、重複チャンクを 1 ソースにマージし、1 ファイルが提供できる結果数に上限を設け、多様性のある上位 20 件を得る。

元のクエリとこれらの候補を小型のリランカーモデルに送り、各文書に 0〜10 のスコアを付けさせ、上位 10 件を残す [06]。

ランキング確定後、勝者には文脈を復元する。たとえば Wiki のセクションがマッチしたら前後の隣接セクション(計 2 つ)を引き込み、チャンキングで切り離された見出し・前提条件・注意書きを失わないようにする。読者は「文脈を失った孤独な段落」ではなく、完結したスニペットを受け取れる。

つまり検索の出力は、異なるリトリーバーから融合され、ソースレベルで重複排除され、実際の質問に対してリランクされ、最後に周辺文脈まで展開された「証拠のパケット」である。

MCP 統合 — エージェントに委ねるMCP

MCP 統合では、検索の構成要素を「この質問に答えよ」という単一エンドポイントの裏に隠すのではなく、直接ツールとして公開する。これらのツールは意図的にシンプルで、可能な限り LLM を使わない。クライアントが速く・安く叩けるようにするためだ [05]。

各 MCP ツールは search_slacksearch_codesearchwho_knows といった検索プリミティブに 1 対 1 で対応する。入出力は狭く、構造化され、安定しているので、どんなクライアントやエージェントからでも、ツール内部にオーケストレーションロジックを埋め込むことなく呼び出せる。

ほとんどのツールはベクトル検索・字句検索・ripgrep のような 1 本のクエリパイプラインを実行し、軽量なスコアリングヒューリスティクスを適用して、生のエビデンス行を返す。

Claude Code をはじめとする MCP 対応エージェントが、オーケストレーションエンジンになる。どのツールをどの順に呼び、結果をどう最終回答やコード編集に組み立てるかはエージェントが決める。検索レイヤー自体はそうした LLM の判断に依存せずリクエストを捌ける。

Web UI — 同じツールをパイプラインで包むWEB UI

Web UI にも同じツール群が存在するが、こちらは全ユーザー質問に対して端から端まで走る完全なクエリパイプラインに接続されている。UI エージェントがプランナーとエグゼキュータを所有する。

PLANNER
軽量な LLM パスがクエリとアクティブなプロジェクトを検査し、呼び出す検索ツール(search、search_slack、subsystem_index など)を選ぶ。
EXECUTOR
ツール呼び出しを並列にファンアウトし、結果を収集して、スコア・鮮度・ソースヒント付きの共有エビデンススキーマに正規化する。
SYNTHESIS
最終 LLM パスが型付きエビデンスの束と元の質問を受け取り、引用・注意書き・ソース横断の統合を含む回答を生成する。

ユーザーから見れば Web UI は「質問すると答えが返る」だけの存在だ。しかし水面下では、MCP クライアントが明示的に再現できるのと同じ Planner → Executor → Synthesizer パターンが走っている。

MCP exposes retrieval primitives while the web UI runs the complete agent pipeline MCP CLIENT WEB UI DIRECT TOOL CALLS RAW EVIDENCE ROWS CLIENT ORCHESTRATES PLANNER EXECUTOR SYNTHESIS
図 10MCP クライアント(左)と Web UI(右)の対比。MCP 側はクライアントがツールを直接呼んで生のエビデンス行を受け取りオーケストレーションを担う。Web UI 側は PLANNER → EXECUTOR → SYNTHESIS の内蔵パイプラインが同じツール群を包む。
SECTION 08

組織化 — プロジェクトとスコープ検索

ORGANIZATION: PROJECTS AND SCOPED SEARCH

コーパスが育つにつれ、「あらゆる場所のあらゆるものを検索する」は急速に役立たなくなった。コンパイラチームのエンジニアはインフラの運用手順書を検索結果に混ぜてほしくないし、逆もまた然り。デフォルトで検索を関連性の高いものにする仕組みがプロジェクトだ。

プロジェクトは、クエリが走るワークスペースを組織する第一の単位で、データソースの名前付きバンドルである。特定の Slack チャンネル、コードリポジトリ、内部データベース、ドキュメントスペースを、チームやイニシアチブ単位で束ねる。

プロジェクトは意図的に軽量だ。共有インシデントチャンネルや中央プラットフォームリポジトリのような同一のデータソースは、複製されるのではなく複数のプロジェクトから参照される

Projects reference shared data sources without duplicating them COMPILER PROJECT PLATFORM PROJECT COMPILER SLACK MONOLITH REPO SHARED INCIDENTS PLATFORM REPO CLOUD RUNBOOKS DEFAULT QUERY SCOPE DEFAULT QUERY SCOPE
図 11プロジェクトによるスコープ。COMPILER PROJECT と PLATFORM PROJECT がそれぞれのチャンネル・リポジトリを束ねつつ、SHARED INCIDENTS チャンネルは両プロジェクトから共有参照される。

オンボーディングとデフォルトONBOARDING AND DEFAULTS

オンボーディング時、ユーザーは自分の働き方に合ったデフォルトプロジェクト(ML 学習インフラ、コンパイラ、データセンター運用など)の選択または作成を促される。

デフォルトプロジェクトはユーザープロファイルに保存され、クエリを自動的にスコープする。新入りのエンジニアは、どの Slack チャンネル・リポジトリ・ドキュメントスペースが重要かを学ぶ前から、シグナルの高い回答を得られる。

SECTION 09

まとめと考察

FINAL THOUGHTS

結局のところ、このナレッジベースが機能しているのは、すべてを 1 つの硬直したシステムへ押し込む代わりに、情報が既に生きている場所へ出向いているからだ。複数の検索技術の組み合わせによって証拠を素早く提示できる。その結果は、現実の社内データに対して柔軟でありながら、Cerebras が成長し続けても有用であり続ける程度に構造化された検索体験である。

EDITOR'S NOTE — 編集ノート(原文にない所感) 本記事の設計は「RAG の教科書」として非常に完成度が高い。特に注目すべきは、(1) ベクトル検索万能論を早期に棄却し字句・希少性・鮮度と組み合わせた点、(2) 生ログではなく LLM で正規化した表現を埋め込む「蒸留」、(3) 検索プリミティブを MCP で裸のまま公開しオーケストレーションをエージェント側へ委譲する設計判断、の 3 点。単一 Postgres テーブル + プラグイン PR という「開発者が自走できる」拡張モデルも、全社ツールが 3 ヶ月で定着した理由の一端だろう。
SECTION 10

参考文献

REFERENCES(原記事の引用文献)
  1. Malkov & Yashunin, Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs, arXiv:1603.09320 / IEEE TPAMI 2018.
  2. Anthropic, Introducing Contextual Retrieval, 2024.
  3. Cormack, Clarke & Büttcher, Reciprocal Rank Fusion Outperforms Condorcet and Individual Rank Learning Methods, SIGIR 2009.
  4. Li et al., Search-o1: Agentic Search-Enhanced Large Reasoning Models, arXiv:2501.05366, 2025.
  5. Anthropic, Code Execution with MCP, 2025.
  6. Liu et al., Lost in the Middle: How Language Models Use Long Contexts, arXiv:2307.03172, 2023.
  7. Anthropic, Use XML Tags.
  8. Salesforce/Slack Engineering, How Slack AI Processes Billions of Messages.
  9. Improving Agents, Best Nested Data Format.
  10. Cursor, Improving Agent with Semantic Search, 2025.