> ## Documentation Index
> Fetch the complete documentation index at: https://docs.myrmagent.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 製品アーキテクチャ

> オープンソースのフロントエンド + サーバーとハーネスランタイムの構成、そしてデバイス層・プラットフォーム別の検証状態。

# 製品アーキテクチャ

Myrm は **2 つの製品レイヤー**と、任意のクラウド制御プレーンで構成されています。この区分を理解すると、導入・トラブルシュート・他エージェントからの移行が容易になります。

## レイヤー

| レイヤー | リポジトリ / パッケージ | ライセンス | 実行するもの |
| - | - | - | - |
| **製品 UI と API** | `myrm-agent-frontend` + `myrm-agent-server` | オープンソース | ブラウザ WebUI、REST/SSE API、認証、課金フック |
| **Agent ハーネス** | `myrm-agent-harness` | オープンソース（バンドル配布） | ツール実行、記憶、ブラウザ、サブエージェント、圧縮 |
| **制御プレーン**（任意） | `myrm-control-plane` | SaaS / セルフホスト | LLM リレー、Work Units、統合ツールゲートウェイ |
| **デスクトップシェル**（任意） | `myrm-agent-desktop` | オープンソース（Tauri） | WebUI + ローカルバックエンドを包むネイティブアプリ |

**平易な言い換え**: フロントエンドはあなたがクリックする画面、サーバーはワークスペースへの扉、ハーネスはサンドボックスの中の「脳と手足」です。

## ハーネスの公開 API（統合契約）

オープンソースの **Server** は `myrm_agent_harness.api` を通じてハーネスと連携し、内部モジュールへの深い import は禁止されています。

| サブモジュール | 用途 |
| - | - |
| `factory` | Agent の生成（`create_skill_agent`、`SkillAgent`） |
| `types` / `config` | ストリーミング DTO と LLM / Agent 設定 |
| `protocols` | 拡張点位 Protocol の定義 |
| `hooks` | Session、skill-agent コンテキスト、記憶抽出、bash レジストリ等の統合フック |
| `skills` | スキルの frontmatter パースとメタデータ構築 |

`myrm-agent-server` のアーキテクチャ CI は `from myrm_agent_harness.*._*` 形式の import を禁止しており、内部を進化させつつ公開 `api.__all__` を安定に保ちます。配布 wheel は可読な `.py` シェル + コンパイル済み core 拡張です。

**SaaS にとっての意味**: 制御プレーンはユーザー sandbox ごとに **runtime Docker イメージ tag** をロールアウトします（イメージ内に server + harness を同梱）。Server の接着層は `api.hooks` / `api.skills` のみを import するため、イメージのロールアウト時も接着層は安定します — 多くのオープンソースエージェントのモノリシック構成では実現できません。

## リクエストフロー（典型的な会話）

1. ユーザーが**フロントエンド**（またはサーバー経由で接続した IM チャネル）からメッセージを送信します。
2. **サーバー**が認証し、Agent 設定を読み込み、UI にイベントをストリーミングします。
3. **ハーネス**が Agent ループを実行します: ツール、記憶リコール、サブエージェント、コンテキスト圧縮。
4. 結果はサーバー → UI へ戻り、任意でチャネル通知に送られます。

## 何をどこに設定するか

| 用途 | 場所 |
| - | - |
| モデル、API キー、Agent パーソナリティ | フロントエンドの**設定**（サーバーが永続化） |
| スキル、MCP、cron、目標 | フロントエンド UI + サーバー API |
| 記憶の閲覧 / 承認 / 削除 | フロントエンドの**記憶**パネル |
| サンドボックスファイルとコード実行 | Harness が per-user sandbox 内で実行（元の SSH ではない） |
| SaaS の課金とツールゲートウェイ | 制御プレーン（`DEPLOY_MODE` が SaaS のとき） |

## デプロイモード（同じ機能、別のパッケージング）

| モード | 向いている人 | 得られるもの |
| - | - | - |
| **ローカル WebUI** | 開発者、BYOK | `localhost` で完全な GUI、データは自分のマシンに |
| **Tauri デスクトップ** | Mac / Win / Linux の日常利用 | Dock アイコン、ディープリンク、ブラウザタブの散らかりなし |
| **SaaS** | 運用を，不想したチーム | ホスト型 sandbox、Work Units、任意のツールゲートウェイ |
| **PWA** | スマホをホーム画面に追加 | `myrm-agent-frontend` をビルド後、ブラウザからインストール（[開発環境（英語版）](/contributing/development-setup) を参照） |

## デバイスとハードウェア層：いま使えるもの・まだ無いもの

「ポータブル AI コンパニオン」系の競合ルートは、Agent を自分のボード・ウォッチ・古いスマホに組み込むことを指しています。現状を 3 段で、はっきり書いています。

| 形態 | 状態 | 得られるもの |
| - | - | - |
| **スマホ / タブレットブラウザ** | ✅ 出荷済み | インストール可能な PWA（オフラインキャッシュ + インストール案内 + 自動バージョン更新）。音声 4 モード（純音声 I/O、サーバー側 Agent ブリッジ、OpenAI Realtime、Gemini Live のネイティブ関数呼び出し）+ **ベージイン認識** — 話すと即停止し、「まだ言ってなかったぶん」をモデルへ渡して自然に続きます |
| **スマホ指挥台** | ✅ 出荷済み | ペアリング後、スマホが指揮台になります: タスク派遣、進捗確認、承認、緊急停止。ホスト側の能力は縮小しません |
| **カスタムハードウェア（ESP32 / ウォッチ / 自作ボード）** | ⛔ 未出荷 | 私たちは**デバイスファームウェアを作りません**し、支援していないように装うこともしません。オープンなデバイスプロトコル、ハードウェア不要シミュレータ、機種ごとの検証マトリクスはロードマップ（`topic_19 #60` / `#67` / `#68`）にあり、現在の状態は**計画**であって出荷済みではありません |

**競合との正直な差**: Hermes Gadget はすでにオープン SDK、デスクトップシミュレータ（同じファームウェアコアをデスクトップウィンドウで動かすため、ハードウェアなしでも開発・検証できる）、機種ごとの実機検証マトリクスを公開しています。この方向は私たちも賛同し、同じ基準（ビルド成功 ≠ 実機で動く、未検証項目は明示）で計画していますが、**今日時点では出荷されていない**ため、ここでは宣伝しません。

## プラットフォーム対応と検証状態：すべての能力に状態を

3 つのプラットフォームで実装の深さは異なります。「全プラットフォーム対応」とは書かず、能力ごとに検証状態を付けます。

| 能力グループ | macOS | Windows | Linux |
| - | - | - | - |
| デスクトップシェル起動 / ウィンドウ / ディープリンク | ✅ 実スタック + 実バイナリで検証 | ⚠️ ホットスタートのディープリンク受け渡しは未検証 | ⚠️ ホットスタートのディープリンクは未検証 |
| プライバシーカーテン（画面ロック解除 + 全画面カバー） | ✅ 実スタックで検証 | ⚠️ コードは実装済み、実機検証なし | ❌ コード上で明示的に無効 |
| OS レベルの承認ハイライト | ⚠️ 構造は検証、実クリック貫通は未検証 | ⚠️ 未検証 | ❌ 非対応 |
| 通知抑制（スリープ防止） | ⚠️ IOKit 分岐は実装済み、プラットフォーム別の実測記録なし | ⚠️ `SetThreadExecutionState` 分岐は実装済み | ⚠️ `systemd-inhibit` 分岐は実装済み |
| 音声対話とベージイン | ✅ | ✅ | ✅ |
| スマホ指挥台 + PWA インストール | ✅ | ✅ | ✅ |
| 会議中のリアルタイム議事録 → Wiki 保管 | ✅ | ✅ | ✅ |
| カスタムハードウェア（ESP32 / ウォッチ） | ❌ 未出荷 | ❌ 未出荷 | ❌ 未出荷 |

基準: **✅** 実スタック / 実バイナリの検証記録あり · **⚠️** コードは存在するが実機検証の記録なし · **❌** そのプラットフォームで明示的に無効、または未実装。単体テストと CI の通過は**実機で動くことと同義ではなく**、**未記載は未検証**です。

未検証項目の完全なリストはロードマップ `topic_19 #1` にあり、この原則自体は `topic_19 #68`（能力検証マトリクスとサポートラベル）に対応します。

## 他エージェントからの移行

* **設定**: Hermes / OpenClaw 形式のエクスポートの取り込み経路（**クイックスタート**を参照）。
* **記憶**: Myrm は構造化 DB の記憶 + GUI を使います — 単一の `MEMORY.md` ファイルではありません。
* **スキル**: プリセット + コミュニティ発見。進化には承認が必要です。
* **チャネル**: 26 個の組み込みプロバイダー — 設定で OAuth / Token を再バインドします。

OpenClaw、Hermes、Claude Code との客観的な機能比較は[競合比較（英語）](/getting-started/competitor-comparison)をご覧ください。低負荷条件下で「オープンソース製品層 + Harness ランタイム」の再現可能な受け入れを行う場合は[階層検証プレイブック（英語版）](/guides/layered-verification-playbook)を参照してください。

## 次のステップ

> **[クイックスタート](/ja/getting-started/quickstart)**
>
> 数分でローカル実行。

> **[メモリシステム](/core-concepts/memory-system)**
>
> セッションをまたぐ記憶の仕組み（英語版）。

> **[サンドボックスランタイム](/ja/core-concepts/sandbox-runtime)**
>
> ツールが実際に実行される場所。

> **[デスクトップアプリ](/ja/getting-started/desktop-app)**
>
> Tauri のパッケージングと更新。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.