あらすじ
◆「LLMの挙動を左右するコンテキストをどう扱うか」AI時代のエンジニアの最重要スキル◆
大規模言語モデル(LLM)へ与える、プロンプトを含む多様な入力情報である「コンテキスト」。LLMの挙動を健全にコントロールするために、どんなコンテキストを構築するか――限られた入力領域において、何を与え、何を捨て、どのようにして良いコンディションを保つのか――この技術の総体が「コンテキストエンジニアリング」であり、LLM活用を目指すエンジニアが知るべき最重要トピックです。本書では、AIモデルの基礎の仕組みやAPIの挙動をコンテキストの観点から順にひも解き、RAG(Retrieval-Augmented Generation)やAIエージェントなど実践的な開発において発生し得るコンテキストエンジニアリングのテクニックを存分に紹介します。
■目次
第1章 LLMの仕組みから見るコンテキストの正体
・1.1 LLMの動作を知る意義
・1.2 LLMを構成するニューラルネットワークの基本
・1.3 LLMによるトークン生成のしくみ
・1.4 対話型LLMに施された工夫や注意点
・1.5 Reasoningモデルの進化へ
・1.6 まとめ
第2章 APIサービス利用におけるコンテキストの扱いと基礎機能
・2.1 LLMのAPIサービスの概要
・2.2 LLMベンダーが直接提供するAPIサービス
・2.3 クラウドベンダーが提供するAPIサービス
・2.4 APIやモデルの選定基準
・2.5 APIの基本的な使い方
・2.6 LLMによるツール利用
・2.7 出力スキーマの固定化
・2.8 Function CallingとStructured Output使用時のテクニック
・2.9 コンテキストキャッシュの仕組み
第3章 指示プロンプト開発の基礎
・3.1 前提となるリファレンス
・3.2 指示プロンプト開発時に把握しておくべき全体指針
・3.3 指示プロンプトの記述に活用される記法
・3.4 指示プロンプトの基本構造
・3.5 指示プロンプトの管理
・3.6 指示プロンプトの精度向上の技法
第4章 RAGにおけるコンテキスト整備
・4.1 RAGとは
・4.2 検索エンジン関連用語の整理
・4.3 RAGの全体のフロー
・4.4 RAGを使うかどうかの判断
・4.5 RAGで用いられる基盤技術
・4.6 検索を伴うRAGの精度向上のための工夫
・4.7 その他の話題
第5章 AIエージェント×ワークフローによる作業自動化
・5.1 AIエージェントはなぜ注目されたのか
・5.2 ワークフロー化によるコンテキストの分散
・5.3 市場が期待した「AIエージェント」の正体
・5.4 エージェントワークフローに関連するリファレンス
・5.5 具体例を見ながらエージェントワークフロー設計を学ぶ
・5.6 コンテキスト肥大化に伴うその他の課題と対策
■著者プロフィール
蒲生 弘郷(がもう ひろさと):外資系IT企業所属のクラウドソリューションアーキテクト、エバンジェリスト。上智大学大学院 応用データサイエンス学位プログラム 非常勤講師。大手システムインテグレーターにてキャリアをスタート。社会インフラ関連領域のデータサイエンティストとしての活動、ブロックチェーンを活用した異業種間データ流通サービスの立ち上げなどを経て現職へ。ChatGPTの登場した2022年以来、Azure OpenAI Serviceなどを使ったLLMアプリケーションの構築支援・アドバイザリーおよび技術情報の発信に従事。「ChatGPT - Azure OpenAI大全」などの資料が「2023 Most Viewed Deck 25」に選出。共著に『Azure OpenAI ServiceではじめるChatGPT/LLMシステム構築入門』。
感情タグBEST3
Posted by ブクログ
私は仕事でエンジニアの方にRAGやAIエージェントの開発方法を教える講師業をしているのですが、この本は私が受講者に伝えようとしていることがたくさん書いてあって、首がもげそうになるくらいうなずきながら読みました。すごく良い本だと思うので、簡単に感想をまとめます。
■ この本のよいところ
現場で実際に苦労された方が書かれている
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
現場寄りの話がたくさん書かれていて、業務でRAGやAIエージェントに取り組まれている方には非常にオススメです。
私は前職でAIチャットボットやRAGサービスのカスタマーサクセスチームを率いていたのですが、オンボーディングは本当に大変でした。AIはまだまだ万能ではなく、導入するためにも運用するためにも顧客の協力が重要です。評価データセットの準備、データ側の整備、運用開始後の改善サイクルを主体的に回してもらうための計画作りなど、システムを導入するよりも大変な作業がたくさんあります。この本には、そのような現場を知っている著者の方の経験がふんだんに盛り込まれています。
道具に振り回されないRAGの解説
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
RAGの手法の解説に留まらず、実践するための解説になっています。RAGで苦労されている方は必読です。
私は前々職で全文検索エンジンや文書管理パッケージのエンジニアをやっていて、企業内の情報活用やナレッジマネジメントで戦ってきた経験があるのですが、情報の利活用というのは非常に難しいテーマです。RAGの手法をいくつか試して良いものを選べば終わり、という世界では全くありません。RAGの導入のコツは、いきなり万能なものを作ろうとしないことです。テーマを絞り、対象文書を絞り、データの取り込み方法を検討し、テストデータセットを用意し、改善を繰り返し育てていく必要があります。この本を読めば、泥臭くがんばらないといけない世界の理解と、そんな中での光明が見出せるのではないかと思います。
AIエージェントの現在地や現場の話
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
繰り返しになりますが、AIエージェントについても手法の解説に留まらず、現場で実践するための解説になっています。これが非常に有用です。
少し前までは、プロンプトベースのエージェントでは複雑な業務はこなせなかったのですが、今なら本にあるように、まずプロンプトベースのエージェントで試すというアプローチが有効だと思います。それにしても、AIエージェントをワークフロー化するお話のところの次の一文にはしびれました。
> 本来的には使いたくない苦渋の選択であることを忘れてはいけません。(5章5.2.4節より)
これは非常に重要なことだと思います。今は過渡期なので(AIの世界は常に過渡期ですが)、技術の変遷における現在位置を把握しておかないと、作ったシステムがあっという間に陳腐化してしまいます。最新の手法を追うのも重要ですが、その手法が生まれた背景や技術の根っこをきちんと理解して、変化に備えていくことがとても大切です。
■ この本で気になったところ
すごく些細なところですが、4章4.5.1節で解説されている「フルテキスト検索の弱点」が少し過剰になっていたのが気になりました。たとえばOSSで普及しているApache Lucene/Elasticsearch/Apache Solrは、同義語(シノニム)による語彙ミスマッチの対策や正規化による表記ゆれの対策などを搭載しているので、一部の弱点はある程度緩和できます。
■ おわりに
業務でRAGやAIエージェントの開発に取り組まれている方へ、非常にオススメの1冊です!
Posted by ブクログ
AIエージェントが発展していく過程で重要になるコンテキストエンジニアリング。プロンプトだけにとどまらない、様々な要件や最適化を行うTipsが網羅されている良書。自動化のワークフローに対する考え方も参考になった。
Posted by ブクログ
普段、社内向け業務アプリの設計・開発をしていますが、本書は、整理して言語化するのが難しいテーマを丁寧に整理しており、実務に直結する示唆が非常に多いと感じました。設計思想と実装に結びつく具体策の両立がうまく取れている点が特に印象的です。
著者はMicrosoftでのLLM導入支援に関わってきた方とのことで、現場での実践知が非常に豊富。理屈だけでなく「現場でどのような問題が起きるか」「どう設計すべきか」の視点で説明が進むため、納得感を持って読み進められます。
特にコンテキスト設計の扱い方が印象的でした。情報を詰め込むのではなく、何を入れ、何を削り、どう並べるか──その設計思想を「コンテキストエンジニアリング」として整理し、Transformerの挙動と結びつけて説明している点が非常に良かったです。経験談に留まらず原理から納得させる構成になっています。
API周りの解説も実践的です。Responses APIやMCP、Structured Outputといったトピックについて、表面的な紹介ではなく「どう使うとハマるか」「どう設計すると安定するか」まで踏み込んでいるため、実際に触っている人ほど得られるものが大きいと思います。
プロンプトの構造化、コンテキストキャッシュ、JSON出力の精度改善といった実装上の工夫も多く、読んだらすぐ試したくなる内容が続きます。単なるノウハウ集ではなく、API経由での組み込み・精度・コスト・保守性を考える人にとっても非常に有意義な一冊だと思いました。
第4章では、RAGの設計と運用について、これまでの章で示された設計思想を実務に落とし込む具体的な指針が示されます。検索のタイミング設計やデータ整備の重要性、ログを通じた改善サイクルなど、「どこから手を付けるべきか」を整理してくれる内容で、単なる技術解説に留まらず、運用を前提とした思考の枠組みが補強された印象です。RAGを導入する際のチェックポイントが明確になり、設計レビューの観点としても非常に有用だと感じました。
第5章では、AIエージェントとワークフローによる作業自動化がテーマになります。自律性への期待と現実的な制約の整理、プロンプトベースでどこまで行くか、精度が出ない場合にどのようにワークフローへ切り出すか、といった設計上の判断基準が示されます。コンテキスト肥大化への対策やUI設計、状態管理の重要性など、実装・運用面の注意点も具体的に触れられています。一方で、内容自体は著者自身も試行錯誤中の印象を受けました。
全体として、「プロンプトのノウハウ集」というよりは、LLMを組み込んだシステムをどう設計し、どう運用し、どこで分割し、どこを人や従来技術に任せるかまでを考える実務者向けの一冊だと思います。特に第4章までの内容は、設計指針として常日頃から手元に置いておきたいレベルでした。おススメです。
Posted by ブクログ
・気になるところ(第3章指示プロンプトの開発の基礎と第5章AIエージェント)だけ読んだ。
・仕事でも個人でもclaude codeをそこそこ使っているので、答え合わせのような感じで読めた。
・Resoningの性能が上がっているのは事あるごとに実感していたので、プロンプトエンジニアリングに懐疑的だったのが、今はコンテキストエンジニアリングになっていると言う言語化でスッキリした。
・ただ、あまりソフトウェア開発で使えそうな各論はなかった(既にやっている)し、LLM自体の振る舞いの復習ができたという印象
・AIエージェント構築してみたいと思った(と思ったけど、既にsaasとしてワークフロー定義出来るやつの存在を思い出したので自分でやる必要ないなと。)
Posted by ブクログ
コーディングエージェントを使いまくってコンテキストを意識しており、更にコンテキストを減らしたくて読んだ。具体性に欠け、目新しいことはなかった。