← 変更履歴
毎日2026-05-15

チャット UI の成長: サイズ変更可能なレイアウト、ネストされたツール呼び出し、サブエージェント カード

この日は 2 つのスルー ラインがありました。インターフェイスは成長しました。サイズ変更可能なレイアウト、ToDo の下にネストされたツール呼び出し、独自のカードを持つサブエージェント、ライブとリプレイが 1 つのパイプラインに統合されました。そしてバックエンドは、プラグイン ランタイム (イベント バス、権限エンジン、サンドボックス ファイル API、プラグイン マニフェスト) という大きな基盤を静かに注ぎ込み、「あらゆる機能をプラグインできる」道を切り開きました。このエンジンはコンポーネントの語彙も拡張し、シーン アセットを導入しました。

1 つは目に見えるもの、もう 1 つは静かなものです。バックエンドが基礎を築きながら UI が成長します。

その日の作業は、目に見える部分と目に見えない部分に分かれました。目に見える部分: チャット インターフェイスは一段階成熟しました。これはユーザーが毎日直面していることであり、あらゆる進捗がすぐに表示されます。目に見えない部分: バックエンドは、「サードパーティの機能をプラグインとして安全にインストール」できるランタイムである広範囲にわたる基盤を静かに注ぎ込みました。後者は、その日にユーザーが認識できるようなものはほとんど何も出荷しませんでしたが、プラットフォームが「ハードコーディングされた機能を備えたアプリ」から「際限なく拡張でき、さらにはユーザーが構築できるプラットフォーム」に成長できるかどうかを決定します。同じ日に見られた 2 人は、長期的な拡張性に賭けながら、目の前のエクスペリエンスを磨き続けるというバランスを体現しています。

チャットの成熟: サイズ変更可能なレイアウト + To Do の下にネストされたツール呼び出し

この日のインターフェースの進歩は、「情報をより明確に整理する」ことに重点が置かれていた。 1 つ目: サイドバー、チャット領域、下部パネルはすべてサイズ変更可能なため、何をしているかに画面スペースを割り当てることができます。コードを読むときはチャットを狭くし、出力を見るときは下部を高くします。 2 つ目、そしてより重要なことは、ツール呼び出しが 1 つの長いフラットなリストに分散するのではなく、ツール呼び出しが属する To Do 項目の下にネストされるようになりました。エージェントが複数ステップのタスクを実行すると、階層が一目でわかるため、「このステップを完了するためにどのツールを呼び出したか」が明確にわかります。長い会話や複数のステップからなるタスクで最も恐れられるのは、情報がぼやけ、進捗状況を隠してしまうことです。これら 2 つの変更により、「誰が何をしているのか、どこまで進んでいるのかが明確にわかる」ことが実現します。

サブエージェントは独自のカードを取得します

マルチエージェントのコラボレーションが一般的になるにつれて、「リードエージェントが複数のサブエージェントに委任する」というシナリオが日常的になりました。この日は、サブエージェントのアクティビティに独自のカードが表示されました。サブタスクはメインの会話のテキスト ストリームに混ざることはなくなり、それぞれが独自のコンテキストを含む折りたたみ可能なカードを取得しました。これにより、「誰が誰のために働いているのか、それぞれがどのように進んでいるのか」が瞬時に識別できるようになります。 「AI のチームを指揮する 1 人の人間」を中心的なシナリオとして扱うプラットフォームの場合、この「各メンバーの作業に独自の場所を与える」方法が不可欠です。そうしないと、チームが成長するにつれて、画面が判読できないシチューになってしまいます。サブエージェント カードは、抽象的な「マルチ エージェント」を、目で直接読み取れる絵に変えるための最初のステップです。

ライブとリプレイを 1 つのパイプラインに統合

これまでは、「エージェントをライブで見る」ことと「その後履歴を再生する」ことは、おそらく 2 つの別々のレンダリング パスであったと思われます。そのため、同じコンテンツでも、ライブで見たものと再生したものが詳細に一致しないことがよくありました。この日は、それらを同じ処理コールバックを共有する 1 つのパイプラインに統合しました。つまり、コンテンツがライブでストリーミングされているか、履歴台帳から再生されているかにかかわらず、コンテンツはまったく同じ解析と表示のパスを通過します。重要なのは一貫性です。一連の歴史を再度開くと、細部が歪められることなく、実際に何が起こったのかが正確にわかります。この「単一の真実のソース パス」設計により、2 つのロジックを維持する負担が軽減され、最も混乱を招く種類のバグ (ライブとリプレイの不一致) が根本的に排除されます。

バックエンドプラグインとランタイムの基盤: バス、権限、サンドボックス

この日のバックエンドの最も重い作業は、「サードパーティの機能を安全にインストールしてプラグインとして実行」できるようにすることを目的とした、プラグイン ランタイム基盤の注入を開始することでした。これはメッシュ部分で構成されています。インプロセス イベント バスなので、コンポーネントはパブリッシュ/サブスクライブを通じて緩やかに通信します。プラグイン マニフェストの解析と検証。マニフェストが宣言する「スコープ」に対する偽造防止機能を備えています (そのため、プラグインはその権限について嘘をつきません)。各プラグインがアクセスできるものとできないものをルールによって制限する許可エンジン。協調的なファイルロックを備えたサンドボックス化されたファイル API により、複数のプラグインの読み書きが相互に破損することはありません。さらに、何が起こったかを記録する追加専用のファイル台帳も追加します。このセット全体は、その日はユーザー向けにほとんど何も出荷されませんでしたが、これは長期的な「すべてがプラグインである」という方向性の真の出発点です。これにより、追加のたびにコアを書き直すことなく、新しいツール、新しいワークベンチ、または新しいエージェントを、統合され、制御され、サンドボックス化された方法で後でプラグインできるようになります。

エンジン: 拡張コンポーネントボキャブラリー + シーンアセット

このエンジンは、ゲームの世界を説明するための「語彙」を拡張し続けました。このコンポーネント システムでは、文字列や固定長/可変長配列などのデータ形状と、組み込みの「名前」コンポーネントがサポートされるようになりました。そのため、シーン内のすべてのオブジェクトに、単なる内部番号ではなく読み取り可能な名前を付けることができ、デバッグや後でエディタで表示するのにはるかに便利です。さらに重要なのは、「シーン アセット」が導入されたことです。これは、シーンをインスタンス化して世界に公開するメカニズムを備えた、参照可能でインスタンス化可能なアセット オブジェクトとしてシーン全体を管理するものです。これは、シーンをモデルやテクスチャと同じように構造的に保存、参照、再利用できることを意味します。これは、「エディターでシーンを構築する、シーンをレベルに組み立てる」など、その後のすべての機能の基礎となる前提条件です。

エンジン品質ゲート: 2 チャンネルチェック

このエンジンはまた、この日 2 チャネルの品質ゲートを設定し、2 つの相補的な角度からコードの品質を自動的にチェックしました。1 つのチャネルは従来のスタイルと規約のチェックを行い、もう 1 つのチャネルは特に「内部インターフェイス」の使用境界を監視し、内部使用のみを目的としたものが意図せずにパブリックとして公開されないようにします。どちらのチャネルも継続的インテグレーションで実行され、コミットごとに自動的に実行されます。その価値は、以前のレンダリング ベンチマークと同等のものです。つまり、「コードの品質は正しいか」ということを、人間によるレビューと自己規律から自動的かつ客観的かつ避けられないゲートに変えることです。長期的に進化し、これまで以上に多くの協力者に直面することを目的としたエンジンは、ゆっくりと腐ることなく高速に反復する自動ゲートに依存しています。

この日が意味するもの

この日の 2 本の線は、成熟した製品が同時に保持しなければならない 2 つの目的を正確に表しています。1 つはユーザーの現在の感覚であり、もう 1 つはプラットフォームの長期的な骨格です。チャット インターフェイスの成熟により、現時点での使用がより快適になり、バックエンドのほとんど目に見えないプラグイン ランタイムは、「このプラットフォームを後で無制限に拡張できるかどうか」の種を蒔きます。現在のケアと長期的な投資を同時に行うには、明確な役割分担と優先順位の判断が必要です。これらの経験はすぐに報われるべきものであり、たとえ時間がかかってもしっかりと築く価値のある基盤となります。これは、将来の開発のために残しておく価値のある経験です。目に見える機能を積み重ねるだけでなく、目に見えない基盤に自分自身を埋め込むだけではいけません。本当に難しいのは、どちらも変更しないことです。

← すべての毎日の更新