これから先のソフトウェアエンジニアリングについて。 現時点ではLLMエージェントについて「最初はいいが大規模化するとコンテキスト長が足りず破綻する」という評価があると思います。私も同意見なのですが、だとすると未来はどうなりそうでしょうか。 可能性のひとつは、これからLLMが無制限に高性能化していき、あらゆる局面でスケールするようになることです。技術の進歩が目覚ましいので、理論的にはあり得るのかもしれません(ただし、私は推論技術は専門外です)。ただ仮にこうした未来があるとしても、その実行コストも莫大になるはずで、それが世界中のソフトウェアエンジニアリングを変えるのはやはり、しばらく難しいのではないかと思います。 もうひとつの可能性は、LLMの性能がそこまで伸びないことを見越して、人間のほうがやり方を変えること。極端な話、ポン出しの置きっ放しLPで大儲けできるのなら、未来のLLMの性能なんかどうでもいいです。稼げることが重要なのであって、稼げさえすれば複雑なシステムなんか開発を要しないわけです。それはつまり、みんなプログラミングみたいな難しいことで稼ぐのはやめちゃって、LLMがシャキッと機能する範囲でのみ活動するようになる未来です。これもまあ、あり得ないことではないのかもですね。少なくとも今後、そのような領域に今までいなかった人が参入してくるのは確実そうであります。とはいえ流石に、既存テクノロジービジネスが全部放棄される未来は想像が難しいですが…… このように考えていくと、結局、現代LLMが対応できる複雑性がシステムの全体像が要求するそれに到達しないことが問題の根幹だと気づきます。人間はどうしているんでしょうか?人間もLLMと同じく、複雑なものはしんどいので、発明をしています。 たとえばマイクロサービスです。外部からは統合されたひとつのシステムにみえるが、実際には内部にさまざまな境界があり、その断面ごとにインターフェイス確定とレートリミット配分によって結合され作用している…… マイクロアーキテクチャはそういう状態を目指すシステム開発手法であると理解しています。ここで重要なことは、マイクロサービスは機械だけでなく人間の話でもあるということです。つまり、ツーピザチームにしろチームトポロジーにしろ、マイクロサービスによって人間が関与できる範囲を狭くする、関係に濃淡をつけることで全体の規模をスケールさせるという、組織運用理論とセットであります。 そう考えていくと、これは同じ問題を解いているのではないでしょうか。つまりマイクロサービスが適用されると、システム全部を開発するよりは複雑性が小さくなる。規模が小さく、挙動が定義されたマイクロサービスになる。この方向性を進めていけば、現代のLLMでも十分に開発可能な規模に収まりうる可能性が高くなるのではないかと思います。 さらに、ここで考えてみます。現代のLLMは人間なしで森羅万象をプログラミングし、ひとつのマイクロサービスを開発し続けられるでしょうか?率直にいうと、今はまだ無理でしょう。密結合な巨大システムよりは容易だとしても、今のところ無理だと思います。将来(といっても、三ヶ月後とか)はどうなるか分かりませんが。 では現代のLLMは、ひとつのマイクロサービスに対して、シニアエンジニア監督のもとでメンバー4人分の働きができるでしょうか?直感ですが、これはおそらく既にできそうです。ピザ2枚分のチームは、1人の人間とLLMエージェント群により代替可能であるかもしれません。この「チーム」では、人間のあいだのコミュニケーションパスはゼロです。人間が一人なので当然です。ゼロコストより効率的な形態はありえないとして、われわれソフトウェアエンジニアが目指すのは当面このような「組織」ではないか、というのが私個人の予想です。 なのでもしかすると、近未来のソフトウェアエンジニアリング組織はシスの暗黒卿のようになるかもしれないですね。組織を機能させ継続させるために最小限の単位はシスの暗黒卿、すなわち、①すべてを支配する恐怖のリーダー、②リーダーの意のままに動くロボット軍団、③リーダーの教えを継承する弟子、この三要素であるので。 さらに進んでいうと、ひとつのマイクロサービスを監督する人間が、さらに別のマイクロサービスを監督できない必然的な理由はないように思います。開発LLMのコンテキストは単体マイクロサービスまでとしても、一人の人間が複数のマイクロサービスを監督することは可能かも。こうなってくると、シスの支配がシステム全体に及ぶことになるのかも。 ……暗黒卿の話はさておき、LLMの性能限界がなんらかの意味で「業務コンテキストを分割して小さくする」モチベーションになる可能性はそれなりに高いと予想しています。システムでいえばマイクロサービス化ということになるかもしれないですし、他の手法かもしれないですが、とにかくコンテキストの分割ができればなんでもよいわけです。 もちろんそうした断面を形成するためには追加コストがかかりますし、ノウハウも必要ですし、仮にそれで組織の規模が大きくなれば人件費がかかる、経営レベルの意思決定でもあります。システム開発においてもこうした問題があてはまるため、安易なマイクロサービス構築は推奨されてきませんでした。しかしそのような懸念がLLMによって解消され、むしろ分割メリットが大きくなる可能性はありそうだと想像しています。 もちろん、LLMが青天井に高性能化して巨大な業務モノリスを扱える日が来るかもしれません。でもそれはたぶん安くないでしょう。とすれば当面の間、マイクロサービス的な分割手法が有力となる可能性はあるのではと思います。