HonorがMagicOS 11を発表:エージェントハーネスによるインテント処理の仕組み

opoinstall
2026-09-16
5 min read

HonorがMagicOS 11を発表しました。2026年9月15日、深センで開催されたグローバル開発者カンファレンスにて、Honorはコンシューマー向けスマートフォンとしては業界初となる、システムレベルの「エージェントハーネス(Agent Harness)」アーキテクチャを採用したMagicOS 11を正式に公開しました。次期フラッグシップモデル「Honor Magic9」への搭載が予定されているこのOSは、モバイルシステム工学における重要な転換点を示しています。従来のグラフィカルなアプリケーションコンテナから、「エージェント指向OS(AOS)」への進化です。従来のモバイルAIアシスタントは会話応答や限定的なタスク自動化に重点を置いていましたが、MagicOS 11は、中長期的なシステムレベルのオーケストレーションへと焦点を拡大しています。その中核エンジンである「YOYOハーネス」は、システムレベルのランタイムコントロールプレーンとして位置付けられています。ソフトウェアアーキテクトやモバイルプラットフォームエンジニアにとって、このリリースは重要な問いを投げかけています。システムレベルのハーネスはどのように制約のない自然言語を検証可能なマルチステップタスクに分解するのか、構造化されたプロトコルと視覚的なフォールバックレイヤーをまたいでどのようにツール呼び出しを管理するのか、そしてAndroidアプリケーションや権限の境界を越えてエージェントの動作をどのように統制するのでしょうか。

アーキテクチャのパラダイム:アプリケーションコンテナからエージェント指向OSへ

過去10年間、モバイルOSは主にリソース配分を中心に進化してきました。CPU/GPUのスケジューリング、メモリ圧縮、無線通信の最適化、サンドボックス化されたサードパーティアプリのためのディスプレイレンダリングなどがその中心でした。ユーザーとの対話は、ユーザーがアプリを開き、階層化されたメニューを移動し、特定の機能を実行し、断片化されたサービス間で手動でコンテキストをつなぐという、ユーザー主導の形式が基本でした。

概要

  • システムレベルのハーネスコントロールプレーン: YOYOハーネスは、最先端の推論モデルと物理的な端末機能の間のミドルウェアランタイムとして機能し、デバイスの認識、長期的なタスク計画、ツールのディスパッチ、および実行フィードバックをオーケストレーションします。
  • 二段構えのツール呼び出しパイプライン: MagicOS 11は、Model Context Protocol (MCP)、ネイティブのスキル、システムAPIを介した構造化された実行経路を優先しつつ、未対応のアプリケーションに対してはコンピュータビジョン(CV)とGUI自動化を動的なフォールバックとして保持します。
  • 長期的実行の境界: Honorは、40のトリガー条件と130以上の実行アクションを介して100ステップを超えるタスクチェーンを実行可能であると報告していますが、実用的な消費者ニーズは、コンパクトで頻度の高いマイクロワークフローに集中しています。重要なアクションについては、明示的な承認プロセスを組み込む必要があります。

グローバル開発者カンファレンスにて、MagicOS 11の詳細とアプリコンテナからエージェント指向OSへの戦略的転換について語るHonor CEOのLi Jian氏

Honorのアーキテクチャ転換は、オンデバイスでのマシンインテリジェンスにおける10年の軌跡を反映したものです。2016年の初代Magic Liveエンジンから、MagicOS 8.0でのプラットフォームレベルのインテント認識、そしてMagicOS 9.0での自律型エージェントの探求を経て、計算リソースをコンテキスト理解へと着実にシフトさせてきました。基調講演の中で、Honorの経営陣はこのマイルストーンを、同社の広範な「Alpha Strategy」および「AHI(AI Human Interaction)」ビジョンの下で位置付けました。これは、AIデバイスのエコシステム変革に5年間で100億ドル以上を投資するという公約に基づいています。

基調講演で公開されたプラットフォーム指標によると、YOYOは現在1,000以上の日常的なプロアクティブなシーンにおいて、1億6,000万人以上の月間アクティブユーザーにサービスを提供しています。しかし、プロアクティブな推奨から自律的なタスク実行へと移行するには、OSが外部サービスと対話する方法を再構築する必要があります。ユーザーが個別のツールを探して操作するのではなく、エージェント指向OSがインテントを解釈し、分散ツールを構成し、中間的な実行失敗に対処し、検証済みの成果を届ける必要があります。

YOYOハーネスの解剖:認識、計画、二段構えの実行

現代のAIシステムにおいて、基盤モデル単体では自律型エージェントとして機能することはできません。システムアーキテクトが指摘するように、大規模モデルが認知的な推論を提供する一方で、ハーネスは永続的なメモリ、環境認識、構造化されたツール、安全制約を提供する運用ワークベンチとして機能します。永続的な状態、ツール、実行フィードバックを提供するオーケストレーション層がなければ、基盤モデル単体では外部のアクションを確実に検証したり、環境変化から復旧したりすることはできません。

100ステップのタスク実行、91.8%のインテント理解率、700のシステムツールなど、YOYOハーネスの性能指標を示すHonor MagicOS 11公式スライド

YOYOハーネスは、MagicOS内でシステムレベルのオーケストレーション層として機能することでこれらの責務を調整し、端末側の軽量モデルとクラウドベースの推論クラスターを橋渡しします。

エンジニアリングスコープに関する注記: 以下の図は、Honorが公開した認識、計画、ツール呼び出し、実行、プラグインインターフェースの説明から合成した参考モデルです。Honorは、YOYOハーネスの内部コンポーネント構成を完全には公開していません。

+-------------------------------------------------------------------------+
|      リファレンスモデル:YOYOハーネス システムレベルオーケストレーション    |
+-------------------------------------------------------------------------+
|                                                                         |
|  [ マルチモーダル入力層:音声、画面コンテキスト、センサー状態 ]           |
|                                |                                        |
|                                v                                        |
|  [ コンテキストアグリゲーター:個人設定と環境テレメトリ ]                 |
|                                |                                        |
|                                v                                        |
|  [ 認知プランナー:ステップごとのタスク計画と目標分解 ]                   |
|                                |                                        |
|                                v                                        |
|  [ YOYOハーネスコントロールプレーン:タスク配分とポリシーチェック ]     |
|                                |                                        |
|         +----------------------+----------------------+                 |
|         |                                             |                 |
|         v (プライマリ:構造化パス)                  v (フォールバックパス) |
|  [ 標準化ツールルーティング ]              [ GUIグラウンディングエンジン ] |
|  - Model Context Protocol (MCPプラグイン)  - 画面OCR / CVモデル         |
|  - システムAPI (電話、カレンダー、警告)   - システム経由のUI操作       |
|  - 登録済みアプリスキルスキーマ           - 視覚状態観測              |
|         |                                             |                 |
|         +----------------------+----------------------+                 |
|                                |                                        |
|                                v                                        |
|  [ 実行フィードバックループ:ステップ観測と障害復旧 ]                     |
|                                                                         |
+-------------------------------------------------------------------------+

二段構えの呼び出しパイプライン

多様なアプリケーションエコシステム全体でアクションを実行するために、YOYOハーネスは二層の実行階層を展開しています:

  1. 構造化ハイウェイ (MCP、スキル、およびシステムAPI): サードパーティサービスやシステムコンポーネントが、Model Context Protocol (MCP)、検証済みスキルエンドポイント、ネイティブのAndroidインテントなどの正式なコントラクトを公開している場合、YOYOは構造化されたツールおよびサービスインターフェースを通じて対話します。MagicOS 11は700の組み込みシステムツールと500以上の標準化されたスキルを搭載してリリースされます。また、Honorは、同社の広範なエコシステムが10,000以上のサードパーティAIサービスと連携していると報告しています。構造化されたインターフェースは、視覚的な自動化よりも明示的なパラメータコントラクト、低い対話オーバーヘッド、および明確な権限境界を提供します。
  2. 動的フォールバック (コンピュータビジョンとGUIグラウンディング): 構造化されたインターフェースを持たないアプリケーションに対しては、YOYOはGUIベースの対話へとフォールバックします。公開資料によると、エージェントはアプリケーションインターフェースを解釈し、ユーザーのような操作を実行できることが示されています。Honorは、このフォールバックパスの裏側にある完全な認識および入力インジェクションスタックを公開していません。プラットフォームエンジニアは、GUI自動化をUIレイアウトの変更、動的なレンダリング遅延、アプリ側の自動化対策に対する脆弱性から、実用的なフォールバックとして扱っています。

端末とクラウドが連携する大規模モデルインフラ、YOYOハーネスミドルウェア、および動的なliquid glassデザインを示すHonor MagicOS 11システムアーキテクチャのインフォグラフィック

インテント解決と日常的なマイクロワークフロー

Honorによると、YOYOは91.8%の包括的なインテント理解率を達成しており、タスク実行精度は単純なタスクで93%、複雑なワークフローで87%に達し、全体として90%のクローズドループ完了率を実現しています。マーケティング資料では100ステップを超える連続タスク実行という技術的なマイルストーンが強調されていますが、消費者の日常的なシーンにおいては、100ステップのチェーンよりも、短く繰り返しの多いワークフローから得られる実用的な価値が大きいと考えられます。

スケジュール管理やカテゴリー化された物流追跡など、YOYOの日常的なプロアクティブサービスシナリオを示すプレゼンテーションスライド

これらの日常的なタスクを運用可能にするために、MagicOS 11は「YOYOタスク」を導入し、ユーザーが40のトリガー条件と130以上の実行プリミティブを介してアクションを紐付けられるようにしています:

  • 自動サービスキューイング: AI通話アシスタントは、カスタマーサービスのホットラインに発信し、自動音声応答(IVR)のキーパッド操作をナビゲートし、キュー内で待ち続け、担当者が応答した瞬間に触覚通知でユーザーに知らせます。
  • マルチモーダルコンテキスト抽出: 通話中、オンデバイスの音声文字起こし機能が会議の日付、フライト番号、電話番号などの情報を抽出し、ローカルのカレンダーやアドレス帳プロバイダーに直接登録します。
  • コンテキスト化された物流解析: SMSやEコマースアプリから追跡番号を単純に集約するだけでなく、配送コードを品目属性に基づいてカテゴリー化します。生鮮食品であれば直ちに取りに行くよう促したり、大型貨物の配送であればサポートを調整したりします。

防御的セキュリティ、サンドボックス分離、およびエラーの累積

モバイルワークフローに対するプログラム制御を自律型ソフトウェアエージェントに許可することには、重大な運用リスクが伴います。自律型エージェントの標準的な脆弱性分類(プロンプトインジェクション、過度なエージェンシー、ツール不正利用などのリスクを強調するOWASPのLLMおよびエージェントAIのセキュリティ分類など)で概説されているように、アシスタントがシステムやアプリの状態を変更できる場合、懸念はより深刻になります。

マルチステップのエージェント実行において根本的なエンジニアリングの現実となるのは、エラー確率の累積性です。各タスクステップの独立した信頼性が95%である場合、図解的な信頼性モデルによれば、支援なしで100ステップのタスクチェーンを完了できる確率は劇的に低下します:

P(Success)=0.951000.0059(0.59%)P(\text{Success}) = 0.95^{100} \approx 0.0059 \quad (0.59\%)

したがって、100ステップ以上という数字は、典型的な消費者のワークフローが100ステップ無人で実行されるべきという証拠ではなく、長期間の実行能力を示す上限値として解釈する方が適切です。状態のドリフトを防ぐため、自律型モバイルアーキテクチャには厳格な抑制措置が必要です:

  1. アプリケーションレベルのガバナンス: Honorは、YOYOのGUIエージェントがマニフェストメタデータを介してアプリと対話してよいかどうかをサードパーティ開発者が決定できる制御メカニズムを文書化しています。システムレベルのYOYOランタイムの完全な権限モデルは一般に公開されていませんが、Androidの基本的なプラットフォーム分離と並行して動作します。
  2. Androidサンドボックスコンテキスト: ランタイムの許可ダイアログ、パッケージ署名チェック、分離されたプロセススペースを含む標準的なAndroidのセキュリティ分離は、サードパーティソフトウェアの基本的な境界として維持され、エージェントの統合においても宣言されたマニフェスト境界を尊重することが求められます。
  3. エンジニアリング確認チェックポイント: エンタープライズエージェントの設計では、財務決済、資格情報の変更、取り消し不可能な削除、物理的なハードウェア制御(スマートロックやコネクテッドカーなど)などの影響度の高い状態変更に対しては、変更を確定する前にHuman-in-the-Loop (HITL)による明示的な確認ダイアログが求められます。
次元 従来のモバイルOS (アプリ中心) 初期のモバイル音声アシスタント システムレベルエージェントハーネス (MagicOS 11)
実行プリミティブ 静的アプリケーションバイナリ ハードコーディングされた音声インテントハンドラ マルチステップタスク / インテントグラフ
ユーザー対話 手動の画面タッチとUI操作 厳格な音声コマンド制御 自然言語目標 -> オーケストレーション実行
ツール統合 明示的なインテントフィルタとディープリンク 独自のクラウド拡張 ハイブリッド:標準化プラグイン + 動的GUI
コンテキストスコープ アクティブなフォアグラウンドアプリに限定 音声入力セッションに限定 システム全体:画面、音声、位置情報、設定
障害復旧 プロセス終了 / アプリANRダイアログ 一般的な音声エラー応答 実行結果確認、ユーザー中断、復旧ロジック

開発者統合とブランド間相互運用性

サードパーティソフトウェアの開発者にとって、エージェント指向OSとの統合には、機械可読な構造化ツールコントラクトへの移行が求められます。Honorの開発者エコシステムは、Honorエージェントプラットフォームを通じてプログラムによるアクセスを提供しており、StreamableHTTPまたはServer-Sent Events (SSE)上で通信するModel Context Protocol (MCP)サーバー、標準的なAPIプラグイン、システム自動化インターフェースによるプラグイン統合をサポートしています。

アプリケーションが標準化されたスキーマを通じて機能を公開すると、OSのプランナーに対して型定義されたパラメータ記述、必要な入力制約、および実行要件を提供することになります。これにより、システムエージェントは壊れやすい画面自動化に頼ることなく、バックエンドサービスバインダーやネットワークエンドポイントを通じて要求を明確にディスパッチできるようになります。

// 概念的な参考設計 — 非実行可能なHonor SDKの例:
// 以下のKotlinサンプルは、エージェントツール実行のためのアプリ側のスキーマ検証、
// 状態のべき等性、およびHuman-in-the-Loop (HITL)確認の概念を示しています。
// これはHonor独自のYOYO SDKやMCPサーバープロトコルを実装したものではなく、
// そのまま統合実装として使用すべきではありません。

package com.example.platform.agent.tools

import android.content.Context
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.json.JSONObject
import java.util.UUID

// MARK: - ツールパラメータおよび実行コントラクト
data class BookingParameters(
    val serviceId: String,
    val appointmentTimestamp: Long,
    val clientMutationToken: String,
    val requiresHighValueConfirmation: Boolean
)

sealed class ToolExecutionResult {
    data class Success(val transactionId: String, val message: String) : ToolExecutionResult()
    data class RequiresUserConfirmation(val confirmationPrompt: String, val pendingToken: String) : ToolExecutionResult()
    data class Failure(val errorCode: String, val errorMessage: String) : ToolExecutionResult()
}

// MARK: - 標準化されたエージェントツールプロバイダー
class AppointmentBookingTool(private val context: Context) {

    companion object {
        const val TOOL_NAME = "schedule_appointment"
        const val TOOL_DESCRIPTION = "検証済みの状態べき等性を持ってサービスの予約を行います。"
        private const val MAX_VALID_ADVANCE_DAYS = 90L
    }

    // 構造化されたツール定義を示す宣言的なJSONスキーマを公開
    fun getToolDefinition(): JSONObject {
        return JSONObject().apply {
            put("name", TOOL_NAME)
            put("description", TOOL_DESCRIPTION)
            put("parameters", JSONObject().apply {
                put("type", "object")
                put("properties", JSONObject().apply {
                    put("serviceId", JSONObject().apply {
                        put("type", "string")
                        put("description", "対象サービスのユニークな識別子。")
                    })
                    put("appointmentTimestamp", JSONObject().apply {
                        put("type", "integer")
                        put("description", "予約のEpochタイムスタンプ(ミリ秒)。")
                    })
                    put("clientMutationToken", JSONObject().apply {
                        put("type", "string")
                        put("description", "アシスタントの再試行中にべき等な実行を保証するための永続的なUUID。")
                    })
                })
                put("required", org.json.JSONArray().apply {
                    put("serviceId")
                    put("appointmentTimestamp")
                    put("clientMutationToken")
                })
            })
        }
    }

    // 分離されたコルーチンコンテキスト内でツールを実行
    suspend fun execute(rawArgumentsJson: String): ToolExecutionResult = withContext(Dispatchers.IO) {
        val params = try {
            parseAndValidateParameters(rawArgumentsJson)
        } catch (e: IllegalArgumentException) {
            return@withContext ToolExecutionResult.Failure(
                errorCode = "ERR_INVALID_SCHEMA",
                errorMessage = e.message ?: "パラメータ検証に失敗しました。"
            )
        }

        // 防御的なべき等性チェック:プランナーの再試行を通じて二重の副作用を防ぐ
        if (IdempotencyManager.isTokenProcessed(params.clientMutationToken)) {
            val existingId = IdempotencyManager.getTransactionId(params.clientMutationToken)
            return@withContext ToolExecutionResult.Success(
                transactionId = existingId ?: "UNKNOWN",
                message = "アクションは前回の実行サイクルで既に完了しています。"
            )
        }

        // 安全ゲート:影響度の高い制約に対してHuman-in-the-Loop確認を強制する
        if (params.requiresHighValueConfirmation) {
            return@withContext ToolExecutionResult.RequiresUserConfirmation(
                confirmationPrompt = "サービス ${params.serviceId} の予約をタイムスタンプ ${params.appointmentTimestamp} で確定しますか?",
                pendingToken = params.clientMutationToken
            )
        }

        // ドメイン実行:実際のビジネス変更を行う
        return@withContext try {
            val transactionId = UUID.randomUUID().toString()
            
            // ローカルデータベースまたはリモートサービスへの変更をコミット
            BackendBookingService.commitBooking(
                serviceId = params.serviceId,
                timestamp = params.appointmentTimestamp,
                txId = transactionId
            )

            // べき等性を保証するために変更トークンを記録
            IdempotencyManager.recordToken(params.clientMutationToken, transactionId)

            ToolExecutionResult.Success(
                transactionId = transactionId,
                message = "予約が正常に完了しました。"
            )
        } catch (e: Exception) {
            ToolExecutionResult.Failure(
                errorCode = "ERR_BACKEND_REJECTION",
                errorMessage = e.localizedMessage ?: "リモートサービスでの予約実行に失敗しました。"
            )
        }
    }

    private fun parseAndValidateParameters(jsonString: String): BookingParameters {
        val json = JSONObject(jsonString)

        val serviceId = json.optString("serviceId")
        require(serviceId.isNotBlank()) { "パラメータ 'serviceId' を空にすることはできません。" }

        val timestamp = json.optLong("appointmentTimestamp", -1L)
        val currentEpoch = System.currentTimeMillis()
        val maxFutureEpoch = currentEpoch + (MAX_VALID_ADVANCE_DAYS * 24 * 60 * 60 * 1000)
        
        require(timestamp > currentEpoch) { "予約のタイムスタンプは未来の日時である必要があります。" }
        require(timestamp < maxFutureEpoch) { "予約は最大 $MAX_VALID_ADVANCE_DAYS 日先までしかできません。" }

        val mutationToken = json.optString("clientMutationToken")
        require(mutationToken.isNotBlank()) { "永続的な 'clientMutationToken' が必要です。" }

        // 動的なリスク評価:プレミアムサービスをマークするビジネスルールの例
        val isHighValue = serviceId.startsWith("PREMIUM_")

        return BookingParameters(
            serviceId = serviceId,
            appointmentTimestamp = timestamp,
            clientMutationToken = mutationToken,
            requiresHighValueConfirmation = isHighValue
        )
    }
}

// MARK: - モックインフラストラクチャ
object IdempotencyManager {
    private val processedTokens = mutableMapOf()

    @Synchronized
    fun isTokenProcessed(token: String): Boolean = processedTokens.containsKey(token)

    @Synchronized
    fun getTransactionId(token: String): String? = processedTokens[token]

    @Synchronized
    fun recordToken(token: String, txId: String) {
        processedTokens[token] = txId
    }
}

object BackendBookingService {
    fun commitBooking(serviceId: String, timestamp: Long, txId: String) {
        // データベース書き込みまたは認証済みリモートAPIディスパッチのシミュレーション
    }
}

ソフトウェアエージェントの統合に加え、MagicOS 11はデバイス間の相互運用性にも対応しています。Honorは主流のAndroidメーカーと協力し、統一されたブランド横断的な「Tap-to-Share」技術規格を確立し、対応デバイス間でタッチ操作による近距離ファイル共有を可能にしました。

iPhoneの通話やメッセージの同期機能と、ブランド横断的なTap-to-ShareおよびAppleエコシステムとの相互運用性を示す公式スライド

さらに、同プラットフォームは「Honor Connect」を介してエコシステムをまたぐ継続性を拡大しており、対応するiPhone、iPad、Macデバイス間でのファイル転送(一部のiPhoneではNFCによるタッチ転送をサポート)や、サポートされているAppleデバイスとの通知共有が可能になっています。

よくある質問 (FAQ)

YOYOハーネスと従来の音声アシスタントの決定的な違いは何ですか?
従来のモバイル音声アシスタントは主に定義済みの文法領域と厳格なインテントパーサーに依存しており、アラームの設定や特定のアプリページを開くといった単発のアクションを実行するものでした。MagicOS 11のYOYOハーネスは、マルチステージのオーケストレーションコントロールプレーンとして機能します。制約のない自然言語の目標を解釈し、マルチステップのタスク計画を実行し、可能な場合は構造化ツールを選択し、必要に応じてアプリケーションの境界を越えてGUIを介した対話にフォールバックします。
なぜMagicOS 11は、GUI自動化に完全に依存するのではなく、二段構えの実行モデルを採用しているのですか?
コンピュータビジョンやGUI自動化(「コンピュータ使用」)のみに依存すると、処理の遅延、消費電力の増加、および視覚インターフェースの変更に対する脆弱性が発生します。一方で、構造化APIだけに依存すると、エージェントの有用性は専用プラグインを導入したアプリケーションに限定されてしまいます。構造化されたプロトコル(MCP、スキル、システムAPI)を主要ルートとし、GUIグラウンディングを動的フォールバックとして組み合わせることで、構造化インターフェースが利用可能な場合にはパラメータ精度と実行効率を向上させつつ、レガシーソフトウェアを含めて幅広い運用をカバーできます。
エージェント指向OSのアーキテクチャは、不正または破壊的なアクションに対してどのように保護されていますか?
堅牢なエージェントアーキテクチャは、ポリシーに基づく承認と、影響の大きい変更に対する明示的なユーザー確認を組み合わせる必要があります。プラットフォームやアクションに応じて、確認にはシステムダイアログ、資格情報、生体認証、あるいはその他の信頼された対話メカニズムが関与します。HonorはサードパーティのGUI制御宣言を文書化し、機密シナリオにおける統制を強調していますが、すべての実行タイプにおける厳密なシステムレベルの承認パイプラインについては、依然として独自技術となっています。

戦略的な意味合いとプラットフォームの展望

HonorによるMagicOS 11の商用展開は、モバイルデバイスソフトウェアにおける広範な進化の転換を反映しています。シリコンノード、ディスプレイパネル、カメラモジュールといったハードウェアの差別化が限界に達しつつある中で、OSの差別化はシステムレベルの自律的なオーケストレーションへとシフトしています。

マルチステップの累積的なエラー率、インターフェースのドリフト、プラットフォームをまたぐプライバシー管理といった技術的な課題は依然としてエンジニアリングの最前線ですが、システムレベルのハーネスは、未来の端末インテリジェンスが動作するための基盤を確立しています。モバイルエンジニアリングチームにとっての使命は明確です。アプリケーションは、受動的なグラフィカルコンテナから、自律的なマルチエージェント環境内で円滑に動作するように設計された、構造化された権限認識ツールプロバイダーへと進化しなければなりません。

参考文献

Share this article