
The Merge: Why Building AI Chat Is Harder Than It Looksの意訳です。
CodeRabbitがお届けするポッドキャストThe Mergeの最新エピソードで、オープンソースのAIチャット/エージェント向けインターフェースライブラリAssistant UIの創業者兼CTO、Simon Farshidと対談しました。インターフェースの裏側にある見えない仕事、プロダクト判断の重要性が高まっている理由、そしてSimonがCodeRabbitとともに動かしているコーディングエージェントのループについて語っています。
Assistant UIは、React開発者にカスタマイズ可能なAIチャットコンポーネントを提供し、レスポンスのストリーミングや会話の状態や添付ファイル、メッセージ編集、音声、エージェントバックエンドとの接続など、基盤となる処理を担います。
このライブラリは、Simonのハッカソンプロジェクトから生まれました。実験やスタートアップのアイデアに取り組むたびに同じチャットインターフェースが必要になったため、自分で作ることにしました。スタートアップにするつもりはなかったとSimonは言います。
「自分自身が必要としていたものでした」
実は、同じ問題を抱えていた開発者は大勢いました。Assistant UIは今では2,000以上のGitHub上のオープンソースプロジェクトで使われ、npmパッケージはアップデートを含めて月間140万ダウンロードに達しています。
難しいのは状態管理
「チャットインターフェースはシンプルですが、難しいのは状態管理です」とSimonは言います。
チャットボックスは、レスポンスが始まるまでは単純に見えます。Markdownの描画が続く最中もテキストは流れ込んできます。ユーザーはファイルを添付したり、以前のメッセージを編集したり、実行停止や音声へ切り替えることもあります。どの操作も画面に表示される内容と、その下にある会話の状態を変えます。
ユーザーはChatGPTやClaudeをはじめとする洗練されたAIプロダクトで身につけた習慣を持ち込んできます。そのため、組み込まれたエージェントに対して、会話を失うことなく中断や修正ができ、滑らかに応答することを期待しています。
Assistant UIがランタイムの状態と一般的なチャットの挙動を管理することで、チームは自社プロダクトが本当に必要とするインタラクションに集中できます。
残りの20%で審美眼が問われる
対談がコーディングエージェントの話題に移り、Simonは明確な仕様がコードになった後に残る仕事へ目を向けました。
「10%の労力で仕事の80%を終えられますが、残りの20%にこそ独自の価値があるんです」
Simonにとって、審美眼は実践的なものです。すっきりしたAPIや役に立つインタラクション、すべてのチームに同じ設計を押しつけずに繰り返し起きる問題を解く機能に表れます。Simonは新しいパターンを顧客のコードベースで試し、うまく機能したものをメインライブラリへ取り込みます。
Simonのマシンで動くレビューループ
エピソードの終盤で、Simonは自身のコーディングエージェントとCodeRabbitを組み合わせたレビューループについて説明しました。
「とても良いループの一つは、エージェントにCodeRabbitのエラーを確認させ、修正して更新をプッシュさせることです」
Simonがエラーと呼ぶのは、CodeRabbitがレビュー中に示す指摘のことです。Simonが説明したループでは、コーディングエージェントが明確な指摘を修正して更新をプッシュします。確信が持てない指摘はエージェントがSimon向けに要約し、Simonが次のレビューまでに何を変更すべきかを判断します。
Simonはワークフローのほかの場所でも同様のループを試しており、その多くは夜間に実行されます。たとえばAssistant UIのドキュメントをファイルごとに確認し、古くなった内容を更新するループがあります。
Simonはこの働き方をLean Forward(前かがみ)と呼んでいます。AIは、わずかな労力でプロジェクトを完成に近いところまで進められます。それでもエンジニアは残りの作業に関わり続けなければならないと、Simonは言います。そこでのプロダクト判断や慎重なレビュー、細部への注意が最終的なプロダクトに大きな違いをもたらすからです。
Assistant UIのオープンソースとしての始まりや生成型インターフェースの未来、Simonがすでに実践している開発ループについては、本編のThe Mergeをご覧ください。



