「LLMの原理、RAG・エージェント開発から読み解く コンテキストエンジニアリング」を読んだ

読んだきっかけ

最近、業務の自動化をよくやっています。その中でワークフローを整えたり、LLMに渡す情報を整理したりしているのですが、コンテキストをきちんと整えることが重要だなと感じてて、ちょうど良さそうな本が出版されたのを見て気になって読んでみました。

全体の感想

序盤の基本的な内容はすでに知っていることも多かったんですが、文章が読みやすかったし、わかりやすかったです。特に面白かったと感じたのが4章と5章でした。

4章 RAGの話

4章はRAGの話で、RAGの手法やどういうやり方があるのか、RAGが便利な場面とそうでない場面の違い、パフォーマンスを上げるために何が大事なのか。具体的な手順というよりは概念レベルの話ですが、実際にRAGを構築・チューニングする必要がでてきたら、まずこの本読み返して参考にしたいと思いました。

5章 ワークフローの話

5章が一番興味深く読んだ章でした。書いてある内容が最近やってる仕事と近くて、共感しながら読めたというのと、やり方や考え方が間違ってなかったことが確認できたのがよかったです。

エージェントよりまずワークフロー

独自エージェントは自由度が高い分、複雑性も増す。チューニングに工数をかけても期待ほどの成果が出ないリスクもある。業務はフローが決まっていることが多いので、まずルールベースのワークフローを作り、LLMが得意な部分だけをパーツとして組み込むほうが結果も安定する。LLMには判断や生成など必要なポイントだけ任せる。ワークフロー設計のポイントとして、把握すべき項目も挙げられていました。

  • 作業順序(分岐やループ)
  • インプット・アウトプットとなるデータ
  • 使用しているシステムとAPIなど、アクセス手段の有無
  • 認証方式やデータ参照権限のコントロール要否
n8nで業務レポートを自動化してる

最近やってることで、定期的な業務レポートの作成を自動化する仕事をよくやってます。この本のサンプルシナリオと近い感じです。n8nで組むときは、ざっくり「データ収集 → 集計 → LLMでレポート生成 → 保存 → 通知」という感じで組んでます。LLMを使うのは「この数字から何が言えるか」を考えるところだけで、データ取得と集計はAPIやプログラムなど、ルールベースで定義してるので、本に書いてあった内容そのままという感じ。自分が普段ワークフローを作るときにポイントだと思っている3つ。

  1. 業務フローを理解する — 手順と分岐を把握する
  2. データとアクセス方法を把握する — API、認証設定、データの所在。ここの整備が意外と重い
  3. アウトプットの期待値を揃える — 何を見せて、どういうアクションを取ってもらいたいか

こういうことやってると、コンテキストエンジニアリングするためには、ドメイン、業務知識もちゃんと持ってないとできないですよね、と感じているところ。

おわりに

LLMが業務に入ってくるのは自然な流れで、コンテキストを整理することの重要性を改めて感じました。

ワークフローを作るのもそうだけど、エンジニアとしてやるべきことは、データアクセス手段の整備といった、LLMフレンドリーな仕組みづくりだと感じてる。コーディングエージェント、コーディングの領域が進んでるように思ってるんですが、この流れは非エンジニア領域にも広がっていくはずで、そのときにデータアクセスの整備ができているかどうかが差になるはず。さらに進むと自律的なエージェントも求められてきそう。どう進化していったとしても、コンテキストエンジニアリングが重要だということは変わらないと思うので、本書で書かれたことはすごく参考になりそうです。コンテキストについて体系的に学びたい人におすすめの一冊です。