
技術解説
Corpus2Skill とは何か — 概要編
約7分
目次を開く
Corpus2Skill(コーパス・トゥ・スキル)とは、規約やマニュアルのような構造の定まっていない文書の集まり(コーパス)を、AIが上から辿れる階層構造のスキルツリーへ変換する技術です。VoiceCore はこの技術を中核に据え、お預かりした文書をナレッジツリーへコンパイルしたうえで、会話中にAIがそのツリーを一段ずつ降りて根拠となる文書にたどり着く仕組みを採用しています。この記事では、Corpus2Skill が何をする技術で、何が嬉しいのかを、専門用語を定義しながら概観します。
Corpus2Skill は、何をする技術なのか?
Corpus2Skill がやることは、ひと言でいえば「書類の山に、目次と索引をつけて事典にする」ことです。手元にある利用規約・マニュアル・FAQ・社内規程は、人間が読む順番で書かれてはいますが、AIにとっては「どこに何が書いてあるか」の地図がない、ただの長いテキストの集まりです。この状態をコーパス(corpus=文書の集まり)と呼びます。
Corpus2Skill は、このコーパスを事前に読み込んで、内容の近い部分をまとめ、章立てをつくり、各章に「ここには何が書いてあるか」の要約を添えます。できあがるのが、上から順に降りていける階層構造——スキルツリー、VoiceCore の呼び方ではナレッジツリーです。この変換処理をコンパイルと呼びます。プログラムのソースコードを実行可能な形へ変換するコンパイルと同じ意味で、「読むための文書」を「辿るための構造」へ変換するという含意があります。
重要なのは、この変換が会話とは切り離されたタイミングで一度だけ行われることです。質問を受けるたびに文書を処理するのではありません。規約を改定したときに、同じ手順でツリーを作り直すだけです。
できあがるツリーは、どんな形をしているのか?
ナレッジツリーは、フォルダ階層とよく似た形をしています。各階層には、その枝が何についての内容かを示す要約ファイル(SKILL.md)が置かれ、一番下の葉にあたるノードには、実際の文書本文が docID 付きで紐づきます。たとえば解約に関する規約であれば、次のような構造になります。
- 規約・課金ツリー(ルートの要約)
- 解約手続き(この枝の要約)
- 年額プラン(この枝の要約)
- 解約条件(年額)=葉ノード・本文doc-42
ここで押さえておきたいのは、途中の階層には本文ではなく要約が置かれているという点です。AIは各階層でまず要約だけを読み、「この枝に降りるべきか」を判断します。全文を読み込む必要がないため、大きなコーパスでも上から数段降りるだけで目的の条項に到達できます。人間が分厚い規約集を扱うときに、まず目次を見るのと同じ発想です。
なぜ、わざわざツリーにする必要があるのか?
理由は、業務文書には条件分岐が多いからです。年額プランと月額プラン、正社員と契約社員、法人契約と個人契約——業務文書では、言葉づかいがほとんど同じで結論だけが違う条項が並んで書かれます。「年額プランの解約はどうすれば?」という質問に対して、月額プランの手順を返してしまう事故は、この構造から生まれます。
ツリーにしておくと、この分岐が「どちらか一方を選び切る操作」に変わります。「解約手続き」まで降りた時点で、AIの前には「年額プラン」と「月額プラン」という2つの枝が明示的に現れます。似ているかどうかを測るのではなく、どちらかを選ぶ。選んだ以上、もう一方の条項が回答に混ざることはありません。
RAG とは、どこが違うのか?
広く使われている RAG(検索拡張生成)は、文書を細かく分割してベクトル化し、質問に意味が近い断片を複数拾ってAIに渡す方式です。手軽に始められる強力な方法ですが、「意味が近い」ことと「条件が一致している」ことは別物です。年額と月額のように言葉が近い条項は、ベクトルの近さでは区別しづらく、条件分岐の多い文書ほど隣接した誤りを拾いやすくなります。
| 観点 | RAG(検索拡張生成) | Corpus2Skill(ナビゲーション探索) |
|---|---|---|
| 文書の扱い | 細かい断片に分割して平らに並べる | 階層構造のツリーへコンパイルする |
| 答えの探し方 | 質問に意味が近い断片を集める | 各階層の要約を読み、枝を選んで降りる |
| 条件分岐 | 似た条項が混ざりやすい | どちらか一方を選び切る |
| 処理のタイミング | 会話のたびに検索する | コーパス更新時に一度コンパイルする |
| 残る記録 | 参照した断片 | 選んだ枝と、その選択理由 |
両者の違い、とくに「なぜ RAG は年額の解約を聞かれて月額の手順を返すのか」という具体的な失敗のメカニズムは、なぜ RAG ではなくナレッジツリー探索なのかで詳しく解説しています。あわせて、探索が会話中にどう動くかはナレッジツリー探索の仕組みで図解しています。
Corpus2Skill にすると、何が嬉しいのか?
① 条件分岐で取り違えにくい
最大の実利は、規約・課金・解約のように利用者の不利益に直結する領域で、取り違えが構造的に起きにくくなることです。分岐点で明示的に一方を選ぶため、「似ていたから混ざった」という事故の余地がありません。
② 判断の足跡が、そのまま監査記録になる
ツリーを降りる各段でAIは「なぜこの枝を選んだか」を言語化します。その結果、回答と一緒に「規約・課金ツリー → 解約手続き → 年額プラン → 解約条件(doc-42)」という経路が残ります。参照文書のリンクだけを添える方式と違い、判断の過程そのものが人の読める形で残るため、監査担当者が後から検証できます。
③ 会話のたびに重い処理をしない
コンパイルはコーパスを更新したときだけ実行します。会話中に行うのは「要約を読んで、枝を選ぶ」という軽い操作の繰り返しだけです。検索インデックスを都度作り直すような重い処理を会話に挟まないので、応答までの時間を短く保ちやすくなります。
④ 答えられないときに、答えないでいられる
ツリーのどこにも該当する枝が見つからなければ、「コーパスに該当なし」という結論が明確に出ます。断片を必ず何かしら返してしまう方式に比べ、わからないものをわからないと言えることは、ハルシネーション(もっともらしい誤答)を防ぐうえで大きな安全策になります。
Corpus2Skill はどこから来た技術なのか?
この探索手法は、論文「Don't Retrieve, Navigate」(Sun, Wei, Hsieh, 2026)と、その実装であるオープンソースプロジェクト Corpus2Skill にもとづいています。タイトルの「取得するな、辿れ」がそのまま思想を表しており、検索して断片を取得するのではなく、構造を辿って到達するという発想の転換が中核にあります。VoiceCore はこの考え方を、日本語の業務文書と音声会話という条件に合わせて実装しています。
限界と、正直な現在地
Corpus2Skill は万能ではありません。ツリーの品質は、元になる文書の書かれ方に強く依存します。旧版と新版が混在していたり、例外規定が本則から遠く離れて書かれていたりすれば、その曖昧さはツリーにも引き継がれます。VoiceCore のPoC検証では、条件分岐を含む限定シナリオ・限定コーパス(AI生成の架空規約、30〜50ページ相当)で正解ノードへの到達率7件中7件(100%)を実測していますが、これは限定的な検証環境での結果であり、あらゆる文書・あらゆる質問で100%を保証するものではありません。
まとめ
- Corpus2Skill とは、非構造の文書コーパスをAIが辿れる階層構造のスキルツリーへ変換する技術です。
- 変換(コンパイル)はコーパス更新時に一度だけ行い、会話中は各階層の要約を読んで枝を選ぶだけです。
- 各階層には要約、葉ノードには docID 付きの本文が置かれ、目次を辿るように条項へ到達します。
- RAG が「似ている断片を集める」のに対し、Corpus2Skill は「どちらか一方を選び切る」ため条件分岐に強くなります。
- 選んだ枝と選択理由が残るため、判断の足跡がそのまま監査記録になります。
ここまでが概要です。実際にどうやって文書がツリーに変わり、会話中にAIがどうループを回して降りていくのか——コードの動きに踏み込んだ解説はだれでもわかる Corpus2Skill 実装詳細にまとめました。
VoiceCore は、お預かりした規約・マニュアル・FAQを Corpus2Skill でナレッジツリーへコンパイルし、会話中にそのツリーを辿って根拠つきで答えるお問い合わせ対応AIです。回答と一緒に「どのノードを、なぜ選び、どの文書に至ったか」の足跡を残すため、なぜその回答なのかを後から人が検証できます。自社の規約でどう動くかを確かめたい方は、デモのご相談を承っています。