Tích hợp Slack Bot
Nối một agent UniAI với app Slack của riêng bạn — tạo app từ manifest, cài đặt, dán bot token + app-level token, rồi @nhắc nó, DM nó, hoặc gõ /issue ngay trong Slack.
Nối bất kỳ agent nào với một bot Slack và nhóm của bạn làm việc với nó ngay trong Slack — DM cho bot, @nhắc nó trong kênh, hoặc gõ /issue để tạo một issue UniAI mà không phải mở app.
Slack dùng mô hình bring-your-own-app (BYO): admin của không gian làm việc tự tạo một app Slack, cài vào Slack workspace của mình và dán token của app vào UniAI. Mỗi agent có app Slack riêng — nên nhiều agent có thể có bot riêng, @nhắc được riêng từng bot, trong cùng một Slack workspace. (Khác với Lark, nơi việc gắn dùng luồng quét mã để cài.)
Toàn bộ thiết lập ở bên dưới, mất khoảng năm phút. Kết quả là hai token để dán vào UniAI:
- một Bot token — bắt đầu bằng
xoxb- - một App-level token — bắt đầu bằng
xapp-
Thiết lập app Slack của bạn
1. Tạo app từ manifest
- Vào https://api.slack.com/apps và bấm Create New App.
- Chọn From a manifest.
- Chọn Slack workspace để cài app vào.
- Chuyển sang tab YAML, dán manifest bên dưới, xem lại và tạo app.
display_information:
name: UniAI
features:
app_home:
home_tab_enabled: false
messages_tab_enabled: true
messages_tab_read_only_enabled: false
bot_user:
display_name: UniAI
always_online: true
slash_commands:
- command: /issue
description: Create a UniAI issue
usage_hint: "[title]"
oauth_config:
scopes:
bot:
- app_mentions:read
- channels:history
- groups:history
- im:history
- mpim:history
- chat:write
- reactions:write
- users:read
- commands
settings:
event_subscriptions:
bot_events:
- app_mention
- message.im
- message.channels
- message.groups
- message.mpim
interactivity:
is_enabled: false
org_deploy_enabled: false
socket_mode_enabled: true
token_rotation_enabled: falseManifest này cấu hình đủ mọi thứ UniAI cần, nên bạn không phải chỉnh tay gì:
| Mục | Vì sao cần |
|---|---|
app_home.messages_tab_enabled: true | Cho thành viên mở bot và DM nó. Thiếu mục này, không thể nhắn trực tiếp cho bot. |
bot_user | Tạo danh tính bot được @nhắc và đăng trả lời. |
chat:write | Đăng câu trả lời của agent trở lại Slack. |
reactions:write | Thêm cảm xúc 👀 vào tin nhắn của bạn khi agent đang làm việc, gỡ khi agent trả lời. Thiếu scope này, chỉ báo âm thầm bị bỏ qua — mọi thứ khác vẫn chạy. |
app_mentions:read + sự kiện app_mention | Nhận @nhắc trong kênh. |
im:history + message.im | Nhận DM gửi bot (mọi tin DM đều được đọc). |
channels:history / groups:history / mpim:history + các sự kiện message.* tương ứng | Nhận tin trong kênh công khai, kênh riêng và DM nhóm. Ở đó, bot chỉ hành động với tin @nhắc nó. |
users:read | Cần để UniAI xác minh (qua bots.info) rằng hai token thuộc cùng một app. |
commands | Scope bot bật slash command /issue (đi cặp với features.slash_commands). Thiếu nó, cập nhật manifest và cài lại cũng không được cấp lệnh. |
socket_mode_enabled: true | Bot kết nối ra ngoài qua Socket Mode — không cần URL công khai / request URL. |
interactivity.is_enabled: false | Lời nhắc của UniAI là liên kết thuần, không phải nút, nên không cần interactivity. |
slash_commands (/issue) | Đăng ký lệnh /issue để ai cũng tạo được issue UniAI từ ô nhắn tin. Truyền qua Socket Mode — không cần request URL. |
Không có OAuth redirect URL, vì BYO không dùng OAuth.
Muốn tên riêng trong Slack? Đổi display_information.name và features.bot_user.display_name (ví dụ thành tên agent của bạn) trước khi tạo, hoặc sửa sau ở App Home. Slack hiển thị bot theo tên hiển thị của bot, có thể khác tên app.
2. Cài app và chép Bot token
- Ở nav trái của app, mở Install App (hoặc OAuth & Permissions).
- Bấm Install to Workspace và phê duyệt.
- Chép Bot User OAuth Token — bắt đầu bằng
xoxb-. Đây là Bot token của bạn.
3. Tạo App-level token
App-level token ủy quyền cho kết nối Socket Mode. Chỉ tạo được trong console (nó không thuộc OAuth).
- Mở Basic Information → App-Level Tokens và bấm Generate Token and Scopes.
- Đặt tên tùy ý.
- Bấm Add Scope và chọn
connections:writetừ danh sách có sẵn (chọn, không gõ tay). - Bấm Generate, rồi chép token — bắt đầu bằng
xapp-. Đây là App-level token của bạn.
4. Kết nối trong UniAI
- Mở agent trong Agent → agent của bạn → tab Integrations (hoặc mục Integrations ở thanh bên trái).
- Bấm Connect Slack.
- Dán Bot token (
xoxb-) và App-level token (xapp-), rồi bấm Connect. - Agent hiện Connected to Slack. Bot giờ đang nghe qua kết nối Socket Mode của riêng nó.
Hai token phải từ cùng một app Slack, và app đó ánh xạ tới đúng một agent. Kết nối một app đã nối với agent hoặc không gian làm việc khác sẽ bị từ chối. Muốn chuyển app sang agent khác, ngắt kết nối trước; kết nối lại một agent với một app mới sẽ cập nhật thẳng bot của agent đó.
Thiết lập cho nhiều agent? Lặp lại toàn bộ luồng cho từng agent — mỗi agent có app Slack riêng và cặp token riêng, chúng hiện thành các bot tách biệt trong Slack workspace của bạn.
Tích hợp làm gì
| Vị trí | Hành vi |
|---|---|
| Agent → Integrations | Owner và admin thấy Connect Slack; nối xong nó chuyển thành huy hiệu Connected to Slack kèm nút Disconnect. |
| DM cho bot | Một thành viên nhắn thẳng cho bot. Cuộc trò chuyện thành một phiên chat UniAI với agent; mọi tin DM đều được đọc. |
| @nhắc trong kênh | Mời bot (/invite @your-bot) và @nhắc nó. Chỉ tin có nhắc mới được đọc — bot không nghe cả kênh. Mỗi thread @bot là một phiên riêng. |
Slash command /issue | Gõ /issue <mô tả> (trong kênh hoặc DM) và agent biến mô tả bằng lời thường của bạn thành một issue UniAI chỉn chu, đứng tên bạn. Bot trả lời riêng (chỉ bạn thấy) để xác nhận — bạn nhận thông báo UniAI khi issue sẵn sàng. Không cần @nhắc. |
| Trả lời | Câu trả lời của agent được đăng lại vào đúng DM hoặc thread. |
Dùng bot (thành viên)
Tin nhắn đầu tiên: liên kết tài khoản
Lần đầu bạn @nhắc hoặc DM bot, nó trả lời với lời nhắc liên kết tài khoản. Bấm liên kết, đăng nhập UniAI, và danh tính Slack của bạn được liên kết với tài khoản thành viên UniAI — nhờ đó agent có thể hành động thay bạn (ví dụ /issue tạo issue đứng tên bạn). Liên kết dùng một lần và hết hạn sau khoảng 15 phút; nhắn bot lần nữa để lấy liên kết mới.
Bạn chỉ liên kết một lần cho mỗi Slack workspace. Nếu cùng một không gian làm việc UniAI chạy nhiều bot trong một Slack workspace (mỗi agent một app), liên kết với bot đầu tiên sẽ dùng chung cho các bot còn lại: nhắn bot thứ hai tự dùng lại liên kết đó, không hỏi lại. (Chỉ cần liên kết lại với bot ở Slack workspace khác, hoặc bot nối với không gian làm việc UniAI khác.)
Chỉ thành viên của không gian làm việc dùng được bot. Nếu bạn không phải thành viên, hoặc bỏ qua bước liên kết danh tính, bot sẽ không chạy — tin nhắn của bạn bị bỏ qua (được ghi lại để kiểm toán, không kèm nội dung).
Chat và /issue
- Trong kênh — bot không tự động vào kênh. Chạy
/invite @your-botmột lần, rồi@your-bot <tin nhắn>. Mỗi câu tiếp theo phải @nhắc lại (bot chỉ đọc tin có nhắc nó). - Trong DM — mở bot từ mục Apps ở thanh bên Slack và nhắn trực tiếp; không cần nhắc.
- Tạo issue — dùng lệnh
/issue, ví dụ/issue the login redirect is broken on Safari. Mô tả bằng lời thường; agent viết tiêu đề chuẩn và mô tả có cấu trúc rồi tạo issue. Dùng được trong kênh hoặc DM (không cần @nhắc) và trả lời riêng tư để xác nhận — bạn nhận thông báo UniAI khi issue được tạo. Người dùng lần đầu nhận liên kết một lần để nối tài khoản.
Quản lý và ngắt kết nối
Quản lý toàn không gian làm việc nằm ở Cài đặt → Integrations:
- Connected bots liệt kê mọi bot trong không gian làm việc và agent mà từng bot gắn vào (mọi thành viên thấy được).
- Disconnect chỉ dành cho owner / admin. Nó làm bot ngừng nhận tin Slack và gỡ kết nối; bản ghi installation giữ lại để kiểm toán, và bạn nối lại được về sau.
Quyền
- Kết nối / ngắt cần owner hoặc admin của không gian làm việc.
- Nói chuyện với bot yêu cầu là thành viên của không gian làm việc và đã liên kết danh tính Slack. Tin nhắn của những người khác đều bị bỏ qua.
- Nội dung của tin nhắn bị bỏ qua không bao giờ được lưu — chỉ lưu lý do, để kiểm toán.
Tiếp theo
- Tích hợp chat — bộ máy kênh, phiên và ủy quyền hoạt động ra sao
- Agent · Chat · Issue