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

# Đến từ BlueBubbles

Plugin `imessage` đi kèm hiện truy cập cùng bề mặt API riêng tư như BlueBubbles (`react`, `edit`, `unsend`, `reply`, `sendWithEffect`, quản lý nhóm, tệp đính kèm) bằng cách điều khiển [`steipete/imsg`](https://github.com/steipete/imsg) qua JSON-RPC. Nếu bạn đã chạy một máy Mac có cài `imsg`, bạn có thể bỏ máy chủ BlueBubbles và để Plugin nói chuyện trực tiếp với Messages.app.

Hỗ trợ BlueBubbles đã bị loại bỏ. OpenClaw chỉ hỗ trợ iMessage thông qua `imsg`. Hướng dẫn này dành cho việc di chuyển cấu hình `channels.bluebubbles` cũ sang `channels.imessage`; không có đường dẫn di chuyển nào khác được hỗ trợ.

<Note>
  Để xem thông báo ngắn và tóm tắt dành cho người vận hành, hãy xem [Việc loại bỏ BlueBubbles và đường dẫn imsg cho iMessage](/vi/announcements/bluebubbles-imessage).
</Note>

## Danh sách kiểm tra di chuyển

Dùng danh sách kiểm tra này khi bạn đã biết cấu hình BlueBubbles cũ của mình và muốn đường dẫn an toàn ngắn nhất:

1. Xác minh trực tiếp `imsg` trên máy Mac chạy Messages.app (`imsg chats`, `imsg history`, `imsg send` và `imsg rpc --help`).
2. Sao chép các khóa hành vi từ `channels.bluebubbles` sang `channels.imessage`: `dmPolicy`, `allowFrom`, `groupPolicy`, `groupAllowFrom`, `groups`, `includeAttachments`, `attachmentRoots`, `mediaMaxMb`, `textChunkLimit`, `coalesceSameSenderDms` và `actions`.
3. Loại bỏ các khóa truyền tải không còn tồn tại: `serverUrl`, `password`, URL Webhook và thiết lập máy chủ BlueBubbles.
4. Nếu Gateway không chạy trên máy Mac Messages, hãy đặt `channels.imessage.cliPath` thành một trình bao SSH và đặt `remoteHost` để lấy tệp đính kèm từ xa.
5. Khi Gateway đã dừng, bật `channels.imessage`, rồi chạy `openclaw channels status --probe --channel imessage`.
6. Kiểm thử một DM, một nhóm được cho phép, tệp đính kèm nếu được bật, và mọi hành động API riêng tư mà bạn kỳ vọng tác nhân sẽ dùng.
7. Xóa máy chủ BlueBubbles và cấu hình `channels.bluebubbles` cũ sau khi đường dẫn iMessage đã được xác minh.

## Khi nào nên di chuyển theo cách này

* Bạn đã chạy `imsg` trên cùng máy Mac (hoặc một máy có thể truy cập qua SSH) nơi Messages.app đã đăng nhập.
* Bạn muốn giảm một thành phần vận hành — không có máy chủ BlueBubbles riêng, không có endpoint REST cần xác thực, không có hệ thống Webhook. Một tệp nhị phân CLI duy nhất thay vì máy chủ + ứng dụng khách + trình trợ giúp.
* Bạn đang dùng một [bản dựng macOS / `imsg` được hỗ trợ](/vi/channels/imessage#requirements-and-permissions-macos), nơi phép dò API riêng tư báo cáo `available: true`.

## imsg làm gì

`imsg` là một CLI macOS cục bộ cho Messages. OpenClaw khởi động `imsg rpc` như một tiến trình con và giao tiếp JSON-RPC qua stdin/stdout. Không có máy chủ HTTP, URL Webhook, daemon nền, launch agent hay cổng nào cần mở.

* Dữ liệu đọc đến từ `~/Library/Messages/chat.db` bằng một handle SQLite chỉ đọc.
* Tin nhắn đến trực tiếp đến từ `imsg watch` / `watch.subscribe`, theo dõi các sự kiện hệ thống tệp của `chat.db` với cơ chế polling dự phòng.
* Gửi tin nhắn sử dụng tự động hóa Messages.app cho văn bản thông thường và gửi tệp.
* Các hành động nâng cao sử dụng `imsg launch` để chèn trình trợ giúp `imsg` vào Messages.app. Đây là thứ mở khóa biên nhận đã đọc, chỉ báo đang nhập, gửi phong phú, chỉnh sửa, thu hồi, trả lời theo luồng, tapbacks và quản lý nhóm.
* Các bản dựng Linux có thể kiểm tra một bản sao `chat.db`, nhưng không thể gửi, theo dõi cơ sở dữ liệu Mac trực tiếp, hoặc điều khiển Messages.app. Với OpenClaw iMessage, hãy chạy `imsg` trên máy Mac đã đăng nhập hoặc thông qua một trình bao SSH đến máy Mac đó.

## Trước khi bắt đầu

1. Cài đặt `imsg` trên máy Mac chạy Messages.app:

   ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
   brew install steipete/tap/imsg
   imsg --version
   imsg chats --limit 3
   ```

   Nếu `imsg chats` thất bại với `unable to open database file`, đầu ra trống, hoặc `authorization denied`, hãy cấp Full Disk Access cho terminal, trình soạn thảo, tiến trình Node, dịch vụ Gateway hoặc tiến trình cha SSH khởi chạy `imsg`, rồi mở lại tiến trình cha đó.

2. Xác minh các bề mặt đọc, theo dõi, gửi và RPC trước khi thay đổi cấu hình OpenClaw:

   ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
   imsg chats --limit 10 --json | jq -s
   imsg history --chat-id 42 --limit 10 --attachments --json | jq -s
   imsg watch --chat-id 42 --reactions --json
   imsg send --chat-id 42 --text "OpenClaw imsg test"
   imsg rpc --help
   ```

   Thay `42` bằng một id cuộc trò chuyện thực từ `imsg chats`. Việc gửi yêu cầu quyền Automation cho Messages.app. Nếu OpenClaw sẽ chạy qua SSH, hãy chạy các lệnh này qua cùng trình bao SSH hoặc ngữ cảnh người dùng mà OpenClaw sẽ dùng. Nếu đọc/dò hoạt động nhưng gửi thất bại với AppleEvents `-1743`, hãy kiểm tra xem Automation có rơi vào `/usr/libexec/sshd-keygen-wrapper` hay không; xem [Gửi bằng trình bao SSH thất bại với AppleEvents -1743](/vi/channels/imessage#ssh-wrapper-sends-fail-with-appleevents-1743).

3. Bật cầu nối API riêng tư khi bạn cần các hành động nâng cao:

   ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
   imsg launch
   imsg status --json
   ```

   `imsg launch` yêu cầu tắt SIP. Gửi cơ bản, lịch sử và theo dõi hoạt động mà không cần `imsg launch`; các hành động nâng cao thì không.

4. Sau khi bạn thêm cấu hình `channels.imessage` đã bật, hãy xác minh cầu nối thông qua OpenClaw:

   ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
   openclaw channels status --probe
   ```

   Bạn cần `imessage.privateApi.available: true`. Nếu nó báo cáo `false`, hãy sửa việc đó trước — xem [Phát hiện năng lực](/vi/channels/imessage#private-api-actions). `channels status --probe` chỉ dò các tài khoản đã cấu hình và đã bật.

5. Chụp nhanh cấu hình của bạn:

   ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
   cp ~/.openclaw/openclaw.json5 ~/.openclaw/openclaw.json5.bak
   ```

## Chuyển đổi cấu hình

iMessage và BlueBubbles dùng chung nhiều cấu hình cấp kênh. Các khóa thay đổi chủ yếu là phần truyền tải (máy chủ REST so với CLI cục bộ). Các khóa hành vi (`dmPolicy`, `groupPolicy`, `allowFrom`, v.v.) giữ nguyên cùng ý nghĩa.

| BlueBubbles                                                | iMessage tích hợp sẵn                     | Ghi chú                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| ---------------------------------------------------------- | ----------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `channels.bluebubbles.enabled`                             | `channels.imessage.enabled`               | Cùng ngữ nghĩa.                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `channels.bluebubbles.serverUrl`                           | *(đã loại bỏ)*                            | Không có máy chủ REST — Plugin sinh `imsg rpc` qua stdio.                                                                                                                                                                                                                                                                                                                                                                                  |
| `channels.bluebubbles.password`                            | *(đã loại bỏ)*                            | Không cần xác thực webhook.                                                                                                                                                                                                                                                                                                                                                                                                                |
| *(ngầm định)*                                              | `channels.imessage.cliPath`               | Đường dẫn tới `imsg` (mặc định `imsg`); dùng script bao bọc cho SSH.                                                                                                                                                                                                                                                                                                                                                                       |
| *(ngầm định)*                                              | `channels.imessage.dbPath`                | Ghi đè Messages.app `chat.db` tùy chọn; tự động phát hiện khi bỏ qua.                                                                                                                                                                                                                                                                                                                                                                      |
| *(ngầm định)*                                              | `channels.imessage.remoteHost`            | `host` hoặc `user@host` — chỉ cần khi `cliPath` là script bao bọc SSH và bạn muốn lấy tệp đính kèm bằng SCP.                                                                                                                                                                                                                                                                                                                               |
| `channels.bluebubbles.dmPolicy`                            | `channels.imessage.dmPolicy`              | Cùng các giá trị (`pairing` / `allowlist` / `open` / `disabled`).                                                                                                                                                                                                                                                                                                                                                                          |
| `channels.bluebubbles.allowFrom`                           | `channels.imessage.allowFrom`             | Phê duyệt ghép nối được chuyển tiếp theo handle, không theo token.                                                                                                                                                                                                                                                                                                                                                                         |
| `channels.bluebubbles.groupPolicy`                         | `channels.imessage.groupPolicy`           | Cùng các giá trị (`allowlist` / `open` / `disabled`).                                                                                                                                                                                                                                                                                                                                                                                      |
| `channels.bluebubbles.groupAllowFrom`                      | `channels.imessage.groupAllowFrom`        | Giống nhau.                                                                                                                                                                                                                                                                                                                                                                                                                                |
| `channels.bluebubbles.groups`                              | `channels.imessage.groups`                | **Sao chép nguyên văn phần này, bao gồm mọi mục ký tự đại diện `groups: { "*": { ... } }`.** `requireMention`, `tools`, `toolsBySender` theo từng nhóm được chuyển tiếp. Với `groupPolicy: "allowlist"`, khối `groups` trống hoặc thiếu sẽ âm thầm loại bỏ mọi tin nhắn nhóm — xem "Bẫy sổ đăng ký nhóm" bên dưới.                                                                                                                         |
| `channels.bluebubbles.sendReadReceipts`                    | `channels.imessage.sendReadReceipts`      | Mặc định `true`. Với Plugin tích hợp sẵn, mục này chỉ kích hoạt khi phép thăm dò API riêng tư đang hoạt động.                                                                                                                                                                                                                                                                                                                              |
| `channels.bluebubbles.includeAttachments`                  | `channels.imessage.includeAttachments`    | Cùng hình dạng, **cũng tắt theo mặc định**. Nếu bạn đã cho tệp đính kèm chạy trên BlueBubbles, bạn phải đặt lại rõ ràng mục này trên khối iMessage — nó không được chuyển tiếp ngầm định, và ảnh/phương tiện đến sẽ bị âm thầm loại bỏ mà không có dòng log `Inbound message` cho đến khi bạn làm vậy.                                                                                                                                     |
| `channels.bluebubbles.attachmentRoots`                     | `channels.imessage.attachmentRoots`       | Các gốc cục bộ; cùng quy tắc ký tự đại diện.                                                                                                                                                                                                                                                                                                                                                                                               |
| *(Không áp dụng)*                                          | `channels.imessage.remoteAttachmentRoots` | Chỉ dùng khi `remoteHost` được đặt để lấy bằng SCP.                                                                                                                                                                                                                                                                                                                                                                                        |
| `channels.bluebubbles.mediaMaxMb`                          | `channels.imessage.mediaMaxMb`            | Mặc định 16 MB trên iMessage (mặc định của BlueBubbles là 8 MB). Đặt rõ ràng nếu bạn muốn giữ giới hạn thấp hơn.                                                                                                                                                                                                                                                                                                                           |
| `channels.bluebubbles.textChunkLimit`                      | `channels.imessage.textChunkLimit`        | Mặc định 4000 trên cả hai.                                                                                                                                                                                                                                                                                                                                                                                                                 |
| `channels.bluebubbles.coalesceSameSenderDms`               | `channels.imessage.coalesceSameSenderDms` | Cùng lựa chọn bật thủ công. Chỉ dành cho DM — cuộc trò chuyện nhóm giữ cách điều phối tức thì theo từng tin nhắn trên cả hai kênh. Mở rộng debounce mặc định cho tin nhắn đến thành 7000 ms khi bật mà không có `messages.inbound.byChannel.imessage` rõ ràng hoặc `messages.inbound.debounceMs` toàn cục. Xem [tài liệu iMessage § Gộp các DM gửi tách](/vi/channels/imessage#coalescing-split-send-dms-command--url-in-one-composition). |
| `channels.bluebubbles.enrichGroupParticipantsFromContacts` | *(Không áp dụng)*                         | iMessage đã đọc tên hiển thị của người gửi từ `chat.db`.                                                                                                                                                                                                                                                                                                                                                                                   |
| `channels.bluebubbles.actions.*`                           | `channels.imessage.actions.*`             | Các công tắc theo từng hành động: `reactions`, `edit`, `unsend`, `reply`, `sendWithEffect`, `renameGroup`, `setGroupIcon`, `addParticipant`, `removeParticipant`, `leaveGroup`, `sendAttachment`.                                                                                                                                                                                                                                          |

Cấu hình nhiều tài khoản (`channels.bluebubbles.accounts.*`) chuyển đổi một-một sang `channels.imessage.accounts.*`.

## Bẫy sổ đăng ký nhóm

Plugin iMessage tích hợp sẵn chạy **hai** cổng allowlist nhóm riêng biệt nối tiếp nhau. Cả hai đều phải đạt để tin nhắn nhóm đến được agent:

1. **Allowlist người gửi / đích trò chuyện** (`channels.imessage.groupAllowFrom`) — được kiểm tra bởi `isAllowedIMessageSender`. Khớp tin nhắn đến theo handle người gửi, `chat_guid`, `chat_identifier`, hoặc `chat_id`. Cùng hình dạng với BlueBubbles.
2. **Sổ đăng ký nhóm** (`channels.imessage.groups`) — được kiểm tra bởi `resolveChannelGroupPolicy` từ `inbound-processing.ts:199`. Với `groupPolicy: "allowlist"`, cổng này yêu cầu một trong hai:
   * mục ký tự đại diện `groups: { "*": { ... } }` (đặt `allowAll = true`), hoặc
   * mục rõ ràng theo từng `chat_id` trong `groups`.

Nếu cổng 1 đạt nhưng cổng 2 không đạt, tin nhắn sẽ bị loại bỏ. Plugin phát ra hai tín hiệu cấp `warn` để việc này không còn im lặng ở cấp log mặc định:

* Một `warn` một lần khi khởi động cho mỗi tài khoản khi `groupPolicy: "allowlist"` được đặt nhưng `channels.imessage.groups` trống (không có ký tự đại diện `"*"`, không có mục theo từng `chat_id`) — kích hoạt trước khi có bất kỳ tin nhắn nào đến.
* Một `warn` một lần cho mỗi `chat_id` vào lần đầu một nhóm cụ thể bị loại bỏ lúc chạy, nêu tên chat\_id và khóa chính xác cần thêm vào `groups` để cho phép nhóm đó.

DM tiếp tục hoạt động vì chúng đi theo một đường dẫn mã khác.

Đây là chế độ lỗi phổ biến nhất khi di chuyển từ BlueBubbles → iMessage đi kèm: người vận hành sao chép `groupAllowFrom` và `groupPolicy` nhưng bỏ qua khối `groups`, vì `groups: { "*": { "requireMention": true } }` của BlueBubbles trông giống một thiết lập nhắc tên không liên quan. Thực ra nó là phần thiết yếu cho cổng registry.

Cấu hình tối thiểu để giữ tin nhắn nhóm tiếp tục chạy sau `groupPolicy: "allowlist"`:

```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  channels: {
    imessage: {
      groupPolicy: "allowlist",
      groupAllowFrom: ["+15555550123", "chat_guid:any;-;..."],
      groups: {
        "*": { requireMention: true },
      },
    },
  },
}
```

`requireMention: true` dưới `*` là vô hại khi không cấu hình mẫu nhắc tên: runtime đặt `canDetectMention = false` và bỏ qua nhánh loại bỏ do nhắc tên tại `inbound-processing.ts:512`. Khi đã cấu hình mẫu nhắc tên (`agents.list[].groupChat.mentionPatterns`), nó hoạt động đúng như mong đợi.

Nếu nhật ký gateway ghi `imessage: dropping group message from chat_id=<id>` hoặc dòng khởi động `imessage: groupPolicy="allowlist" but channels.imessage.groups is empty`, cổng 2 đang loại bỏ tin nhắn — hãy thêm khối `groups`.

## Từng bước

1. Thêm một khối iMessage bên cạnh khối BlueBubbles hiện có. Giữ nó tắt trong khi Gateway vẫn đang định tuyến lưu lượng BlueBubbles:

   ```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
   {
     channels: {
       bluebubbles: {
         enabled: true,
         // ... existing config ...
       },
       imessage: {
         enabled: false,
         cliPath: "/opt/homebrew/bin/imsg",
         dmPolicy: "pairing",
         allowFrom: ["+15555550123"], // copy from bluebubbles.allowFrom
         groupPolicy: "allowlist",
         groupAllowFrom: [], // copy from bluebubbles.groupAllowFrom
         groups: { "*": { requireMention: true } }, // copy from bluebubbles.groups — silently drops groups if missing, see "Group registry footgun" above
         actions: {
           reactions: true,
           edit: true,
           unsend: true,
           reply: true,
           sendWithEffect: true,
           sendAttachment: true,
         },
       },
     },
   }
   ```

2. **Kiểm tra trước khi lưu lượng trở nên quan trọng** — dừng Gateway, tạm thời bật khối iMessage, và xác nhận iMessage báo trạng thái khỏe mạnh từ CLI:

   ```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
   openclaw gateway stop
   # edit config: channels.imessage.enabled = true
   openclaw channels status --probe --channel imessage   # expect imessage.privateApi.available: true
   ```

   `channels status --probe` chỉ kiểm tra các tài khoản đã cấu hình và đang bật. Không khởi động lại Gateway với cả BlueBubbles và iMessage cùng bật trừ khi bạn cố ý muốn cả hai bộ giám sát kênh cùng chạy. Nếu bạn chưa chuyển đổi ngay, đặt `channels.imessage.enabled` về `false` trước khi khởi động lại Gateway. Dùng các lệnh `imsg` trực tiếp trong [Trước khi bắt đầu](#before-you-start) để xác thực Mac trước khi bật lưu lượng OpenClaw.

3. **Chuyển đổi.** Khi tài khoản iMessage đã bật báo trạng thái khỏe mạnh, xóa cấu hình BlueBubbles và giữ iMessage bật:

   ```json5 theme={"theme":{"light":"min-light","dark":"min-dark"}}
   {
     channels: {
       imessage: { enabled: true /* ... */ },
     },
   }
   ```

   Khởi động lại gateway. Lưu lượng iMessage vào giờ sẽ đi qua Plugin đi kèm.

4. **Xác minh DM.** Gửi cho agent một tin nhắn trực tiếp; xác nhận phản hồi được gửi đến.

5. **Xác minh nhóm riêng.** DM và nhóm đi qua các đường dẫn mã khác nhau — DM thành công không chứng minh rằng nhóm đang được định tuyến. Gửi cho agent một tin nhắn trong cuộc trò chuyện nhóm đã ghép đôi và xác nhận phản hồi được gửi đến. Nếu nhóm im lặng (không có phản hồi của agent, không có lỗi), kiểm tra nhật ký gateway để tìm `imessage: dropping group message from chat_id=<id>` hoặc dòng khởi động `imessage: groupPolicy="allowlist" but channels.imessage.groups is empty` — cả hai đều xuất hiện ở cấp nhật ký mặc định. Nếu một trong hai xuất hiện, khối `groups` của bạn bị thiếu hoặc rỗng — xem “Bẫy registry nhóm” ở trên.

6. **Xác minh bề mặt hành động** — từ một DM đã ghép đôi, yêu cầu agent thả phản ứng, chỉnh sửa, thu hồi, trả lời, gửi ảnh, và (trong nhóm) đổi tên nhóm / thêm hoặc xóa người tham gia. Mỗi hành động phải xuất hiện nguyên bản trong Messages.app. Nếu bất kỳ hành động nào ném lỗi "iMessage `<action>` requires the imsg private API bridge", chạy lại `imsg launch` và làm mới `channels status --probe`.

7. **Xóa máy chủ và cấu hình BlueBubbles** sau khi đã xác minh DM, nhóm và hành động của iMessage. OpenClaw sẽ không dùng `channels.bluebubbles`.

## Tổng quan tương đương hành động

| Hành động                                                        | BlueBubbles cũ                     | iMessage đi kèm                                                                               |
| ---------------------------------------------------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------- |
| Gửi văn bản / dự phòng SMS                                       | ✅                                  | ✅                                                                                             |
| Gửi phương tiện (ảnh, video, tệp, thoại)                         | ✅                                  | ✅                                                                                             |
| Trả lời theo luồng (`reply_to_guid`)                             | ✅                                  | ✅ (đóng [#51892](https://github.com/openclaw/openclaw/issues/51892))                          |
| Tapback (`react`)                                                | ✅                                  | ✅                                                                                             |
| Chỉnh sửa / thu hồi (người nhận macOS 13+)                       | ✅                                  | ✅                                                                                             |
| Gửi kèm hiệu ứng màn hình                                        | ✅                                  | ✅ (đóng một phần [#9394](https://github.com/openclaw/openclaw/issues/9394))                   |
| Văn bản giàu định dạng in đậm / nghiêng / gạch chân / gạch ngang | ✅                                  | ✅ (định dạng typed-run qua attributedBody)                                                    |
| Đổi tên nhóm / đặt biểu tượng nhóm                               | ✅                                  | ✅                                                                                             |
| Thêm / xóa người tham gia, rời nhóm                              | ✅                                  | ✅                                                                                             |
| Biên nhận đã đọc và chỉ báo đang nhập                            | ✅                                  | ✅ (được chặn bởi kiểm tra API riêng tư)                                                       |
| Gộp DM cùng người gửi                                            | ✅                                  | ✅ (chỉ DM; bật tùy chọn qua `channels.imessage.coalesceSameSenderDms`)                        |
| Khôi phục tin nhắn vào sau khi khởi động lại                     | ✅ (phát lại webhook + lấy lịch sử) | ✅ (tự động: phát lại phần bỏ lỡ qua since\_rowid + khử trùng lặp; cửa sổ rộng hơn khi cục bộ) |

iMessage khôi phục các tin nhắn bị bỏ lỡ khi gateway tắt: khi khởi động, nó phát lại từ rowid đã dispatch cuối cùng qua `imsg watch.subscribe` `since_rowid` và khử trùng lặp theo GUID, trong khi hàng rào tuổi backlog cũ ngăn “bom backlog” Push-flush. Việc này chạy qua kết nối RPC `imsg`, nên cũng hoạt động với các thiết lập `cliPath` SSH từ xa; thiết lập cục bộ có cửa sổ khôi phục rộng hơn vì chúng có thể đọc `chat.db`. Xem [Khôi phục tin nhắn vào sau khi bridge hoặc gateway khởi động lại](/vi/channels/imessage#inbound-recovery-after-a-bridge-or-gateway-restart).

## Ghép đôi, phiên và liên kết ACP

* **Phê duyệt ghép đôi** được chuyển tiếp theo handle. Bạn không cần phê duyệt lại những người gửi đã biết — `channels.imessage.allowFrom` nhận diện cùng các chuỗi `+15555550123` / `user@example.com` mà BlueBubbles đã dùng.
* **Phiên** vẫn được giới hạn theo từng agent + cuộc trò chuyện. DM được gộp vào phiên chính của agent dưới mặc định `session.dmScope=main`; phiên nhóm vẫn cô lập theo từng `chat_id`. Khóa phiên khác nhau (`agent:<id>:imessage:group:<chat_id>` so với tương đương của BlueBubbles) — lịch sử hội thoại cũ dưới các khóa phiên BlueBubbles không được chuyển sang phiên iMessage.
* **Liên kết ACP** tham chiếu `match.channel: "bluebubbles"` cần được cập nhật thành `"imessage"`. Các dạng `match.peer.id` (`chat_id:`, `chat_guid:`, `chat_identifier:`, handle trần) là giống hệt nhau.

## Không có kênh rollback

Không có runtime BlueBubbles được hỗ trợ để chuyển ngược lại. Nếu xác minh iMessage thất bại, đặt `channels.imessage.enabled: false`, khởi động lại Gateway, sửa điểm chặn `imsg`, rồi thử chuyển đổi lại.

Bộ nhớ đệm phản hồi nằm trong trạng thái Plugin SQLite. `openclaw doctor --fix` nhập và lưu trữ sidecar `imessage/reply-cache.jsonl` cũ khi có.

## Liên quan

* [Gỡ bỏ BlueBubbles và đường dẫn iMessage imsg](/vi/announcements/bluebubbles-imessage) — thông báo ngắn và tóm tắt cho người vận hành.
* [iMessage](/vi/channels/imessage) — tài liệu tham chiếu đầy đủ cho kênh iMessage, bao gồm thiết lập `imsg launch` và phát hiện năng lực.
* `/channels/bluebubbles` — URL cũ chuyển hướng đến hướng dẫn di chuyển này.
* [Ghép đôi](/vi/channels/pairing) — xác thực DM và luồng ghép đôi.
* [Định tuyến kênh](/vi/channels/channel-routing) — cách gateway chọn kênh cho phản hồi đi.
