Apple thử nghiệm ủy quyền mô hình Siri? Những gì App Intents cần chuẩn bị

opoinstall
2026-09-16
5 min read

Apple thử nghiệm ủy quyền mô hình Siri? Vào ngày 14 tháng 9 năm 2026, Apple đã chính thức triển khai iOS 27 và giới thiệu thế hệ Siri AI tiếp theo, trong khi các tiết lộ từ quá trình kỹ thuật đảo ngược đã hé lộ hệ thống mã nội bộ cho phép hệ điều hành ủy quyền lập luận hội thoại cho các mô hình của bên thứ ba, bao gồm Claude của Anthropic và ChatGPT của OpenAI. Đối với các kiến trúc sư di động và kỹ sư nền tảng, sự xuất hiện của cơ chế ủy quyền mô hình Siri trong các khung hệ thống nội bộ nhấn mạnh một bước chuyển dịch kiến trúc hướng tới việc điều phối trợ lý theo mô-đun. Trong khi các động lực quản lý xung quanh Đạo luật Thị trường Kỹ thuật số (DMA) của Liên minh Châu Âu cung cấp bối cảnh thể chế phù hợp cho khả năng tương tác ở cấp hệ thống, việc ủy quyền mô hình bên ngoài đưa ra sự biến đổi vận hành vào quá trình thực thi mục đích di động. Thay vì kỳ vọng vào một mô hình nền tảng duy nhất với hành vi có thể dự đoán được, các nhóm kỹ thuật di động phải coi App Intents là các ranh giới tên miền mang tính phòng thủ, thực thi việc xác thực lược đồ nghiêm ngặt, phân giải thực thể mạnh mẽ và đảm bảo an toàn cho các tác động phụ.

Kiến trúc iOS 27 và hệ thống ủy quyền mô hình trong các khung nội bộ

Việc triển khai chính thức iOS 27 thiết lập cơ sở hạ tầng thời gian chạy tách biệt cho Apple Intelligence. Siri AI sử dụng hệ thống các mô hình nền tảng trên thiết bị và máy chủ của Apple, bao gồm mô hình AFM Core Advanced cho các trải nghiệm trên thiết bị được hỗ trợ như đọc chính tả toàn hệ thống và giọng nói biểu cảm, cùng với các mô hình máy chủ chạy thông qua các cụm Private Cloud Compute. Trong môi trường phát hành này, Siri AI đóng vai trò là trình điều phối trên các ứng dụng gốc, tận dụng ngữ cảnh cá nhân thông qua Mail, Messages và Photos, nhận thức trên màn hình thông qua View Annotations và các chỉ mục ngữ nghĩa được hỗ trợ bởi Spotlight.

Tổng quan

  • Hệ thống ủy quyền nội bộ: Các tiết lộ từ các bản dựng iOS 27 và macOS 27 bị rò rỉ xác định các cơ chế nội bộ—cụ thể là cơ chế Ủy quyền Mô hình (Model Delegation) và giao thức Inference Providing trong Model Manager Services—được thiết kế để định tuyến yêu cầu tới các mô hình bên thứ ba như Claude và ChatGPT.
  • Quyền hệ thống chưa công bố: Những khả năng ủy quyền đa mô hình này vẫn bị giới hạn trong các khung hệ thống nội bộ; Apple chưa cung cấp quyền ủy quyền bên ngoài cho các nhà phát triển bên thứ ba hoặc người dùng cuối.
  • App Intents là hợp đồng hỗ trợ: Bất kể một lời nhắc đầu vào được phân tích bởi Apple Foundation Models hay một tác nhân lập luận bên ngoài, App Intents vẫn là ranh giới lập trình được tài liệu hóa của Apple để hiển thị các hành động của ứng dụng bên thứ ba cho hệ thống.

Giao diện Siri AI trên iOS 27 thể hiện tính năng soạn thảo email theo ngữ cảnh cá nhân trong ứng dụng Mail

Phân tích kỹ thuật được MacRumors công bố nêu bật việc các nhà phát triển nghiên cứu các khung nội bộ đã phát hiện ra hai cấp độ kiến trúc riêng biệt. Cấp độ đầu tiên là cơ chế Ủy quyền Mô hình cho phép các mô hình bên thứ ba như Claude hoạt động như một phần mở rộng trợ lý tích hợp. Trong các bản demo kỹ thuật được ghi lại, Claude diễn giải lời nhắc bằng ngôn ngữ tự nhiên không bị ràng buộc và trích xuất mục tiêu vận hành của người dùng, nhưng khi tác vụ yêu cầu quyền truy cập vào dữ liệu hệ thống hoặc thực thi ứng dụng cục bộ, mô hình bên ngoài sẽ ủy quyền hành động có cấu trúc đó lại cho Siri. Cấp độ thứ hai, sâu hơn, liên quan đến giao thức Inference Providing trong các Dịch vụ Quản lý Mô hình của hệ điều hành, chứa các đường dẫn mã có khả năng thay thế phụ trợ lập luận trên máy chủ của Apple bằng một mô hình nền tảng thay thế.

Môi trường quản lý tại Châu Âu tạo ra bối cảnh thể chế quan trọng cho những phát triển này. Theo Điều 6(7) của Đạo luật Thị trường Kỹ thuật số (DMA) của EU, các hệ điều hành đóng vai trò là "người gác cổng" phải tuân thủ các quy định về khả năng tương tác, yêu cầu quyền truy cập bình đẳng vào các tính năng nền tảng cốt lõi. Mặc dù Apple đã tạm thời giữ lại các tính năng Siri AI hướng tới người tiêu dùng tại thị trường Liên minh Châu Âu để chờ đợi sự đồng bộ về quy định đối với quyền riêng tư và bảo mật dữ liệu, sự hiện diện của các hook điều phối bất khả tri mô hình trong các tệp nhị phân hệ thống cho thấy các nhóm kỹ thuật của Apple đang thử nghiệm tính mô-đun kỹ thuật, điều này có thể trở nên hữu ích nếu các yêu cầu về khả năng tương tác giữa các mô hình trở nên rộng rãi hơn.

Lưu ý về phạm vi kỹ thuật: Bằng chứng công khai xác nhận các cơ chế ủy quyền mô hình nội bộ và xác nhận App Intents là giao diện được hỗ trợ của Apple để hiển thị các hành động ứng dụng bên thứ ba. Apple chưa công bố tài liệu về cầu nối nội bộ chính xác kết nối hai lớp này. Sơ đồ dưới đây đại diện cho một mô hình ranh giới tham chiếu minh họa.

+-------------------------------------------------------------------------+
| MÔ HÌNH THAM CHIẾU: RANH GIỚI APP INTENTS CÔNG KHAI QUANH ỦY QUYỀN NỘI BỘ |
+-------------------------------------------------------------------------+
|                                                                         |
|  [ Đầu vào ngôn ngữ tự nhiên của người dùng (Giọng nói / Dynamic Island / Gõ cho Siri) ]|
|                                |                                        |
|                                v                                        |
|  [ Trình điều phối hệ thống: Giải quyết ngữ cảnh & Chỉ mục ngữ nghĩa Spotlight ] |
|                                |                                        |
|         +----------------------+----------------------+                 |
|         |                                             |                 |
|         v                                             v                 |
|  [ Trí tuệ hệ thống chính ]            [ Đường dẫn ủy quyền nội bộ ] |
|  - Mô hình AFM Core trên thiết bị            - Đường dẫn ủy quyền mô hình     |
|  - Private Cloud Compute                    - Dịch vụ quản lý mô hình    |
|         |                                     (Đường dẫn Claude / GPT)      |
|         |                                             |                 |
|         +----------------------+----------------------+                 |
|                                |                                        |
|                                v                                        |
|             [ Cầu nối hành động nội bộ chưa xác định ]                     |
|                                |                                        |
|                                v                                        |
|  [ Ranh giới App Intents công khai: AppIntent & EntityQuery của ứng dụng ]   |
|                                |                                        |
|         +----------------------+----------------------+                 |
|         |                                             |                 |
|         v                                             v                 |
|  [ Xác thực gốc đã định kiểu ]                [ Phân giải tham số ]|
|  (Kiểm tra giới hạn, Cô lập Actor)            (Đối thoại & Lựa chọn người dùng)   |
|                                                                         |
+-------------------------------------------------------------------------+

Phân tích lớp ủy quyền mô hình: Điều phối hệ thống so với Hợp đồng App Intent

Sự khác biệt về kiến trúc giữa lập luận ngôn ngữ tự nhiên và thực thi ứng dụng là trọng tâm để hiểu cách iOS xử lý các luồng công việc trợ lý. Trong các triển khai trợ lý di động truyền thống, xử lý giọng nói và phân phối chức năng được phối hợp thông qua các lớp tên miền tĩnh dưới SiriKit. Qua các bản phát hành dành cho nhà phát triển kế tiếp, Apple đã chuyển đổi giao diện này sang khung App Intents khai báo.

Theo mô hình hiện đại này, các ứng dụng gốc không phân tích luồng âm thanh hoặc duy trì từ điển âm vị. Thay vào đó, một ứng dụng hiển thị hai cấu phần cơ bản cho đăng ký thời gian chạy của hệ thống:

  1. Khai báo AppEntity: Các biểu diễn định kiểu của các mô hình kinh doanh nội bộ (như bản ghi đơn hàng, hồ sơ tài khoản hoặc tham chiếu tài liệu). Các ứng dụng có thể hiển thị thêm các thực thể đủ điều kiện cho tìm kiếm Spotlight hoặc các cơ chế nhận thức trên màn hình thông qua các API chỉ mục và chú thích chế độ xem chuyên dụng.
  2. Đặc tả AppIntent: Các quy trình thực thi chứa các tham số được định kiểu mạnh, tóm tắt lời nhắc được bản địa hóa và hợp đồng trả về.

Siri AI hiển thị nhận thức trên màn hình để trả lời các câu hỏi cụ thể theo ngữ cảnh trên iPhone

Khi các khung nội bộ định tuyến lời nói của người dùng thông qua một mô hình lập luận bên ngoài, lớp ủy quyền sẽ tách biệt việc hiểu lời nhắc khỏi việc thực thi hành động. Trong các luồng công việc được minh họa, mô hình bên ngoài hoạt động như một trình diễn giải ngữ nghĩa thượng nguồn và có thể trả lại các hành động cho Siri. Đối với các ứng dụng bên thứ ba, khung App Intents được tài liệu hóa của Apple xác định riêng các hợp đồng được định kiểu, qua đó các hành động được hỗ trợ được hiển thị cho hệ thống.

SO SÁNH KHÁI NIỆM ĐƠN GIẢN HÓA: SỰ TIẾN HÓA CỦA TRỢ LÝ

Phân phối khớp mẫu cổ điển:
Đầu vào người dùng -> Quy tắc tên miền ngữ pháp -> Điền vào khe -> Gọi trình xử lý

Luồng điều phối đa mô hình:
Đầu vào người dùng -> Nhà cung cấp mô hình hoạt động (AFM / Claude / GPT)
            -> Tổng hợp tham số ngữ nghĩa
            -> Hợp đồng Swift AppIntent chính thức
            -> Xác thực phòng thủ & Phân giải thực thể
            -> Logic kinh doanh tên miền

Sự tách biệt cấu trúc này phơi bày một thực tế kỹ thuật quan trọng: các mô hình lập luận ngôn ngữ tự nhiên đưa ra sự biến đổi ngữ nghĩa. Apple tài liệu hóa App Intents như một hợp đồng được định kiểu, qua đó các hành động ứng dụng được hỗ trợ hiển thị cho Siri và Apple Intelligence. Các mô hình lập luận thượng nguồn khác nhau vẫn có thể thay đổi cách chúng diễn giải ngôn ngữ người dùng tương đương trước khi đạt đến hợp đồng đó, giới thiệu các sắc thái mã hóa (tokenization) riêng biệt và các giả định ngữ nghĩa khác nhau. Trong các kiến trúc đa mô hình giả định, một mô hình có thể tổng hợp một mã tham chiếu chữ và số chính xác, trong khi mô hình khác đưa ra một chuỗi mô tả gián tiếp hoặc một tiêu đề thực thể một phần.

Hệ quả là, các nhà phát triển di động không thể giả định rằng việc bàn giao mô hình thượng nguồn đảm bảo các đầu vào tên miền hợp lệ. Khung App Intents cung cấp giao diện cấu trúc, nhưng trách nhiệm xác minh rằng các đối số đầu vào tuân thủ các bất biến vận hành thực tế vẫn hoàn toàn nằm trong mã ứng dụng gốc.

Tiêu chuẩn kỹ thuật phòng thủ cho Swift AppIntents

Việc thích ứng các ứng dụng iOS với môi trường nơi các ý định thượng nguồn có thể bắt nguồn từ nhiều mô hình lập luận đòi hỏi các kỹ thuật lập trình phòng thủ. Thay vì coi các lệnh gọi ý định đến là các sự kiện hệ thống đã được xác thực trước, các nhóm kỹ thuật nên thiết kế các trình xử lý ý định với sự nghiêm ngặt như khi áp dụng cho các bộ điều khiển API REST bên ngoài hoặc các điểm cuối RPC công cộng.

App Intents có thể thực thi ở chế độ nền trước hoặc nền sau tùy thuộc vào cấu hình thời gian chạy được khai báo. Do đó, các nhà phát triển nên tránh giả định về phân cấp cửa sổ đang hoạt động hoặc trình bày các bộ điều khiển chế độ xem UI đồng bộ trừ khi một ý định yêu cầu rõ ràng ngữ cảnh thực thi ở nền trước. Đối với các ý định làm thay đổi trạng thái chia sẻ hoặc từ xa, việc cô lập logic tên miền đằng sau các dịch vụ tên miền không đồng bộ, an toàn theo luồng là một mô hình phòng thủ mạnh mẽ.

Khía cạnh kỹ thuật Mô hình tối thiểu minh họa Mô hình App Intent đa mô hình phòng thủ
Tiếp nhận tham số Giả định khớp chuỗi hoặc kiểu nguyên thủy Xác thực bộ ký tự, độ dài chuỗi và các bất biến tên miền
Phân giải thực thể Tra cứu khóa trực tiếp qua EntityQuery Triển khai EntityStringQuery cho tìm kiếm văn bản chuẩn hóa
Luồng phân biệt Ném lỗi hệ thống chung khi thất bại Phân biệt giá trị thiếu (needsValueError) với các lựa chọn (needsDisambiguationError)
Kiểm soát tác động phụ Thực hiện thay đổi trạng thái ngay lập tức Kết hợp requestConfirmation() cho các hành động phá hủy hoặc có tác động cao
Mô hình đồng thời Tác vụ không đồng bộ không bị ràng buộc Actor tên miền cô lập ngăn chặn các điều kiện tranh chấp khi thử lại

Để duy trì tính toàn vẹn vận hành khi xử lý các đầu vào được tổng hợp qua nhiều nhà cung cấp mô hình khác nhau, các kiến trúc phải kết hợp bốn mô hình triển khai phòng thủ:

  • Phân giải thực thể dựa trên chuỗi và mã định danh: Triển khai EntityStringQuery để hỗ trợ cả tra cứu mã định danh duy nhất và tìm kiếm văn bản tùy ý. Khi một mô hình bên ngoài cung cấp một nhãn mô tả thay vì một khóa chính xác, việc so khớp chuỗi chuẩn hóa sẽ xử lý các cụm từ một phần một cách mượt mà.
  • Làm rõ tham số tương tác: Nếu một tham số bắt buộc bị nhà cung cấp lập luận thượng nguồn bỏ qua, các trình xử lý nên gọi các lời nhắc giá trị tương tác (needsValueError). Khi nhiều thực thể khớp với một cụm từ mơ hồ, hệ thống phải kích hoạt việc phân biệt (needsDisambiguationError).
  • Tính lũy đẳng của thay đổi bền vững: Vì các trợ lý hội thoại có thể gửi lại các yêu cầu sau khi hết thời gian chờ mạng hoặc xác nhận người dùng mơ hồ, các ý định giao dịch nên chấp nhận hoặc dẫn xuất các mã thông báo vận hành bền vững để ngăn chặn các tác động phụ trùng lặp.
  • Xác nhận rõ ràng cho các thay đổi có tác động cao: Đối với các hành động liên quan đến cam kết tài chính, sửa đổi tài khoản hoặc xóa không thể hoàn tác, hãy sử dụng requestConfirmation() để đảm bảo người dùng đồng ý rõ ràng trước khi thực hiện thay đổi trạng thái.
// Lưu ý về phạm vi kỹ thuật: Ví dụ Swift sau đây là một kiến trúc tham chiếu 
// minh họa việc xác thực AppIntent phòng thủ, phân giải thực thể truy vấn và 
// thực thi tên miền lũy đẳng. Đây không phải là triển khai do Apple quy định cho 
// các khung riêng tư về Ủy quyền Mô hình chưa được phát hành.

import Foundation
import AppIntents

// MARK: - Biểu diễn Thực thể App Ngữ nghĩa
public struct BookingEntity: AppEntity {
    public static var defaultQuery = BookingQuery()
    public static var typeDisplayRepresentation: TypeDisplayRepresentation = "Đặt chỗ dịch vụ"

    public var id: String
    public var serviceName: String
    public var referenceCode: String

    public var displayRepresentation: DisplayRepresentation {
        DisplayRepresentation(
            title: "\(serviceName)",
            subtitle: "Tham chiếu: \(referenceCode)"
        )
    }
}

// MARK: - Trình phân giải Truy vấn Thực thể Phòng thủ (Tìm kiếm ID & Chuỗi)
public struct BookingQuery: EntityStringQuery {
    public init() {}

    // 1. Phân giải các mã định danh duy nhất chính xác do hệ thống hoặc bộ đệm lưu trữ cung cấp
    public func entities(for identifiers: [String]) async throws -> [BookingEntity] {
        var resolvedEntities: [BookingEntity] = []
        for id in identifiers {
            if let entity = await BookingDataSource.shared.fetchBooking(byId: id) {
                resolvedEntities.append(entity)
            }
        }
        return resolvedEntities
    }

    // 2. Xử lý các chuỗi tìm kiếm ngôn ngữ tự nhiên được tổng hợp bởi các mô hình lập luận thượng nguồn
    public func entities(matching string: String) async throws -> [BookingEntity] {
        return await BookingDataSource.shared.searchBookings(matching: string)
    }

    // 3. Trả về các gợi ý ứng viên ban đầu khi không có tham số truy vấn nào được cung cấp
    public func suggestedEntities() async throws -> [BookingEntity] {
        return await BookingDataSource.shared.fetchAllActiveBookings()
    }
}

// MARK: - Mô hình AppIntent Phòng thủ Tham chiếu
public struct ConfirmBookingIntent: AppIntent {
    public static var title: LocalizedStringResource = "Xác nhận đặt chỗ"
    public static var description = IntentDescription(
        "Xác nhận một cuộc hẹn hoặc đặt chỗ đang hoạt động bằng thực thể đặt chỗ đã xác minh.",
        categoryName: "Đặt chỗ"
    )

    // Cấu hình để phân biệt thời gian chạy tương tác nếu bị thiếu hoặc mơ hồ
    @Parameter(
        title: "Đặt chỗ mục tiêu",
        description: "Thực thể đặt chỗ đang hoạt động cụ thể cần được xác nhận."
    )
    public var targetBooking: BookingEntity?

    // Mã thông báo lũy đẳng bền vững do trình gọi cung cấp để ngăn chặn các tác động phụ dư thừa
    @Parameter(
        title: "Mã thông báo thay đổi của khách hàng",
        description: "Mã thông báo khách hàng bền vững để thực thi tính lũy đẳng thay đổi qua các lần thử lại hội thoại."
    )
    public var mutationToken: String?

    public init() {}

    public init(targetBooking: BookingEntity, mutationToken: String? = nil) {
        self.targetBooking = targetBooking
        self.mutationToken = mutationToken
    }

    // Thực thi không đầu (headless) tách biệt khỏi các phân cấp UI nền trước
    public func perform() async throws -> some IntentResult & ReturnsValue<Bool> & ProvidesDialog {
        // Xác thực phòng thủ: nhắc trình điều phối hệ thống nếu tham số thực thể bị thiếu
        guard let booking = targetBooking else {
            throw $targetBooking.needsValueError(
                "Bạn muốn xác nhận đặt chỗ hoạt động nào? Vui lòng chỉ định mã tham chiếu hoặc tiêu đề dịch vụ."
            )
        }

        // Xác thực tên miền: xác minh các tham số vận hành bắt buộc
        guard !booking.id.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty else {
            throw BookingDomainError.invalidIdentifier
        }

        // Đối với các thay đổi trạng thái có tác động cao hoặc phá hủy, hãy gọi API xác nhận được tài liệu hóa:
        // try await requestConfirmation()

        // Thực thi tính lũy đẳng bền vững: từ chối các thay đổi trùng lặp nếu mã thông báo đã được cung cấp
        if let token = mutationToken {
            let alreadyProcessed = await BookingStateManager.shared.isTokenProcessed(token)
            if alreadyProcessed {
                return .result(
                    value: true,
                    dialog: "Đặt chỗ này đã được xác nhận. Không có hành động nào thêm được thực hiện."
                )
            }
        }

        // Thực thi logic tên miền cốt lõi bên trong một actor cô lập
        do {
            let confirmationSuccess = try await BookingExecutionService.shared.executeConfirmation(
                bookingId: booking.id
            )

            // Lưu trữ mã thông báo sau khi thay đổi trạng thái thành công
            if let token = mutationToken, confirmationSuccess {
                await BookingStateManager.shared.recordToken(token)
            }

            return .result(
                value: confirmationSuccess,
                dialog: "Đã xác nhận thành công đặt chỗ của bạn cho \(booking.serviceName)."
            )
        } catch let domainError as BookingDomainError {
            // Lan truyền các lỗi tên miền định kiểu tuân thủ LocalizedError
            throw domainError
        }
    }
}

// MARK: - Các Actor Tên miền Hỗ trợ và Cơ sở hạ tầng Cô lập
public enum BookingDomainError: Error, LocalizedError {
    case invalidIdentifier
    case reservationExpired
    case networkUnavailable

    public var errorDescription: String? {
        switch self {
        case .invalidIdentifier:
            return "Mã định danh đặt chỗ được cung cấp không hợp lệ hoặc sai định dạng."
        case .reservationExpired:
            return "Đặt chỗ này đã hết hạn và không thể xác nhận được nữa."
        case .networkUnavailable:
            return "Không thể kết nối với dịch vụ đặt chỗ. Vui lòng xác minh kết nối của bạn."
        }
    }
}

public actor BookingStateManager {
    public static let shared = BookingStateManager()
    private var processedTokens = Set<String>()

    public func isTokenProcessed(_ token: String) -> Bool {
        return processedTokens.contains(token)
    }

    public func recordToken(_ token: String) {
        processedTokens.insert(token)
    }
}

public actor BookingExecutionService {
    public static let shared = BookingExecutionService()

    public func executeConfirmation(bookingId: String) async throws -> Bool {
        // Mô phỏng một thay đổi dịch vụ từ xa không đồng bộ
        try await Task.sleep(nanoseconds: 80_000_000)
        return true
    }
}

public actor BookingDataSource {
    public static let shared = BookingDataSource()

    public func fetchBooking(byId id: String) -> BookingEntity? {
        if id == "TC-2026-01" {
            return BookingEntity(id: id, serviceName: "Tư vấn kỹ thuật", referenceCode: "TC-2026-01")
        }
        return nil
    }

    public func searchBookings(matching query: String) -> [BookingEntity] {
        let all = fetchAllActiveBookings()
        let normalized = query.trimmingCharacters(in: .whitespacesAndNewlines).lowercased()
        return all.filter {
            $0.serviceName.lowercased().contains(normalized) ||
            $0.referenceCode.lowercased().contains(normalized)
        }
    }

    public func fetchAllActiveBookings() -> [BookingEntity] {
        return [
            BookingEntity(id: "TC-2026-01", serviceName: "Tư vấn kỹ thuật", referenceCode: "TC-2026-01"),
            BookingEntity(id: "HD-2026-88", serviceName: "Chẩn đoán phần cứng", referenceCode: "HD-2026-88")
        ]
    }
}

Ranh giới hành động hệ thống và phân biệt ý định

Một thách thức nền tảng trong điều phối đa mô hình là quản lý sự mơ hồ khi các yêu cầu của người dùng không ánh xạ rõ ràng đến trạng thái ứng dụng. Khi một trợ lý ủy quyền diễn giải cho một mô hình nền tảng bên ngoài, nguy cơ sai lệch ngữ nghĩa tăng lên: một yêu cầu người dùng như “xác nhận cuộc hẹn của tôi” có thể tạo ra tham số ý định chứa chuỗi ngày tương đối, tên doanh nghiệp hoặc mô tả dịch vụ không chính thức.

Trong kiến trúc App Intents của Apple, trình điều phối hệ thống xử lý việc phân giải tham số thông qua một vòng lặp phản hồi liên tục giữa các lược đồ đã xuất bản của ứng dụng và giao diện trợ lý hoạt động. Nếu không có các hook làm rõ hoặc phân biệt phù hợp, hệ thống có thể không phân giải được thực thể dự định một cách đáng tin cậy và có thể quay lại trạng thái thất bại hoặc tương tác bị suy giảm.

Ứng dụng Siri chuyên dụng trên iPhone hiển thị lịch sử trò chuyện được đồng bộ hóa riêng tư giữa các thiết bị

+-------------------------------------------------------------------------+
|               TRÌNH TỰ PHÂN BIỆT THAM SỐ PHÒNG THỦ               |
+-------------------------------------------------------------------------+
|                                                                         |
|  [ Mô hình thượng nguồn tổng hợp các tham số ứng viên ]                     |
|         |                                                               |
|         v                                                               |
|  [ EntityStringQuery của ứng dụng gốc đánh giá Mã định danh / Tìm kiếm đầu vào ]   |
|         |                                                               |
|         +---------------------------------------+                       |
|         | Tìm thấy khớp mã định danh chính xác   | Mơ hồ hoặc nhiều      |
|         v                                       v                       |
|  [ Tiến hành xác thực ]             [ Truy vấn trả về nhiều kết quả ]|
|         |                                       |                       |
|         |                                       v                       |
|         |                        [ Ném needsDisambiguationError() ]   |
|         |                                       |                       |
|         |                                       v                       |
|         |                              [ Hệ thống hiển thị Menu lựa chọn ]|
|         |                                       |                       |
|         |                                       v                       |
|         |                              [ Người dùng chọn thực thể mục tiêu ]   |
|         |                                       |                       |
|         +<--------------------------------------+                       |
|         |                                                               |
|         v                                                               |
|  [ Thực hiện ý định tác động phụ với ngữ cảnh thực thể đã xác nhận ]           |
|                                                                         |
+-------------------------------------------------------------------------+

Để xây dựng sự phân biệt có thể dự đoán, các nhà phát triển phải tận dụng các khả năng tương tác của khung App Intents:

  1. Trình bày ứng viên có cấu trúc: EntityStringQuery.entities(matching:) nên trả về một mảng các thực thể AppEntity ứng viên được điền tiêu đề và phụ đề mô tả. Nếu nhiều ứng viên vẫn khả thi về mặt ngữ nghĩa tại thời điểm chạy, việc ném needsDisambiguationError(among:dialog:) sẽ hướng dẫn hệ thống hiển thị một hộp thoại lựa chọn gốc.
  2. Tích hợp đối thoại ý định: Các trình xử lý nên sử dụng ProvidesDialog để cung cấp ngữ cảnh hội thoại trở lại trình điều phối. Khi một hoạt động thành công hoặc gặp điều kiện kinh doanh có thể phục hồi, việc trả về các hộp thoại được thiết kế riêng đảm bảo rằng người dùng nhận được phản hồi chính xác bất kể mô hình nào đã xử lý lời nhắc ban đầu.
  3. Lan truyền lỗi tên miền duyên dáng: Khi một hành động không thể hoàn thành do các quy tắc kinh doanh phụ trợ (như cửa sổ đặt chỗ đã hết hạn hoặc hết hàng tồn kho), việc ném các lỗi Swift định kiểu tuân thủ LocalizedError đảm bảo rằng trợ lý đưa ra các giải thích có thể thực hiện được, được bản địa hóa thay vì các mã hệ thống không rõ ràng.

Bằng cách đầu tư vào việc phân giải truy vấn chi tiết và lan truyền lỗi mang tính giao tiếp, các nhà phát triển đảm bảo rằng ứng dụng của họ vẫn kiên cường bất kể được gọi bởi các mô hình tích hợp của Apple hay các trợ lý được ủy quyền của bên thứ ba trong tương lai.

Các câu hỏi thường gặp (FAQ)

Sự khác biệt giữa Ủy quyền Mô hình Siri và tích hợp ChatGPT hiện tại là gì?
Tiện ích mở rộng ChatGPT hiện tại trên iOS cung cấp một cơ chế chuyển giao truy vấn nông: khi Siri không thể trả lời một truy vấn thực tế rộng, nó yêu cầu người dùng cấp phép để định tuyến lời nhắc tới ChatGPT, sau đó mô hình này trả về phản hồi văn bản hoặc hình ảnh trực tiếp. Các cơ chế Ủy quyền Mô hình được xác định trong các khung nội bộ của iOS 27 đại diện cho một sự tích hợp sâu hơn. Trong kiến trúc này, một tác nhân AI bên ngoài có thể nhận lời nhắc của người dùng, diễn giải các mục tiêu hội thoại và phối hợp với Siri để yêu cầu các hành động hệ thống gốc; khung App Intents công khai của Apple xác định riêng cách các ứng dụng bên thứ ba hiển thị các hành động được hỗ trợ cho Siri và Apple Intelligence.
Đạo luật Thị trường Kỹ thuật số (DMA) của EU có bắt buộc Apple cho phép các mô hình AI bên thứ ba thay thế Siri không?
Điều 6(7) của Đạo luật Thị trường Kỹ thuật số yêu cầu các nền tảng "người gác cổng" phải cung cấp khả năng tương tác hệ điều hành cho các nhà cung cấp bên thứ ba trên các điều khoản công bằng và không phân biệt đối xử. Các cơ quan quản lý Châu Âu đã giám sát các trợ lý giọng nói ở cấp nền tảng và việc gói dịch vụ mặc định theo các quy định này. Mặc dù DMA thiết lập một khung pháp lý yêu cầu quyền truy cập kỹ thuật vào các tính năng cấp hệ thống, Apple chưa chính thức xác nhận rằng mã ủy quyền mô hình được tìm thấy trong iOS 27 được phát triển độc quyền để đáp ứng các hành động thực thi DMA cụ thể.
Các mô hình bên thứ ba có thể truy cập trực tiếp dữ liệu ứng dụng riêng tư khi xử lý một ý định được ủy quyền không?
Bằng chứng công khai không thiết lập hợp đồng truy cập dữ liệu hoàn chỉnh cho các nhà cung cấp suy luận bên thứ ba chưa được phát hành. Các API App Intents và Siri đã phát hành của Apple duy trì các ranh giới hộp cát và quyền ứng dụng thông thường, nhưng các bản demo bị rò rỉ chỉ ra rằng một nhà cung cấp suy luận được ủy quyền có thể nhận đầu ra công cụ do trình lập kế hoạch xác định và ngữ cảnh cá nhân kết quả thông qua lớp điều phối của Siri. Do đó, các nhà phát triển nên phân biệt các biện pháp bảo vệ hộp cát ứng dụng đã được tài liệu hóa với hợp đồng quyền riêng tư chưa được tài liệu hóa của khung ủy quyền nội bộ.

Hướng dẫn chiến lược cho các nhóm kỹ thuật di động

Để chuẩn bị các cơ sở mã ứng dụng cho trí tuệ hệ điều hành ngày càng mô-đun hóa, các tổ chức kỹ thuật nên áp dụng các cột mốc kỹ thuật sau:

  1. Kiểm toán và Hiện đại hóa phạm vi App Intent: Đối với các trường hợp sử dụng được hỗ trợ, hãy ưu tiên các lược đồ AppIntent Swift hiện đại khi hiển thị các khả năng mới và kiểm toán các tích hợp SiriKit cũ để tìm cơ hội di chuyển. Mỗi hành động chính cần kèm theo siêu dữ liệu ngữ nghĩa rõ ràng, mô tả.

  2. Triển khai Phân giải Thực thể dựa trên Chuỗi và Mã định danh: Sử dụng EntityStringQuery để hỗ trợ cả việc truy xuất mã định danh kế thừa từ EntityQuery và khớp văn bản tùy ý. Các trình giải quyết nên xử lý các đầu vào chuỗi đã chuẩn hóa, viết thường và một phần để đáp ứng các định dạng tham số đa dạng được tạo bởi các công cụ lập luận khác nhau.

  3. Cô lập Thay đổi Trạng thái phía sau các Actor nền: Tái cấu trúc các phương thức thực thi kinh doanh để các ý định hoạt động dựa trên các dịch vụ tên miền không đầu (headless), an toàn theo luồng. Việc thực thi ý định không nên giả định một phân cảnh cửa sổ đang hoạt động trừ khi chế độ thực thi được khai báo của nó yêu cầu hoặc chuyển đổi rõ ràng sang ngữ cảnh nền trước.

  4. Thực thi Xác minh Thay đổi hai giai đoạn: Đối với các hành động nhạy cảm liên quan đến cam kết tài chính, sửa đổi tài khoản hoặc xóa không thể hoàn tác, hãy sử dụng requestConfirmation() để đảm bảo người dùng đồng ý rõ ràng trước khi thực hiện thay đổi trạng thái.

  5. Thiết lập Bộ kiểm thử Intent đầu cuối: Xây dựng các bài kiểm tra đơn vị và tích hợp tự động để xác minh rằng các trình xử lý AppIntent hoạt động chính xác khi được cung cấp các đầu vào trường hợp biên, chuỗi trống và tham chiếu thực thể sai định dạng.

Tài liệu tham khảo

Share this article