最近はプロンプトエンジニアリングではなく、コンテキストエンジニアリングという言葉が出てきているようです
I really like the term “context engineering” over prompt engineering.
— tobi lutke (@tobi) June 19, 2025
It describes the core skill better: the art of providing all the context for the task to be plausibly solvable by the LLM.
定義
言葉の定義なんて誰が決めるんだってのはあるのですが、下記記事によると
Context engineering is defined as the process of building dynamic systems that can deliver necessary information and tools to an LLM, ensuring it can plausibly accomplish its tasks. Unlike static prompts, this approach involves pulling context from multiple sources, including developers, users, and external data, to construct a comprehensive and dynamic prompt.
https://blockchain.news/news/understanding-emergence-context-engineering-ai-systems
ということです。
ざっくり訳すと「LLM(大規模言語モデル)がタスクを適切に完遂できるよう、適切な情報とツールを適切な形式で提供する動的システムを構築すること」となるのでしょうか。
この”ツール”だったりが非常に重要なのだろうと。
ChatGPTが登場した当初(GPT-3.5)はコンテキストウィンドウの制限があり、初期のモデルでは4,096トークン。でした。
現状ではモデルによるものの、この制限は大きく緩和されているとともに、ベクトルデータベース、RAG、MCPやWeb検索ツールなど、様々な情報を下にした指示を投げることが出来るようになりました。
その中で、当初の「うまい質問を考えるためにはどうするか」に注力したプロンプトエンジニアリングという状態から、包括的なコンテキストを認識させ、同問題を解決可能にするのかに集中させる、動的で多段階の指示を与える流れになってきているのだと。
それをコンテキストエンジニアリングと呼んでいると、考えています。
実践していくには
コンテキストをLLMにどう読み込ませたうえで、目的とするタスクに取り込ませるか?という意味で考えると、単純な指示出しをするわけではなく、まずコンテキストの理解を促したうえで、その理解を確認したうえでタスクに取り組ませるというようなアプローチを行っていく必要がありそうです。
コンテキストはRAG等による情報かもしれませんし、答える型を定義させるようなフューショットプロンプトのようなものかもしれません。
どうしても雑にLLMに対して答えを求めてしまいがちで、しかもそれっぽく帰ってきてしまうので恐ろしいのですが、このコンテキストを伝えるという労力を割くことで、その先のタスクのより高い精度での実施という結果を受け取れるよう、このあたりを気をつけてやっていきたいところです。