エージェント指向UIのためのストリーミング実行プロトコルとしてのMarkdown

開発者は、AIエージェント向けに生成型UIとコード実行を組み合わせる方法を探るプロトタイプを構築し、統一プロトコルとしてMarkdownを使用しました。このシステムは、単一のレスポンスでテキスト、実行可能なコード、データをストリーミングし、コードは到着するにつれて段階的に実行されます。
プロトコル:3種類のブロックを持つMarkdown
このアプローチは、LLMが既に理解している標準的なMarkdown構文を使用し、新しい形式を教える必要を回避します。3種類のブロックを定義します:
- テキストブロック:ユーザーにストリーミングされるプレーンなMarkdownフォーマット
- コードフェンス:
```tsx agent.runは、永続的なコンテキストでサーバー上でTypeScript/JSXコードを実行します - データフェンス:
```json agent.data => "id"は、JSONデータをUIコンポーネントにストリーミングします
これらのブロックは、単一のレスポンス内で任意の順序で交互に配置できます。パーサーは、LLMからトークンが到着するにつれて段階的に処理します。
ストリーミング実行
コードは、LLMが生成するにつれて文単位で実行され、コードフェンス全体が閉じるのを待ちません。これにより、API呼び出しが開始され、UIがレンダリングされ、エラーが表面化する一方で、LLMはまだトークンを送信し続けることができます。開発者はこれを処理するためにbun-streaming-execを構築し、ストリーミング実行が標準的なランタイムプリミティブではないため、カスタムラッピングでvm.Scriptを使用しました。
mount()プリミティブによるエージェント型UI
このシステムは、LLMがReactコンポーネントとJSXに広く触れているため、UI生成にReactを使用します。中核となるプリミティブはmount()です:
mount({
ui: () => <Card>Hello from the agent!</Card>
});LLMがこのコードを生成し、サーバーがそれを実行すると、mount()はReactコンポーネントをシリアライズし、チャットインターフェース内でレンダリングするためにクライアントに送信します。
データフローパターン
プロトタイプは、データ移動のための4つの異なるパターンを実装しています:
- クライアント → サーバー(フォーム):エージェントはフォームを通じてユーザー入力が行われるのを待つことができます
- サーバー → クライアント(ストリーミングデータ):データフェンスはJSONをマウントされたUIに直接ストリーミングします
- サーバー → LLM(console.log):
console.log出力と例外は、新しいターンとしてLLMにフィードバックされます - LLM → サーバー → クライアント(完全な往復):LLMがデータを取得し、そのデータでUIをレンダリングするコードを生成する完全なサイクル
フィードバックループ
このシステムは、エージェントが自身と対話するためのメカニズムとしてconsole.logを使用します。LLMがコードブロックを含むMarkdownを生成すると、テキストはユーザーにストリーミングされ、コードは段階的に実行されます。すべてのconsole.*出力または例外は、新しいターンとしてLLMにフィードバックされます。出力や例外がない場合、システムは新しいユーザークエリを待ちます。
これにより、エージェントは自身の実行に反応することができ、例えばメッセージ数を確認したり、ユーザー入力を待ってから続行するために一時停止したりできます。
📖 完全なソースを読む: HN AI Agents
👀 See Also

ベンチマーク結果:38の実ワークフロータスクでテストされた15のLLM
ある開発者が、実際のワークフローから38のタスク(CSV変換、文字数カウント、モジュラー演算、フォーマット準拠など)を用いて、15のクラウドおよびローカルLLMをベンチマークしました。Claude 3.5 SonnetとOpusはともに100%のスコアを獲得しましたが、Sonnetは1回の呼び出しあたりのコストが3.5倍安くなっています。

SIDJUA v0.9.7:オープンソースのマルチエージェントAI、事前アクションガバナンス強制機能付き
SIDJUA v0.9.7は、セルフホスト型のオープンソースマルチエージェントAIフレームワークで、エージェントが行動する前にガバナンスルールを適用し、予算超過やスコープ違反などの未承認アクションをブロックします。複数のLLMプロバイダーをサポートし、4GB RAMで動作し、Tauri v2で構築されたデスクトップGUIを含みます。

OpenClawスキルパック:Ubuntu上での真の自律運用のための2,500以上のコマンドセット
OpenClaw AIエージェント向けの新スキルパッケージは、Ubuntu環境でのDocker管理、ネットワーク設定、CVE対応、システム自動化など、DevOps操作のための2,500以上の実行スキルを導入します。

ボットファイト:Claude Codeで構築されたマルチプレイヤーゲーム向けAIエージェントアリーナ
Bot Fightは、ポーカー、ビリヤード、ゴリラ、スネークなどのゲームでAIエージェントが対戦するアリーナです。Claudeコードで完全に構築されたNext.js + Nodeモノレポで、WebSocketとリアルタイムゲームエンジンを備えています。