LLMによって駆動されるWeb上の拡張可能なソフトウェア
TL;DR – LLMは従来の膨張を伴わずにWebアプリを拡張可能にし、Cloudflare Dynamic Workersはそのアイデアを本番環境向けプラットフォームに変えるために必要な隔離性、観測性、データプリミティブをすでに提供しています。
長尾問題とLLMの重要性
ほとんどのWebアプリケーションは需要曲線の上位部分を満たすだけで、ニッチなユーザーのニーズは長尾として残されたままです。 小さなユーザー層向けの機能を追加すると、他のすべてのユーザーのUIが複雑化し、従来の開発サイクルではその長尾を埋める余力がありません。
LLMは経済モデルを変える:オンデマンドでカスタムコードを生成できるため、「1人用のソフトウェア」をハッカーの趣味からスケーラブルなサービスへと変貌させます。Jeremy Morrellが指摘するように、「昨年、あなたのユーザーは突然、コードを言語で生成できる能力を手に入れました。"
コミュニティの洞察
「満たされていない機能の長尾は現実です。ほとんどのアプリは一般的なケースをうまく処理していますが、LLMによって生成された拡張機能は、コア製品を肥大化させることなくそのギャップを埋めることができます。」 – harlan_pdx (HNコメント)
Web上の拡張可能なソフトウェアとは実際どういうものか
拡張性とは、アプリのイベント(レコード更新、cronジョブ、UI操作)にフックし、LLMによって生成されたスニペットをサンドボックス内で実行できるようにすることです。 ユーザーは自然言語でリクエストを記述し、システムがそれをコードに翻訳し、厳格な権限セットで実行されます。
セーフな拡張エンジンのための要件
| 要件 | なぜ重要か |
|---|---|
| 経済的な実行 – インアクティブ時のコストはほぼゼロ、1回の呼び出しあたり1セント未満 | 数千~数百万のスニペットを手頃に実行できる必要がある。 |
| 高速なコールドスタート – リクエストパスの拡張に対して1桁ミリ秒の遅延 | ユーザーは拡張機能がネイティブのように感じることを期待している。 |
| 細かい制限 – CPU、メモリ、ネットワーク、ログ量、実行時間 | ランナウェイループ(例:while true { print })がプラットフォームをクラッシュさせないよう防ぐ。 |
| 強固な隔離 – サンドボックスにより、1人のユーザーのコードが他のユーザーに影響を与えたり、データを漏洩したりしない | マルチテナントSaaSはSpectre風の攻撃や資格情報の漏出を防ぐ必要がある。 |
能力ベースのI/O – コードは明示的な参照(例:fetchApprovedEmail)を通じてのみ動作できる |
複雑なプロキシロジックの必要性を排除し、セキュリティの推論を可能にする。 |
既存のWebスケール拡張性:Salesforceの先例
Salesforceは、マルチテナントのプログラマブルプラットフォームがスケールで成功する可能性を実証しています。そのApex言語により、開発者はカスタムエンドポイント、スケジュールされたジョブ、UIフックを追加できますが、プラットフォームが隔離性、制限、トランザクションの安全性を強制しています。
「SalesforceのApexを使えば、コア製品内にカスタムロジックを書くことができます。ルーティング、認証、テナント隔離はプラットフォームが処理します。」 – Jeremy Morrell
今日の重要な違いは、LLMがApex風のコードを自動的に生成できる点です。これにより、エンジニアでないユーザーの障壁が劇的に低下します。
実行プリミティブの技術選択肢
| オプション | 長所 | 短所 |
|---|---|---|
| インタプリタ(Lua、QuickJS、カスタムDSL) | フットプリントが小さく、埋め込みが簡単 | パフォーマンスが限定的、カスタムサンドボックスの強化が必要 |
| V8 Isolates | 成熟したJIT、強固な隔離性、Cloudflareは既に使用中 | 1 isolateあたりのメモリが高め、依然として能力ゲートが必要 |
| MicroVM(Firecracker、libkrun) | ネイティブOSに近い隔離性、POSIXサポート | 起動遅延が1秒以上、リソース消費が大きい |
| WebAssembly + WASI | 言語に依存しない、組み込みI/Oがない(サンドボックスに最適) | ホスト側での能力注入が必要、ツールチェーンの複雑さ |
HNの議論では、V8 Isolatesと能力モデルの組み合わせがWebスケールSaaSにとって最適なバランスにあると合意されています:
「サンドボックス実行は確かに重要な側面ですが、外部エンドポイントを公開し、アクセス制御ロジックが不備であれば、サンドボックスのセキュリティは意味がありません。」 – socketcluster
Cloudflare Dynamic Workers – 既に完成されたスタック
Jeremy Morrellは、2026年における拡張可能なWebアプリを構築するための最も完成度が高く、本番環境で利用可能なフレームワークとしてCloudflare Dynamic Workersを挙げています。
要件に合致する組み込みプリミティブ
- 観測性 – ランタイムにOpenTelemetryトレーシングとテールログが組み込み済み。
- マルチテナントストレージ – ユーザーごとのSQLite用Durable Objects、バイナリストレージ用R2バケット。
- 永続的実行 – Dynamic Workflowsにより、長時間実行・リトライ対応のジョブが可能。
- ソース管理 – バージョン管理用の拡張機能のアーティファクトストレージが統合済み。
- ホストされたLLM – Workers AIにより、拡張機能がユーザーごとのトークン予算でLLMを呼び出せる。
- セルフホスティングツール – JavaScriptツールは同じワーカープロセス内で実行可能で、テストが簡素化される。
サンプル能力ベースの拡張
// ホスト提供の能力
export const getApprovedEmail = () => fetchEmailById(123, env.EMAIL_API_KEY);
// ユーザー生成スニペット(LLM生成)
export default async function process({ getApprovedEmail }: { getApprovedEmail: () => Promise<Email> }) {
const email = await getApprovedEmail();
// ...カスタムロジック...
}
スニペットはgetApprovedEmailしか呼び出せません。RawなAPIキーは一切見えないため、資格情報の漏洩が防がれます。
ポストで強調された実世界のユースケース
| ドメイン | LLM駆動の拡張例 |
|---|---|
| AIエージェント | Piに独自コマンドを追加し、ニッチなウェブサイトを解析して構造化データを返す。 |
| 企業内プラットフォーム | 従業員が共有データレイクに対してオンデマンドで分析スクリプトを書く。プラットフォームがユーザーごとのデータスコープを強制する。 |
| サポートプラットフォーム | カスタマーデータに特化した診断情報を自動でチケットビューに埋め込み、LLMが生成した「クォータリセット」ボタンを提供。 |
| 観測性ツール | ユーザーがダッシュボードにカスタムログ変換スクリプト、アラームトリガー付きスクリプト、リソース固有のハイパーリンクを注入。 |
コミュニティの反応 – 合意点と懐疑的意見
- 合意 – 長尾ニーズとLLM生成コードの力は広く受け入れられている。
「満たされていない機能の長尾は現実です… LLM生成拡張機能がそのギャップを埋めることができます。」 – harlan_pdx
- 配布に関する懐疑 – 「1人用ソフトウェア」がなぜWebベースでなければならないのか疑問を呈する者もいる。
「なぜクライアント/サーバーモデルが必要なのか?配布にどう関心があるのか?」 – zahlman
- プラットフォームロックインの懸念 – 複数のコメントでCloudflareが普遍的なホストにならない可能性を指摘。
「Cloudflareがデフォルトになるのは想像しにくい。GoogleやMicrosoftがそれをやるほうが自然だ。」 – bensyverson
- セキュリティ最優先の視点 – 一時的なプロキシではなく、能力ベース設計の重要性を強調。
「コードは、渡された参照を通じてのみ動作できる。」 – ryanrasti
ビルダーへの実践的教訓
- 信頼できるサンドボックスから始める – V8 IsolatesまたはWASM + WASIで強固なセキュリティ境界を確保。
- Raw APIではなく能力を公開する –
fetchApprovedEmailのような関数をユーザーコードに渡す。トークンは決して渡さない。 - 既存のプラットフォームプリミティブを活用する – Cloudflare Dynamic Workersのストレージ、ワークフロー、AIバインディングを使って、自前で再発明しない。
- 厳格なリソースクォータを実装する – CPU時間、メモリ、ネットワークコールの上限を設定し、無限ループやDoS攻撃を防ぐ。
- シンプルな共有モデルを提供する – ユーザーが拡張機能をパッケージとして公開し、他のユーザーがインポートできるようにする。プラグインマーケットプレイスモデルを模倣する。
結論
LLM支援コーディングにより、ユーザー固有の機能の長尾が開発の地獄からスケーラブルなサービスへと変貌します。能力ベースのサンドボックス(V8 IsolatesまたはWASM)とCloudflare Dynamic Workersの組み込み観測性、ストレージ、AI統合を組み合わせることで、開発者は今日からWebファーストの拡張可能なプラットフォームをローンチできます。コミュニティはその可能性に合意していますが、セキュリティ、コスト、プラットフォームロックインは初日から対処すべき課題であると警告しています。
Sources
関連
- Dispatch
- Dispatch
- プロジェクト
- Dispatch
- プロジェクト