AIエージェントとコーディングの未来:Googleエンジニアとの対談

AIエージェント
この記事は約15分で読めます。

この動画は、GoogleのプロダクトデベロップメントチームリーダーであるKL WineMasterとの対談を通じて、AIエージェントの現状とコーディングの未来について探る内容である。Google I/Oでの発表を踏まえ、AIエージェントの実用化段階への移行、開発者向けツールの進化、そして従来のプログラミングパラダイムの変化について詳しく議論している。特に、Googleの Agent Development Kit(ADK)やJulesなどの新しいツールが、開発者の作業フローをどのように変革するかに焦点を当てている。

はじめに

皆さんこんにちは。チャンネルへようこそ。今回のエピソードでは、Google プロダクトデベロップメントチームを率いるKL WineMasterさんとの対談をお届けします。

AIエージェント、AIコーディングアシスタントにおけるその役割、そしてこの新しいパラダイムにおける開発者の絶えず進化する役割について話し合いました。この対談を楽しんでいただけることを願っています。

ムハンマドさん、お忙しい中お時間をいただき、お座りいただきありがとうございます。

こちらこそ、ありがとうございます。今週のI/Oは本当に素晴らしい週でした。もちろんカリフォルニアの天気も最高で、I/Oの屋外会場で過ごせて、今日あなたとお会いできて本当に嬉しいです。

I/Oはエキサイティングでしたね。おそらく皆さんにとって最大規模のI/Oだったのではないでしょうか。

Google I/Oでの大きな発表

はい、本当に巨大なイベントでした。たくさんの発表があり、素晴らしい講演もたくさんありました。毎年成長し続けています。

私がクラウドチームの方々とお話ししたかった理由の一つは、Googleがこれらの新しいイノベーションをどのように見ているか、そして開発者がそれらをどのように活用できるかを知りたかったからです。

興味深いことの一つは、エージェントがあらゆる場所に存在しているということです。Nextで覚えているかもしれませんが、ADK(Agent Development Kit)が前面に出て、エージェントについて話しました。今回は、エージェントが本当にすべてに織り込まれていると考えることができます。必ずしも同じ直接的な方法で議論したわけではありませんが、私たちが行っているすべてのことに本当に統合されていました。

本当にたくさんのことが起こっていて、I/Oでの100の事柄についてのブログ投稿もあるほど、とにかくたくさんのことが進行していました。今週はADKもリリースされ、初のJava ADKとPythonが1.0になったAgent Development Kitの両方を手に入れました。

Nextから1か月で、本当にたくさんのことが進化し続けています。驚くべき進化ですね。

特にエージェントの部分に触れたいと思います。Nextでは、エージェントが言及された回数をカウントするカウンターがあったと思います。その前は、AIが言及された回数をカウントするカウンターがありましたよね。

でも今は、エージェントやAIを実際にプロダクション化する段階に本当に移行しているようですね。多くの講演が、エージェント自体というよりもプロダクトについて語っています。

エージェントの実用化段階

Googleの視点から、開発者が実際にその上にスケーラブルなプロダクトを構築できるように、エージェントが準備できているとお考えですか。

そう信じています。私は最初からエージェントに携わってきました。そしてそれはそれほど長い間ではありませんでした。私はこれを、モデルに焦点を当てていた時代からの進化として捉えています。

その後、AIシステムというアイデアを耳にするようになりました。モデル単体では、必要なすべてを構築するのに十分ではないという考えです。前処理、後処理、システム思考、そして問題を解決するために多くの要素を一緒に適用する必要があります。

GoogleやオープンソースなどからのAgent Development Kitsの進化により、最初から学んだことは、LLMが最初に登場したときに、プロンプトをモデルに送信する方法や応答を受け取る方法を支援する汎用的な抽象化であるフレームワークがあったということです。さまざまなユースケースのサポートを追加していました。

ADKが登場したとき、それは本当に特定のことを解決することに関するものでした。私たちは、エージェントとは何かから始めて、必要な構成要素を本当に理解しました。プランナー、ブレイン、そのコアのLLM機能の外でできることを行うツールセット、異なるツールを呼び出すための共有メモリとコンテキストを持っています。

私たちが本当に行ったことは、そのインフラストラクチャをすべて自分で発明する必要がないように、非常に簡単にするクラスと構成要素のセットを提供することです。指示が何か、ツールセットが何かを文字通り言うだけで準備完了です。

そこの多くの顧客や開発者が、「これを実装しようとしてみたが、直感的で簡単だった」と言っているのを見ています。これまでで私が気に入っていることの一つは、dev UIというユーザーインターフェースです。これにより、コードを試してローカルで見たり、VertexAIエンジンやCloud Runでホストしたりするのが非常に高速になります。

開発ツールとデバッグの重要性

会話をすぐに見て、チャットインターフェースを持ち、どのツールが呼び出されているかを確認し、セッションにアクセスできます。これまでのところ、素晴らしい追加機能として聞いているのは、そのような直感的なAPIと本当に素晴らしいユーザーインターフェースが最初から組み合わされていることです。

エージェントを構築するときに、あなたが説明したようなトレーシングやデバッグなどのツールは重要なコンポーネントですよね。これらの分野でGoogleからもっと多くのツールを期待すべきでしょうか。

はい、絶対にそうです。そしてあなたが触れているのは、エージェントの課題の一部です。主な違いの一つは、非決定性です。言い換えれば、従来のプログラミングでは、ステップのセットを提示すると、常に同じ方法で実行されます。

エージェント的なアプローチでは、ポイントAからポイントBまでの道筋について、いくらかの曖昧さがあることに慣れる必要があります。私たちはツールのセットを提供し、LLMが正しい決定を下してそこにたどり着くことを信頼します。

その素晴らしい部分は、従来のプログラミングスタイルよりも広範囲でファジーな問題を解決できる汎用性を提供することです。従来のプログラミングスタイルでは、すべての異なるエッジケースを事前に知っておく必要があります。

Nextで行ったカスタマーサービスのデモを覚えているかもしれません。大幅な割引を求めて電話をかけてきた顧客について話しました。リクエストを単純に拒否する可能性があるシンプルなルールベースのシステムの代わりに、ユーザーと協力し、承認を得たり、人間をループに含めたりするシナリオがありました。

これは、エージェントが現実世界の問題や人間のインタラクションの複雑さをより良く解決する力を本当に示しています。すべてのことと同様に、トレードオフがあり、適切な仕事に適切なツールを使いたいのです。

そのため、エージェントでは、カバーできる異なるユースケースの幅広さと開放性に機会があると見ていますが、それはまた、各ステップで何が起こっているかをデバッグし、知ることができる挑戦も意味します。

評価とモデル分析の課題

私たちの前にあるもう一つの機会は評価です。それは重要なコンポーネントですね。

はい、なぜなら私たちは業界として、モデル自体とその出力、一貫性、そしてしばらく前から存在し続けて進化しているこれらすべてのメトリクスを評価する点で大きな進歩を遂げているからです。

エージェントに関しては、問題を見る新しい方法があります。呼び出されたツールの選択を分析すること、軌道は正しかったか、呼び出されるべきだったが呼び出されなかったツールがあったか。でも、考えてみれば、それは本当に氷山の一角です。適切なツールを呼び出すことです。

私たちは、このエージェントがどれほど良く機能しているか、どれほど良く問題を解決しているかについて、より良い把握を得るために、本当に理解し、改善し、革新しようとしています。

それらは非常に重要なポイントです。開発者はこれらのシステムをどのように使用しているのでしょうか。コードアシスタントツールが全体的にたくさんあり、みんなのワークフローの重要な部分になっていると思います。ワイプコーディングについて聞いたことがありますよね。開発者として、これがどこに向かうと予想されますか。

コーディングアシスタントの現状と未来

予測するのは難しく、水晶玉は持っていませんが、私の経験で何がうまくいき、何がうまくいかなかったかを共有できます。

ワイプコーディングについて言えば、時には本当に物事を加速させますが、時にはレールから外れることもあります。お互いに複合する提案を提供し、解決策に追加される可能性のある余分なコードが含まれ、少し整理する必要があるかもしれません

でも、ワイプコーディングについて、誰かの専門家やツイートがありました。正確にどこから来たのかは覚えていませんが、「最適なワイプコーディングの量を見たところ、約40から50パーセントだった」と言っていました。

それは興味深いと思いました。ワイプコーディングには絶対に場所があり、物事を大幅にスピードアップできますが、時には「よし、解決しようとしている問題に私の専門知識を持ち込もう。LLMを適切な答えに導くために自分の知識で介入し、物事を軌道に戻そう」と言う場所もあります。

それは、エージェントが必ずしも問題を解決しているわけではなく、人間の要素も組み合わせる必要があるアシスタントビューの素晴らしいメタファーだと思います。それがコードアシスタントの視点です。

Julesの革新的なアプローチ

I/Oで見たものは、Julesの導入でした。本当にクールです。デモを行い、試してみました。それで試したことの一つは、つまらないかもしれませんが、アプリケーションに単体テストを追加したり、依存関係をアップグレードしたりすることでした。

Julesについての発表を見ていない場合は、チェックすることをお勧めします。それは完全にエージェント的なエンドツーエンドアプローチで問題を解決するものです。チャットするだけで答えを提供しますが、実際にクラウド仮想マシンを起動してテストし、本当に堅牢な答えを作成し、その後GitHubでプルリクエストとブランチを作成するところまで行きます。

本当にすべてが準備完了で、それについて非常にクールなことは、必要なことを言うだけで、システムがエンドツーエンドでタスクを完了するという、システムとのやり取りの全く異なる方法だということです。

実際に私のビデオの一つでそれをカバーしました。私が気に入ったのは、人間がループに入るコンポーネントがあることでした。仕様を与えると、非同期エージェントがそれを実装しに行きますが、その後人間としてあなたがそれをレビューします。大きなプロジェクトを持つ真剣なソフトウェア開発者により適していると感じます。

その通りです。私の見方では、デリゲートパターン対ピアパターンと呼ぶかもしれません。デリゲートと言うとき、それは仕事の一部を取って、「お願いします、手伝ってください、ただ頑張ってください」と言うことを意味します。最後に検証するつもりですが、何をする必要があるかを単純に言えば、それが完了します。それがJulesスタイルが多くの意味を持つところです。

それからピアアプローチがあります。そこでは細かい作業に取り組み、一緒に物事に取り組み、作業しているコードでもう少し細かくなる必要があります。両方が一緒に働く場所がしばしばあります。

個人的に、Julesにエンドツーエンドでタスクを実行させ、コードをブランチに入れてから、VS Codeに切り替えるところに遭遇しました。Gemini code assistのようなものがあり、そのブランチをgitチェックアウトして変更を確認し、少しカスタマイズしてから、それが人間がループに入り、他のプログラミングスタイルが入ってくるところです。

協調的アプローチの継続

近い将来、AIがすべてのコーディングタスクを引き受けるのではなく、より協調的なアプローチが続くと想定されますか。

そう思います。すべてを自分で実装しなければならない状況から、何をする必要があるかを指定し、要件を定義し、システムを設計してから、実装が抽象化されるというスペクトラムを考えると、私たちはそれに向かって少し動いていると思います。

これは将来必要なスキルに触れており、設計し、アーキテクチャを構築し、本当に必要なことを明確にできることです。それは開発者として引き受けるコアスキルセットで、あなたが行っていることでプロダクトマネージャーのスキル、プロダクトオーナーのスキルも取り入れます。

それはプログラミングの自然な進化です。数年前、より深いコンピューターアーキテクチャについては少し錆びついていますが、CやLang言語のような低レベルの言語で作業していたとき、アセンブリがあった頃まで戻ると、レジスタを扱っていました。

私たちは業界として抽象化のレベルでずっと上がり続けています。物事がどのように動作するかを知っておくことは常に良いことですが、アイデアから実装までの道のりの邪魔になるもののいくつかを自動化する方法を持つことは、基本的にそのループをスピードアップすることです。

アイデアがあり、それをテストし、検証したいと思います。私が見てきたクールなことの一つは、LLMで解決策の複数のバリアント、解決策の複数のバージョンを作成し、どれが欲しいかを選んで、それのより多くのバリアンスを持つという概念でもあります。

プラットフォームの進化

この直線的な道筋を単に進むのではなく、私たちの創造性を高め、私たちの思考を拡張し、私たちのアイデアに小さな変異を与えるというアイデアです。

この進化により、人間がプログラミング言語とやり取りする方法とは別に、プラットフォーム自体はどのように進化すると思いますか。

Google Cloudで聞いたマントラの一つは、ソフトウェア開発ライフサイクルを見るとき、最初にシフトレフトがありました。それは基本的に、開発プロセスの早い段階により多くの責任をもたらすことでした。例として、テスト駆動開発について考え、最後にそれを行うのではなく、前もってテストについて考えることです。

それから、シフトダウンに進化しました。それは、その責任をプラットフォーム層にシフトすることを意味しました。ADKと観測可能性機能、デバッグ機能を見ると、これらの管理機能の多くがプラットフォームによって処理されるようになることが始まって見えるでしょう。

I/Oで見た発表の一部で、Google Cloudで利用できる新しい機能の一部を既に見ています。すべてのデータベースを横断して見ることができるデータベースセンターがあり、ログやシステムの他の部分間の相関を見て何が起こっているかを特定できるcloud assistがあります。

ハイパースケーラーが複雑なアプリケーション全体のすべての異なるサービスを活用し、その情報をまとめて持ち込むことができると思います。もちろん、LLMはそこで役割を果たします。彼らはこれらの干し草の山の中の針のような情報をまとめて接続することが非常に得意です。

Googleの多様なツール戦略

いくつかのツールとそれらの哲学について話したいと思います。Googleは、ほぼ同じことを行う複数の異なるツールを構築しているという感覚があると思います。例えば、AI StudioにはFirebase Studioと非常に類似した概念があり、エンドツーエンド開発という観点からです。Julesをリリースしましたよね。その背景にある哲学は何でしょうか。

確かに公正な質問です。私たちはイノベーションの時代にいますよね。迅速に動き、あらゆる種類の問題を解決し、非常に創造的になっています。

これについて言えることは、お互いに競合するツールについてではなく、仕事に適したツールを見つけ、特定のエコシステムに適したツールを構築することです。

Firebase Studioを見ましたよね。モバイルとWebアプリケーション開発において特別な強みを持つ、完全にエンドツーエンドのクラウドフルスタックである素晴らしいオールインクルーシブ環境があります。データ用のFirestoreへの直接統合などです。

それから、モデル中心の素晴らしい体験を持つAI Studioがあります。そこで質問をし、直接そこで物事を構築します。それからVS CodeやJetBrains開発者のために、IDE内に直接Gemini code assistがあります。

Julesは進化している技術だと思います。それがどのように進化するかを見るでしょう。しかし、今のところ、私はそれを開発者が居る場所で彼らに会い、それらのエコシステムに適した技術を作成することと考えています。

例えば、ADKで見たことの一つは、企業の開発者に大きなニーズがあったため、Java用のADKをリリースしたことです。プロフェッショナル開発者の30%がJavaを使用しており、企業で依然として非常に人気のある言語です。Pythonを学ばせて追加のハードルを作るのではなく、開発者が必要とする場所で彼らに会うために、Spring エコシステムに焦点を当てたADKです。

ツールの統合と収束

それが哲学です。公平に言えば、これらすべてのものがどのように組み合わさって収束するかも見ています。AI Studioに関連するCloud Runについての発表を見ましたか。コードを取って直接Cloud Runにデプロイしたり、Gemmaで実験していてそれを実際にCloud Runエンドポイントにデプロイしたりする本当に興味深い機能があります。

これらは、それらをまとめながらも、開発者が居る場所で彼らに会うエンドポイントや表面を持ち続けて、しかしナビゲートを簡単にし、複数のチームがGoogle Cloudでさまざまな角度から物事にアプローチしているあなたの旅を進化させながら移動することを簡単にする機能の例です。

開発者の役割の進化

みんなが再び恩恵を受けることができると思います。素晴らしいツールがあり、私たちのために問題を解決できるAIがあるという概念です。開発者の役割が進化するのを見ていますか。例えば、今はプロダクトマネージャーと別々のQAチームがありますよね。開発者としてそれらのスキルも必要になると思いますか。

コミュニケーションがこれまで以上に重要になり、あらゆる種類の分野で働く必要があると思います。そして、役割はより流動的になると思います。

要件と設計について話したように、AIの時代でプロトタイピングが完全に変わるという概念について、Nextで話しました。アイデアがあって、正式な設計やモック、高忠実度、低忠実度を通じてそれらすべてを経ることなく、コードに直接スキップする可能性があります。

どのように見えるかを見て、迅速なフィードバックを得ましょう。クールですね、正しい軌道に乗っていますか、はい、いいえ、じゃあもう一つやってみましょう。私たちはそれを加速しているので、ゲームを少し変え、開発者のスキルセットを拡張します。

しかし、同じことがプロダクトマネージャーの場合も適用されると思います。コーディングに新しく、GeminiでフルMVPを構築し、週末でビジネスを作成しているプロダクトマネージャーを見ています。

Figmaからコードまでのデザイナーがあらゆる種類のクールなものを構築しているので、分野全体で、これは私が学んだことです。生成AIは快適ゾーンから出るのを助けてくれます。本当に「ちょっと自分を伸ばしてみよう、この技術で正式に訓練を受けていないけど、やってみよう」と言うのを助けてくれます。

新しいスキルセットの獲得

AIにガードレールとサポートを提供してもらい、いくつかのことを調べてみましょう。誰もがそうするだろうと思うので、学習だけでなく、自分を伸ばし、新しいことを試し、AIにガードレールとサポートを提供してもらうことでもあります。

それで終わりにしましょう。ありがとうございました、Khal。

こちらこそ、お話しできて光栄でした。皆さんありがとうございました。

皆さん、ありがとうございました。この対談を楽しんでいただけたことを願っており、次回お会いしましょう。

コメント

タイトルとURLをコピーしました