1. Senario, matlamat, dan batasan
Aplikasi kolaborasi mengandungi projek, ulasan, dan tugas. Pengguna boleh memanggil "selesaikan tugas", "kongsi projek", atau "padam ulasan" melalui Siri, Spotlight, Shortcuts, atau Apple Intelligence. Setiap titik masuk mesti mengekalkan pengesahan kebenaran dan hasil yang sama, dan tugas harus boleh disambung semula pada peranti lain.
Tetapkan batasannya terlebih dahulu: App Intents ialah antara muka yang boleh ditemui (discoverable) untuk tindakan dan entiti. Ia tidak boleh memintas kebenaran pelayan, audit, atau transaksi sedia ada. Cadangan sistem meningkatkan capaian tetapi tidak menjadikan sesuatu seruan itu boleh dipercayai secara automatik; anggap setiap intent sebagai permukaan panggilan awam.
2. Nilai produk App Intents
Protokol AppIntent Apple menjadikan tindakan aplikasi boleh ditemui oleh Siri, Spotlight, Shortcuts, dan Apple Intelligence. Kemas kini App Intents Jun 2026 juga menerangkan skema aplikasi, identiti entiti merentas peranti yang stabil melalui SyncableEntity, pengesahan pemilikan untuk tindakan sensitif atau pemusnah melalui OwnershipProvidingEntity, dan IntentFile untuk menerima kandungan yang dibekalkan oleh aplikasi lain sebagai parameter.
Keupayaan ini menyelesaikan masalah penemuan dan kebolehoperasian semantik. Ia tidak menentukan kebenaran perniagaan, pengendalian konflik, atau dasar undur (undo). Asingkan "apa yang pengguna mahukan", "sama ada sistem boleh melaksanakannya dengan selamat", dan "bagaimana pengguna pulih daripada kegagalan".
3. Memodelkan tindakan dan entiti
Bagi setiap intent, tentukan input, kebolehlihatan, prasyarat, hasil, dan kesan sampingan. Nama paparan mungkin berubah, tetapi ID perniagaan mestilah stabil, boleh disahkan, dan terikat kepada pengguna serta penyewa (tenant) semasa. Jangan gunakan kedudukan senarai, tajuk, atau kunci pangkalan data tempatan sebagai identiti merentas peranti.
struct CompleteTaskIntent: AppIntent {
static var title: LocalizedStringResource = "Complete task"
@Parameter(title: "Task")
var task: TaskEntity
func perform() async throws -> some IntentResult {
try await TaskService.complete(taskID: task.id)
return .result()
}
}Jika resolusi entiti gagal, kebenaran berubah, atau versi tidak serasi, kembalikan pilihan yang mudah difahami atau laluan log masuk. Jangan sekali-kali meneka projek yang serupa dan melaksanakannya.
4. Mereka bentuk identiti merentas peranti yang stabil
Jika sesuatu tugas boleh diteruskan pada pelbagai peranti, entitinya mesti mendedahkan semantik identiti yang stabil, dan pelayan mesti menjamin bahawa ID entiti yang sama merujuk kepada sumber yang sama pada setiap peranti. Lapisan penyegerakan masih mengendalikan pemadaman, pengarkiban, pemindahan penyewa, dan cache luar talian yang lapuk; resolusi menyemak semula bahawa pengguna semasa boleh mengakses sumber tersebut.
Jangan anggap SyncableEntity sebagai pangkalan data penyegerakan. Ia menyatakan bahawa identiti boleh kekal stabil merentas peranti; penyegerakan data, penyelesaian konflik, dan buat asal tetap menjadi tanggungjawab bahagian belakang (backend). Kekalkan pemetaan alias dan rekod audit melalui penggabungan atau migrasi supaya Shortcut lama tidak menyasarkan entiti yang salah.
5. Mengesahkan tindakan sensitif dan pemilikan
Memadam, berkongsi secara awam, atau memindahkan akses harus mengesahkan bahawa pengguna memiliki entiti tersebut atau mempunyai kebenaran operasi yang diperlukan. Gunakan OwnershipProvidingEntity untuk menyatakan pemilikan dan pastikan pengesahan menerangkan objek, impak, dan kebolehbalikan (reversibility). Ikatkan pengesahan kepada permintaan, pengguna, dan versi sumber semasa dan bukannya menggunakan semula pengesahan lama.
Bagi entiti milik pasukan atau awam, pelayan mesti mengembalikan keputusan pemilikan; cache tempatan tidak mencukupi. Pastikan pilihan "jangan tanya lagi" terhad skopnya, dan kekalkan pengesahan serta audit untuk tindakan berisiko tinggi.
6. Kebenaran, idempotensi, dan kesan sampingan
Sistem mungkin mencuba semula sesuatu intent, dan Shortcut mungkin dijalankan dua kali. Setiap intent yang mengubah keadaan harus membawa kunci idempotensi dan versi sumber. Selepas pengesahan kebenaran, pelayan melakukan kemas kini bersyarat dan mengembalikan hasil perniagaan yang sama untuk permintaan pendua. Tindakan baca sahaja boleh menjadi lebih pantas, tetapi masih perlu menguatkuasakan kebolehlihatan.
Jangan kodkan kebenaran dalam parameter bahasa semula jadi. Sahkan semula kebenaran daripada sesi, penyewa, pemilikan entiti, dan versi semasa, serta rekod titik masuk (Siri, Spotlight, Shortcuts, atau aplikasi), peranti pemanggil, dan hasilnya. Bezakan antara log masuk yang telah tamat tempoh, akses dilarang, entiti yang diubah, dan kegagalan perkhidmatan sementara dalam respons.
7. Penemuan, kebolehcerapan (observability), dan pemulihan
Pilih skema aplikasi dan tindakan yang boleh ditemui berdasarkan nilai pengguna berbanding mendedahkan setiap API dalaman. Bagi setiap intent, ukur kejayaan resolusi, penafian kebenaran, pengabaian pengesahan, pelaksanaan pendua, pemulihan merentas peranti, dan kadar penyiapan. Bandingkan titik masuk mengikut penukaran (conversion), bukan sekadar kiraan seruan.
Tunjukkan ringkasan sebelum pelaksanaan dan hasil dengan laluan buat asal (undo) selepasnya. Apabila berlaku gangguan rangkaian, kekalkan keadaan permintaan yang boleh dicuba semula tetapi jangan sekali-kali memainkan semula tindakan pemusnah tanpa henti di latar belakang. Jika entiti dipadamkan atau versinya berkonflik, kembalikan alternatif dan laluan pengendalian manusia sambil mengekalkan peristiwa audit.
8. Rubrik dan soalan susulan
Perkara yang mesti dijelaskan
- Anggap App Intents sebagai antara muka produk awam yang masih memerlukan kebenaran pelayan, audit, idempotensi, dan semakan versi.
- Bezakan identiti entiti yang stabil daripada penyegerakan data sebenar, termasuk pemadaman, migrasi, keadaan luar talian, dan konflik.
- Reka bentuk pengesahan pemilikan, keutamaan langkau pengesahan berskop sempit, buat asal, dan pemulihan kegagalan untuk tindakan sensitif.
Soalan susulan
- Pengguna mengesahkan pemadaman pada telefon, kemudian Shortcut luar talian pada tablet menjalankannya semula. Bagaimanakah pelayan menjamin satu hasil yang konsisten?
- Projek pasukan yang dikongsi tidak mempunyai pemilik tunggal. Siapakah yang boleh mengesahkan pemindahan kebenaran?
- Bagaimanakah anda memutuskan bahawa sesuatu intent layak menerima cadangan sistem dan bukannya menambah tindakan yang bising dan bernilai rendah?
Panduan pemarkahan
Jawapan yang cemerlang menghubungkan penemuan, identiti, pengesahan kebenaran, pengesahan tindakan, idempotensi, dan pemulihan ke dalam satu rantaian produk: titik masuk sistem menyatakan niat (intent), pelayan membuat keputusan muktamad, dan pengguna boleh memahami impak serta meneruskan selepas berlaku kegagalan.