TRƯƠNG MINH KIÊN · HỆ THỐNG TRIỂN KHAI AI
← Về truongminhkien.vn
Bước 6 / 15 · Cài đặt hạ tầng

Cài Lam Khuê (trợ lý AI qua Zalo)

Y hệt trợ lý AI qua Lark ở bước trước, nhưng qua Zalo — kênh mà phần lớn khách hàng Việt Nam đang dùng hằng ngày.

Yêu cầu trước khi bắt đầu

Cách hoạt động (nói với Claude AI để nó tự dựng)

1

Cài công cụ điều khiển Zalo (đã có sẵn code thật)

Đây cũng là mã nguồn mở có sẵn — đưa thẳng link cho Claude AI:

https://github.com/minhhoasqtt-prog/zalo-agent-cli.git

Nói: "Đọc repo ở link trên rồi cài cho tôi." Cài xong, đăng nhập bằng tài khoản Zalo RIÊNG (không phải tài khoản chính bạn nhắn tin cho khách hằng ngày).

2

Lấy code cầu nối thật (cùng repo với Lam Khuê bên Lark)

Kênh Zalo dùng chung 1 repo với kênh Lark (Bước 5) — nếu đã làm bước đó thì đã có sẵn, chưa thì đưa link này cho Claude AI:

https://github.com/truongminhkien/mentor-club-ai-assistant

Nói: "Đọc repo ở link trên, phần README mục 'Kênh điều khiển thứ 2: Zalo', rồi cài cho tôi." File cầu nối là scripts/zalo-bridge.mjs (độc lập hoàn toàn với lark-voice-bridge.mjs — nhớ đệm riêng, session riêng): lắng nghe tin gửi tới tài khoản Zalo bot → tự chạy Claude Code trả lời → gửi lại qua Zalo. Cùng file .env với Lark, điền thêm ZALO_OWNER_UID (chạy node zalo-whoami.mjs để lấy) và ZALO_AGENT_JS (đường dẫn tới index.js thật của zalo-agent-cli — bắt buộc, gọi qua file .cmd bọc ngoài trên Windows bị lỗi).

3

Đặt lịch chạy 24/7 + gắn watchdog — đã có sẵn trong repo

Đăng ký node scripts/zalo-bridge.mjs chạy khi khởi động máy, cộng thêm scripts/zalo-watchdog.mjs (đã viết sẵn, canh nhịp tim quá 35 phút không cập nhật thì tự kill + khởi động lại) — độc lập hoàn toàn với watchdog bên Lark, không dùng chung tiến trình.

Điền 1 lần, dán khối lệnh cho Claude AI

Điền các ô lấy được ở Bước 1-2 phía trên, khối lệnh bên dưới tự ghép lại — copy rồi dán thẳng vào Claude AI.

Chạy node zalo-whoami.mjs, tự nhắn 1 tin từ tài khoản chính sang tài khoản "trợ lý" — nó tự in ra uidFrom.
Không bắt buộc điền tay — bridge tự khoá vào đúng đoạn chat khi nhận tin đầu tiên từ bạn.
Trỏ đúng vào file index.js thật của zalo-agent-cli vừa cài — để trống dễ gặp lỗi spawn EINVAL khi gọi qua file .cmd bọc ngoài trên Windows.
Mọi giá trị bạn gõ chỉ nằm trong trình duyệt — trang không gửi đi đâu, không lưu lại. Đóng tab là mất.

Khối lệnh — dán vào Claude AI


    

Chưa điền ô nào — khối lệnh đang ở dạng mẫu.

⚠ Bẫy đã gặp thật + cách gỡ

1. Dùng tài khoản Zalo chính của mình làm bot thì bot không nhận được tin gì cả

Zalo (kênh không chính thức) không đẩy sự kiện tin nhắn về cho chính chủ tài khoản gửi cho mình — nếu bạn tự nhắn cho chính tài khoản của mình, script sẽ không bao giờ "thấy" tin nhắn đó.

Cách gỡ: luôn dùng 1 tài khoản Zalo THỨ HAI, độc lập, chỉ để làm bot — bạn nhắn từ tài khoản chính sang tài khoản bot, script mới nhận được sự kiện.

2. Gửi tin nhắn báo lỗi "spawn EINVAL" trên Windows

Nếu script gọi thẳng file lệnh dạng .cmd (file khởi chạy kiểu Windows) mà không đi qua đúng cơ chế, Windows từ chối khởi chạy tiến trình với lỗi spawn EINVAL.

Cách gỡ: gọi thẳng chương trình chạy nền (ví dụ node.exe) kèm đường dẫn file mã nguồn thật, thay vì gọi qua file .cmd bọc ngoài.

3. Cùng lỗi "canh gác im lặng" và "tưởng sống mà đã chết" như bên Lark

Áp dụng đúng 2 cách gỡ đã ghi ở trang Bước 3: đặt thời hạn lặp rất lớn cho lịch canh gác, và đo "còn sống" bằng nhịp tim thật (chỉ cập nhật khi thực sự có sự kiện xảy ra) chứ không phải bộ đếm giờ độc lập.