エージェント基盤・プロトコル

LlamaIndexとは|40文字ごとに切ったら、答えが隣のかたまりに逃げた

LlamaIndexとは何をする枠組みなのか文書の分け方で何が変わるのかどう分ければよいのか

社内の規程やマニュアルをAIに読ませるとき、文書をどう分けて保管するかで答えの当たり方が変わります。

規程を模した文書で測ったところ、40文字ごとに切ると6問中1問で答えが隣のかたまりに逃げました。段落の区切りで切れば6問とも当たります。

この記事の要点

  • LlamaIndexは手元のデータをAIに読ませるための枠組み
  • 40文字ごとに切ると6問中5問、60文字ごとだと4問
  • 段落の区切りで切れば6問すべて当たる
  • 大きく切っても当たるが、1回に渡す量が4倍になる

40文字ごとに切ったら、答えが隣のかたまりに逃げた

文書を実際に分割して検索しました。40文字ごとで6問中5問、段落の区切りなら6問すべて当たります。

LlamaIndexのような枠組みを使うとき最初に決めるのが、文書の分け方です。どれだけ効くのかを規程を模した340文字の文書で測りました。

分割も検索も本当に実行しています。問い6問と、その答えが書かれている記述はコードに書いてあり、当たったかどうかを機械で判定しました。

javascript
// 分割: 指定した文字数ごとに切る(重なりなし)
function chunk(text, size) {
  const out = [];
  for (let i = 0; i < text.length; i += size) out.push(text.slice(i, i + size));
  return out;
}

// 検索: 問いに含まれる語を最も多く含むかたまりを1つ返す
function search(chunks, terms) {
  let best = null, bestN = -1;
  for (const c of chunks) {
    const n = terms.filter((t) => c.includes(t)).length;
    if (n > bestN) { bestN = n; best = c; }
  }
  return best;
}
text
社内規程を模した本文 340文字(8項目)に対して 6問

分け方              かたまり数  平均文字数  答えに当たった数
40文字ごと                   9個        38文字             5 / 6
60文字ごと                   6個        57文字             4 / 6
100文字ごと                  4個        85文字             5 / 6
200文字ごと                  2個       170文字             6 / 6
段落の区切りで                  8個        43文字             6 / 6

40文字ごとに切った場合に外した問い(1問)
  「日当・日帰り」  求める記述: 1000円
    返ったかたまり: "認める。\n【日当】日当は国内出張1日あたり2000円とする。日帰りの場合は100"

外した1問の中身が分かりやすいはずです。「日帰りの場合は100」でかたまりが切れていて、続きの「0円とする」が次に行っています

語と答えが離れる

これが機械的に切ったときの典型的な外し方です。問いの語は含んでいるのに、答えの数値だけが隣のかたまりに逃げます

しかも返ってきたかたまりは、問いの語をきちんと含んでいます。ですから検索としては当たっているように見えます。

大きく切れば当たるが

200文字ごとに切ると6問すべて当たりました。ただしかたまりが2個しかなく、1回に渡すのは平均170文字です。

極端に言えば、文書全体を1つのかたまりにすれば必ず当たります。そのかわり全部を渡すことになり、絞り込んだ意味がなくなります

意味の区切りで切る

段落の区切りで切った場合が最良でした。6問すべて当たり、平均は43文字。200文字ごとと同じ命中で、渡す量は4分の1です。

理由は単純で、1つの決まりが1つのかたまりに収まっているためです。文字数ではなく、意味の切れ目で分けるほうが効きます。

大きく切れば当たる。ただし渡す量も増える。意味で切れば両立する。

40文字ごと(5/6問)1かたまりの平均文字数38段落区切りとの差43文字段落の区切り(6/6問)4343文字200文字ごと(6/6問)43127170文字本文340文字での実測。段落の区切りは200文字ごとと同じ命中で、渡す量は4分の1だった。
図1 ── 分け方ごとの命中数と、1回に渡す平均文字数
出典LlamaIndex Developer Documentation「Welcome to LlamaIndex」2026-08-18 確認
The most popular example of context-augmentation is Retrieval-Augmented Generation or RAG , which combines context with LLMs at inference time.
原文LlamaIndex Developer Documentation「Welcome to LlamaIndex」 この内容の有効期限2027-02-18

LlamaIndexとは何をする枠組みなのか

手元のデータの上でAIを動かすための枠組みです。取り込み、分割、保管、検索までを扱います。

LlamaIndexは、手元にあるデータの上でAIを動かすための枠組みです。公式の説明でも、自分のデータの上でエージェントを組むための枠組みだとされています。

扱う工程

  1. 取り込み。ファイルや外部の場所から読み込む
  2. 分割。前の節で扱った部分
  3. 保管。探せる形で置いておく
  4. 検索と回答。問いに関係する部分だけ渡す

この流れ全体は、答えを出す時点で外部の情報を組み合わせる形になります。公式の説明では、この考え方の最もよく知られた例が検索を組み合わせる方式で、推論の時点で文脈とモデルを結びつけるものだとされています。

検索だけの道具ではない

位置づけを間違えないでください。同じ文書では、検索の流れを、仕事を進めるための多くの道具のうち1つとして使えるエージェントの枠組みを提供するとされています。

つまり検索は手段の1つです。道具を渡して呼ばせる考え方はツール利用の記事で扱っています。

なぜ渡す部分を絞るのか

文書を全部渡せば分割は要りません。それでも絞るのは、渡す量がそのまま費用と時間に効くためです。

記録を全部渡す場合と絞る場合の差は長期記憶の記事で数字とともに扱っています。500件で32,114トークンと3,210トークンでした。

余談 外した問いを見ると分け方が分かる

測ってみて有効だったのは、外した問いについて、答えがどのかたまりに入っていたかを見ることでした。前の節では「0円とする」が次のかたまりに行っていました。ここまで見れば、切り方をどう直すべきかがすぐ決まります。

出典LlamaIndex Developer Documentation「Welcome to LlamaIndex」2026-08-18 確認
LlamaIndex is the leading framework for building LLM-powered agents over your data with LLMs and workflows .
原文LlamaIndex Developer Documentation「Welcome to LlamaIndex」 この内容の有効期限2027-02-18

文書をどう分ければよいのか

意味の切れ目で分けます。文字数だけで切ると、答えの数値が隣に逃げる形の外し方をします。

LlamaIndexで文書を扱うとき、分け方の失敗はいちばん気づきにくい種類の問題です。検索としては当たっているように見えるためです。

外し方が静か

前の節で外した問いを思い出してください。返ってきたかたまりには「日当」も「日帰り」も入っていました。足りなかったのは金額の1桁だけです。

この状態でAIに答えさせると、渡された範囲から読み取れる何かを答えます。金額が切れていることは指摘されません。

分けるときの順番

  1. 意味の切れ目で分ける。段落、見出し、条項
  2. 1つの決まりが1つに収まるか確かめる。分かれていたら大きくする
  3. 実際の問いで試す。5問ほどでよい
  4. 文字数だけで切る。数値や条件が途中で切れる

3番目を飛ばさないでください。分け方の良し悪しは、実際に聞きたい問いで試すまで分かりません。試験の作り方はシミュレーション評価の記事で扱っています。

大きくすればよいわけでもない

外れるなら大きく切ればよい、とはなりません。200文字ごとに切った場合、渡す量は段落区切りの4倍でした。

渡す量が増えると、関係のない記述も一緒に入ります。判断が鈍るうえに費用も増えるので、当たればよいというものではありません。

文字数で切ると、数値の途中で切れても検索は当たったように見える。

充足 2 / 4意味の切れ目で分けている段落の区切りは6問すべて当たり、平均43文字に収まった実際の問いで試している40文字ごとは5/6、60文字ごとは4/6。試すまで良し悪しは分からない文字数だけで機械的に切っている「日帰りの場合は100」で切れ、続きの「0円とする」が次に逃げた外れたら大きく切ればよい200文字ごとは当たるが渡す量が4倍。絞り込んだ意味が薄れる本文340文字・6問での実測にもとづく。段落の区切りが命中と渡す量の両方で最良だった。
図2 ── 分け方を決めるときの点検項目
渡した範囲を記録する答えがおかしかったとき、どのかたまりを渡したかが残っていないと原因を切り分けられません。分け方が悪いのか、モデルの読み取りが悪いのかが判定できないためです。記録の設計はエージェント可観測性の記事で扱っています。
出典LlamaIndex Developer Documentation「Welcome to LlamaIndex」2026-08-18 確認
LlamaIndex provides a framework for building agents including the ability to use RAG pipelines as one of many tools to complete a task.
原文LlamaIndex Developer Documentation「Welcome to LlamaIndex」 この内容の有効期限2027-02-18

よくある質問

分ける大きさは大きいほどよいのですか
当たりやすくはなりますが、1回に渡す量が増えます。この記事の計測では、200文字ごとに切ると平均170文字を渡すことになり、段落の区切りの43文字と比べて4倍でした。
なぜ細かく切ると外れるのですか
問いに含まれる語と、答えの記述が別のかたまりに分かれてしまうためです。計測では「日当」という語のあるかたまりに「1000円」が入りませんでした。
LlamaIndexは検索の道具ですか
検索を含みますが、それだけではありません。手元のデータを扱うエージェントを組む枠組みで、検索を道具の1つとして使う形が案内されています。
文書の形式は何でもよいのですか
分ける単位が取れる形になっているかが効きます。段落や見出しの区切りがはっきりしている文書ほど、うまく分けられます。

まとめ

  • LlamaIndexは手元のデータをAIに読ませる枠組み
  • 40文字ごとに切ると1問で答えが隣に逃げた
  • 段落の区切りで切れば6問すべて当たった
  • 大きく切っても当たるが渡す量が4倍になる

今日から始められること

  1. AIに読ませたい文書の、意味の区切りがどこかを確かめる
  2. その区切りで分けたときの1かたまりの文字数を数える
  3. 実際に聞きたい問いを5問ほど用意して、当たるかを試す
  4. 外れた問いについて、答えがどのかたまりに入っていたかを見る

実務で組んだLlamaIndexのワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る