6 ポイント 投稿者 GN⁺ 2025-08-09 | まだコメントはありません。 | WhatsAppで共有
  • ローカル LLM 実行コードサンドボックス環境を使い、クラウド依存なしでAIワークスペースを構成する方法
  • OllamaでローカルLLMを起動し、Apple Containerを使って分離されたVMでコードを実行、Playwrightでヘッドレスブラウザーを用いた自動化とインターネットアクセスを可能にする
  • UIはassistant-uiをベースにし、モデル選択ドロップダウンとai-sdk統合、**MCP(Model Context Protocol)**を介した安全なコード実行環境を実装
  • MCPで接続したCoderunner VM内でJupyterサーバーとブラウザーを実行し、チャート生成・画像/動画編集・GitHubツールのインストール・Web検索などをプライバシー保護状態で処理可能
  • 現在はApple Silicon 専用で、UI改善やブラウザー検知回避、ツール管理機能強化が将来の課題

要件と背景

  • 目標: クラウドおよびリモートコード実行なしで、すべてをローカルで実行すること
  • 既存のLLMチャットアプリ(例: ChatGPT、Claude)は、クラウドベースのLLMチャット、クラウド/ローカルコード実行、インターネットアクセス機能を提供する
  • オープンソースLLMの普及拡大により、これらすべてを完全にローカルで実行できるかを検討
  • ローカルLLMだけでは不十分なため、分離された環境でコードを実行する必要があり、ブラウザー経由でコンテンツにアクセスすることも必要

アイデアの構想

  • LLMを完全にローカル環境で実行
  • 軽量VM(仮想マシン)内でのみコード実行を処理し、ホストシステムのリスクを遮断
  • ヘッドレスブラウザーを追加し、自動化と新規情報・ツール探索をサポート
  • AIの企画立案からコード実行まで完全にローカルで行われるプライバシー保護中心のワークフローを構築
  • 外部サービスへデータを提供せず、ローカルで画像編集、動画編集など多様な作業を可能に

技術スタック

  • LLM: Ollama(ローカルモデルおよび一部外部モデルに対応)
  • UI: assistant-ui + ai-sdk(モデル選択機能を追加)
  • VM ランタイム: Apple container(分離されたVM環境を提供)
  • オーケストレーション: instavm/coderunner(MCP経由でJupyterサーバーを接続)
  • ブラウザー自動化: Playwright(MCPツールとして公開)

Macアプリの試行と切り替え

  • a0.devを使ってネイティブMacアプリ開発を試みたが、iOS中心で難航
  • Electron + NextJSによるラッピングも試したが複雑性の問題で断念
  • 最終的にローカルWebベースのassistant-uiへ切り替え

Assistant-UIのカスタマイズ

  • モデル選択ドロップダウンなど複数LLM対応機能を提供するものとして期待されたが、限定的だった
  • サンプルを参照後、ai-sdkでマルチモデル選択機能を自前で実装
  • 初期はOpenAI/Anthropicのようなクラウドモデルもサポートし、段階的にローカル化へ誘導する戦略

Tool-callingとモデル対応の課題

  • Tool-callingをサポートするモデルが必要だったが、Ollamaなど一部は実際には未対応
  • 公式ドキュメントでツール対応が明記されていても、実装が不足しているケースが多い
  • オープンソースエコシステムの変化が速いため、ツール対応状況やトークン単価などの変動が大きい

コンテナベースの隔離コード実行

  • AppleのContainerツールを使用すると、Dockerと比べてコンテナごとに完全な分離VM環境を提供するため、AI生成コードをより安全に実行できる
  • VM環境にJupyterサーバーをデプロイし、Model Context Protocol(MCP)で公開して、さまざまなツール(Claude Desktop、Gemini CLIなど)からすぐに利用可能
  • coderunner MCPサーバーコードを公開し、外部ツールと連携するサンプルを提供
  • Apple Containerツールはまだ不安定で、ビルド/イメージの問題時には再試行が必要になることがある
  • 実際の動画編集テストなどでUI + LLM + Coderunner構成の正常動作を確認

ヘッドレスブラウザー統合

  • コンテナ内にPlaywrightベースのヘッドレスブラウザーをデプロイし、MCPツールとして公開
  • 新規ツール・情報探索、Githubの使い方検索、リサーチの自動化などの活用を想定
  • 基本ワークフロー: ローカルLLM + サンドボックスコード実行 + ヘッドレスブラウザーの組み合わせを構築完了

可能な作業例

  • 特定テーマの調査と要約
  • 自然言語コマンドでCSVチャート作成とレンダリング
  • ffmpegを使った動画編集(区間のトリミングなど)
  • 画像のリサイズ、トリミング、形式変換
  • Githubツールのコンテナ内インストール
  • ヘッドレスブラウザーによるウェブページクローリングと要約など

ファイルボリュームのマウントと隔離

  • ホストの~/.coderunner/assetsをコンテナの/app/uploadsにマッピングし、ファイルを安全な共有領域に保管
  • 実行されたコードはホストシステムに直接アクセス不可とし、セキュリティを確保

制約と今後の課題

  • Apple Silicon環境でのみ動作、macOS 26はオプション
  • ツール管理、出力ストリーミングなどUI改善が必要
  • ヘッドレスブラウザーが一部サイトでボット検知によりブロックされる問題が存在

結論

  • 本プロジェクトは単なる実験を超え、コンピューティング主権およびプライバシー保護を重視したモデルである
  • クラウドやリモートサーバー依存なしで、個人ローカルマシン上でデータを安全に処理する体験を提供する
  • 最高性能のLLMは大規模クラウドに留まる可能性があるが、個人プライバシーを守ることができるローカルAIツールの発展を志向する
  • オープンソースのcoderunner-uiはGitHubで利用可能で、フィードバックとコラボレーションを歓迎

関連リソース

まだコメントはありません。

まだコメントはありません。