コンテンツにスキップ

プラットフォーム

アーキテクチャとコード

プラットフォームとエージェントシステム

サービス境界と責務、インタラクションモード、そして横断的関心事 — デプロイ、セキュリティ、コードマップ、設計原則。

プラットフォームの形状とエージェントシステム。上部の全画面ボタンをご利用いただくか、プラットフォーム図を新しいタブで開く ↗

システム境界

LifeOSAIはクロスプラットフォームのエージェントオペレーティングシステムです。同じプロダクトモデルが2つのデプロイモードで動作します。

  • クラウドモード: ブラウザトラフィックがクラウドサービスで処理され、エージェントランタイムはクラウドインフラで動作します。
  • ローカルモード: Tauriデスクトップアプリがローカルサイドカーを起動し、ローカルファイルとローカルデータストアを使用します。

高位のサービス境界は以下の通りです。

ユーザー / チャネル / オペレーター
apps/web または外部チャネルトランスポート
apps/user-management
apps/api
packages/agent ランタイムアダプタ
Claude CodeエージェントまたはPiエージェント

apps/user-management はブラウザ向けのルーティングハブです。ユーザーセッションを検証し、プロダクトリクエストを正しいバックエンドサービスに転送します。エージェント実行は apps/api、特にオーケストレーションエンジンとランタイムインボーカが所有します。

サービス責務

レイヤー所有者責務
プロダクトエントリapps/webLifeOSAIチャット、企業、アプリ、ファイル、設定、静的エクスポート対応シェル
デスクトップシェルapps/tauriローカルデスクトップラッパー、アップデータ、サイドカープロセス管理
ルーティングハブapps/user-managementユーザー認証APIゲートウェイ、セッションリーダー、オーケストレーションプロキシ、ファイルプロキシ
エージェントAPIapps/apiエージェントランタイムAPI、企業オーケストレーション、ウェイクアップ、スケジューラ、チャネル、シークレット
ランタイムSDKpackages/agentランタイム抽象化、Claude Codeアダプタ、Pi Agentアダプタ、正規化されたストリーミングイベント
共有契約packages/sharedオーケストレーション型、ライブイベント定数、環境変数正規化、バリデータ
永続データPrisma DB企業、エージェント、課題、実行、ルーチン、アクティビティ、シークレット、チャネル状態
ワークスペースデータファイルシステムまたはマウントボリュームチャットワークスペース、企業プロジェクトファイル、アーティファクト、スキル、ログ

LifeOSAIエージェントシステム

エージェントシステムは通常のチャット、企業エージェントとのダイレクトチャット、ライブ実行トランスクリプトを担います。企業タスクオーケストレーションとは意図的に分離されていますが、両者は同じランタイムアダプタを使えます。

エージェントインタラクションモード

モード説明主要な状態
LifeOSAIチャットユーザーが企業タスクの外で選択ランタイムとチャットチャットセッションID、ランタイム、モデル
企業エージェントとのダイレクトチャットユーザーが企業エージェントと直接対話企業ID、エージェントID、記憶されたセッションID
ライブ実行トランスクリプトUIがアクティブなオーケストレーション実行を追跡実行ID、セッションID、ランタイムログストリーム
完了済みトランスクリプト再生UIが過去の実行/セッションを読む保存済みセッションメッセージ
チャネル会話WhatsApp、Telegram、その他のトランスポートがエージェントと対話チャネルセッションキー、チャネルメタデータ、ランタイムセッションID

フロントエンドはこれらのモードを異なる形で提示するかもしれませんが、バックエンドの契約は同じ考え方です: セッションがランタイムに紐付き、ランタイムがイベントをストリームし、それらのイベントがトランスクリプトレコードまたはライブ実行イベントになります。

エージェント機能

LifeOSAIエージェントは以下によって拡張できます。

  • スキル: バンドル、企業スコープ、またはユーザーアップロードの機能フォルダ
  • プラグイン: インストールされたランタイム拡張とツールバンドル
  • コネクタ: 外部アカウントまたはサービス統合
  • MCPサーバー: チャネル、ブラウザ、Slack、カスタムツールなどのツールサーバー
  • ファイル: 許可されたワークスペースルートと企業/プロジェクトファイルルート
  • チャネル: トランスポート固有の受信メッセージと送信応答

ランタイムプロセスは、以下の組み合わせによってこれらの機能を受け取ります。

  • apps/api から渡されるランタイムオプション
  • 起動前に組み立てられる環境変数
  • MCPサーバー定義
  • 追加スキルディレクトリ
  • アダプタ固有のコマンドまたはSDKオプション

チャットセッションフロー

ユーザーがメッセージを送信
apps/web
apps/user-management セッション/チャットルート
apps/api またはランタイムハンドラ
packages/agent ランタイム
Claude CodeまたはPi Agent
正規化されたストリームイベント
永続化されたトランスクリプトおよび/またはライブレスポンス

セッション発見とセッションメッセージ参照は別の関心事です。セッションリストは既知のLifeOSAIルートに限定し続けるべきです。メッセージ参照は、実行/セッションが既知の企業エージェントトランスクリプトパスを指している場合、それを解決できます。

ローカルとクラウドのデプロイ

ローカルモード

ローカルモードはTauriアプリとサイドカーサービスを中心に構築されています。

ポートサービス
3000apps/web
3001apps/user-management
3002apps/auth
4000apps/api

重要なローカルルート:

  • ~/LIFEOSAI
  • ~/.lifeosai/companies
  • ローカルデータベース(モードに応じて通常SQLiteまたはローカルPostgres)

クラウドモード

クラウドモードはGCPとCI/CDを使用します。

  • GCPプロジェクト: lifeosai-481608
  • リージョン: asia-south-1
  • Artifact Registryリポジトリ: docker-images
  • Cloud Runサービス: web, auth, user-management
  • エージェント実行用のCompute Engineまたはランタイムコンテナ
  • ワークスペースルート: /workspace/LIFEOSAI

プロダクトAPIサーフェスはローカルとクラウドで同一に保たれるべきです。変化するのは実行ロケール、ファイルシステムルート、バッキングサービスのみです。

セキュリティ境界

境界強制
ユーザーセッションapps/user-management がブラウザ/デスクトップリクエストを検証
企業アクセスオーケストレーションサービスが読み取り/書き込み前に企業アクセスを確認
エージェント実行API実行スコープのベアラートークンが企業、エージェント、実行を検証
シークレット企業スコープのシークレット参照は書き込み時に検証され、呼び出し時に解決
ファイルセッションおよびファイルリーダーは既知のLifeOSAIルートのみを許可
ログシークレットに紐づく環境変数は永続化前に秘匿化
チャネルトランスポートプラグインとチャネルセッションが受信メッセージを既知の企業/エージェントコンテキストにマップ

コードマップ

領域主要ファイル
ランタイムインターフェースpackages/agent/src/runtimes/types.ts
Claude Codeランタイムpackages/agent/src/runtimes/claude-code-runtime.ts
Pi Agentランタイムpackages/agent/src/runtimes/pi-agent-runtime.ts
ランタイムイベント正規化packages/agent/src/runtimes/event-normalizer.ts
エージェントインボーカapps/api/src/orchestration/engine/agent-invoker.ts
ウェイクアップキューapps/api/src/orchestration/engine/wakeup.ts
ハートビートスケジューラapps/api/src/orchestration/engine/heartbeat.ts
ルーチンスケジューラapps/api/src/orchestration/engine/routine-scheduler.ts
イベントバスapps/api/src/orchestration/engine/event-bus.ts
実行認証apps/api/src/orchestration/auth/run-token.ts
エージェントAPIガードapps/api/src/orchestration/routes/middleware.ts
課題apps/api/src/orchestration/services/issues.ts
エージェントapps/api/src/orchestration/services/agents.ts
プロジェクトapps/api/src/orchestration/services/projects.ts
ルーチンapps/api/src/orchestration/services/routines.ts
アクティビティapps/api/src/orchestration/services/activity-log.ts
シークレットapps/api/src/orchestration/services/secrets.ts
環境変数設定packages/shared/src/orchestration/env-config.ts
ライブイベント型packages/shared/src/orchestration/types/live.ts
チャネルディスパッチapps/api/src/channels/dispatch.ts
チャネルメッセージツールapps/api/src/channels/message-tool.ts
WhatsAppチャネルapps/api/src/channels/plugins/whatsapp.ts
Telegramチャネルapps/api/src/channels/plugins/telegram.ts
セッションリーダーapps/user-management/src/sessions/reader.ts

次に読む