ポッドキャスト:タイガーチーム、評価、エージェント:新たなAIエンジニアリングのプレイブック
InfoQのポッドキャストで、Mastraの共同創業者兼CEOであるSam Bhagwatが、オープンソースコミュニティの構築・維持、AIエンジニアリングと評価の新たな分野、そしてエージェント型アプリケーションの開発にはクロスファンクショナルなタイガーチームが重要であると語った。
キーポイント
AIエンジニアリングの新たな分野
AIエンジニアリングとその評価(エバル)が、ソフトウェア開発における新たな重要な分野として台頭していることが議論されている。
エージェント型アプリケーション開発の鍵
エージェント型アプリケーションを実際にリリースするためには、クロスファンクショナルなタイガーチームが重要な役割を果たすと指摘されている。
オープンソースコミュニティの重要性
オープンソースコミュニティを構築し、持続させることの重要性についても言及されている。
影響分析・編集コメントを表示
影響分析
この記事は、AI技術の実用化フェーズにおいて、従来のソフトウェア開発とは異なる新たなエンジニアリング手法と組織体制(タイガーチーム)の重要性を指摘している。AI開発の現場における実践的な課題とその解決策に焦点を当てており、AIプロダクト開発の成熟度が高まっていることを示唆する。
編集コメント
ポッドキャストの紹介記事であり、具体的な技術的詳細や実証データには乏しいが、AI開発の現場で注目されている実践的なトピック(エンジニアリング、評価、組織体制)を網羅的に取り上げている点は評価できる。
トランスクリプト
シェーン・ハスティ:皆さん、こんにちは。InfoQエンジニアリングカルチャーポッドキャストのシェーン・ハスティです。本日はサム・バグワット氏にお越しいただきました。サム、ようこそお越しくださいました。お時間を割いていただきありがとうございます。
サム・バグワット:こちらこそ、お招きいただきありがとうございます、シェーン。
シェーン・ハスティ:これらの対話における私の通常の開始点は、「サムとは誰か?」という質問です。
導入と背景 [00:37]
サム・バグワット:では、少し自己紹介をさせてください。キャリアの初期には、シリコンバレー系のいくつかのスタートアップ企業でエンジニアとして働きました。その後、Gatsbyという会社のフレームワークの共同創設者となりました。GatsbyはReactウェブフレームワークであり、2010年代後半に非常に人気を博しました。私は現在、オープンソースのJavaScriptに取り組んでから10年が経過し、現在はAIエージェントの構築のためのオープンソースJavaScript/TypeScriptフレームワークであるMastraの共同創設者兼CEOを務めています。
なぜオープンソースなのか? [01:07]
シェーン・ハスティ:そのオープンソースの背景についてもう少し掘り下げてみましょう。なぜオープンソースなのでしょうか?
Sam Bhagwat: 私の場合、それはある種の偶然でした。10年前のことですが、親友と仕事をしていて、Reactが台頭しつつあるのを目にしました。私たちはこれがウェブ開発にとって正しいパラダイムであると強く確信していました。2015年当時の振り返れば非常に論争を呼ぶものでしたけれど、私たちはこれが未来だと心から感じていました。そしてその頃、私たちはこのフレームワークに取り組んでおり、それは勢いをつけ始めました。そこで私たちは互いに、「よし、どうやってこれをフルタイムでやろうか?」と話しました。そしてその道筋を見出し、次の数年をかけてフレームワークと会社を構築していきました。
Shane Hastie: 何が違うのでしょうか?オープンソース環境に特有なことは何ですか?
Sam Bhagwat: オープンソースで作業する場合、世界中の人々と協力することになります。Gatsbyの主要なコントリビューターには、ポーランドで優れたエンジニアリング能力を発揮する人物がいました。私たちは全く異なる人生背景を持つ人々と一緒に働いてきました。あなたのGitHubのイシューに現れる人物が、あなたと同様の人生段階にあるエンジニアかもしれないことは誰もわかりません。あるいは大企業のエンジニアリングディレクターかもしれませんし、インドの大学生かもしれません。あらゆるケースが考えられます。
もう一つ言えることは、あなたが構築していたものを人々が試行錯誤している様子を見守り、あなたのリードを追うことです。「おや、あなたは私が想像もしなかったことをこの方法で行ったのか。私の作ったものの上に別のレイヤーを構築し、相互運用可能なツールを作ったのだな」。このような無許可のエコシステムは、多くの異なるものが生まれ、互いに統合されることを可能にします。本当に素晴らしいと思います。私としては、非常に楽しかったです。
オープンソースコミュニティの健全性を維持する [02:40]
Shane Hastie:これはエンジニアリングカルチャーポッドキャストです。オープンソースの文化コミュニティ、より正確には「生成性」や「生産性」のある状態をどのように維持するか。確かに、それが非常に不快な形で崩壊する事例も目撃しています。
Sam Bhagwat:オープンソースコミュニティは時間とともに進化していくものだと考えています。初期段階では、多くの人が何かを試しながら試行錯誤している状態です。もしあなたのプロジェクトが注目を集めれば、人々はそれを自身の業務環境に取り入れ始めます。最初にあなたのプロジェクトに不満を持つのは、通常、あなたが作ったものを使って誰かが構築したプロジェクトを継承した人々です。彼らは「この実装方法が好きじゃない」と言います。そうしたケースでは、軽やかな対応(ライトタッチ)が重要です。時には人々が質問をしてこないこともあります。「ここに来たのは、あなたがこれに興奮しているからでしょう。もし気に入らなければそれも結構です。全員を満足させることはできません」といったスタンスが必要です。
そして、使用する技術について選択の余地がある人もいれば、そうでない人もいる。最初は特定の方向性(opinionated)で一つのことに着手し、時間が経つにつれて、人々があなたのプロダクトで何を行えるようにするかについて柔軟性を保ち、さらに製品開発における彼らのフィードバックに対して受け入れ態勢を整える必要がある。オープンソースでプロダクトを構築し始める大半の人は、自分自身の課題(scratch their own itch)を解決するために始めたに過ぎない。私たちは、その開発の道筋を永遠に続けられないことを学ばなければならず、適応せざるを得なかった。私たちは、私たちが始めたものに対して人々が何を行いたいと考えているかについて、よりオープンでなければならない。
Shane Hastie:それは手放すように聞こえます。
オープンソースの精神と商業的现实のバランス [04:08]
Sam Bhagwat:それは手放すことであり、実際に非常に好奇心を持ち、投資している特定の物事のやり方から自分のアイデンティティを切り離すための感情的な成熟の組み合わせです。私は商業ベースのオープンソース企業の創業者として、ややユニークな視点を持っています。そして今、これは私たちがオープンソースプロジェクトを立ち上げ、同時にビジネスを構築しなければならないという2回目のケースです。
オープンソースの世界には、純粋なオープンソース信奉者が存在し、商業的なミッションを持つ企業で働くことに非常に困難を感じている人々がいます。一方で、「自分が勝てば、お前は負け」という考え方の強い商業主義者の人々もいます。これらの人々は、オープンソース系の企業で働くのが難しいのです。なぜなら、そこには「いや、これにお金を請求するつもりはない」「この機能はお金にすべきではない。常に無料であり、オープンソースであるべきだ。誰もがそれを使うべきだ」といった、ある種の寛容さや精神が存在するからです。
もしあなたがそのような人々を自社に迎え入れると、彼らはその種の精神を潰そうとするでしょう。したがって、オープンソースの人々を見つける必要がありますが、あまりにも商業に反対な人々は避けるべきです。また、商才のある商業系の人々も必要ですが、彼らは「お前が勝てば、私も勝つ」という考え方の人々であるべきであり、極端な反対側の立場にある人々ではないはずです。
Shane Hastie: つまり、その中間点を見つけることですね。私たちが集まった理由は、もちろんオープンソースのことだけではありませんでしたが、あなたはAIエンジニアリングやAIエンジニアリングチームについていくつかの考えをお持ちですね。それは従来のエンジニアリングとはどう違うのでしょうか? また、オープンソースの領域においても、それは異なるものなのでしょうか?
AIエンジニアリング [05:39] の台頭する分野
Sam Bhagwat: AIエンジニアリングの分野に参画し、第一歩を踏み出す人々をサポートするために、私は数冊の本を書きました。多くのスタック開発者やデータエンジニア、データサイエンス関連の専門家が、キャリアを転換してAIエンジニアリングの世界に入ろうとしています。30代半ばで、これまでにさまざまな技術的な波を見てきた私の視点では、これは過去にDevOpsやデータエンジニアリングで見られた現象と似ていると思います。これらの新しい領域は、Googleのような大規模な組織から生まれ、その後世界中に拡散していきました。
そして、人々がこれらの領域に移行したい場合、その移行期には比較的容易な時期があります。なぜなら、企業はこれらの種類のアプリケーションを構築したり、こうしたエンジニアリングを行ったりしたいという強い需要がある一方で、3年の経験を持つ人材がそれほど多くいないからです。したがって、もしあなたが適切なプロジェクトに関わったり、適切な種類の作業を行ったりできれば、実際に専門知識を習得し、自分にとって興味深く、かつ職業的に有利な新しい領域へと進んでいくことができるでしょう。
Shane Hastie: では、何が異なるのでしょうか?
サム・バグワット:今回はすべての出来事が以前よりも速く進行しています。私が最も注目する指標は、AIプロジェクトの成長速度が、過去の他の種類のプロジェクトと比べてどのくらい速いかという点です。以前は3〜4ヶ月かかっていたプロジェクトの成長が、今は1ヶ月で達成されています。そして、これらの技術がGoogleのような企業から業界全体へ採用され、普及していく速度も、おそらく同様の軌道を描いていると考えます。
AI支援型オープンソース開発 [07:00]
シェーン・ハスティ:では、これらを融合させることについてはどうでしょうか?オープンソースのコーディングにおける生成AIの適用は進んでおり、その状況はどうなっていますか?
サム・バグワット:私たちがこの点にかなり執着していると言っても過言ではありません。オープンソースのメンテナーのライフサイクルを想像してみてください。まずDiscord上でバグレポートを受け取り、「よし、これを分類するためにさらに情報を集めよう」と考えます。その後、それをGitHubのイシューにまとめます。そして、その修正を行うためのPR(プルリクエスト)を作成し、その修正をレビューしてマージします。さらに1週間後には、すべての変更をまとめて変更履歴に反映させます。私たちはClaude Codeを積極的に活用しており、社内ではComposerを使用して複数のエージェントを同時に実行しています。私の共同創業者は、より多くの並列コード生成エージェントを実行するために新しいコンピュータを購入することを検討しているほどです。しかし、私たちはこのプロセスのすべてのステップに対応するエージェントも構築しています。
Discord のスレッドにあるバグレポートを受け取り、GitHub のイシューに要約するエージェントを構築しました。多くの場合、詳細な再現手順が得られないため、再現可能なイシューの記述を試みるためにバグを仕込んでいます。そして、理想とはほど遠い情報から再現手順を作成しようとするため、変更履歴を生成するエージェントも構築しました。さらに、PR(プルリクエスト)にコメントを行い、その品質を評価する複数のサードパーティエージェントも稼働しています。正直なところ、これは非常に楽しい作業です。まるでスーパーパワースーツを着たかのような感覚で、より多くの成果を上げることができます。イシューは無限に存在し、できることも無限にあります。そして今、より速く、より多くのことを実行できるようになりました。
AI 強化型エンジニアリングチームの姿 [08:27]
Shane Hastie:では、AI 強化型エンジニアリングチームはどのような姿をしているのでしょうか?
Sam Bhagwat:Slack には「Kindergarten(幼稚園)」というチャンネルがあり、共同創業者の Abi がこの名前を付けました。彼曰く、「私たちはこの分野で本当に初心者だからです」。私たちは、物事のやり方に関するリンクを投稿するだけです。私たちはリモートチームですが、ペアプログラミングを頻繁に行います。これは、これらのツールの使用方法に関する個人の理解を広範なチーム全体に分散させ、エージェントが暴走し始めた際にそれを察知する方法を学ぶのに役立ちます。それを察知できるかどうかは重要です。なぜなら、Composer が暴走し始めた際、1 秒後に気づくことと 10 秒や 30 秒後に気づくことでは、ゾーンに入ったりゾーンに留まったりする能力に大きな差が生じるからです。エンジニアにとって楽しい時代ですね。
AIエンジニアリングの基礎:エージェント、ワークフロー、評価 [09:09]
Shane Hastie:幼稚園児でも、私たちは新しいことを学ぶ必要があります。基本に戻りましょう。その基本とは何でしょうか?
Sam Bhagwat:AIエンジニアリングの基本は、エージェントとワークフローの2つだと考えています。つまり、エージェントとは、メモリを備えたLLM(大規模言語モデル)を実行し、ツールを呼び出すループのことです。一方、ワークフローとは、LLMがそのグラフ内の決定ノードとなり、ツールを呼び出し、メモリを持つことができる構造化されたグラフです。つまり、メモリとはメッセージのキューの構造化された圧縮と見なすことができます。この作業記憶を圧縮する方法は様々で、意味的メモリや観測的メモリなどがありますが、本質的にはそれがすべてです。
私は、これらを単なる統計的テストとは呼ばないという点が好きです。実際そうだからです。そして、その種類も様々です。ユニットテストのようなものを書くこともできますし、インテグレーションやエンドツーエンドのテストを書くこともできます。スタックの異なるレイヤーからアプローチすることも可能ですが、トレーシングと評価は、いわば……従来のソフトウェアアプリケーションを構築する際にはあり得なかった状況、つまり複数の成功ケースが異なるレスポンスボディを持つ可能性があるため、エージェントアプリケーションの非確実性ゆえに、従来のエンジニアリングよりもAIエンジニアリングにおいて10倍重要であることが見て取れます。
エージェントアプリケーションのための効果的な評価の作成 [10:21]
Shane Hastie: それでは、評価(evals)について深く掘り下げてみましょう。その通りです。生成されるコードは非確定的(non-deterministic)です。生成物に隠れた品質上の欠陥がないように、どのようにして保証するのでしょうか?
Sam Bhagwat: さまざまな環境に通常インストールできる、いくつかの「オフ・ザ・ボックス」の評価(out-of-the-box evals)があります。例えば、プロンプトの正確性や公平性・偏りのなさ、応答の毒性、ツール呼び出しの正確性などです。これらはやや一般的な種類のものです。しかし、特定のユースケースにおいて真に高い価値を生み出すのは、組織が持つ他社にはないデータに基づき、貴社のビジネス固有の評価(evals)を記述できる場合です。
モデルには評価基準があります。法的な評価、医療的な評価、そしてGPT-5.2やClaude 4.5 Opusといったモデルが学習し、評価されるさまざまなデータセットやベンチマークがあります。しかし、モデルプロバイダーが行わない、アプリケーション構築において重要なのは、貴社の組織の中核的な競争力に関連する固有の事項と、貴社が持つデータです。
Shane Hastie: その中の一つについて詳しく掘り下げていただけますか?具体的な例として、IDE内でClaude Codeを使用している開発者の視点から、これはどのようなもので、どのような感覚があるのでしょうか?
Sam Bhagwat:では、Claude Codeやその他のツールにおける「アジェンティック・バイブコーディング」という概念を、他の開発手法と明確に区別することが重要だと考えています。つまり、私たちはアジェンティックなアプリケーションを構築しています。大きく分けて二種類の開発があり、私たちがより多く接しているのは後者です。もちろん私たち自身もCursorやClaude Codeなどでバイブコーディングを行っていますが、私たちがより多く目にするのは、人々がアジェンティックなタイプのアプリケーションを構築しているケースです。
SaaSアプリケーション内でのエージェント構築 [12:19]
Shane Hastie:その一例を挙げていただけますか?
Sam Bhagwat:もちろんです。現在、人々がエージェントを構築する際の代表的なユースケースの一つは、SaaSアプリケーションのインターフェースとしてエージェントを構築することです。ある意味では、Webは私のSaaSアプリケーションにおける一つのクライアントと見なすことができます。しかし、モバイルクライアントである場合や、iOSおよびAndroid上の複数のモバイルクライアント、さらにはデスクトップクライアントもあるかもしれません。ある意味では、あなたのエージェントはAPIに対するもう一つのクライアントとなります。
例えば、HR(人事)SaaSプラットフォームの構築事例を見てみましょう。彼らはユーザーが自身のデータを用いて質問に答えようとする様子を観察しました。ユーザーはCSVファイルをエクスポートし、それをChatGPTに貼り付けていました。彼らはここで二つの問題があることに気づきました。第一に、これはプライバシーの観点から最適ではない可能性があります。第二に、消費者向けのチャットツールには、あなたのアプリケーション内部に組み込まれている組織に関するコンテキストがほとんど含まれていないということです。
そして、これはSaaSアプリケーション内にエージェントを構築したチームの例で、給与情報やその他の文書を統合することで、レポートの生成やHR(人事)ポリシーに関する質問への回答を行うことができます。これは人々がエージェントを構築する際の典型的なユースケースです。そして、非常に興味深いのは、組織データにアクセスし、SaaSアプリの基本的な機能だけでは明確でない、あるいは容易ではない方法でユーザーと対話して情報を提供するような、顧客向けのエージェントです。
ドメイン固有の評価基準の作成:専門家の関与 [13:58]
Shane Hastie:では、どのようにして優れた評価者(evaluator)を構築すればよいのでしょうか。特に先ほどのHRアドバイスの例のように、非常に厳格な法的規則に縛られる場合です。
Sam Bhagwat:通常、チームが行う方法は、専門家を招くことです。そして、専門家に対して「このドメインを十分にカバーする質問リストを作成してもらえますか?」と尋ねます。その後、多くの人間が作成したデータを収集するプロセスに入ります。つまり、人々が尋ねそうな異なる質問のリスト、その他の入力データ、関連するPDFファイル、そして5つの異なるサンプルセットとして提示される従業員の給与および情報データ、さらにそれらの給与データなどに基づいた5つの異なる回答例を準備します。
つまり、評価(evals)の対象とするべきは、自組織に固有の事柄だということです。例えば、人事(HR)ソフトウェアを開発している場合、特定の給与計算ルールや解雇時の退職金規定、オンボーディング手順、従業員の公平性に関する規則といった管轄区域の要件は、モデルの学習データに公開されている情報とは限りません。それでも、こうした包括的なデータセットを作成したいと考えるのが自然です。
通常、これらのプロジェクトは2つのフェーズに分かれます。最初のフェーズでは、動作するプロトタイプを作成し、それとチャットして回答を得られるようにします。その後、エージェントの精度を評価し始めます。つまり、「このエージェントは80%または85%の精度を持つが、95%や99%の精度が必要だ」といった評価を行います。次に重要なのは、エージェントがどのような失敗モード(modes of failure)に直面しているかを特定することです。おそらく、あるカテゴリの質問には reasonably well(概ね良好に)回答できても、別のカテゴリの質問では著しく困難を示すことがあります。
これは一種の分析演習のようなもので、多くのデータを注視し、失敗モードを分類するのを支援するために、よりPM(プロジェクトマネージャー)タイプの人物を巻き込むことがよくあります。その後、エージェントに提供しているプロンプトやコンテキストを微調整し、収集したデータセットで十分に高いスコアを獲得できるまで、不正確性の原因を体系的に削減していきます。
組織が誤った回答を提供することによるリスクを理解する必要があります。場合によってはそのリスクが高く、低いこともあります。したがって、許容閾値は異なる場合がありますが、精度を許容閾値を超えられるまで高めることができれば、通常は段階的なロールアウト(段階的導入)と同様のアプローチになります。私たちは、まずベータテスターの最初のグループに機能フラグ(feature flagging)を使用して展開し、その後1%、5%、10%、50%へと拡大する使用例を多く見ています。これらの展開は通常、数日ではなく、自信を得ながらより広いグループの人々に展開していくため、数週間にわたって行われます。
ソフトウェアエンジニアリングとデータサイエンスの思考法の融合 [17:00]
Shane Hastie:これの一部は、ソフトウェアエンジニアリングで過去数十年にわたって行ってきた比較的標準的な分析演習のように聞こえます。しかし、一部は非常に異なります。これらは、従来のエンジニアが持っていないスキルセットだと言えます。
Sam Bhagwat: 興味深いのは、多くの組織でこれらの2つのグループが存在する点です。統計的な不確実性により慣れ親しんだデータサイエンティストがいる一方で、本番環境向けのソフトウェア構築には経験がないケースがあります。彼らはJupyter Notebookなどでプロトタイプを作成することが多いでしょう。一方、スケーラビリティを考慮し、本番環境へのデプロイが可能で反復的な開発が可能な方法について熟考するソフトウェアエンジニアもいます。しかし、彼らは通常、統計的手法で物事を考える訓練を受けていません。
興味深い課題の一つは、これらの2つの思考フレームを結びつけることです。そして今では、応答時間やレイテンシにおいてP99やP95という用語を用いて議論しており、中央値の応答時間だけでなく、長尾(ロングテール)の応答時間も最適化することで、ユーザーの大多数が良好な体験を得られるようにすることが重要であるという認識が広がっています。
AIエンジニアリングにおけるP95やP99に相当する概念の用語を、私たちは徐々に確立しつつありますが、これは非常に新しい分野です。
AIプロジェクトのためのクロスファンクショナル・タイガーチーム [18:16]
Shane Hastie: 多くのことが浮上し、進化しています。これは文化やチームに戻って考えるとどうなるでしょうか?つまり、エンジニアリング志向のスタッフとデータサイエンティストタイプのスタッフが、どのように効果的に連携できるのでしょうか?
Sam Bhagwat:私たちがチームで成功しているのを見てきたのは、異なるタイプの人々から情報を収集できる人材をプロジェクトにアサインすることです。したがって、ここではいくつかの異なるチーム・アーキタイプが存在すると考えています。150人から200人の大規模なエンジニアリング組織であっても、CTOが事実上このプロジェクトのリードを務め、コードの相当部分を記述しているケースを見てきました。これがほとんどのプロジェクトで典型的なことでしょうか?いいえ、しかしこれはリスクが高く価値も高いプロジェクトです。そのため、CTOは非常に現場に近い立場で、複数の役割を担えるベテランの経験を持つ人物がドライバー席に座っています。
時には、オブジェクト(成果物)の引き継ぎが行われるケースもあります。ある人がプロトタイピングを開始し、そのプロトタイプが一定の段階に達すると、組織は「よし、これを本番環境に投入しよう」と考えます。そして、数人のメンバーまたは小規模なチームがプロトタイプフェーズを完了した今、Tiger Team(タスクフォース)にどのようなスキルセットのメンバーを加えるべきかを検討します。
しかし、このTiger Teamという概念は非常に重要だと考えています。なぜなら、クロスファンクショナルな人材を引き抜く必要があり、既存の組織構造にそのまま当てはまるものではないからです。したがって、この点で struggling(苦戦している)と見られる組織は、コマンド・アンド・コントロール型の組織です。彼らは、クロスファンクショナルな特定のプロジェクトのためにTiger Teamを編成することに難しさを感じています。
不快感を受け入れ、AIエンジニアリングに踏み込む [20:04]
Shane Hastie: このAIエンジニアリングのアプローチを受け入れるにあたり、リスナーに贈るたった一つのアドバイスは何ですか?
Sam Bhagwat: 私は37歳です。そして、20代から30代、さらにはその先へと年齢を重ねるにつれて、新しいものを目にした際に、デフォルトの熱意ではなくデフォルトの懐疑論で反応してしまう傾向があるように思えます。私たちはエンジニアであり、本質的に懐疑的な性質を持っています。その懐疑論が課題となるのは、新しい分野で優れた成果を上げるためには、不快感を受け入れ、自分がやっている新しいことである程度下手になることにも慣れなければならないからです。
「ああ、私はこれが上手くないな」という感覚を抱き、自分自身にイライラすることになるでしょう。しかし、それが新しいものであり、奇妙であり、以前行ってきたこととは異なるからといって、ただ拒絶するのではなく、この不快感を伴う期間に耐え抜き、粘り強く続ける必要があります。私たちのCEOもこの点について繰り返し強調しています。
懐疑的になる理由は数多く存在します。しかし、もしあなたが望むなら、新しい種類のテクノロジーを構築できる人物となること、あなたの分野やコミュニティ、あるいは組織におけるアーリーアダプター(早期採用者)やパイオニアとなり、異なる要素がどのように組み合わさるかを解き明かすことには、大きな機会があると考えています。
私にとって、魔法のような体験が二つあると思います。一つは、動作するプログラムを初めて走らせた時で、「なんてクールなんだ。コンピュータがこれをやってくれている」と思ったことです。もう一つは、AIエンジニアリングにおける「バイブコーディング」で、LLMが何をしているかを見守り、この共同創造プロセスの一員となる体験です。そこで私は、皆が共に楽しめるこの素晴らしいことに対する、その生のエネルギーと情熱に身を委ねるよう人々を励まそうとしています。
Shane Hastie:Sam、本日はお時間を割いてお話しいただき、誠にありがとうございました。もし人々が会話を続けたい場合、どこであなたを見つけられるでしょうか?
Sam Bhagwat:LinkedInで見つけることができます。また、Twitter(X)でも見つかります。
Shane Hastie:了解しました。それらのリンクを必ず掲載します。本当にありがとうございました、Sam。
Sam Bhagwat:お招きいただきありがとうございます、Shane。大変光栄でした。
Mentioned:
Sam Bhagwat on LinkedIn and X
About the Author
Sam Bhagwat
Sam Bhagwatはソフトウェアエンジニアであり、シリコンバレー系のスタートアップ企業でキャリアをスタートさせました。その後、2010年代後半に非常に人気を集めたReact用ウェブフレームワーク「Gatsby」の共同創設者となりました。彼は10年以上にわたりオープンソースのJavaScriptに関わり、現在ではAIエージェントの構築のためのオープンソースJavaScript/TypeScriptフレームワーク「Mastra」の共同創設者かつCEOを務めています。
Show moreShow less
ポッドキャストの最新情報はRSSフィードでご覧いただけます。また、SoundCloud、Apple Podcasts、Spotify、Overcast、YouTubeでも配信されています。このページからは録音されたショーノーツにもアクセスでき、それぞれにクリック可能なリンクがあり、オーディオの該当部分へ直接ジャンプすることができます。
原文を表示
Transcript
Shane Hastie: Good day, folks. This is Shane Hastie for the InfoQ Engineering Culture Podcast. Today I'm sitting down with Sam Bhagwat. Sam, welcome. Thanks for taking the time to talk to us.
Sam Bhagwat: Thanks for having me, Shane.
Shane Hastie: My normal starting point on these conversations is, who's Sam?
Introduction and background [00:37]
Sam Bhagwat: Well, I guess a bit about myself. Early on in my career, I worked as an engineer for a few different Silicon Valley type startups. Then I was the co-founder of a framework in a company called Gatsby, which is a React web framework, which became quite popular in the late 2010s. I've been doing open source JavaScript for 10 years now, and I'm currently the co-founder and CEO of a framework called Mastra, which is an open source JavaScript/Typescript framework for building AI agents.
Why open source? [01:07]
Shane Hastie: Let's dig into that open source background a little bit. Why open source?
Sam Bhagwat: In my case, it was sort of a happenstance. So I was working with my best friend, this is 10 years ago, so we saw React kind of emerging. We were very confident this was the right paradigm for web development. And it was very controversial when we go back to 2015, but we really felt like it was the future. And so we were working on this framework around that and it started to take off. And so we kind of turned to each other and we're like, "Okay, how do we do this full-time?" And then we figured that story out and then we spent the next several years building out the framework and the company.
Shane Hastie: What's different? What's special about an open source environment?
Sam Bhagwat: When you work in open source, you collaborate with people all over the world. Our top contributors at Gatsby was a brilliant engineer in Poland. We had people in completely different life circumstances. You don't know if the person that shows up in your GitHub issues is maybe an engineer in a similar life stage as you. Maybe there's some director of engineering at some large company, or maybe there's some college students in India. It could be any of the cases.
The other thing I would say is watching people tinker around with the things that you were building and following your lead. "Oh, you used this to do this thing that I didn't imagine you did. You built another layer on top of my thing and this tool that's interoperable". And this kind of permissionless ecosystem just allows so many different things to emerge and integrate with each other. It's amazing. I mean, it's been a lot of fun.
Keeping open source communities healthy [02:40]
Shane Hastie: This is the Engineering Culture Podcast. How do you keep that open source culture community, I want to say generative and productive, because we certainly do see instances where it breaks down quite nastily.
Sam Bhagwat: I think open source communities evolve over time. In the beginning, it's a lot of people tinkering around with things. If your project gains traction, people start bringing it into their work environments. The first people you get that don't like your thing are usually the people who inherited a project that someone else built with your thing, and they were like, "I don't like how this does it". And I think you have to have a light touch with things. Sometimes people aren't asking questions. You start it with, "Oh, well, if you're here, it's because you're excited. And if you don't like it, that's okay. We can't make everybody happy".
And then some people have the choice in the technology to use and some people don't have the choice. So you start off doing one thing in an opinionated way, and you have to be more flexible over time as to what you want to let people do with your thing, and also just receptive to their feedback in terms of your product development. I think most people who start building an open source build a product just scratch their own itch. And we had to learn that we could not continue down that path of development forever and we had to adopt. We had to just be more open to what people wanted to do with the thing that we started.
Shane Hastie: That sounds like letting go.
Balancing open source spirit with commercial reality [04:08]
Sam Bhagwat: It's letting go, and it's a combination of the emotional maturity to decouple your identity from a certain particular way of doing things that you are actually genuinely very curious and invested in. I have a slightly unique point of view as the founder of commercial open source company. And then now this is the second time where we've started an open source project, and then there's a business to be built as well.
There are people in open source that are open source purists and have a very difficult time working in a company that has any sort of commercial mission. There are also commercial type people that are just very, I win, you lose kind of people. And these people have a hard time working in open source type companies because there's a certain magnanimity where, no, we don't want to charge for this. We never want to charge for this. This part of the product should always be free, should always be open source. Everyone should use it.
And those type of people, if you bring them into your company, they will do their best to squash that sort of spirit. So there's a bit of you have to find the open source people, but people that aren't too anti-commercial. And you have to find the commercial people who are savvy, but they're like, you win, I win kind of people rather than too much in the other direction.
Shane Hastie: So finding that middle ground. The reason we got together was not just about the open source stuff, of course, but you've got some thoughts on AI engineering and AI engineering teams. How is that different or is it different in terms of one, traditional engineering, but also in that open source space?
The emerging field of AI engineering [05:39]
Sam Bhagwat: So I wrote a couple of books to help people get into the AI engineering field and get started. There's a lot of people from stack developers, data engineers, data science type folks that are trying to pivot their careers and get into AI engineering. I think my perspective now as someone in my mid 30s that have seen different technical waves is that somewhat similar to maybe DevOps or data engineering in the past where these are new domains that have emerged from these larger organizations, maybe the Googles of the world and get sort of diffused to the rest of the world.
And then there's a moment and a period of time where if folks want to transition into them, it's kind of easier because there's this very unmet need that companies are wanting to build these types of applications or to do this kind of engineering, but there's not that many people that have three years of experience. And so if you're able to get on the right project or do the right kinds of things, you can actually end up developing expertise and moving into a new domain that might be interesting or professionally advantageous for you.
Shane Hastie: So what's different?
Sam Bhagwat: Everything is happening faster this time. The metric that I look at the most is we see how fast growth is happening in AI projects versus previous kinds of projects. And three or four months of project growth was before is now happening in one month. And I think that's maybe a similar track for how quickly these technologies are just adopting or diffusing from companies like Google to the rest of the industry.
AI-augmented open source development [07:00]
Shane Hastie: And what about merging the two? The application of generative AI in the coding of open source, is that happening and how's it going on there?
Sam Bhagwat: I mean, we are sort of obsessed with this. The lifecycle of an open source maintainer is maybe you get some bug reports in Discord and you're like, okay, trying to get more information to triage that and then trying to distill that down into a GitHub issue. And then maybe you make some PR to fix that, and then you need to review that fix and get it, merged it in. And then maybe a week later you're aggregating all the changes and putting that into a change log. And we're just heavy Claude Code and internally we're using Composer to do multiple agents at the same time. My co-founder was thinking about getting a new computer so we can run more parallel coding agents. But we also have built agents for every step of that.
We built an agent that takes a bug report in Discord in a thread and summarizes it in a GitHub issue. We've built bugs to try to write repro issues when many times you don't get very detailed reproduction instructions. And so to try to create reproductions given less than ideal information, we've built agents to generate change logs. And we have multiple agents who are third-party agents that are commenting on PRs and judging their quality. I mean, it's a lot of fun. You just feel like you put on this superpower suit and you can just get more done. There's infinite numbers of issues and there's infinite amounts of things you can do and you can just do more faster now.
What an AI-augmented engineering team looks like [08:27]
Shane Hastie: So what does an AI augmented engineering team look like?
Sam Bhagwat: We have this channel called Kindergarten in our Slack, and co-founder, Abi, named it Kindergarten because he's like, "Look, we're really beginners at this stuff". We just kind of drop links about how to do things. We're a remote team, but we pair a lot because it helps us diffuse our individual understanding of how to use these tools better in the broader team, how to notice when your agent is going off the rails. It matters if you notice it because if Composer starts going off the rails, if you notice it one second versus 10 or 30 seconds just in terms of your ability to be in the zone and stay in the zone. It's a fun time to be an engineer.
The basics of AI engineering: agents, workflows and evals [09:09]
Shane Hastie: Kindergarten, we all need to learn new things. We are going right back to the basics. What are those basics?
Sam Bhagwat: I think the basics of AI engineering are agents and workflows are kind of the two fundamentals. So agents are, you're running an LLM in a loop we can call tools that has a memory. And workflows are just a structured graph where LLM can be a decider node in that graph and being able to call tools and have memory. I mean, memory we can think of as a structured compression of a queue of messages. There's different ways of compressing that working memory, semantic memory, observational memory, but anything fundamentally, that's what it is.
I like the fact that it's a different word and we don't just call them statistical tests because that's what they are. And there's different kinds. You could write more of unit type tests. You can write more integration or end-to-end type tests. You can come in at different layers of the stack, but tracing and evals are sort of ... We've seen them being, let's say 10X as important in AI engineering as your normal engineering, because the non-determinism of agentic applications, you can't, anymore, expect that ... You could have multiple successes that have different response bodies, and that's not the case when you're building traditional software applications.
Writing effective evals for agentic applications [10:21]
Shane Hastie: Let's dig into that evals. You're right. The code that's generated, it's non-deterministic. How do we make sure that there's not the hidden quality defects in what is being generated?
Sam Bhagwat: There are some these out-of-the-box evals that you can usually install in a variety of different environments. For example, prompt accuracy or fairness and unbiasedness or toxicity of a response or accuracy in tool calling. And these are somewhat generic type things. But where you really start getting into high amounts of value for your particular use case is when you are able to write evals that are unique to your business based on data that your organization has that others don't have.
Because if you think the models have evals. They have these legal evals and these medical evals and all these different datasets and benchmarks that GPT-5.2 and Claude 4.5 Opus and all these models are being trained on and evaled against. But the things that are important when building an application that the model providers are not going to do are the things that are unique to your organization's area of core competence and the data that your organization has.
Shane Hastie: Can we dig into one of those? A concrete example, what does this look like, feel like for the developer sitting there using Claude Code inside the IDE?
Sam Bhagwat: So I do think it's important to distinguish between the agentic vibe coding in Claude Code or whatever. And so we're building in agentic applications. So I think there are two different kinds of development, and we typically tend to interact more with folks. I mean, we ourselves are obviously vibe coding with Cursor or in Claude Code, et cetera, but the applications that we tend to see more are people building the agentic type applications.
Building agents inside SaaS applications [12:19]
Shane Hastie: So can we take an example of one of those?
Sam Bhagwat: Sure. So I think one of the modal use cases we see right now for folks building agents is to build an agent as an interface within your SaaS application. In some ways, we can think that the web is a client in my SaaS app. But maybe I'm a mobile client as well, or multiple mobile clients across iOS and Android and maybe desktop as well. And in some ways, your agents is another client for your APIs.
And so we've seen, for example, an HR SaaS platform with building, and they watched a lot of their users trying to answer questions with their data and their users would export CSVs and then paste them into ChatGPT. And they were like, "Well, there's two problems here. One, this is maybe not optimal from a privacy standpoint". But then it's also the consumer chat tools probably don't have a lot of context on your organization that you have embedded inside your application.
And so this is a team that built an agent inside their SaaS application that can generate reports for them or answer HR policy type questions by merging salary and some other documents. It's the modal use case of people building agents. And something that's really interesting are these sort of customer type facing agents that have access to organizational data and can interact with users in ways to service information that maybe it's just not clear or obvious or easy how to do using the basic functionality that exists in the SaaS app.
Creating domain-specific evals with subject matter experts [13:58]
Shane Hastie: And how would I build a good evaluator, particularly with, let's take that HR advice, where we are really bound by very, very strict legal rules.
Sam Bhagwat: Typically, the way that we see teams doing it is they'll bring in a subject matter expert. And so they'll ask the subject matter expert, "Can you give us a list of questions that would be reasonably comprehensive of the domain?" And then it's really just a process of gathering a lot of human created data. Okay, so here are the different questions that people might ask. Here are the other inputs, here's the relevant PDF. Here's five different sample sets of employee salary and information data, and then five different answers depending on their salary data or whatever it may be.
And so I think that kind of goes back to what we were talking about, about the things that you want to write evals on are the things that are very unique to your organization. And if you're building HR software, for example, these are maybe not things that are going to be in some jurisdiction that has some particular set of payroll rules and termination severance payment rules and onboarding rules and employee fairness rules. And these may not exactly be publicly present in the data that the models are being trained on in company-specific policies, yet you want to just create these kinds of comprehensive datasets.
Typically, these projects have two phases. The first phase is, can we get a prototype working that you can chat with it? It will give you answers. And then around there is where you start assessing the accuracy of the agent. Basically like, okay, so this agent has 80% accuracy or 85% accuracy. We need it to be 95% accurate or 99% accurate or however you want to score it. And then you have to figure out, well, what are the modes of failure that the agent is running into? Maybe it answers this class of questions reasonably well, but it really struggles with this other class of questions.
This is kind of like an analytical exercise, and this is obviously often where you might bring in more of a PM type to help stare at a lot of data and help classify the modes of failure. And then you start tweaking the prompts and the context that you're feeding into the agent and systematically burn down your sources of inaccuracy until you're able to score highly enough with your dataset that you've collected.
You have to understand what is the risk for your organization of giving incorrect answers, and sometimes that's higher and sometimes that's lower. And so you may have different thresholds of tolerance, but when you are able to increase accuracy to the point where you're past your threshold of tolerance, and typically then it's very much like staged rollout. We see a lot of use of feature flagging to bring it to maybe a first group of beta testers and then to 1% to 5% to 10% to 50%. And these don't roll out typically over days. It might be over weeks as you're gaining confidence and you're rolling it out to wider groups of people.
Marrying software engineering and data science mindsets [17:00]
Shane Hastie: Some of this sounds like a fairly straightforward typical analysis exercise that we have done in software engineering for decades. But some of it is quite different. These are skillsets that I'm going to say your traditional engineer doesn't have.
Sam Bhagwat: It's interesting because a lot of times in organizations you have these two groups of folks. You might have data scientists who are more comfortable with this sort of statistical uncertainty, but they're not experienced in building production software. And they might build prototypes in some Jupyter Notebooks or whatever. And then you have software engineers that are thoughtful about, here's how we'll build and iterate this thing that's scalable and I can deploy into production. But we aren't typically trained in thinking about things in statistical methods.
And some of the interesting challenges are being able to marry those two frames of mind. And I think we now have language around P99 and P95 in terms of a response and latency time where we know that you want to optimize not just the median response time, but we want to also optimize the long-tail response time so that a very large fraction of our users have good experiences.
And I think that we're kind of developing some of these terminologies for what is the equivalent of P95 or PN99 in AI engineering, but it's a very new field.
Cross-functional Tiger Teams for AI projects [18:16]
Shane Hastie: So a lot emerging, a lot evolving. What does this mean, coming back to the culture and the team? So if I've got this engineering style of focus folks and the data scientist type folks, how do we get them to work effectively together?
Sam Bhagwat: What we've seen teams have success with is being able to find folks to work on a project that are able to gather information from different types of people. So I think there's a few different team archetypes here. Even a large engineering organization of 150 or 200 people, we've seen the CTO act as basically the project's lead for this project and write a decent amount of the code of this project. Is that typical of most projects? No, but this is a high risk high value project. And so the CTO is really hands on the driver's seat, someone that has that veteran experience to be able to wear multiple hats.
Sometimes we see objects handoff where someone will start with prototyping it, and then when the prototype gets to a certain point, then the organization may say, "Okay, well, we really want to put this into production". And then they think about now that a couple of folks or a small team has gotten this prototype phase, what are the skillsets that we need to bring into the Tiger Team?
I think this Tiger Team concept though, I think is very important because you do need to pull in people cross-functionally, and it is not going to map into your existing org structure. So organizations that we see struggling with this are the ones that are more command and control They have a harder time making Tiger Teams for specific projects that are cross-functional.
Embrace discomfort and lean into AI engineering [20:04]
Shane Hastie: What's the one piece of advice that you would give the listeners about embracing this AI engineering approach?
Sam Bhagwat: I'm 37. And I think when you get out of your 20s into your 30s and into your later 30s, and beyond that as well, there can just be a sense of when you see new things, you can react with default skepticism rather than default enthusiasm. And I think we're engineers, we're naturally skeptical people. And I think that where that can be challenging is that if we lead with our skepticism, to be good in a new field, you need to be okay with being uncomfortable and okay with being kind of bad at this new thing that you're doing.
And you're going to have the sense of taste of it, like, gosh, I'm not very good at this, and you're going to be upset at yourself. But you have to stick with it and be okay with this period of uncomfortability, and not just reject it because it's new and it's weird and it's different than the thing that you've done before. And our CEO keeps shouting about this thing.
But there's a lot of reasons why you could choose to be skeptical. But I think if you want, there's a lot of opportunity in being able to be the person that is able to build a new kind of technology, and to be an early adopter and a pioneer in your field or your community or your organization, and figure out how the different pieces fit together.
I think for me, I think there's two sort of magical experiences that I've had. One was just the first time I've had a working program running, and I was like, "This is so cool. I'm having the computer do this". And the second is just vibe coding in AI engineering and watching what the LLM is doing and being part of this co-creation process. So I try to encourage folks to lean into that raw energy and enthusiasm for this cool thing that we all get to do.
Shane Hastie: Sam, thanks very much for taking the time to talk to us today. If people want to continue the conversation, where would they find you?
Sam Bhagwat: You can find me on LinkedIn. You can also find me on Twitter, X.
Shane Hastie: Well, I'll make sure we include those links. Thanks so much, Sam.
Sam Bhagwat: Thanks for having me, Shane. It's been an absolute pleasure.
Mentioned:
Sam Bhagwat on LinkedIn and X
About the Author
Sam Bhagwat
Sam Bhagwat is a software engineer who began his career working at several Silicon Valley–type startups. He later became a co-founder of a framework at Gatsby, a React web framework that grew quite popular in the late 2010s. He has been involved in open source JavaScript for over 10 years, and is currently the co-founder and CEO of Mastra, an open source JavaScript/TypeScript framework for building AI agents.
Show moreShow less
You can keep up-to-date with the podcasts via our RSS Feed, and they are available via
SoundCloud,
Apple Podcasts,
Spotify,
Overcast
and YouTube.
From this page you also have access to our recorded show notes. They all have clickable links that will take you directly to that part of the audio.
関連記事
[AINews] 今日は何も大きな出来事はありませんでした
Anthropic が RSI の兆候を示し、OpenAI の ChatGPT が月間アクティブユーザー数で 10 億人を突破。SpaceX AI は IPO について説明しているが、最も重要なのは AIE WF のチケット確保とイベント参加である。
MiniMax M3 の紹介:最先端の 3 つの能力を統合した初のオープンウェイトモデル
MiniMax が、コーディングとエージェント機能、100 万トークンのコンテキスト長など、3 つの最先端機能を組み合わせた初のオープンウェイトモデル「M3」を発表しました。
Datasette Agent のバージョン 0.1a4 がリリース
Simon Willison が、Datasette 1.0a30 で追加された JavaScript プラグインフックを活用し、エージェント機能の改善を含む新バージョン「datasette-agent 0.1a4」を公開した。