コンテキストエンジニアリングとは? 考え方と応用方法
by
ファインディ株式会社(イベント資料アップ用)
×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
©Knowledge Sense, Inc. All Rights Reserved. コンテキストエンジニアリングとは? 考え方と応用方法 株式会社ナレッジセンス 須藤英寿
Slide 2
Slide 2 text
©Knowledge Sense, Inc. All Rights Reserved. 自己紹介 sasakuna @sasa_kuna_ CTO ソフトウェアエンジニア。株式会社ナレッジセンスの創業後、法人向け 生成AIサービス「ChatSense」を立ち上げ、リリース後 2年で、500社 以上の法人に導入。エンタープライズ向け社内検索( RAGサービス) や、AIエージェント「Deep Research」サービスなど、複数サービスの 同時立ち上げを実施 2
Slide 3
Slide 3 text
©Knowledge Sense, Inc. All Rights Reserved. ChatSenseについて “大企業の知的活動を最速にする ” 機能1 法人向けChatGPT セキュリティ高くGPTを利用できる 機能2 社内データで RAGできる 独自文書の内容について生成 AIが回答 3
Slide 4
Slide 4 text
©Knowledge Sense, Inc. All Rights Reserved. 話題にあがるコンテキストエンジニアリング 4
Slide 5
Slide 5 text
©Knowledge Sense, Inc. All Rights Reserved. Shopify CEOのTobi Lutke氏によるXへの投稿 5 https://x.com/tobi/status/1935533422589399127
Slide 6
Slide 6 text
©Knowledge Sense, Inc. All Rights Reserved. 今、コンテキストエンジニアリングが 熱いらしい! 6
Slide 7
Slide 7 text
©Knowledge Sense, Inc. All Rights Reserved. コンテキストエンジニアリングって何? 7
Slide 8
Slide 8 text
©Knowledge Sense, Inc. All Rights Reserved. 本日の発表構成 1. 〇〇エンジニアリングの全体像 2. コンテキストエンジニアリングの内容 3. コンテキストエンジニアリングを応用した例 8
Slide 9
Slide 9 text
©Knowledge Sense, Inc. All Rights Reserved. LLMを上手に使うには? 9 全てはここから始まる...
Slide 10
Slide 10 text
©Knowledge Sense, Inc. All Rights Reserved. 〇〇エンジニアリングの役割 プロンプト、コンテキストエンジニアリングはなんで生まれたの? →LLMを上手に使う方法を体系的に考えたい! 10 そもそもどんなときに LLMを上手に使えない?
Slide 11
Slide 11 text
©Knowledge Sense, Inc. All Rights Reserved. LLMが上手に使えない理由 (1) →LLMが知り得ないことは答えられない 11 確認のために伺いたいので すが: ● 普段の予定は どこ に記録しています か? (そんなの知らないよ...!) 明日の午後の予定を 教えて
Slide 12
Slide 12 text
©Knowledge Sense, Inc. All Rights Reserved. LLMが上手に使えない理由 (2) →LLMの理解力を超えると答えられない 12 タツノオトシゴの絵文字はこ ちらです:🦄→違いました (笑) 正しくは:🦎ではなく …こち らです → 🐠→間違え… すみません、改めて正解を: 🪸🐚🐠🦐🐙🦑🦀🐡 ←海 の仲間たちですが ... タツノオトシゴの絵文 字を出力して
Slide 13
Slide 13 text
©Knowledge Sense, Inc. All Rights Reserved. LLMをうまく使えない原因 1. LLMが情報を持っていない 2. LLMの回答能力を超えている 13 大半はこのどちらかが原因
Slide 14
Slide 14 text
©Knowledge Sense, Inc. All Rights Reserved. 〇〇エンジニアリングのポイント 1. LLMの知らない情報を正しく渡す LLMの性能が上がっても、重要性は変わらない 2. プロンプトの書き方を工夫してLLMの性能を引き出す LLMの性能が上がるたびに、必要性は下がる傾向にある 14
Slide 15
Slide 15 text
©Knowledge Sense, Inc. All Rights Reserved. プロンプトエンジニアリングでの解決方法 ● LLMの知らない情報はすべてプロンプトに書き出す ● LLMにどうしてほしいのかを明確に指示する 15 今回は詳細に扱わないです ステップバイステップで考えましょう... あなたは〇〇の専門家です。...
Slide 16
Slide 16 text
©Knowledge Sense, Inc. All Rights Reserved. 通常のチャットならこれで大体OK! 16
Slide 17
Slide 17 text
©Knowledge Sense, Inc. All Rights Reserved. 17 さらに使いこなそうとすると困る場面が...
Slide 18
Slide 18 text
©Knowledge Sense, Inc. All Rights Reserved. RAGがうまくいかない理由 18 →LLMが必要なデータにアクセスできない 申し訳ございません。A社 とのやりとりを発見するこ とができませんでした。 (そんなデータアップロー ドされていない...!) A社との直近のやりと りを教えて
Slide 19
Slide 19 text
©Knowledge Sense, Inc. All Rights Reserved. LLMで機能開発がうまくいかない理由(コーディングエージェント) 19 →LLMの能力を超えた理解を要求してしまっている … … … … 直りました! (直ってない) 関数Aのテストを修正 して
Slide 20
Slide 20 text
©Knowledge Sense, Inc. All Rights Reserved. LLMをうまく使えない原因 1. LLMが情報を持っていない 2. LLMの回答能力を超えている 20
Slide 21
Slide 21 text
©Knowledge Sense, Inc. All Rights Reserved. 発生している問題は同じ! 21
Slide 22
Slide 22 text
©Knowledge Sense, Inc. All Rights Reserved. 再掲: 〇〇エンジニアリングのポイント 1. LLMの知らない情報を正しく渡そう LLMの性能が上がっても、重要性は変わらない 2. プロンプトの書き方を工夫してLLMの性能を引き出そう LLMの性能が上がるたびに、必要性は下がる傾向にある 22
Slide 23
Slide 23 text
©Knowledge Sense, Inc. All Rights Reserved. コンテキストエンジニアリングとは? 23 LLMが複雑なシステムを動かせるように体系的に入力内容を整 理する技術 langchainで提唱されている 4分類 ● write: データの書き出し ● select: データの取得、選択 ● compress: データの集約、圧縮 ● isolate: データの分離、独立
Slide 24
Slide 24 text
©Knowledge Sense, Inc. All Rights Reserved. 再掲: 〇〇エンジニアリングのポイント 1. LLMの知らない情報を正しく渡そう LLMの性能が上がっても、重要性は変わらない 2. プロンプトの書き方を工夫してLLMの性能を引き出そう LLMの性能が上がるたびに、必要性は下がる傾向にある 24 select, compressで 必要な情報を渡す
Slide 25
Slide 25 text
©Knowledge Sense, Inc. All Rights Reserved. 再掲: 〇〇エンジニアリングのポイント 1. LLMの知らない情報を正しく渡そう LLMの性能が上がっても、重要性は変わらない 2. プロンプトの書き方を工夫してLLMの性能を引き出そう LLMの性能が上がるたびに、必要性は下がる傾向にある 25 write, compress, isolateで LLMの理解力を超えさせない
Slide 26
Slide 26 text
©Knowledge Sense, Inc. All Rights Reserved. コンテキストエンジニアリングの役割は? 詳細なデータの扱い方をまとめたこと! 26
Slide 27
Slide 27 text
©Knowledge Sense, Inc. All Rights Reserved. 補足: LLMの制約 ● 入力長に限界がある 入力内容をまとめたり、外部に記録する。などの発想につながる ● 入力長が長いと性能が下がる 入力内容をまとめたり、必要な部分だけ読み取る。などの発想につながる ● 複数の指示が混ざっていると性能が下がる 分解できる処理は分割する。などの発想につながる 27
Slide 28
Slide 28 text
©Knowledge Sense, Inc. All Rights Reserved. 〇〇エンジニアリングの一覧 28 手法 主なターゲット 提案されている手法 プロンプト エンジニアリング チャットなど 具体的な入力プロンプト コンテキスト エンジニアリング ワークフロー エージェントなど 具体的なデータの管理方法 ターゲットはシステムよりかも!
Slide 29
Slide 29 text
©Knowledge Sense, Inc. All Rights Reserved. 〇〇エンジニアリングの一覧 29 手法 主なターゲット 提案されている手法 プロンプト エンジニアリング チャットなど 具体的な入力プロンプト コンテキスト エンジニアリング ワークフロー エージェントなど 具体的なデータの管理方法 ツール エンジニアリング エージェントに 渡すツール情報 具体的な複数のツールの管理方法 エージェント エンジニアリング 複雑な エージェント 具体的なエージェント、ワークフローの 管理方法 こんなのも出てくるかも?
Slide 30
Slide 30 text
©Knowledge Sense, Inc. All Rights Reserved. コンテキストエンジニアリングまとめ ● LLM向けのデータ管理方法を体系的にまとめたもの ● LLMを使ったシステムの開発に主に使用される考え方 ● プロンプトの重要性が失われたわけではない 30
Slide 31
Slide 31 text
©Knowledge Sense, Inc. All Rights Reserved. コンテキストエンジニアリングの 具体的な内容 31
Slide 32
Slide 32 text
©Knowledge Sense, Inc. All Rights Reserved. 再掲: コンテキストエンジニアリングとは? 32 LLMが複雑なシステムを動かせるように体系的に入力内容を整 理する技術 langchainで提唱されている 4分類 ● write: データの書き出し ● select: データの取得、選択 ● compress: データの集約、圧縮 ● isolate: データの分離、独立
Slide 33
Slide 33 text
©Knowledge Sense, Inc. All Rights Reserved. 33 コンテキストエンジニアリング https://blog.langchain.com/context-engineering-for-agents/
Slide 34
Slide 34 text
©Knowledge Sense, Inc. All Rights Reserved. write の役割 今後の実行に役立つ情報をファイルに出力する →重要な情報だけが残るようになる! 34
Slide 35
Slide 35 text
©Knowledge Sense, Inc. All Rights Reserved. 再掲: LLMの制約 ● 入力長に限界がある 入力内容をまとめたり、外部に記録する。などの発想につながる ● 入力長が長いと性能が下がる 入力内容をまとめたり、必要な部分だけ読み取る。などの発想につながる ● 複数の指示が混ざっていると性能が下がる 分解できる処理は分割する。などの発想につながる 35
Slide 36
Slide 36 text
©Knowledge Sense, Inc. All Rights Reserved. write の具体的な手法 ● メモ書きの書き出し 主にエージェントが一つの処理の中で大事な情報を忘れないようにするため 例: TODOメモの書き出し、プログラムの重要な関数の情報 ● 記憶の書き出し 別の処理のときにも覚えておいたほうが良い情報を忘れないようにするため 例: 利用者の個人的な情報の記憶 36
Slide 37
Slide 37 text
©Knowledge Sense, Inc. All Rights Reserved. select の役割 必要な情報を選んで読み込む →重要な情報だけを読み込める! 37
Slide 38
Slide 38 text
©Knowledge Sense, Inc. All Rights Reserved. 再掲: LLMの制約 ● 入力長に限界がある 入力内容をまとめたり、外部に記録する。などの発想につながる ● 入力長が長いと性能が下がる 入力内容をまとめたり、必要な部分だけ読み取る。などの発想につながる ● 複数の指示が混ざっていると性能が下がる 分解できる処理は分割する。などの発想につながる 38
Slide 39
Slide 39 text
©Knowledge Sense, Inc. All Rights Reserved. select の具体的な手法 ● 記憶、メモ書きの読み込み 大事な情報を思い出すため ● 情報の検索 別途保管されている非公開情報のうち、重要な情報だけを取得する ● ツールの選択 計算の実行、MCPなど 39
Slide 40
Slide 40 text
©Knowledge Sense, Inc. All Rights Reserved. compress の役割 プロンプトの中の必要な情報だけを取り出す →重要な情報にだけ集中できる! 40
Slide 41
Slide 41 text
©Knowledge Sense, Inc. All Rights Reserved. 再掲: LLMの制約 ● 入力長に限界がある 入力内容をまとめたり、外部に記録する。などの発想につながる ● 入力長が長いと性能が下がる 入力内容をまとめたり、必要な部分だけ読み取る。などの発想につながる ● 複数の指示が混ざっていると性能が下がる 分解できる処理は分割する。などの発想につながる 41
Slide 42
Slide 42 text
©Knowledge Sense, Inc. All Rights Reserved. compress の具体的な手法 42 ● 古い情報の削除 古い情報は大抵不要なのでどんどん削除していく ● 情報の集約 これまでの情報のうち、大事な情報だけを選んで残す
Slide 43
Slide 43 text
©Knowledge Sense, Inc. All Rights Reserved. isolate の役割 目的に合わせて情報や処理を分解する →1つの目的に集中できる! 43
Slide 44
Slide 44 text
©Knowledge Sense, Inc. All Rights Reserved. 再掲: LLMの制約 ● 入力長に限界がある 入力内容をまとめたり、外部に記録する。などの発想につながる ● 入力長が長いと性能が下がる 入力内容をまとめたり、必要な部分だけ読み取る。などの発想につながる ● 複数の指示が混ざっていると性能が下がる 分解できる処理は分割する。などの発想につながる 44
Slide 45
Slide 45 text
©Knowledge Sense, Inc. All Rights Reserved. isolate の具体的な手法 45 ● 情報の分解 エージェントに任せたいタスクに合わせて読み込む文章を切り替える 例: サブエージェント ● 処理の分解 複雑な処理を分解して、その処理が得意なエージェントに任せる 例: マルチエージェント
Slide 46
Slide 46 text
©Knowledge Sense, Inc. All Rights Reserved. コンテキストエンジニアリングの実用 46
Slide 47
Slide 47 text
©Knowledge Sense, Inc. All Rights Reserved. 【応用編】DeepResearchを作る場合... そもそもDeepResearchとは? ユーザーの質問に対して、Web検索と思考を繰り返して、 詳細なレポートを作成する機能 47
Slide 48
Slide 48 text
©Knowledge Sense, Inc. All Rights Reserved. DeepResearchの仕組みを紹介 48 実装方法には色々なパターンがあります!
Slide 49
Slide 49 text
©Knowledge Sense, Inc. All Rights Reserved. 【応用編】DeepResearchの大まかな構成 49 ユーザーの質問を元に Web検索で一次調査 大まかな出力レイアウトと 調査項目の出力 分解した調査項目ごとの Web検索と思考で調査 調査結果をまとめて 再度出力レイアウトの決定
Slide 50
Slide 50 text
©Knowledge Sense, Inc. All Rights Reserved. 【応用編】DeepResearchの大まかな構成 50 ユーザーの質問を元に Web検索で一次調査 大まかな出力レイアウトと 調査項目の出力 分解した調査項目ごとの Web検索と思考で調査 調査結果をまとめて 再度出力レイアウトの決定 select: Web検索で関連情報を取得 write: 検索後の情報を集約して出力
Slide 51
Slide 51 text
©Knowledge Sense, Inc. All Rights Reserved. 【応用編】DeepResearchの大まかな構成 51 ユーザーの質問を元に Web検索で一次調査 大まかな出力レイアウトと 調査項目の出力 分解した調査項目ごとの Web検索と思考で調査 調査結果をまとめて 再度出力レイアウトの決定 select: 調査内容を読み込み write: レイアウト、検索すべき項目を出力
Slide 52
Slide 52 text
©Knowledge Sense, Inc. All Rights Reserved. 【応用編】DeepResearchの大まかな構成 52 ユーザーの質問を元に Web検索で一次調査 大まかな出力レイアウトと 調査項目の出力 分解した調査項目ごとの Web検索と思考で調査 調査結果をまとめて 再度出力レイアウトの決定 write: 調査内容の出力 select: Web検索で情報収集 compress: 調査内容の要約 isolate: 調査項目ごとに分解
Slide 53
Slide 53 text
©Knowledge Sense, Inc. All Rights Reserved. 【応用編】DeepResearchの大まかな構成 53 ユーザーの質問を元に Web検索で一次調査 大まかな出力レイアウトと 調査項目の出力 分解した調査項目ごとの Web検索と思考で調査 調査結果をまとめて 再度出力レイアウトの決定 select: 調査結果のよみこみ
Slide 54
Slide 54 text
©Knowledge Sense, Inc. All Rights Reserved. 再掲: コンテキストエンジニアリングまとめ ● LLM向けのデータ管理方法を体系的にまとめたもの ● LLMを使ったシステムの開発に主に使用される考え方 ● プロンプトの重要性が失われたわけではない 54