ここしばらく、多くの人が同じエージェントアーキテクチャに収束しつつあるように感じる。つまり、LLMがループの中で動作し、ツールを呼び出し、サンドボックス内で実行するという形だ。Claude Codeは、おそらくこのアーキテクチャが初めて広く注目を集めた事例であり、1年以上前に登場した。私たちのエージェントハーネスであるDeep Agentsも1年以上前にリリースされている。このパターンはかなり前から形成されてきたと言える。
この収束自体に問題があるわけではないが、最近話をしたAIエンジニアの一部の間では、「難しい問題はすべて解決された」「新たに解くべきAIエンジニアリングの問題はない」といった感情を生んでいる。
こうした意見を聞くと、彼らが主に指しているのは、エージェントを機能させるために我々が行っているコンテキストエンジニアリングの実践だと思う。そしてある程度は正しい。我々が到達した標準的なコンテキストエンジニアリングの解決策は数多くある。
例えば、会話が長くなりコンテキストウィンドウを超えそうになったらスレッドを要約すること。大きなツール呼び出しの結果をオフロードすること。段階的な情報開示のためのスキル。多数のツールに対処するためのツール検索。コンテキストを分離するためのサブエージェント。主要なツールとしてBashを使うこと。これらは広く採用されている。
コンテキストエンジニアリング愛好家である私にとって良いニュースは、エージェントの能力、あるいはその使われ方にステップ関数的な変化が見られていることだ。具体的には、ここ数ヶ月、話をしたすべてのエージェント開発者が、プロアクティブで常時稼働し、目標志向のエージェントについて考えている。このエージェントの核心はコーディングエージェントと多くの類似点を持つが、新たな課題も存在する。以下にいくつかを挙げる。LangChainでも業界全体でも、これらに対する解決策(少なくとも一般的な解決策)はまだ確立されていない。だからこそ、これらを考えることは最近で最も楽しい作業の一つになっている。