<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>RAG &#8211; まったりエンジニア</title>
	<atom:link href="https://javeo.jp/tag/rag/feed/" rel="self" type="application/rss+xml" />
	<link>https://javeo.jp</link>
	<description>ほどほどレベルのプログラミング</description>
	<lastBuildDate>Fri, 24 Jul 2026 15:57:23 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2-32x32.png</url>
	<title>RAG &#8211; まったりエンジニア</title>
	<link>https://javeo.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>コンテキストエンジニアリングとは AIに渡す文脈の設計</title>
		<link>https://javeo.jp/context-engineering/</link>
					<comments>https://javeo.jp/context-engineering/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Wed, 22 Jul 2026 22:30:00 +0000</pubDate>
				<category><![CDATA[AI・Claude]]></category>
		<category><![CDATA[Claude Code]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[RAG]]></category>
		<category><![CDATA[生成AI]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=5028</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/07/context-engineering-1024x538.jpg" class="webfeedsFeaturedVisual" /></p>コンテキストエンジニアリングとは AIのコンテキストウィンドウに何を積むかを設計する考え方です プロンプトエンジニアリングとの違いや システムプロンプト RAG メモリ CLAUDE.md など構成要素を初心者向けに噛み砕いて解説します]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/07/context-engineering-1024x538.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<p class="wp-block-paragraph"><strong>コンテキストエンジニアリングとは</strong>、AIに渡す情報(コンテキスト)全体をどう組み立てるかを設計する考え方です<br>プロンプトの言い回しを磨くプロンプトエンジニアリングの先にある、いま急速に広まっているテーマなんです</p>



<p class="wp-block-paragraph">AIに仕事を頼んで、指示じたいは悪くないはずなのに答えがズレる<br>そんなとき、原因は聞き方より<strong><span class="swl-marker mark_yellow">AIに渡している情報そのもの</span></strong>の側にあることが多いです</p>



<p class="wp-block-paragraph">この記事では、コンテキストエンジニアリングとは何かを、プロンプトエンジニアリングとの違い・具体的な構成要素まで初心者向けにまとめます<br>読み終えるころには、次の3つがつかめているはずです</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li><strong>コンテキストエンジニアリングの意味</strong>:AIに何を渡すかの設計だと分かる</li>



<li><strong>プロンプトとの違い</strong>:どちらが上位で、なぜ置き換えではないのか</li>



<li><strong>6つの構成要素</strong>:コンテキストに積むものを1つずつ噛み砕く</li>
</ul>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">この記事は「AIの○○エンジニアリング」連載の2本目です<br>前回の<a href="https://javeo.jp/prompt-engineering-basics/" target="_blank" rel="noopener noreferrer">プロンプトエンジニアリング</a>で見えてきた「聞き方だけでは足りない」という壁を、今回のコンテキストの設計で引き取っていきます</p>
</div></div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>ざっくり言うと「AIの机の上に何を並べておくか」を考える話です</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h2 class="wp-block-heading">コンテキストエンジニアリングとは?まず全体像</h2>



<p class="wp-block-paragraph">結論から言うと、<strong>コンテキストエンジニアリングとは、AIが一度に読み込む情報のかたまり(コンテキスト)に、何をどう積むかを設計する技術</strong>です<br>単発の指示文だけでなく、AIが答えを作るために参照する材料をぜんぶひっくるめて整える、という捉え方なんです</p>



<p class="wp-block-paragraph">AI(正確には<strong>LLM</strong>=大規模言語モデル、文章を予測して作るAIの中身)は、渡された材料をもとに次の一手を組み立てます<br>だから材料が薄かったり、ノイズだらけだったりすると、聞き方をどれだけ工夫しても答えが決まりきらないんです</p>



<p class="wp-block-paragraph">ここで前提になるのがコンテキストウィンドウという言葉です<br>下のメモにまとめておきます</p>



<div class="wp-block-group is-style-big_icon_point"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph"><strong>コンテキストウィンドウ</strong>とは、AIが一度に読み込める情報量の上限(トークンという単位で数える窓)です<br>この窓は入力だけでなく、AIが書き出す答えのぶんも一緒に使います<br>窓じたいは無限ではないので、<strong><span class="swl-marker mark_yellow">限られた席に何を座らせるか</span></strong>を選ぶ発想が要ります<br>コンテキストエンジニアリングは、その席の配分を設計する仕事だと考えると分かりやすいです</p>
</div></div>



<p class="wp-block-paragraph">Claudeの開発元である Anthropic は、コンテキストエンジニアリングを<strong>プロンプトエンジニアリングの自然な発展形</strong>と位置づけています<br>プロンプトを捨てる話ではなく、プロンプトも材料のひとつとして、コンテキスト全体を面倒みる、という広げ方なんです</p>



<p class="wp-block-paragraph">もう少し身近にたとえると、新しく入ったメンバーに仕事を任せる場面に近いです<br>どれだけ優秀な人でも、必要な資料や過去の経緯を渡さなければ良い動きはできません<br>コンテキストエンジニアリングは、AIに対してこの「引き継ぎ資料の準備」を丁寧にやる作業だと考えると、とっつきやすいはずです</p>



<p class="wp-block-paragraph">ここまでの話を1枚の図にすると、こんなイメージになります<br>窓というひとつの器を、性格の違う6種類の情報が分け合っている、という構図で見てもらえると分かりやすいはずです</p>



<figure class="wp-block-image size-large is-style-shadow"><img decoding="async" width="1200" height="820" src="https://javeo.jp/wp-content/uploads/2026/07/context-window-layers.png" alt="コンテキストウィンドウにシステムプロンプト・ツール定義と実行結果・RAG・メモリ・会話履歴・エージェント状態が積み重なっているイメージ図" class="wp-image-5044" srcset="https://javeo.jp/wp-content/uploads/2026/07/context-window-layers.png 1200w, https://javeo.jp/wp-content/uploads/2026/07/context-window-layers-300x205.png 300w, https://javeo.jp/wp-content/uploads/2026/07/context-window-layers-1024x700.png 1024w, https://javeo.jp/wp-content/uploads/2026/07/context-window-layers-150x103.png 150w, https://javeo.jp/wp-content/uploads/2026/07/context-window-layers-768x525.png 768w" sizes="(max-width: 1200px) 100vw, 1200px" /></figure>



<h2 class="wp-block-heading">なぜいま生まれた言葉なのか</h2>



<p class="wp-block-paragraph">コンテキストエンジニアリングは、2025年に一気に広まった比較的あたらしい言葉です<br>ざっくりした流れをおさえておくと、単なるバズワードではなく背景のある概念だと分かります</p>



<ul class="wp-block-list -list-under-dashed">
<li><strong>提唱</strong>:Shopify CEO の Tobi Lütke 氏が2025年6月ごろ、「LLM がタスクを解けるだけの文脈をぜんぶ渡す技術」として言い出したのが起点とされます(正確な日付は諸説あり、ここでは断定しません)</li>



<li><strong>拡散</strong>:AI研究者の Andrej Karpathy 氏が同じ時期に賛同し、言葉として一気に広まりました(命名者というより後押し役の立場です)</li>



<li><strong>体系化</strong>:Anthropic が2025年9月に「Effective context engineering for AI agents」で整理し、実務の枠組みとして定着させました</li>
</ul>



<p class="wp-block-paragraph">背景にあるのは、AIの使い方が<strong>単発の質問</strong>から<strong><span class="swl-marker mark_yellow">自分で何ステップも作業するエージェント</span></strong>へ移ってきたことです<br>1往復で終わって、必要な前提もその場で書き添えられる用事なら、うまい聞き方でだいたい足ります</p>



<p class="wp-block-paragraph">ところが、AIが道具を使って何度も往復しながら進むようになると、途中でどんな情報を持たせ続けるかが結果を左右します<br>この「持たせ続ける材料の設計」に名前がついたのが、コンテキストエンジニアリングなんです</p>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>AIが「単発の相棒」から「作業する部下」に変わったから、渡す資料の設計が要る、という流れです</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h2 class="wp-block-heading">プロンプトエンジニアリングとの違い</h2>



<p class="wp-block-paragraph">ここが多くの人のつまずきどころなので、<strong>プロンプトエンジニアリングとの違い</strong>を表で整理します<br>ポイントは、片方がもう片方を置き換えるのではなく、<strong><span class="swl-marker mark_yellow">プロンプトはコンテキストの一部</span></strong>という包含の関係だという点です</p>


<div class="c-scrollHint sp_"><span>スクロールできます <i class="icon-more_arrow"></i></span></div>
<figure data-table-scrollable="sp" class="wp-block-table"><table style="--table-width:720px;"><thead><tr><th>観点</th><th>プロンプトエンジニアリング</th><th>コンテキストエンジニアリング</th></tr></thead><tbody><tr><td>主な対象</td><td>1回の指示文の言い回し</td><td>窓に積む情報の全体</td></tr><tr><td>中心の問い</td><td>どう聞くか</td><td>何を渡すか</td></tr><tr><td>扱う単位</td><td>文・段落</td><td>指示・知識・履歴・状態のまとまり</td></tr><tr><td>効きやすい場面</td><td>単発の質問や生成(前提が短く済む場合)</td><td>長く動くエージェント作業</td></tr><tr><td>両者の関係</td><td>コンテキストの一部(部分集合)</td><td>プロンプトを内側に含む上位の設計</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「プロンプトエンジニアリングはもう古い」という煽りを見かけますが、そこは冷静に受け止めたいところです<br>実務では指示文の作り込みはいまも必要で、コンテキストという大きな器の中でプロンプトが担う役割が明確になった、と捉えるのが無理のない理解なんです</p>



<p class="wp-block-paragraph">言い換えると、聞き方(プロンプト)を磨くのは点の改善、渡す材料ぜんぶ(コンテキスト)を設計するのは面の改善です<br>点をいくら磨いても面が崩れていると結果は安定しないので、両方を行き来する感覚が実用的です</p>



<p class="wp-block-paragraph">たとえば「この関数のバグを直して」と頼む場面を考えます<br>プロンプトの工夫は、頼み方を「エラー内容も添えて原因から説明して」と具体的にすること<br>コンテキストの設計は、そもそも<strong>該当のコードやエラーログ・関連する仕様まで一式を渡しておく</strong>ことです<br>後者が抜けていると、聞き方をどれだけ整えても的外れな答えになりがちなんです</p>


<div class="p-blogParts post_content" data-partsID="4603">
<div class="jv-books" data-shelf="ai"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Claude・生成AIを学べる本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240" alt="面倒なことはChatGPTにやらせよう" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">面倒なことはChatGPTにやらせよう</p><p class="jv-book-author">カレーちゃん・からあげ</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4065342902">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4065342902">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240" alt="実践Claude Code入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">実践Claude Code入門</p><p class="jv-book-author">西見公宏・吉田真吾・大嶋勇樹</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297153548">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297153548">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240" alt="Claude CodeによるAI駆動開発入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Claude CodeによるAI駆動開発入門</p><p class="jv-book-author">平川知秀</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297152754">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297152754">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='ai';
var all=document.querySelectorAll('.jv-books[data-shelf="'+SHELF+'"]');
var root=null;
for(var k=0;k<all.length;k++){if(!all[k].dataset.jvinit){root=all[k];break;}}
if(!root)return;
root.dataset.jvinit='1';
var POOL=[{"t": "面倒なことはChatGPTにやらせよう", "a": "カレーちゃん・からあげ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F", "id": "4065342902"}, {"t": "実践Claude Code入門", "a": "西見公宏・吉田真吾・大嶋勇樹", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F", "id": "4297153548"}, {"t": "Claude CodeによるAI駆動開発入門", "a": "平川知秀", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F", "id": "4297152754"}, {"t": "3時間で身につくClaude活用術", "a": "尾藤克之", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5495/9784866215495_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4866215496?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F", "id": "4866215496"}, {"t": "開発効率をアップする! Claude Code 実用入門", "a": "大澤文孝", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0206/9784839990206.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4839990204?tag=javeo2022-22", "rk": "", "id": "4839990204"}, {"t": "Microsoft 365 Copilot踏み込み活用術", "a": "太田浩史", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3401/9784295023401_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/429502340X?tag=javeo2022-22", "rk": "", "id": "429502340X"}, {"t": "Google NotebookLM 即効活用大全", "a": "増田智明", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5995/9784297155995_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297155990?tag=javeo2022-22", "rk": "", "id": "4297155990"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>


<h2 class="wp-block-heading">コンテキストに積む6つの構成要素</h2>



<p class="wp-block-paragraph">では、コンテキストには具体的に何が入るのか?<br>代表的なものを6つの構成要素に分けて、1つずつ噛み砕きます</p>



<ul style="background-color:#f3fafe80" class="wp-block-list is-style-num_circle -list-under-dashed has-background">
<li><strong>システムプロンプト</strong>:AIの役割やルールを決める土台の指示、「あなたは○○の担当です」のような前提</li>



<li><strong>ツール定義と実行結果</strong>:AIが使える道具(検索・ファイル読み書きなど)の説明と、実際に動かした結果</li>



<li><strong>RAG(外部知識の検索)</strong>:手元の資料やデータベースから関連情報を引っぱってきて渡す仕組み</li>



<li><strong>メモリ</strong>:過去のやり取りやユーザーの好みを覚えておいて、あとで再利用する情報</li>



<li><strong>会話履歴</strong>:ここまでの往復のログ、いま何を話しているかの流れ</li>



<li><strong>エージェント状態</strong>:いま何の作業の途中か、次に何をする予定かという進行の記録</li>
</ul>



<p class="wp-block-paragraph">この6つが、同じひとつのコンテキストウィンドウ(限られた窓)を分け合います<br>だからこそ、何を厚く積んで何を削るかの<strong>配分の判断</strong>が、コンテキストエンジニアリングの中身になるわけです</p>



<p class="wp-block-paragraph">6つのうち、初心者がイメージしにくいのはツール定義と実行結果・エージェント状態あたりでしょうか?<br>前者は「AIが検索や電卓を使えるように渡す取扱説明書とその使用結果」、後者は「作業のしおり(いまどこまで進んだか)」だと思うと近いです</p>



<p class="wp-block-paragraph">言葉の説明だけだとイメージしにくいので、実際にどんな中身が窓に載るのかをミニ例で並べてみます<br>同じ「情報」でも、要素ごとに質がぜんぜん違うのが伝わるはずです</p>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<ul class="wp-block-list -list-under-dashed">
<li>RAG:社内の経費規程PDFから「交通費の上限は1日いくらか」の該当ページだけを抜き出して渡す</li>



<li>メモリ:前回のやり取りで決めた「返信は敬語で・結論から」という好みを覚えておき、別の日の相談でも引き継ぐ</li>



<li>会話履歴:「さっきの案のBでいこう」と言えば通じるように、ここまでの往復のログをそのまま持たせる</li>
</ul>
</div></div>



<p class="wp-block-paragraph">こう並べると、6要素は「知識(RAG)」「記憶(メモリ)」「いまの流れ(会話履歴)」のように役割が分かれていると分かります<br>ぜんぶ同じ袋に放り込むのではなく、種類ごとに何をどれだけ載せるかを考えるのが、コンテキスト設計の勘どころなんです</p>



<h3 class="wp-block-heading">RAG(外部知識の検索)とは</h3>



<p class="wp-block-paragraph">初めて聞く方向けに、<strong>RAG</strong>だけ少し補足します<br>RAG(Retrieval-Augmented Generation)とは、<strong><span class="swl-marker mark_yellow">AIが答える前に関連資料を検索し、それを取り込んでから答えを作る仕組み</span></strong>です</p>



<p class="wp-block-paragraph">AIの中身が最初から知っていることには限りがあり、社内マニュアルや最新の情報までは覚えていません<br>そこで、外から必要な資料を引っぱって窓に載せてあげると、AIはその場で参照しながら答えられます</p>



<p class="wp-block-paragraph">身近な例だと、手元のPDFを読ませて質問に答えてもらう使い方がRAGの発想に近いです<br>言葉としてのRAGや周辺用語は<a href="https://javeo.jp/ai-glossary/" target="_blank" rel="noopener noreferrer">AI用語集</a>にもまとめているので、あわせてどうぞ</p>



<h3 class="wp-block-heading">メモリと会話履歴の違い</h3>



<p class="wp-block-paragraph"><strong>メモリ</strong>と<strong>会話履歴</strong>は似ていますが、役割が少し違います<br>会話履歴は「いまのやり取りの流れ」、メモリは「別の機会にも持ち越したい情報」というイメージです</p>



<div class="wp-block-group is-style-big_icon_memo"><div class="wp-block-group__inner-container">
<ul class="wp-block-list -list-under-dashed">
<li>会話履歴:このセッション内の往復、話が長くなると窓を圧迫するので要約して削ることもある</li>



<li>メモリ:好みや決まりごとなど、次回以降も参照したい情報、必要なときだけ呼び出す</li>
</ul>
</div></div>



<p class="wp-block-paragraph">会話が長引くと履歴が増えて窓を食いつぶすので、<strong>要約して圧縮する</strong>のもコンテキスト設計の一部です<br>全部を抱え込むより、要るものだけ残す引き算のほうが、じっさいには効いてきます</p>



<h3 class="wp-block-heading">コンテキストは多いほどいいわけではない</h3>



<p class="wp-block-paragraph">ここまで読むと「とにかく情報を積めば安心」と思えますが、そこは落とし穴です<br>窓には上限があるうえ、関係ない情報が混ざると、AIがどこを見ればいいか迷って精度が落ちます</p>



<p class="wp-block-paragraph">Anthropic も、コンテキストで大事なのは量ではなく<strong><span class="swl-marker mark_yellow">その一手にとって過不足のない情報</span></strong>だと強調しています<br>だから実務では、足す設計と同じくらい、要らないものを削る・要約する設計が効いてきます</p>



<p class="wp-block-paragraph">具体的には、窓に情報を詰め込みすぎると次のような実害が出ます<br>どれも「たくさん渡したのに、かえって精度が落ちた」という形で表れるのがやっかいなところです</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list -list-under-dashed has-background">
<li>古い情報の混入:更新前の仕様と最新版を両方渡すと、AIがどちらを正として答えればいいか迷う</li>



<li>トークンの浪費:使わない資料まで窓の席を占めるぶん、肝心のやり取りに割ける余白が減っていく</li>



<li>精度の低下:関係の薄い情報が増えるほど、AIが要点を見失って答えがぼやけやすくなる</li>
</ul>



<p class="wp-block-paragraph">だから上限ギリギリまで詰めるより、その一手に要らない資料は思い切って外すほうが、結果的に答えが安定します<br>足し算より引き算のほうが効く場面は、じっさいに手を動かすとよく出くわします</p>



<h2 class="wp-block-heading">「agent failures = context failures」という見方</h2>



<p class="wp-block-paragraph">コンテキストエンジニアリングを語るとき、よく引かれる整理があります<br>それが<strong><span class="swl-marker mark_yellow" style="color:#e8313b">agent failures = context failures</span></strong>という見方です</p>



<p class="wp-block-paragraph">これは、<strong>エージェント(自分で作業するAI)の失敗の多くは、モデルの頭が悪いからではなくコンテキストの失敗が原因</strong>だ、という捉え方です<br>渡すべき情報が抜けていた、古い情報が混ざっていた、ノイズが多すぎた、といった材料側のほころびが結果を崩す、というわけなんです</p>



<p class="wp-block-paragraph">この見方の便利なところは、AIがコケたときに<strong>直す先が具体的になる</strong>点です<br>「なんか賢くしてほしい」ではなく、「どの材料が足りなかったか」を点検すればいい、と切り分けられます</p>



<div class="wp-block-group is-style-big_icon_good"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">AIの答えがズレたら、まず<strong>渡した材料</strong>を疑う<br>指示・前提・参照資料・履歴のどれかに穴がないかを見直すと、聞き方をこねくり回すより早く直ることが多いです</p>
</div></div>


<div class="swell-block-balloon"><div class="c-balloon -bln-left" data-col="blue"><div class="c-balloon__icon -circle"><img decoding="async" src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" data-src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="lazyload c-balloon__iconImg" width="80px" height="80px"><noscript><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/cropped-サイトアイコン2.png" alt="" class="c-balloon__iconImg" width="80px" height="80px"></noscript><span class="c-balloon__iconName">ジャベ雄</span></div><div class="c-balloon__body -speaking -border-on"><div class="c-balloon__text">
<p>私も「AIが悪い」と思った失敗の大半は、渡す情報の抜けが原因でした</p>
<span class="c-balloon__shapes"><span class="c-balloon__before"></span><span class="c-balloon__after"></span></span></div></div></div></div>


<h2 class="wp-block-heading">Claude Code の CLAUDE.md はコンテキストエンジニアリングの実例</h2>



<p class="wp-block-paragraph">抽象的な話が続いたので、私が日常的に触れている実例を挙げます<br>それが、AI開発ツールのClaude Codeで使う<strong>CLAUDE.md</strong>というファイルです</p>



<p class="wp-block-paragraph">CLAUDE.md は、プロジェクトの決まりごとをまとめておく設定ファイルで、AIが作業を始めるときに読み込みます<br>私はここに、使う言葉づかいのルールや、触ってほしくないファイル、フォルダの構成などを書いておくんです<br>ただし CLAUDE.md はAIへのお願いを書く場所で、アクセスを止める仕組みではありません<br>本当に触らせたくないファイルは、権限の設定側(settings.json の permissions.deny)で止めておくのが安全です</p>



<p class="wp-block-paragraph">これはまさに<strong><span class="swl-marker mark_yellow">コンテキストエンジニアリングそのもの</span></strong>で、毎回おなじ前提を打ち直す代わりに、AIが読み込むコンテキストを先に整えておく、という発想です<br>先ほどの6要素で言えば、システムプロンプトやメモリに近い役割を、1枚のファイルで担わせている感じです</p>



<p class="wp-block-paragraph">私の場合、CLAUDE.md を整えるほどに、指示が短くても意図どおり動いてくれるようになりました<br>逆に、ここが薄いと同じ説明を何度も繰り返すことになり、それこそ先ほどの「context failures」を自分で作ってしまいます</p>



<p class="wp-block-paragraph">具体的には、CLAUDE.md を用意する前は「ですます調で、句点は控えめに」と毎回説明していたことが、いまは一言も添えずに文体がそろいます<br>渡す前提を一度ファイルに固定するだけで、往復のたびに積もっていた手間がまとめて消えた感覚です</p>



<figure class="wp-block-image size-large is-style-shadow"><a href="https://javeo.jp/wp-content/uploads/2026/07/2026-07-22_22h42_48.png"><img decoding="async" width="1024" height="537" src="https://javeo.jp/wp-content/uploads/2026/07/2026-07-22_22h42_48-1024x537.png" alt="Claude Code の CLAUDE.md にプロジェクトの前提やルールを書いている画面" class="wp-image-5042" srcset="https://javeo.jp/wp-content/uploads/2026/07/2026-07-22_22h42_48-1024x537.png 1024w, https://javeo.jp/wp-content/uploads/2026/07/2026-07-22_22h42_48-300x157.png 300w, https://javeo.jp/wp-content/uploads/2026/07/2026-07-22_22h42_48-150x79.png 150w, https://javeo.jp/wp-content/uploads/2026/07/2026-07-22_22h42_48-768x403.png 768w, https://javeo.jp/wp-content/uploads/2026/07/2026-07-22_22h42_48.png 1198w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<p class="wp-block-paragraph">CLAUDE.md をはじめとした設定ファイルの種類は<a href="https://javeo.jp/claude-code-config-files-guide/" target="_blank" rel="noopener noreferrer">Claude Code 設定ファイル早見表</a>に、ツール全体の仕組みは<a href="https://javeo.jp/claude-code-extensions-basics/" target="_blank" rel="noopener noreferrer">Claude Code 拡張機構入門</a>にまとめています<br>コンテキストの設計を手を動かして体感したい方は、そのあたりから触ってみるのがおすすめです</p>



<div class="wp-block-group is-style-big_icon_caution"><div class="wp-block-group__inner-container">
<p class="wp-block-paragraph">設定ファイルは何でも書けばいいわけではありません<br>不要な情報を詰め込むと窓を圧迫して逆効果になるので、<strong>要る前提だけを簡潔に</strong>置くのが良い塩梅です</p>
</div></div>



<h2 class="wp-block-heading">まとめ 次はハーネスエンジニアリングへ</h2>



<p class="wp-block-paragraph">コンテキストエンジニアリングとは、AIに渡すコンテキストウィンドウ全体に何を積むかを設計する技術でした<br>プロンプトを置き換えるものではなく、<strong>プロンプトを内側に含む上位の設計</strong>だと押さえておくと迷いません</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list is-style-check_list -list-under-dashed has-background">
<li>コンテキスト=AIが一度に読み込む材料のかたまり、窓には上限がある</li>



<li>積む要素は システムプロンプト・ツール・RAG・メモリ・会話履歴・状態 の6つ</li>



<li>AIの失敗は<strong>context failures</strong>として捉えると直す先が具体的になる</li>



<li>CLAUDE.md は身近なコンテキストエンジニアリングの実例</li>
</ul>



<p class="wp-block-paragraph">ここまでで「何を渡すか」の設計は見えてきました<br>すると次に気になるのが、そのコンテキストを実際に出し入れしたり、道具を動かしたりする<strong>AIの周りの仕組みぜんぶ</strong>です</p>



<p class="wp-block-paragraph">そこを扱うのが、次回の<strong>ハーネスエンジニアリング</strong>です<br>コンテキストを含めてAIを取り囲むソフトウェア基盤の話に進みます</p>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/07/harness-engineering-300x158.jpg" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://javeo.jp/harness-engineering/" target="_blank" rel="noopener noreferrer">ハーネスエンジニアリングとは AIの外殻を設計する話</a>
						<span class="p-blogCard__excerpt">ハーネスエンジニアリングとは モデル本体を取り囲む外殻(ツール統合・メモリ・状態・コンテキスト管理・ループ・検証・権限)を設計する新しい考え方です Agent=Model+Harnessという定式や scaffold との呼び分け Claude Code が実例である理由を初心者向けにまとめました</span>					</div>
				</div>
			</div>
		</div>


<h3 class="wp-block-heading">連載「AIの○○エンジニアリング」の記事一覧</h3>



<ul class="wp-block-list -list-under-dashed">
<li><a href="https://javeo.jp/ai-engineering-4types/" target="_blank" rel="noopener noreferrer">総まとめ(ハブ):AIの○○エンジニアリング4種</a></li>



<li><a href="https://javeo.jp/prompt-engineering-basics/" target="_blank" rel="noopener noreferrer">#1 プロンプトエンジニアリング(前回)</a></li>



<li><strong>#2 コンテキストエンジニアリング(この記事)</strong></li>



<li><a href="https://javeo.jp/harness-engineering/" target="_blank" rel="noopener noreferrer">#3 ハーネスエンジニアリング(次回)</a></li>



<li><a href="https://javeo.jp/loop-engineering/" target="_blank" rel="noopener noreferrer">#4 ループエンジニアリング</a></li>
</ul>


<div class="p-blogParts post_content" data-partsID="4603">
<div class="jv-books" data-shelf="ai"><div class="jv-books-head"><span class="jv-books-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4da.png" alt="📚" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Claude・生成AIを学べる本</span><span class="jv-books-pr">PR</span></div><div class="jv-books-grid"><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240" alt="面倒なことはChatGPTにやらせよう" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">面倒なことはChatGPTにやらせよう</p><p class="jv-book-author">カレーちゃん・からあげ</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4065342902">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4065342902">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240" alt="実践Claude Code入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">実践Claude Code入門</p><p class="jv-book-author">西見公宏・吉田真吾・大嶋勇樹</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297153548">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297153548">楽天で見る</a></div></div></div><div class="jv-book-card"><a class="jv-book-cover" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240" alt="Claude CodeによるAI駆動開発入門" width="120" height="170" loading="lazy"></a><div class="jv-book-info"><p class="jv-book-title">Claude CodeによるAI駆動開発入門</p><p class="jv-book-author">平川知秀</p><div class="jv-book-btns"><a class="jv-btn jv-btn-az" href="https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="amazon" data-book="4297152754">Amazonで見る</a><a class="jv-btn jv-btn-rk" href="https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F" target="_blank" rel="nofollow sponsored noopener noreferrer" data-shelf="ai" data-mall="rakuten" data-book="4297152754">楽天で見る</a></div></div></div></div><p class="jv-books-note">私のおすすめからランダムで3冊を表示しています</p></div>
<style>
.jv-books{border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin:1.5em 0;background:#fff}
.jv-books-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.jv-books-title{font-weight:700;font-size:1.05em}
.jv-books-pr{font-size:.7em;color:#888;border:1px solid #ccc;border-radius:3px;padding:1px 6px;flex-shrink:0}
.jv-books-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;min-height:330px}
.jv-book-card{display:flex;flex-direction:column;align-items:center;text-align:center;border:1px solid #f0f0f0;border-radius:6px;padding:12px 8px;background:#fafafa}
.jv-book-cover img{width:auto;max-width:120px;height:170px;object-fit:contain}
.jv-book-info{width:100%;flex:1;display:flex;flex-direction:column}
.jv-book-title{font-size:.82em;font-weight:600;line-height:1.4;margin:8px 0 2px;min-height:2.8em;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.jv-book-author{font-size:.72em;color:#777;margin:0 0 8px}
.jv-book-btns{display:flex;flex-direction:column;gap:6px;width:100%;margin-top:auto}
.jv-btn{display:block;text-align:center;font-size:.78em;font-weight:600;color:#fff!important;text-decoration:none!important;border-radius:4px;padding:7px 4px;line-height:1.2}
.jv-btn-az{background:#e88b00}
.jv-btn-rk{background:#bf0000}
.jv-btn:hover{opacity:.85}
.jv-books-note{font-size:.7em;color:#999;text-align:right;margin:8px 0 0}
@media(max-width:599px){
.jv-books-grid{grid-template-columns:1fr;min-height:0}
.jv-book-card{flex-direction:row;text-align:left;gap:12px}
.jv-book-cover img{height:110px;max-width:80px}
.jv-book-info{min-width:0}
.jv-book-title{min-height:0}
.jv-book-btns{flex-direction:row}
.jv-btn{flex:1}
}
</style>
<script>
(function(){
var SHELF='ai';
var all=document.querySelectorAll('.jv-books[data-shelf="'+SHELF+'"]');
var root=null;
for(var k=0;k<all.length;k++){if(!all[k].dataset.jvinit){root=all[k];break;}}
if(!root)return;
root.dataset.jvinit='1';
var POOL=[{"t": "面倒なことはChatGPTにやらせよう", "a": "カレーちゃん・からあげ", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2909/9784065342909.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4065342902?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F17728615%2F", "id": "4065342902"}, {"t": "実践Claude Code入門", "a": "西見公宏・吉田真吾・大嶋勇樹", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3540/9784297153540_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297153548?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18439208%2F", "id": "4297153548"}, {"t": "Claude CodeによるAI駆動開発入門", "a": "平川知秀", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/2758/9784297152758_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297152754?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18401065%2F", "id": "4297152754"}, {"t": "3時間で身につくClaude活用術", "a": "尾藤克之", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5495/9784866215495_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4866215496?tag=javeo2022-22", "rk": "https://hb.afl.rakuten.co.jp/hgc/24ecde15.e492bb61.24ecde16.6c9a125b/?pc=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F&#038;m=https%3A%2F%2Fbooks.rakuten.co.jp%2Frb%2F18576909%2F", "id": "4866215496"}, {"t": "開発効率をアップする! Claude Code 実用入門", "a": "大澤文孝", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0206/9784839990206.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4839990204?tag=javeo2022-22", "rk": "", "id": "4839990204"}, {"t": "Microsoft 365 Copilot踏み込み活用術", "a": "太田浩史", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/3401/9784295023401_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/429502340X?tag=javeo2022-22", "rk": "", "id": "429502340X"}, {"t": "Google NotebookLM 即効活用大全", "a": "増田智明", "img": "https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/5995/9784297155995_1_2.jpg?_ex=240x240", "az": "https://www.amazon.co.jp/dp/4297155990?tag=javeo2022-22", "rk": "", "id": "4297155990"}];
var REL='nofollow sponsored noopener noreferrer';
function el(tag,cls){var e=document.createElement(tag);if(cls)e.className=cls;return e;}
function btn(href,cls,label,mall,id){
var a=el('a','jv-btn '+cls);a.href=href;a.target='_blank';a.rel=REL;a.textContent=label;
a.setAttribute('data-shelf',SHELF);a.setAttribute('data-mall',mall);a.setAttribute('data-book',id);
return a;}
function card(b){
var d=el('div','jv-book-card');
var cover=el('a','jv-book-cover');cover.href=b.az;cover.target='_blank';cover.rel=REL;
var img=el('img');img.src=b.img;img.alt=b.t;img.width=120;img.height=170;img.loading='lazy';
cover.appendChild(img);
var info=el('div','jv-book-info');
var ttl=el('p','jv-book-title');ttl.textContent=b.t;
var au=el('p','jv-book-author');au.textContent=b.a;
var btns=el('div','jv-book-btns');
btns.appendChild(btn(b.az,'jv-btn-az','Amazonで見る','amazon',b.id));
if(b.rk){btns.appendChild(btn(b.rk,'jv-btn-rk','楽天で見る','rakuten',b.id));}
info.appendChild(ttl);info.appendChild(au);info.appendChild(btns);
d.appendChild(cover);d.appendChild(info);
return d;}
var pool=POOL.slice();
for(var i=pool.length-1;i>0;i--){var j=Math.floor(Math.random()*(i+1));var t=pool[i];pool[i]=pool[j];pool[j]=t;}
var grid=root.querySelector('.jv-books-grid');
grid.style.opacity='0';
while(grid.firstChild)grid.removeChild(grid.firstChild);
pool.slice(0,3).forEach(function(b){grid.appendChild(card(b));});
grid.style.transition='opacity .5s ease';
void grid.offsetWidth;
grid.style.opacity='1';
})();
</script>
</div>]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/context-engineering/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>RAG入門 生成AIが自分のファイルから回答する仕組み</title>
		<link>https://javeo.jp/rag-beginner-guide/</link>
					<comments>https://javeo.jp/rag-beginner-guide/#respond</comments>
		
		<dc:creator><![CDATA[ジャベ雄]]></dc:creator>
		<pubDate>Tue, 26 May 2026 13:23:11 +0000</pubDate>
				<category><![CDATA[AI・Claude]]></category>
		<category><![CDATA[Claude]]></category>
		<category><![CDATA[LLM]]></category>
		<category><![CDATA[RAG]]></category>
		<category><![CDATA[生成AI]]></category>
		<guid isPermaLink="false">https://javeo.jp/?p=4071</guid>

					<description><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/05/blog_4071-1024x538.jpg" class="webfeedsFeaturedVisual" /></p>生成AIに自分のファイルや社内データから回答させる仕組み「RAG(検索拡張生成)」の基礎を、初心者〜中級者向けに体系的に解説します、仕組み・チャンク処理・実例・ハマりポイントまで網羅]]></description>
										<content:encoded><![CDATA[<p><img src="https://javeo.jp/wp-content/uploads/2026/05/blog_4071-1024x538.jpg" class="webfeedsFeaturedVisual" /></p><div class="codoc-evacuations" style="display:none;" data-shortcode=""></div>
<p class="wp-block-paragraph">AIに自分のPDFや社内ドキュメントを読ませて、その中身から回答してもらう機能、最近よく見るようになりましたよね</p>



<p class="wp-block-paragraph">Claude Projects にファイルを投げたり、ChatGPT に PDF を渡したり、Notion AI で社内ページを横断検索したり、Perplexity に「最新の話題」を聞いたり、NotebookLM にノートを読み込ませたり、このあたりが全部、似た仕組みで動いています</p>



<p class="wp-block-paragraph">その裏で動いているのが <strong><span class="bold-red"><span class="marker-under">RAG(検索拡張生成)</span></span></strong>と呼ばれる仕組みです、名前は地味ですが、これを知っておくと AI製品の挙動が一気に腹落ちするので、押さえておいて損はないと思います</p>



<p class="wp-block-paragraph">この記事で扱う範囲はざっとこんな感じです</p>



<ol style="background-color:#f3fafe80" class="wp-block-list has-background">
<li>RAG が何の略でなぜ生まれたか</li>



<li>事前準備フェーズ + 実行時フェーズの2段階の動き方</li>



<li>精度を左右する「チャンク処理」の話</li>



<li>実際の製品事例と「最近聞かない理由」</li>



<li>自分で試す方法、ローカル/コスト面の話</li>



<li>ハマりポイント・安全性・ファインチューニングとの比較</li>
</ol>



<p class="wp-block-paragraph">Claudeまわりの基本用語は<a href="https://javeo.jp/claude-glossary-beginner/">Claudeを始める前に知っておきたい用語集</a>でまとめているので、LLM や Embeddings あたりがピンと来ない方はそちらと並行して読むと入りやすいです</p>



<h2 class="wp-block-heading">RAGとは何か 略称と必要になった理由</h2>



<p class="wp-block-paragraph">まずは言葉の意味と、そもそも何でこの仕組みが必要になったのか、というところから整理します</p>



<h3 class="wp-block-heading">Retrieval-Augmented Generation の略</h3>



<p class="wp-block-paragraph">RAG は <strong><span class="red">R</span>etrieval-<span class="red">A</span>ugmented <span class="red">G</span>eneration</strong>の略で、日本語だと検索拡張生成と訳されます</p>



<p class="wp-block-paragraph">各単語の意味をバラして見ると、もう少しイメージが湧きやすいかもしれません</p>



<figure class="wp-block-table"><table><thead><tr><th>単語</th><th>意味</th></tr></thead><tbody><tr><td>Retrieval</td><td>検索・取り出し</td></tr><tr><td>Augmented</td><td>拡張された・補強された</td></tr><tr><td>Generation</td><td>(文章の)生成</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">つなげると「外部から取り出した情報で補強された文章生成」になります、要するに <strong>AIが回答する前に、外部の情報を検索してから答える仕組み</strong>のことです</p>



<p class="wp-block-paragraph">平たく言うと <strong><span class="marker-under">「カンニング機能付きAI」</span></strong>と捉えるのが一番分かりやすいんじゃないでしょうか</p>



<p class="wp-block-paragraph">カンニングと聞くとネガティブに響くかもしれませんが、ここでは「手元の資料を見ながら答える」くらいのニュアンスで、むしろ回答の正確性が上がる仕組みとして理解してもらえれば</p>



<h3 class="wp-block-heading">そもそも生成AIには「知識のスナップショット問題」がある</h3>



<p class="wp-block-paragraph">なぜ RAG みたいな仕組みが必要になったかというと、<strong>生成AI(LLM)の知識は学習が終わった時点で止まっている</strong>からです</p>



<p class="wp-block-paragraph">これは <strong>「知識のスナップショット性質」</strong>とも呼ばれていて、学習データの締め切り日(カットオフ日)より後の出来事は本体だけだと知りません</p>



<p class="wp-block-paragraph">正直に言うと私も最初これを実感していなくて、以前 ChatGPT に「去年あった有名なニュース」を聞いたら「すみません、その時期の情報は持っていません」と返ってきて、「あ、AIって本当に時間が止まってるんだ」と妙に感心した記憶があります</p>



<p class="wp-block-paragraph">これに加えて、もうひとつ大きな壁があります</p>



<p class="wp-block-paragraph">たとえ最新情報を学習させたとしても、<strong>あなたの会社の社内マニュアルや、あなたの個人ファイルは元から学習データに含まれていない</strong>ので、本体だけで答えるのは原理的にむずかしいです</p>



<p class="wp-block-paragraph">じゃあプロンプトに全部詰めて渡せばいいかというと、<strong>コンテキストウィンドウ(AIが一度に読める量)に上限がある</strong>のでこれも現実的じゃありません</p>



<p class="wp-block-paragraph">そこで生まれた発想が <strong><span class="marker-under">「都度、必要な情報だけ検索して渡す」</span></strong>というもので、これがまさに RAG の発想ベースになります</p>



<h3 class="wp-block-heading">RAGには「事前準備」と「実行時」の2段階がある</h3>



<p class="wp-block-paragraph">ここから RAG の仕組みに入ります、ポイントは <strong>2つのフェーズに分かれている</strong>ことです</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://javeo.jp/wp-content/uploads/2026/05/rag-flow-diagram.png" alt="RAGの2フェーズフロー、事前準備フェーズで文書をチャンクに分割してEmbeddingsでベクトル化しベクトルDBに保存、実行時フェーズで質問をベクトル化してDBから類似チャンクを検索しプロンプトに合体してAIに渡す"/><figcaption class="wp-element-caption">RAG の 2フェーズフロー、上段は文書を検索可能にしておく事前準備、下段は質問に応じて関連情報を引っ張ってきて回答する実行時の動き</figcaption></figure>



<p class="wp-block-paragraph">まずは事前準備フェーズ、これは <strong>文書をAIが検索できる形に変えておく作業</strong>のことです</p>



<ol style="background-color:#f3fafe80" class="wp-block-list has-background">
<li>元の文書を取得(PDF / Word / Webページ / Notion / Slack ログなど)</li>



<li>文書を <strong>チャンク(かたまり)</strong>に分割する</li>



<li>各チャンクを Embeddings(埋め込み表現)でベクトル(数値の配列)に変換</li>



<li>変換結果を <strong>ベクトルDB</strong>(意味の近い文章を取り出すのに特化したデータベース)に保存</li>
</ol>



<p class="wp-block-paragraph">Embeddings は「文章を意味の似た方向に並ぶ数値に変換する処理」とイメージしておけばOKです、ここで <strong>「意味が近い文章は近いベクトルになる」</strong>という性質を利用します</p>



<p class="wp-block-paragraph">ベクトルDBは「意味の近さで文章を取り出すのに特化した専用データベース」のことです、ふだん使う MySQL のようなデータベースが文字列の完全一致や ID で引くのに対して、ベクトルDB は <strong>近い意味の文章</strong>を効率よく見つけるのが得意です、有名どころでは Chroma・Pinecone・Qdrant・Milvus などがあります</p>



<p class="wp-block-paragraph">続いて実行時フェーズ、これは <strong>質問が来たら関連チャンクを引っ張ってきて回答に使う作業</strong>です</p>



<ol style="background-color:#f3fafe80" class="wp-block-list has-background">
<li>ユーザーの質問も Embeddings でベクトル化</li>



<li>ベクトルDBから意味が近いチャンクを検索</li>



<li>上位N件(3〜10件くらい)を取得</li>



<li>取り出したチャンクをプロンプトに合体させてAIに渡す</li>



<li>AIが「渡された資料」をベースに回答を生成</li>
</ol>



<p class="wp-block-paragraph">つまり AI本体は最終的な文章生成だけ担当していて、その手前で <strong>「カンペを取り出す処理」が裏で走っている</strong>のが RAG の本質、というわけです</p>



<p class="wp-block-paragraph">事前準備フェーズで使うベクトル化と、実行時フェーズの質問のベクトル化は、原則として <strong>同じ Embeddings モデル</strong>で揃えるのがコツです、ここがズレると意味の近さの判定がおかしくなります</p>



<h2 class="wp-block-heading">チャンク処理がRAGの精度を決める</h2>



<p class="wp-block-paragraph">ここは中級者向けに少し厚めにいきます、結論から言うと <strong><span class="bold-red"><span class="marker-under">RAG の精度はチャンク処理でほぼ決まる</span></span></strong>と言っても言いすぎじゃないくらい大事なポイントです</p>



<h3 class="wp-block-heading">なぜわざわざチャンクに分けるのか</h3>



<p class="wp-block-paragraph">「文書まるごと1つのベクトルにすればよくない?」と思うかもしれません</p>



<p class="wp-block-paragraph">ただ、ベクトル検索は <strong>短い単位の方が精度が出る</strong>性質があります、長すぎるテキストをまとめて1つのベクトルにすると、いろんな話題が混ざって「意味の中心」がぼやけてしまうためです</p>



<p class="wp-block-paragraph">料理本まるごと1冊を1ベクトルにしても、「カレーの作り方」のような具体的な質問に対して効率よく該当ページを引っ張れません、適度な単位でバラしておく必要があります</p>



<h3 class="wp-block-heading">チャンクサイズは大きすぎても小さすぎてもダメ</h3>



<p class="wp-block-paragraph">じゃあどのくらいの大きさで分割するのがいいか、というところですが、ここはトレードオフです</p>



<figure class="wp-block-table"><table><thead><tr><th>チャンクサイズ</th><th>起きやすいこと</th><th>向いている用途</th></tr></thead><tbody><tr><td>500字程度(小)</td><td>文脈が切れる、前後の流れが拾えない</td><td>FAQ・短文の集まり</td></tr><tr><td>1,500字程度(中)</td><td>適度に意味が保てる、検索精度も出やすい</td><td>マニュアル・記事の本文</td></tr><tr><td>5,000字以上(大)</td><td>無関係情報が混じる、意味がぼやける</td><td>長文の章まるごとを参照したい場合</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">一般的な目安は <strong><span class="marker-under">500〜1,000トークン(日本語で約1,000〜2,000文字)</span></strong>と言われていて、迷ったらこの範囲から始めるのがおすすめです</p>



<p class="wp-block-paragraph">2026年現在の海外のベストプラクティス記事を見ても <strong>「まずは 300〜500トークン + 10〜15% の重なり(オーバーラップ)から試そう」</strong>という推奨が多くて、実運用してから上下に振って調整する流れが主流ですね</p>



<h3 class="wp-block-heading">チャンクオーバーラップで文脈ロスを防ぐ</h3>



<p class="wp-block-paragraph">分割するときによく使われるテクニックが <strong>チャンクオーバーラップ</strong>です、隣り合うチャンクの端を少し重ねて分割します</p>



<p class="wp-block-paragraph">たとえば 1,000字でチャンクを切るときに 100字くらい重ねておくと、文の途中で切れたときに前のチャンクの末尾と次のチャンクの先頭で同じ部分が読めるので、検索でどちらに引っかかっても文脈が補える、というのがメリットです</p>



<p class="wp-block-paragraph">目立たないですが、これだけで <strong>「PDFを入れたけど回答が変な感じで切れる」みたいな失敗が結構減ります</strong></p>



<h3 class="wp-block-heading">分割方法のバリエーション</h3>



<p class="wp-block-paragraph">チャンクをどう切るかは、文書の種類によって向き不向きがあります</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list has-background">
<li>固定文字数で切る:単純で実装しやすい、ただし文の途中で切れて意味が崩れることあり</li>



<li>改行や句読点で切る:文の途中で切れない、自然な単位になる</li>



<li>見出し単位で切る:Markdown や HTML で見出しが明確な文書に強い</li>



<li><strong><span class="marker-under">セマンティックチャンキング</span></strong>:Embeddings で意味の切れ目を判定して分ける賢い分割、精度は高いが計算コストもかかる</li>



<li>階層チャンキング:章の要約+詳細チャンクを両方持つやり方、長い技術文書で精度が出やすい</li>
</ul>



<p class="wp-block-paragraph">セマンティックチャンキングはかっこいい響きですが、<strong>素直な構造化文書なら固定 + オーバーラップで十分</strong>なことが多いです、海外でもいきなり凝った分割に手を出さず、シンプルな方法で品質が足りないと感じてから段階的に上げる、という推奨が増えています</p>



<h3 class="wp-block-heading">日本語ならではの注意点</h3>



<p class="wp-block-paragraph">日本語のチャンク処理には、英語にはない少しクセがあります</p>



<p class="wp-block-paragraph">英語はスペースで単語が区切られているので、機械的に「○○トークン単位で切る」のがやりやすいんですが、日本語はスペース区切りがないので <strong>形態素解析(単語の切り分け)</strong>を併用したり、句読点や改行を頼りに分割したりすることが多いです</p>



<p class="wp-block-paragraph">あと裏方ですが効いてくるのが文字数とトークン数の換算で、日本語は1文字あたり1〜2トークン消費するので、<strong>「500トークン = 約500〜1,000文字」</strong>くらいで見積もるのが安全です</p>



<p class="wp-block-paragraph">このあたりは LangChain / LlamaIndex などのライブラリが日本語向けの分割関数を持っているので、自作するよりライブラリに任せる方がトラブルが少ない印象です</p>



<h2 class="wp-block-heading">実際にどこで使われているか</h2>



<p class="wp-block-paragraph">仕組みの話が続いたので、ここで身近な製品でどこに RAG が使われているかを整理します、意外と毎日触っているサービスの中に隠れていますよ</p>



<h3 class="wp-block-heading">代表的なRAG搭載サービス</h3>



<ul style="background-color:#FFFFDC80" class="wp-block-list has-background">
<li><strong>Claude Projects</strong>:プロジェクトにファイルを添付して質問、内部で文書を検索しながら回答</li>



<li>ChatGPT カスタムGPTs / メモリ機能:添付資料・過去のやりとりを参照しながら応答</li>



<li><strong>Notion AI</strong>:社内ページや個人ノートを横断検索しながら回答するイメージで、まさに業務RAGの典型</li>



<li>Perplexity:Web情報をその場で検索 → 結果を参照しながら回答するWeb検索型RAGの代表格</li>



<li>NotebookLM:Googleが提供しているノート型AIサービス、PDFや音声などをノートに登録して質問</li>



<li><strong>Microsoft 365 Copilot</strong>:Officeの社内ファイル(Word・Excel・SharePoint等)を参照</li>
</ul>



<p class="wp-block-paragraph">共通点は <strong><span class="marker-under">「AIが外部資料を参照して回答する」</span></strong>という点、つまり大半のサービスで裏側で RAG 的な処理が走っているということになります</p>



<p class="wp-block-paragraph">個人用途だと、Claude Projects に1冊分のマニュアルを入れて「○○の手順は?」と聞く使い方は超実用的で、業務用途だと Notion AI で「先月の会議メモから決定事項だけ抜いて」みたいな雑な指示も通るようになっています</p>



<h3 class="wp-block-heading">「RAG」という言葉、最近あんまり聞かない理由</h3>



<p class="wp-block-paragraph">余談ですが、2023年〜2024年あたりは「RAG構築」という言葉が AI 界隈で連発されていたんですが、ここ最近はわざわざ「RAGを使っています」と書くサービスが減っている印象があります</p>



<p class="wp-block-paragraph">これは <strong>技術が浸透して当たり前になったため、製品の中で言及しなくなった</strong>というのが大きいです、Webアプリを今わざわざ「これはWebアプリです」と言わないのと同じ現象だと思います</p>



<p class="wp-block-paragraph">製品紹介では「ファイルから回答」「社内データを参照」「ノートを検索」みたいな機能名で呼ばれるようになっただけで、技術的な実体は大体 RAG です</p>



<p class="wp-block-paragraph">「最近聞かない = 古い技術」と勘違いされやすいんですが、実態は逆で <strong><span class="marker-under">むしろ標準装備になった</span></strong>と捉えるのが正確ですね</p>



<h2 class="wp-block-heading">もう一歩深く 自分でRAGを試す方法</h2>



<p class="wp-block-paragraph">仕組みが大体わかってきたら「自分でも触ってみたいな」と思うかもしれません、ここでは難易度別の選択肢と、コスト面・ローカル運用について整理します</p>



<h3 class="wp-block-heading">3つの進化系キーワード</h3>



<p class="wp-block-paragraph">その前にもう少しだけ用語だけ紹介、RAG にも進化系がいくつかあって、覚えておくと最新の記事がだいぶ読みやすくなります</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list has-background">
<li><strong>Hybrid Search(ハイブリッド検索)</strong>:キーワード検索とベクトル検索を組み合わせて精度を底上げする方式</li>



<li><strong>Re-ranking(リランキング)</strong>:1次検索の結果を別のモデルで再評価して並べ替える、上位N件の精度を上げる</li>



<li><strong>Agentic RAG</strong>:AI が検索戦略そのものを判断するタイプ、「もう一回検索し直そう」「別の切り口で検索しよう」といった判断を AI 側に任せる</li>
</ul>



<p class="wp-block-paragraph">細かい挙動の違いを今すぐ理解する必要はなくて、<strong>「RAG にも進化形がいくつかあるんだな」</strong>くらいで頭の片隅に入れておけば十分です</p>



<h3 class="wp-block-heading">手軽派 既製品RAGで試す</h3>



<p class="wp-block-paragraph">一番手っ取り早いのは既製品の RAG にファイルを入れてみるパターンです</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list has-background">
<li><strong>Claude Projects</strong> にPDFやMarkdownを投げる</li>



<li>ChatGPT のカスタムGPTs でナレッジを設定する</li>



<li><strong>NotebookLM</strong> にPDF・YouTube URL・Webページを登録する</li>
</ul>



<p class="wp-block-paragraph">このパターンは「自分でチャンクを切る」「ベクトルDBを立てる」みたいな処理を全部サービス側が見えないところでやってくれるので、コードを1行も書かずに RAG を体験できます</p>



<p class="wp-block-paragraph">仕組みを深く知りたいなら自作の方が学びは大きいですが、「とりあえず触感を掴みたい」だけならここから始めるのが現実的です</p>



<h3 class="wp-block-heading">自作派 PythonライブラリでRAGを組む</h3>



<p class="wp-block-paragraph">もう一歩踏み込んで自分で組みたいなら、Python ベースのライブラリが定番です</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list has-background">
<li><strong>LangChain</strong>:RAG構築の総合フレームワーク、Embeddings/分割/ベクトルDB/プロンプトを一気通貫で扱える</li>



<li><strong>LlamaIndex</strong>:ドキュメントインデックスに強い、特に長文・多種類の文書を扱う用途で人気</li>



<li><strong>Haystack</strong>:検索パイプラインの構築に強い、エンタープライズ寄り</li>
</ul>



<p class="wp-block-paragraph">最小サンプルとしては「PDFを読み込んで分割 → OpenAI/Anthropic の Embeddings でベクトル化 → Chroma などのベクトルDBに保存 → 質問が来たら検索して回答」みたいな流れを Python で40〜60行くらいで書けます</p>



<p class="wp-block-paragraph">ちなみに <strong>このコードを書くこと自体も Claude Code Desktop に頼める</strong>ので、最近は「自作派とは何だったのか」みたいな話になりがちです</p>



<h3 class="wp-block-heading">コスト面 Embeddings API は意外と積む</h3>



<p class="wp-block-paragraph">自作 RAG を試すときに見落としがちなのが <strong><span class="marker-under">Embeddings API の呼び出し料金</span></strong>です</p>



<p class="wp-block-paragraph">1回あたりは安いんですが、社内ドキュメントを全部ベクトル化しようとすると <strong>チャンク数 × Embeddings コスト</strong>でじわじわ積み上がります、大規模な文書を扱う場合は事前見積もりが推奨です</p>



<p class="wp-block-paragraph">加えて運用時の検索コスト(ベクトルDB のホスティング費)もかかるので、無料で動かしっぱなしというわけにはいかない、というのは知っておくと安心です</p>



<h3 class="wp-block-heading">ローカルRAG OllamaやLM Studioで完結する選択肢</h3>



<p class="wp-block-paragraph">「API コストを気にせず、社外秘データもローカルで処理したい」というニーズには <strong>ローカルRAG</strong>という選択肢があります</p>



<p class="wp-block-paragraph">Windowsユーザーなら次のあたりの組み合わせが現実的です</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list has-background">
<li><strong>Ollama</strong>:ローカルでLLM・Embeddingsモデルを動かす定番ツール、コマンド一発でモデルを起動できる</li>



<li><strong>LM Studio</strong>:GUIでローカルLLMを扱える、GGUF形式のモデルを試すならこっち</li>



<li>ローカルベクトルDB:Chroma・Qdrant をローカル起動して使う</li>



<li><strong>ローカル Embeddings モデル</strong>:multilingual-e5・bge-m3 など日本語対応モデルを使う</li>
</ul>



<p class="wp-block-paragraph">動作は API 経由よりは遅いですし、性能もハイエンド商用モデルにはやや劣りますが、<strong>データを外に出さずに RAG が組める</strong>のは大きいです、社内ナレッジを扱うユースケースでは選択肢として有力ですね</p>



<h3 class="wp-block-heading">コードベース版RAG CursorやClaude Codeのインデックス</h3>



<p class="wp-block-paragraph">ちょっと毛色の違う話として、最近の開発者向けAIエディタにも RAG 的な仕組みが入っています</p>



<p class="wp-block-paragraph">Cursor や Claude Code の <strong>コードベースインデックス</strong>と呼ばれる機能は、要するにプロジェクト全体のソースコードを RAG 的に検索可能な形に変換しておく仕組みです</p>



<p class="wp-block-paragraph">AI が「この関数どこで使われてる?」と聞かれたとき、いきなりファイルを全部読まなくても、インデックスから関連箇所だけ引っ張って答えられる、という動き方ですね、これも広い意味で RAG の一形態と捉えていいと思います</p>



<p class="wp-block-paragraph">Claude Code の各拡張機構(Skills・Hooks・Subagents など)を体系的に整理した話は<a href="https://javeo.jp/claude-code-extensions-basics/">Claude Code拡張機構入門の記事</a>でまとめているので、開発寄りに興味がある方はそちらも合わせてどうぞ</p>



<h2 class="wp-block-heading">ハマりポイントと安全性 RAGの限界も含めて</h2>



<p class="wp-block-paragraph">最後に実用面の話を一気にまとめます、RAG あるある・データの安全性・ファインチューニングとの違い、というあたりです</p>



<h3 class="wp-block-heading">代表的な失敗パターンと対処法</h3>



<p class="wp-block-paragraph">初心者が RAG を試すと、ほぼ全員が同じところでつまずきます、典型例をまとめておきますね</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>主な原因</th><th>対処の方向性</th></tr></thead><tbody><tr><td>PDFを入れたのに回答できない</td><td>PDF内の表や画像のテキスト化がうまくいっていない、チャンク処理がズレている</td><td>OCR や PDF パーサーを見直す、文書を事前に Markdown 化する</td></tr><tr><td>期待ほど精度が出ない</td><td>チャンクサイズ・分割方法が文書と合っていない</td><td>サイズを上下に振ってテスト、オーバーラップを増やす</td></tr><tr><td>同じ質問でも回答がブレる</td><td>検索のヒット順がわずかな差で変わる、上位N件のチャンクが揺れる</td><td>Re-ranking を入れる、Top-K を上げる</td></tr><tr><td>コンテキストオーバーフロー</td><td>大きすぎるチャンクを大量に渡してしまっている</td><td>チャンクサイズを下げる、上位N件を絞る</td></tr><tr><td>関係ないチャンクが混じる</td><td>ベクトル類似度のしきい値が緩い、ノイズデータが多い</td><td>類似度のしきい値を上げる、前処理でクリーニング</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">とくに「PDFを入れたのに回答できない」は <strong>かなりの確率で PDF パース問題</strong>です、表が画像として埋め込まれていたり、二段組のレイアウトがあったりすると、テキスト抽出の時点で内容が崩れていて、後段のベクトル化もうまくいきません</p>



<p class="wp-block-paragraph">裏ワザ的には <strong>PDFをいったん人間が読める Markdown に変換してから RAG に投入する</strong>と、精度が一段上がることが多いです、ここは地味な作業ですが効きます</p>



<h3 class="wp-block-heading">機密データを入れていいの データの安全性</h3>



<p class="wp-block-paragraph">業務利用で気になるのが「社内データを RAG に入れて大丈夫?」という安全性の話です</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list has-background">
<li><strong>ローカル動作のRAG</strong>:データが外に出ない構成にできるので原則安全、機密データ向き</li>



<li>クラウドサービス系:各社の <strong>学習利用ポリシー</strong>とデータ保持期間を確認する</li>



<li>商用契約:Claude for Work / Enterprise などの法人プランは <strong>原則として学習に使われない</strong>規約になっている</li>
</ul>



<p class="wp-block-paragraph">Anthropic の場合は <strong>ユーザーデータを既定では学習に使わない</strong>方針が明示されています、最新の方針は <a href="https://www.anthropic.com/legal/privacy" target="_blank" rel="noopener">Anthropicのプライバシーポリシーページ</a>と <a href="https://privacy.claude.com/" target="_blank" rel="noopener">Claudeプライバシーセンター</a>に整理されているので、業務利用するときは目を通しておくのが推奨です</p>



<p class="wp-block-paragraph">2026年に入って <strong>消費者向けプラン(Free / Pro / Max)では学習利用を任意でオン/オフできるオプション</strong>が追加されました、デフォルトはオフですが、自分でオンにした覚えがないか設定画面で確認しておくと安心です</p>



<p class="wp-block-paragraph">Claude Code Desktop を業務で使うときのセキュリティ全般の話は<a href="https://javeo.jp/claude-code-security-beginner/">Claude Code Desktop初心者向けセキュリティの記事</a>でも触れているので、合わせて読むと安心材料が増えると思います</p>



<h3 class="wp-block-heading">RAGの限界 検索精度に全てが乗っかる</h3>



<p class="wp-block-paragraph">RAG は強力な仕組みですが、万能ではありません</p>



<p class="wp-block-paragraph">最大の制約は <strong><span class="marker-under">「検索でヒットしなかった情報は使えない」</span></strong>という点で、ベクトル検索が外すと回答も外します、つまり検索段階の精度がすべての品質を決めると言ってよくて、ここを軽視すると後段がいくら賢くても結果が出ない、という現象が起きます</p>



<p class="wp-block-paragraph">あとは大量のチャンクの中から本当に必要な数件を見抜く能力が問われるので、文書数が増えるほど検索チューニングの難しさが上がります</p>



<h3 class="wp-block-heading">RAGとファインチューニングの使い分け</h3>



<p class="wp-block-paragraph">もう一つの相補技術が <strong>ファインチューニング</strong>です、これは AI自体に追加学習をさせて、特定の用途や知識を埋め込む方式で、RAG とは別のアプローチになります</p>



<p class="wp-block-paragraph">どっちを使うべきか、というのはよく聞かれるトピックなので、表で比較しておきます</p>



<figure class="wp-block-table"><table><thead><tr><th>観点</th><th>RAG</th><th>ファインチューニング</th></tr></thead><tbody><tr><td>知識の保管場所</td><td>外部DB(参照型)</td><td>モデル本体(埋め込み型)</td></tr><tr><td>更新コスト</td><td>低い(文書を入れ替えるだけ)</td><td>高い(再学習が要る)</td></tr><tr><td>更新頻度</td><td>毎日でも可能</td><td>都度の学習コストがネック</td></tr><tr><td>初期コスト</td><td>低〜中</td><td>中〜高</td></tr><tr><td>運用コスト</td><td>検索コスト+API利用</td><td>学習コスト+ホスティング</td></tr><tr><td>得意な用途</td><td>頻繁に変わる情報、社内ナレッジ</td><td>応答スタイル・固定知識・ドメイン特化</td></tr><tr><td>不得意な用途</td><td>応答スタイルの変更</td><td>最新情報の追従</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">整理すると、<strong>RAG = 知識を都度参照する</strong>・<strong>ファインチューニング = モデルに知識や癖を埋め込む</strong>、という違いになります</p>



<p class="wp-block-paragraph">たとえば「自社の最新マニュアルを参照したい」なら RAG が向いていますし、「自社特有の口調で常に応答してほしい」ならファインチューニングが向きます、両者を組み合わせる構成も実用ではよくあるパターンです</p>



<h2 class="wp-block-heading">まとめ RAGが分かると AI 製品の見え方が変わる</h2>



<p class="wp-block-paragraph">長くなったので、ポイントをぎゅっと再掲して締めます</p>



<ul style="background-color:#FFFFDC80" class="wp-block-list has-background">
<li>RAG は Retrieval-Augmented Generation の略、外部情報を <strong>検索してから生成</strong>する仕組み</li>



<li>LLM の知識は学習時点で止まっているので、最新情報や社内固有情報を扱うには外部参照の仕組みが要る</li>



<li>動きは事前準備フェーズ(文書→チャンク→ベクトル化→DB)と実行時フェーズ(質問→検索→上位N件→AI回答)の2段階</li>



<li>精度の鍵は <strong>チャンク処理</strong>、サイズ500〜2,000文字+10〜15%オーバーラップから始めるのがおすすめ</li>



<li>Claude Projects / Notion AI / Perplexity / NotebookLM など身近なAI製品の裏側でだいたい動いている</li>



<li>自分で試すなら Claude Projects / NotebookLM が手軽、自作なら LangChain / LlamaIndex、ローカルなら Ollama + Chroma</li>



<li>ハマりポイントは <strong>PDF パース問題</strong>・チャンクサイズ・検索精度、ファインチューニングとは役割が違う相補関係</li>
</ul>



<p class="wp-block-paragraph">RAG という言葉自体は技術が浸透して目立たなくなりましたが、知っていると「あ、これ裏でRAG動いてるな」と AI 製品の見え方が一段クリアになるはずです</p>



<p class="wp-block-paragraph">関連用語については<a href="https://javeo.jp/claude-glossary-beginner/">Claudeを始める前に知っておきたい用語集</a>に「埋め込み」「コンテキストウィンドウ」「ファインチューニング」あたりがまとまっているので、AI記事を読むベース知識を補強したい方はぜひ覗いてみてください</p>



<p class="wp-block-paragraph">長文にお付き合いいただきありがとうございました、それでは、よい AI ライフを</p>
]]></content:encoded>
					
					<wfw:commentRss>https://javeo.jp/rag-beginner-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
