1. 岡大徳のポッドキャスト
  2. AIエージェント開発の新常識「..
2025-08-12 07:51

AIエージェント開発の新常識「コンテキストエンジニアリング」をmiiboで実践する方法

spotify apple_podcasts youtube

会話型AI開発において、「プロンプトエンジニアリング」から「コンテキストエンジニアリング」へのパラダイムシフトが起きています。ShopifyのCEOであるTobi Lutke氏は、コンテキストエンジニアリングを「LLMがタスクを解決可能にするために必要なすべてのコンテキストを提供する技術」と定義しています。この新しいアプローチは、単なるプロンプトの最適化を超えて、動的なシステム構築を重視します。

本記事では、コンテキストエンジニアリングの本質と、miiboでこの手法を実践する具体的な方法を解説します。従来のプロンプトエンジニアリングとの違いを明確にし、miiboの機能を活用した実装方法を紹介します。さらに、実際の活用例を通じて、AIエージェントの成功率を向上させる戦略を提示します。最後に、コンテキストエンジニアリングがもたらす価値と、今後の展望をまとめます。

プロンプトエンジニアリングからコンテキストエンジニアリングへの進化

プロンプトエンジニアリングは単一の指示文の最適化に焦点を当てていましたが、コンテキストエンジニアリングはより包括的なアプローチを取ります。コンテキストエンジニアリングは、指示文だけでなく、ユーザーの発話、会話履歴、外部から取得した情報、利用可能なツール、構造化された出力形式など、LLMが参照するすべての情報を対象とします。

この違いは実用的なAIエージェント開発において決定的な意味を持ちます。エージェントの失敗の多くは、モデル自体の能力不足ではなく、適切なコンテキストが提供されていないことに起因するからです。Andrej Karpathy氏が指摘するように、産業レベルのLLMアプリケーションでは「コンテキストウィンドウに適切な情報を適切なタイミングで配置する繊細な技術と科学」が必要となります。

miiboユーザーにとって、この概念の理解は実用的なAIエージェント構築の鍵となります。miiboが提供する豊富な機能群は、まさにコンテキストエンジニアリングを実現するために設計されているからです。プロンプトの4つの構成要素(ベースプロンプト、前提データプロンプト、会話履歴、追記プロンプト)は、コンテキストを体系的に管理する仕組みそのものです。

miiboでコンテキストエンジニアリングを実現する4つの戦略

miiboにおけるコンテキストエンジニアリングは、「書く」「選択する」「圧縮する」「分離する」という4つの戦略で実践できます。これらの戦略は、LLMのコンテキストウィンドウを最適に活用し、エージェントのパフォーマンスを最大化します。

コンテキストを「書く」:ステート管理とメモリー機能

コンテキストを書く戦略は、重要な情報をコンテキストウィンドウの外部に保存し、必要に応じて活用することを意味します。miiboのステート管理機能は、ユーザーごとの属性情報を永続的に保持し、#{ステート名}という記法でプロンプトに動的に挿入できます。この機能により、ユーザーの趣味、困りごと、感情などの情報を記録し、パーソナライズされた応答を生成できます。

長期記憶として機能するステートは、会話セッションを超えて情報を保持します。プロンプトに「会話の度に、その時点のユーザーの感情をステートに記録してください」と指示することで、AIが自動的にユーザーの状態を追跡し、記録します。この情報は後続の会話で参照され、より共感的で文脈に即した応答を可能にします。

コンテキストを「選択する」:RAGとナレッジデータストア

コンテキストの選択は、タスクに関連する情報を動的に取得し、コンテキストウィンドウに配置することです。miiboのナレッジデータストアは、AIに与える専門知識をベクトル化して保存し、会話の文脈に応じて最も関連性の高い情報を検索します。検索クエリー生成プロンプトを適切に設定することで、必要な情報を的確に取得できます。

ナレッジデータストアの検索モードは3種類から選択可能です。全文検索モードはキーワードの完全一致を重視し、ミックス検索モードは全文検索とベクトル検索を交互に採用し、ハイブリッド検索モードは両方の手法をスコア順に統合します。ユースケースに応じて最適なモードを選択することで、検索精度を向上させることができます。

コンテキストを「圧縮する」:効率的な情報管理

コンテキストの圧縮は、タスクに必要な最小限のトークンのみを保持する戦略です。miiboでは、検索結果の採用数や閾値を設定することで、プロンプトに含める情報量を制御できます。また、会話履歴が長くなった場合は、@{reset_history}という特殊記号を使用して、適切なタイミングで履歴をリセットすることも可能です。

情報の圧縮においては、カスタムフィールドの活用も効果的です。重要な属性情報をカスタムフィールドに設定することで、本文が分割されても確実に前提データに含まれるようになります。この仕組みにより、重要な情報が欠落することなく、効率的にコンテキストを管理できます。

コンテキストを「分離する」:シナリオ対話による制御

コンテキストの分離は、複雑なタスクを複数の独立したコンテキストに分割する戦略です。miiboのシナリオ対話機能を使用すると、会話の流れを複数のノード(アクション)に分割し、各ノードで独自のプロンプトと言語モデルを設定できます。これにより、サブタスクごとに最適化されたコンテキストを提供できます。

フリートークアクションを使用すると、特定のノード内で自由な会話を許可しながら、全体の流れは制御下に置くことができます。各ノードで異なる言語モデルを使用することも可能で、コストと性能のバランスを最適化できます。この分離戦略により、複雑なタスクでもコンテキストの混乱を防ぎ、高い成功率を維持できます。

実践例:カスタマーサポートAIにおけるコンテキストエンジニアリング

カスタマーサポートAIの構築を例に、miiboでコンテキストエンジニアリングを実践する方法を示します。この例では、ユーザーの問題を効率的に解決しながら、満足度の高い体験を提供することを目標とします。

初期設定では、ベースプロンプトに基本的な行動指針を記述します。「あなたはmiiboのカスタマーサポートAIです。ユーザーの困りごとを解決することが目的です」という指示に加え、ステート機能を活用して「困りごと: #{困りごと}」という動的な参照を設定します。これにより、会話の進行に応じてユーザーの課題を追跡し、文脈に即した応答を生成します。

ナレッジデータストアには、よくある質問と回答、製品マニュアル、トラブルシューティングガイドを登録します。検索クエリー生成プロンプトには「@{history}を参考に、ユーザーの困りごとを解決するための検索キーワードを5語以内で生成してください」と設定し、効率的な情報検索を実現します。会話が進行し、問題が特定されたら、関連する詳細情報のみを検索対象とすることで、ノイズを減らし精度を向上させます。

シナリオ対話を使用して、問題解決のフローを構造化します。「問題の特定」「詳細の確認」「解決策の提示」「フィードバックの収集」という4つのノードを設定し、各段階で必要な情報のみをコンテキストに含めます。最終的に、ユーザーの満足度をステートに記録し、継続的な改善のためのデータとして活用します。

miiboユーザーのためのコンテキストエンジニアリング実装チェックリスト

実用的なAIエージェントを構築するために、以下のチェックリストを活用してコンテキストエンジニアリングを実装してください。各項目は、miiboの機能を最大限に活用し、エージェントの成功率を向上させるための指針となります。

情報の準備と管理では、ナレッジデータストアに必要な情報が網羅的に登録されているか確認します。情報は適切にチャンク分けされ、カスタムフィールドで重要な属性が設定されているかチェックします。定期的な情報更新のワークフローも確立しておくことが重要です。

動的なコンテキスト生成では、ステート機能を活用してユーザー情報を適切に記録・参照しているか確認します。検索クエリー生成プロンプトが会話の文脈を正しく反映しているか、クイックリプライが次の行動を適切に誘導しているかを検証します。時刻情報(@{now})を活用して、時系列を考慮した応答ができているかも重要なポイントです。

パフォーマンスの最適化では、不要な情報がコンテキストに含まれていないか定期的に見直します。会話のシミュレーション機能を使用して、様々なシナリオでの動作を検証し、会話のログから実際の検索結果と応答の関連性を分析します。必要に応じて、言語モデルの選択やプロンプトの調整を行い、コストと性能のバランスを最適化します。

まとめ:コンテキストエンジニアリングがもたらす価値と展望

コンテキストエンジニアリングは、AIエージェント開発における新しいパラダイムであり、実用的なAIシステム構築の鍵となる概念です。miiboは、この概念を実践するための豊富な機能を提供し、開発者が効果的なコンテキスト管理を実現できる環境を整えています。

本記事で紹介した4つの戦略(書く、選択する、圧縮する、分離する)を適切に組み合わせることで、AIエージェントの成功率を劇的に向上させることができます。重要なのは、コンテキストを静的なプロンプトとしてではなく、動的なシステムとして設計することです。miiboのステート管理、ナレッジデータストア、シナリオ対話などの機能は、まさにこの動的なシステム構築を支援するために設計されています。

今後、AIエージェントがより複雑なタスクを扱うようになるにつれ、コンテキストエンジニアリングの重要性はさらに高まるでしょう。miiboユーザーの皆様には、この新しい概念を理解し、実践することで、真に実用的な「溶けこむAI」の構築を実現していただきたいと考えています。



Get full access to 岡大徳のメルマガ at www.daitoku0110.news/subscribe

サマリー

今回は、会話型AI開発における重要な概念であるコンテキストエンジニアリングを探求し、miiboの事例を通じて具体的な実践方法を紹介します。コンテキストの管理方法として、「書く」「選択する」「圧縮する」「分離する」という4つの戦略が提示され、AIの性能向上にどのように寄与するかが解説されます。

コンテキストエンジニアリングの概要
さて、今回はいただいた資料がありますね。これを基に、会話型AI開発の新しい考え方、コンテキストエンジニアリングについて、ちょっと深く見ていきたいと思います。
よく聞くプロンプトエンジニアリングからどう変わってきたのか。 ショピファイのCEO、トビー・ルッケ氏の言葉を借りると、
LLMがタスクを解決可能にするために必要なすべてのコンテキストを提供する技術と、これが具体的にどういうものか、特にmiiboというプラットフォームの実践例を見ながら探っていきましょうか。
AIがもっと賢く、手角に動くための鍵になりそうですね。 そうですね。
まず、違いからお話しするのが分かりやすいですかね。 プロンプトエンジニアリングっていうのは、主に指示文そのものをどう良くするかっていう点にかなりフォーカスしていました。
はい、指示の仕方みたいな。 それに対してコンテキストエンジニアリングは、もっと全体を見る感じなんです。
指示文だけじゃなくて、あなたの発言であるとか、過去の会話の履歴、あとは外部から取ってきた情報、使えるツールの一覧、期待される出力の形式とか、なんていうか、LLMが参照する可能性のある、もうあらゆる情報、これをコンテキストと呼んで、それをどううまく扱うかというところに焦点が当たってるんですね。
なるほど。CGだけじゃなくて、AIが使える、いわば情報パッケージ全体をデザインするみたいな、そういう考え方に変わってきたと。でもなぜ今、このコンテキストがそんなに重要だって言われるようなんですかね。
うーん、それはですね、AIエージェントが思ったように動かない、その原因を突き詰めていくとですね、実はモデル自体の能力が足りないというよりは、適切なコンテキスト、つまり情報が与えられていないっていうケースがすごく多いんですよ。
へー、そうなんですか。
ええ、AI師も指摘してるんですけど、LLMを本当に実用レベルで使おうとすると、限られたコンテキストウィンドウの中に、いかに適切な情報を適切なタイミングで配置するかっていう、繊細な技術と科学、これがすごく大事になってくると。
なるほど。コンテキストこそがAIの性能を引き出す鍵なと。
まさに。
miiboの実践戦略
AIにとっての作業記憶みたいなコンテキストウィンドウをどううまく使うかが勝負なんですね。じゃあ、具体的にはどうやってそのコンテキストを管理するんでしょう。資料にあったmiiboでの実践方法、あの4つの戦略というのがヒントになりそうですが。
ええ、そうですね。miiboの例は非常にわかりやすいと思います。コンテキストエンジニアリングを実践する上で、書く、選択する、圧縮する、分離するっていう4つの戦略が紹介されていますね。
まず1つ目、コンテキストを書く戦略。これはAIの短期記憶であるコンテキストウィンドウには入りきらないような、でも重要の情報を外部に永続的に書き留めておくイメージです。
miiboでいうとステート管理っていう機能がこれに当たりますね。例えばあなたに関する情報、そうですね、ハッシュタグあなたの好みみたいなデータを保存しておいて、プロンプトの中に動的に埋め込むんです。
ああ、なるほど。そうすると会話のセッションが変わってもAIがあなたのことを覚えていてくれると。よりパーソナライズされた対話ができる。まるでAIに長期記憶を持たせるような感じですね。
そういうことです。次がコンテキストを選択するですね。これは膨大な情報の中から、今この瞬間に必要な情報だけを動的に選び出してコンテキストに入れるという戦略です。
いわゆるRAGリトリーバルオーグメンテッドジェネレーションという技術がここでは中心になりますね。
ああ、RAGですね。はいはい。
miiboのナレッジデータストアっていうのがあって、ここに専門知識とかドキュメントを検索しやすい形でベクトル化とかして保存しておくんです。
で、会話の流れに応じて最適な情報を検索してきて、それをAIに渡すと。
なるほど。さっきのステート管理が個人の記憶だとすると、こっちは何というか外部の知識データベースから適切なものを引っ張ってくる、そういうイメージですかね。
その通りです。非常に良い対比ですね。そして3つ目がコンテキストを圧縮する。
あのコンテキストウィンドウってやっぱり限られた貴重なリソースなので。
ええ、そうですよね。
ですから情報をできるだけ効率よく詰め込む工夫が必要になります。
例えば、ナレッジ検索で取ってくる情報の数を制限するとか、あるいは会話が長くなってきたら、アットリセットヒストリーみたいな記号を使って古い履歴をリセットしてスペースを空けるとか。
あとは、ミーボーのカスタムフィールドみたいに特に重要な属性情報だけは確実に保持されるようにするといった工夫も有効です。
情報を整理整頓してスペースを有効活用する感じですね。
そして最後4つ目がコンテキストを分離するです。
これは複雑なタスクをもっと小さな、管理しやすい独立したステップに分解していくというアプローチですね。
ミーボーだとシナリオ対話っていう機能が分かりやすい例で、会話の流れをいくつかのノードに分けるんです。
それぞれのノードで違うプロンプトを使ったり、場合によってはそのタスクに最適な言語モデルを選んだりできるんですね。
ノードごとにモデルも変えられるんですか?
そうなんです。これによってタスクごとに最適化されたコンテキストを提供できるので、AIが混乱するのを防げますし、同時にコストと性能のバランスをとるなんてことも可能になるわけです。
いやー非常に整理されていて分かりやすいですね。
AIの進化と未来の対話
つまり、私たちがAIと話す時とか、あるいはAIシステムを評価するような場面で、単にその応答が良いか悪いかだけじゃなくて、このAIはどうやって必要な文脈、つまりコンテキストを得てそれを活用してるんだろうっていうその裏側の仕組みですね。
それを理解することが、そのAIの本当の能力とか応答の質を見極める上でものすごく重要になってくるということですね。
まさにおっしゃる通りです。これはもう単なる技術的な話にとどまらなくて、もっと知的でその場の状況に適応できるようなインタラクションを私たちがどうデザインしていくかという、もっと本質的な問いにつながっているんだと思います。
今回は、AI開発におけるコンテキストエンジニアリングという重要な転換点について、ミーボーの実践戦略を例にご紹介いただきました。
単に良い指示、つまりプロンプトを与えるだけじゃなく、AIが利用するあらゆる情報をいかに戦略的に管理するかが、性能を引き出す鍵なんだというお話でしたね。
それで最後に一つ、ちょっと皆さんと一緒に考えてみたいことがあるんですが、人間の会話って言うまでもなく文脈が命ですよね。
じゃあ、AIが単に与えられたコンテキストを使うだけじゃなくて、もし自分には今どういう情報が足りていないのかっていうのをAI自身が自覚して、その欠けているコンテキストを自分から能動的に探しに行けるようになったとしたら、
それって、AIとの対話に一体どんな進化をもたらすんでしょうかね。
うわぁ、それは考えさせられますね。AIが自分で、あれこれ知らないな、調べてみようってなる世界。
ええ、ちょっと未来を想像してみるのも面白いかもしれませんね。
07:51

コメント

スクロール