Sẵn sàng cho môi trường production cho DM và kênh thông qua tích hợp ứng dụng Slack. Chế độ mặc định là Socket Mode; HTTP Request URLs cũng được hỗ trợ.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.
Ghép nối
Slack DM mặc định dùng chế độ ghép nối.
Lệnh slash
Hành vi lệnh gốc và danh mục lệnh.
Khắc phục sự cố kênh
Chẩn đoán liên kênh và cẩm nang sửa lỗi.
Chọn Socket Mode hoặc HTTP Request URLs
Cả hai cơ chế truyền đều sẵn sàng cho môi trường production và đạt tương đương tính năng cho nhắn tin, lệnh slash, App Home và tính tương tác. Hãy chọn theo mô hình triển khai, không phải theo tính năng.| Mối quan tâm | Socket Mode (mặc định) | HTTP Request URLs |
|---|---|---|
| URL Gateway công khai | Không bắt buộc | Bắt buộc (DNS, TLS, reverse proxy hoặc tunnel) |
| Mạng đi ra | WSS đi ra tới wss-primary.slack.com phải truy cập được | Không có WS đi ra; chỉ HTTPS đi vào |
| Token cần thiết | Bot token (xoxb-...) + App-Level Token (xapp-...) với connections:write | Bot token (xoxb-...) + Signing Secret |
| Laptop phát triển / sau tường lửa | Hoạt động nguyên trạng | Cần tunnel công khai (ngrok, Cloudflare Tunnel, Tailscale Funnel) hoặc Gateway staging |
| Mở rộng ngang | Một phiên Socket Mode cho mỗi ứng dụng trên mỗi host; nhiều Gateway cần các ứng dụng Slack riêng | Trình xử lý POST không trạng thái; nhiều bản sao Gateway có thể dùng chung một ứng dụng phía sau load balancer |
| Nhiều tài khoản trên một Gateway | Được hỗ trợ; mỗi tài khoản mở WS riêng | Được hỗ trợ; mỗi tài khoản cần một webhookPath duy nhất (mặc định /slack/events) để các đăng ký không xung đột |
| Cơ chế truyền lệnh slash | Được gửi qua kết nối WS; slash_commands[].url bị bỏ qua | Slack POST tới slash_commands[].url; trường này là bắt buộc để lệnh được phân phối |
| Ký request | Không dùng (xác thực là App-Level Token) | Slack ký mọi request; OpenClaw xác minh bằng signingSecret |
| Khôi phục khi rớt kết nối | Slack SDK tự động kết nối lại; tinh chỉnh cơ chế truyền pong-timeout của gateway được áp dụng | Không có kết nối lâu dài để rớt; retry là theo từng request từ Slack |
Chọn Socket Mode cho host một Gateway, laptop phát triển và mạng on-prem có thể truy cập
*.slack.com đi ra nhưng không thể nhận HTTPS đi vào.Chọn HTTP Request URLs khi chạy nhiều bản sao Gateway phía sau load balancer, khi WSS đi ra bị chặn nhưng HTTPS đi vào được cho phép, hoặc khi bạn đã kết thúc Slack webhooks tại reverse proxy.Thiết lập nhanh
- Socket Mode (mặc định)
- HTTP Request URLs
Tạo ứng dụng Slack mới
Mở api.slack.com/apps → Create New App → From a manifest → chọn workspace của bạn → dán một trong các manifest bên dưới → Next → Create.Sau khi Slack tạo ứng dụng:
Recommended khớp với toàn bộ bộ tính năng của Plugin Slack đi kèm: App Home, lệnh slash, tệp, reaction, pin, DM nhóm và quyền đọc emoji/usergroup. Chọn Minimal khi chính sách workspace hạn chế scope — tùy chọn này bao phủ DM, lịch sử kênh/nhóm, mention và lệnh slash nhưng loại bỏ tệp, reaction, pin, DM nhóm (
mpim:*), emoji:read và usergroups:read. Xem Danh sách kiểm tra manifest và scope để biết lý do cho từng scope và các tùy chọn cộng thêm như lệnh slash bổ sung.- Basic Information → App-Level Tokens → Generate Token and Scopes: thêm
connections:write, lưu, sao chép giá trịxapp-.... - Install App → Install to Workspace: sao chép Bot User OAuth Token
xoxb-....
Tinh chỉnh truyền tải Socket Mode
OpenClaw đặt thời gian chờ pong của client Slack SDK thành 15 giây theo mặc định cho Socket Mode. Chỉ ghi đè cài đặt truyền tải khi bạn cần tinh chỉnh theo workspace hoặc máy chủ:clientPingTimeout là thời gian chờ pong sau khi SDK gửi client ping; serverPingTimeout là thời gian chờ ping từ máy chủ Slack. Tin nhắn và sự kiện ứng dụng vẫn là trạng thái ứng dụng, không phải tín hiệu trạng thái hoạt động của truyền tải.
Danh sách kiểm tra manifest và scope
Manifest ứng dụng Slack cơ sở giống nhau cho Socket Mode và URL yêu cầu HTTP. Chỉ khốisettings (và url của lệnh slash) là khác.
Manifest cơ sở (mặc định Socket Mode):
settings bằng biến thể HTTP và thêm url vào mỗi lệnh slash. Cần có URL công khai:
Cài đặt manifest bổ sung
Hiển thị các tính năng khác mở rộng những mặc định ở trên. Manifest mặc định bật tab Home của Slack App Home và đăng kýapp_home_opened. Khi một thành viên workspace mở tab Home, OpenClaw xuất bản một chế độ xem Home mặc định an toàn bằng views.publish; không bao gồm payload hội thoại hoặc cấu hình riêng tư. Tab Messages vẫn được bật cho DM Slack.
Optional native slash commands
Optional native slash commands
Có thể dùng nhiều lệnh slash gốc thay cho một lệnh được cấu hình duy nhất, với các điểm cần lưu ý:
- Dùng
/agentstatusthay vì/statusvì lệnh/statusđược dành riêng. - Không thể cung cấp quá 25 lệnh slash cùng lúc.
features.slash_commands hiện có của bạn bằng một tập con của các lệnh khả dụng:- Socket Mode (default)
- HTTP Request URLs
Phạm vi quyền tác giả tùy chọn (thao tác ghi)
Phạm vi quyền tác giả tùy chọn (thao tác ghi)
Thêm phạm vi bot
chat:write.customize nếu bạn muốn tin nhắn gửi đi sử dụng danh tính tác nhân đang hoạt động (tên người dùng và biểu tượng tùy chỉnh) thay vì danh tính ứng dụng Slack mặc định.Nếu bạn dùng biểu tượng emoji, Slack yêu cầu cú pháp :emoji_name:.Phạm vi user-token tùy chọn (thao tác đọc)
Phạm vi user-token tùy chọn (thao tác đọc)
Nếu bạn cấu hình
channels.slack.userToken, các phạm vi đọc điển hình là:channels:history,groups:history,im:history,mpim:historychannels:read,groups:read,im:read,mpim:readusers:readreactions:readpins:reademoji:readsearch:read(nếu bạn phụ thuộc vào thao tác đọc tìm kiếm của Slack)
Mô hình token
botToken+appTokenlà bắt buộc cho Socket Mode.- Chế độ HTTP yêu cầu
botToken+signingSecret. botToken,appToken,signingSecretvàuserTokenchấp nhận chuỗi văn bản thuần hoặc đối tượng SecretRef.- Token trong cấu hình ghi đè phương án dự phòng env.
- Phương án dự phòng env
SLACK_BOT_TOKEN/SLACK_APP_TOKENchỉ áp dụng cho tài khoản mặc định. userToken(xoxp-...) chỉ cấu hình trong config (không có phương án dự phòng env) và mặc định là hành vi chỉ đọc (userTokenReadOnly: true).
- Việc kiểm tra tài khoản Slack theo dõi các trường
*Sourcevà*Statustheo từng thông tin xác thực (botToken,appToken,signingSecret,userToken). - Trạng thái là
available,configured_unavailable, hoặcmissing. configured_unavailablenghĩa là tài khoản được cấu hình thông qua SecretRef hoặc một nguồn bí mật không nội tuyến khác, nhưng đường dẫn lệnh/runtime hiện tại không thể phân giải giá trị thực tế.- Trong chế độ HTTP,
signingSecretStatusđược bao gồm; trong Socket Mode, cặp bắt buộc làbotTokenStatus+appTokenStatus.
Hành động và cổng kiểm soát
Hành động Slack được kiểm soát bởichannels.slack.actions.*.
Các nhóm hành động có sẵn trong công cụ Slack hiện tại:
| Nhóm | Mặc định |
|---|---|
| messages | bật |
| reactions | bật |
| pins | bật |
| memberInfo | bật |
| emojiList | bật |
send, upload-file, download-file, read, edit, delete, pin, unpin, list-pins, member-info và emoji-list. download-file chấp nhận ID tệp Slack hiển thị trong phần giữ chỗ tệp đầu vào và trả về bản xem trước ảnh đối với ảnh hoặc siêu dữ liệu tệp cục bộ đối với các loại tệp khác.
Kiểm soát truy cập và định tuyến
- Chính sách DM
- Chính sách kênh
- Lượt nhắc và người dùng kênh
channels.slack.dmPolicy kiểm soát quyền truy cập DM. channels.slack.allowFrom là danh sách cho phép DM chuẩn.pairing(mặc định)allowlistopen(yêu cầuchannels.slack.allowFrombao gồm"*")disabled
dm.enabled(mặc định là true)channels.slack.allowFromdm.allowFrom(cũ)dm.groupEnabled(DM nhóm mặc định là false)dm.groupChannels(danh sách cho phép MPIM tùy chọn)
channels.slack.accounts.default.allowFromchỉ áp dụng cho tài khoảndefault.- Tài khoản có tên kế thừa
channels.slack.allowFromkhiallowFromriêng của chúng chưa được đặt. - Tài khoản có tên không kế thừa
channels.slack.accounts.default.allowFrom.
channels.slack.dm.policy và channels.slack.dm.allowFrom cũ vẫn được đọc để tương thích. openclaw doctor --fix di chuyển chúng sang dmPolicy và allowFrom khi có thể làm vậy mà không thay đổi quyền truy cập.Ghép đôi trong DM sử dụng openclaw pairing approve slack <code>.Luồng, phiên và thẻ trả lời
- DM định tuyến dưới dạng
direct; kênh dưới dạngchannel; MPIM dưới dạnggroup. - Liên kết tuyến Slack chấp nhận ID peer thô cùng các dạng đích Slack như
channel:C12345678,user:U12345678và<@U12345678>. - Với mặc định
session.dmScope=main, DM Slack được gộp vào phiên chính của tác nhân. - Phiên kênh:
agent:<agentId>:slack:channel:<channelId>. - Trả lời luồng có thể tạo hậu tố phiên luồng (
:thread:<threadTs>) khi áp dụng. - Trong các kênh nơi OpenClaw xử lý tin nhắn cấp cao nhất mà không yêu cầu lượt nhắc rõ ràng,
replyToModekhácoffđịnh tuyến từng gốc được xử lý vàoagent:<agentId>:slack:channel:<channelId>:thread:<rootTs>để luồng Slack hiển thị ánh xạ tới một phiên OpenClaw ngay từ lượt đầu tiên. - Mặc định
channels.slack.thread.historyScopelàthread; mặc địnhthread.inheritParentlàfalse. channels.slack.thread.initialHistoryLimitkiểm soát số lượng tin nhắn luồng hiện có được lấy khi một phiên luồng mới bắt đầu (mặc định20; đặt0để tắt).channels.slack.thread.requireExplicitMention(mặc địnhfalse): khitrue, chặn lượt nhắc luồng ngầm định để bot chỉ phản hồi các lượt nhắc@botrõ ràng bên trong luồng, ngay cả khi bot đã tham gia luồng. Nếu không có tùy chọn này, các câu trả lời trong luồng mà bot đã tham gia sẽ bỏ qua cổngrequireMention.
channels.slack.replyToMode:off|first|all|batched(mặc địnhoff)channels.slack.replyToModeByChatType: theo từngdirect|group|channel- phương án dự phòng cũ cho chat trực tiếp:
channels.slack.dm.replyToMode
[[reply_to_current]][[reply_to:<id>]]
message, đặt replyBroadcast: true với action: "send" và threadId hoặc replyTo để yêu cầu Slack cũng phát trả lời luồng tới kênh cha. Điều này ánh xạ tới cờ reply_broadcast của chat.postMessage trong Slack và chỉ được hỗ trợ cho gửi văn bản hoặc Block Kit, không hỗ trợ tải lên phương tiện.
Khi một lệnh gọi công cụ message chạy bên trong luồng Slack và nhắm tới cùng kênh, OpenClaw thường kế thừa luồng Slack hiện tại theo replyToMode. Đặt topLevel: true trên action: "send" hoặc action: "upload-file" để buộc tạo tin nhắn kênh cha mới. threadId: null được chấp nhận như cùng một cách chọn không dùng cấp luồng.
replyToMode="off" tắt tất cả phân luồng trả lời trong Slack, bao gồm cả thẻ [[reply_to_*]] rõ ràng. Điều này khác với Telegram, nơi thẻ rõ ràng vẫn được tôn trọng trong chế độ "off". Luồng Slack ẩn tin nhắn khỏi kênh trong khi trả lời Telegram vẫn hiển thị nội tuyến.Phản ứng xác nhận
ackReaction gửi emoji xác nhận trong khi OpenClaw đang xử lý tin nhắn đầu vào.
Thứ tự phân giải:
channels.slack.accounts.<accountId>.ackReactionchannels.slack.ackReactionmessages.ackReaction- emoji dự phòng theo danh tính tác nhân (
agents.list[].identity.emoji, nếu không thì ”👀”)
- Slack yêu cầu shortcode (ví dụ
"eyes"). - Dùng
""để tắt phản ứng cho tài khoản Slack hoặc trên toàn cục.
Truyền trực tuyến văn bản
channels.slack.streaming kiểm soát hành vi xem trước trực tiếp:
off: tắt truyền trực tuyến bản xem trước trực tiếp.partial(mặc định): thay thế văn bản xem trước bằng đầu ra từng phần mới nhất.block: nối thêm các bản cập nhật xem trước theo từng khối.progress: hiển thị văn bản trạng thái tiến trình trong khi tạo, rồi gửi văn bản cuối cùng.streaming.preview.toolProgress: khi bản xem trước nháp đang hoạt động, định tuyến cập nhật công cụ/tiến trình vào cùng tin nhắn xem trước đã chỉnh sửa (mặc định:true). Đặtfalseđể giữ riêng các tin nhắn công cụ/tiến trình.streaming.preview.commandText/streaming.progress.commandText: đặt thànhstatusđể giữ các dòng tiến trình công cụ ngắn gọn trong khi ẩn văn bản lệnh/exec thô (mặc định:raw).
channels.slack.streaming.nativeTransport kiểm soát truyền trực tuyến văn bản gốc của Slack khi channels.slack.streaming.mode là partial (mặc định: true).
- Phải có sẵn một luồng trả lời để phát trực tuyến văn bản gốc và hiển thị trạng thái luồng trợ lý Slack. Việc chọn luồng vẫn tuân theo
replyToMode. - Gốc kênh, cuộc trò chuyện nhóm và DM cấp cao nhất vẫn có thể dùng bản xem trước nháp thông thường khi phát trực tuyến gốc không khả dụng hoặc không có luồng trả lời.
- DM Slack cấp cao nhất mặc định vẫn ở ngoài luồng, nên không hiển thị bản xem trước phát trực tuyến/trạng thái gốc kiểu luồng của Slack; thay vào đó OpenClaw đăng và chỉnh sửa bản xem trước nháp trong DM.
- Phương tiện và payload không phải văn bản quay về cơ chế gửi thông thường.
- Kết quả cuối là phương tiện/lỗi sẽ hủy các chỉnh sửa bản xem trước đang chờ; kết quả cuối dạng văn bản/khối đủ điều kiện chỉ flush khi có thể chỉnh sửa bản xem trước tại chỗ.
- Nếu phát trực tuyến thất bại giữa lúc trả lời, OpenClaw quay về cơ chế gửi thông thường cho các payload còn lại.
channels.slack.streamMode(replace | status_final | append) là bí danh runtime cũ chochannels.slack.streaming.mode.- boolean
channels.slack.streaminglà bí danh runtime cũ chochannels.slack.streaming.modevàchannels.slack.streaming.nativeTransport. channels.slack.nativeStreamingcũ là bí danh runtime chochannels.slack.streaming.nativeTransport.- Chạy
openclaw doctor --fixđể ghi lại cấu hình phát trực tuyến Slack đã lưu sang các khóa chuẩn.
Dự phòng phản ứng đang nhập
typingReaction thêm một phản ứng tạm thời vào tin nhắn Slack gửi đến trong khi OpenClaw đang xử lý câu trả lời, rồi xóa phản ứng đó khi lượt chạy kết thúc. Tính năng này hữu ích nhất bên ngoài các câu trả lời theo luồng, vốn dùng chỉ báo trạng thái mặc định “đang nhập…”.
Thứ tự phân giải:
channels.slack.accounts.<accountId>.typingReactionchannels.slack.typingReaction
- Slack yêu cầu shortcode (ví dụ
"hourglass_flowing_sand"). - Phản ứng được thực hiện theo kiểu nỗ lực tối đa và việc dọn dẹp sẽ được tự động thử sau khi đường dẫn trả lời hoặc lỗi hoàn tất.
Phương tiện, chia đoạn và gửi
Tệp đính kèm gửi đến
Tệp đính kèm gửi đến
Tệp đính kèm Slack được tải xuống từ các URL riêng tư do Slack lưu trữ (luồng yêu cầu xác thực bằng token) và được ghi vào kho phương tiện khi fetch thành công và giới hạn kích thước cho phép. Placeholder tệp bao gồm
fileId của Slack để agent có thể fetch tệp gốc bằng download-file.Các lượt tải xuống dùng timeout giới hạn cho thời gian nhàn rỗi và tổng thời gian. Nếu việc truy xuất tệp Slack bị đình trệ hoặc thất bại, OpenClaw tiếp tục xử lý tin nhắn và quay về placeholder tệp.Giới hạn kích thước gửi đến runtime mặc định là 20MB trừ khi được ghi đè bằng channels.slack.mediaMaxMb.Văn bản và tệp gửi đi
Văn bản và tệp gửi đi
- các đoạn văn bản dùng
channels.slack.textChunkLimit(mặc định 4000) channels.slack.chunkMode="newline"bật cách chia ưu tiên đoạn văn- gửi tệp dùng API upload của Slack và có thể bao gồm câu trả lời theo luồng (
thread_ts) - giới hạn phương tiện gửi đi tuân theo
channels.slack.mediaMaxMbkhi được cấu hình; nếu không, các lượt gửi qua kênh dùng mặc định theo loại MIME từ pipeline phương tiện
Đích gửi
Đích gửi
Đích tường minh được ưu tiên:
user:<id>cho DMchannel:<id>cho kênh
Lệnh và hành vi dấu gạch chéo
Lệnh dấu gạch chéo xuất hiện trong Slack dưới dạng một lệnh đã cấu hình hoặc nhiều lệnh gốc. Cấu hìnhchannels.slack.slashCommand để thay đổi mặc định của lệnh:
enabled: falsename: "openclaw"sessionPrefix: "slack:slash"ephemeral: true
channels.slack.commands.native: true hoặc commands.native: true trong cấu hình toàn cục.
- Chế độ tự động của lệnh gốc được tắt cho Slack, nên
commands.native: "auto"không bật lệnh gốc Slack.
- tối đa 5 tùy chọn: khối nút
- 6-100 tùy chọn: menu chọn tĩnh
- hơn 100 tùy chọn: chọn ngoài với lọc tùy chọn bất đồng bộ khi có trình xử lý tùy chọn tương tác
- vượt quá giới hạn Slack: giá trị tùy chọn đã mã hóa quay về nút
agent:<agentId>:slack:slash:<userId> và vẫn định tuyến các lượt thực thi lệnh tới phiên hội thoại đích bằng CommandTargetSessionKey.
Trả lời tương tác
Slack có thể hiển thị các điều khiển trả lời tương tác do agent tạo, nhưng tính năng này bị tắt theo mặc định. Bật tính năng này trên toàn cục:[[slack_buttons: Approve:approve, Reject:reject]][[slack_select: Choose a target | Canary:canary, Production:production]]
- Đây là UI dành riêng cho Slack. Các kênh khác không chuyển đổi chỉ thị Slack Block Kit thành hệ thống nút riêng của chúng.
- Các giá trị callback tương tác là token mờ do OpenClaw tạo, không phải giá trị thô do agent viết.
- Nếu các khối tương tác được tạo vượt quá giới hạn Slack Block Kit, OpenClaw sẽ quay về trả lời văn bản ban đầu thay vì gửi payload blocks không hợp lệ.
Phê duyệt exec trong Slack
Slack có thể hoạt động như một ứng dụng khách phê duyệt gốc với các nút và tương tác, thay vì quay về Web UI hoặc terminal.- Phê duyệt exec dùng
channels.slack.execApprovals.*cho định tuyến DM/kênh gốc. - Phê duyệt Plugin vẫn có thể được xử lý qua cùng bề mặt nút gốc của Slack khi yêu cầu đã đến Slack và loại approval id là
plugin:. - Ủy quyền người phê duyệt vẫn được thực thi: chỉ người dùng được xác định là người phê duyệt mới có thể phê duyệt hoặc từ chối yêu cầu qua Slack.
interactivity được bật trong cài đặt ứng dụng Slack của bạn, lời nhắc phê duyệt hiển thị dưới dạng nút Block Kit trực tiếp trong cuộc trò chuyện.
Khi các nút đó xuất hiện, chúng là UX phê duyệt chính; OpenClaw
chỉ nên đưa vào lệnh /approve thủ công khi kết quả công cụ cho biết phê duyệt
qua chat không khả dụng hoặc phê duyệt thủ công là cách duy nhất.
Đường dẫn cấu hình:
channels.slack.execApprovals.enabledchannels.slack.execApprovals.approvers(tùy chọn; quay vềcommands.ownerAllowFromkhi có thể)channels.slack.execApprovals.target(dm|channel|both, mặc định:dm)agentFilter,sessionFilter
enabled chưa được đặt hoặc là "auto" và có ít nhất một
người phê duyệt được phân giải. Đặt enabled: false để tắt Slack như một ứng dụng khách phê duyệt gốc một cách rõ ràng.
Đặt enabled: true để buộc bật phê duyệt gốc khi người phê duyệt được phân giải.
Hành vi mặc định khi không có cấu hình phê duyệt exec Slack rõ ràng:
approvals.exec dùng chung là riêng biệt. Chỉ dùng nó khi lời nhắc phê duyệt exec cũng phải
định tuyến tới các chat khác hoặc các đích ngoài băng tần rõ ràng. Chuyển tiếp approvals.plugin dùng chung cũng
riêng biệt; các nút gốc của Slack vẫn có thể xử lý phê duyệt Plugin khi các yêu cầu đó đã đến
Slack.
/approve trong cùng chat cũng hoạt động trong các kênh Slack và DM đã hỗ trợ lệnh. Xem Phê duyệt exec để biết mô hình chuyển tiếp phê duyệt đầy đủ.
Sự kiện và hành vi vận hành
- Chỉnh sửa/xóa tin nhắn được ánh xạ thành sự kiện hệ thống.
- Phát sóng luồng (“Also send to channel” thread replies) được xử lý như tin nhắn người dùng thông thường.
- Sự kiện thêm/xóa reaction được ánh xạ thành sự kiện hệ thống.
- Sự kiện thành viên tham gia/rời đi, kênh được tạo/đổi tên và thêm/xóa ghim được ánh xạ thành sự kiện hệ thống.
channel_id_changedcó thể di chuyển các khóa cấu hình kênh khiconfigWritesđược bật.- Siêu dữ liệu chủ đề/mục đích của kênh được xem là ngữ cảnh không đáng tin cậy và có thể được chèn vào ngữ cảnh định tuyến.
- Trình khởi tạo luồng và khởi tạo ngữ cảnh lịch sử luồng ban đầu được lọc theo allowlist người gửi đã cấu hình khi áp dụng.
- Hành động khối và tương tác modal phát ra các sự kiện hệ thống
Slack interaction: ...có cấu trúc với các trường payload phong phú:- hành động khối: giá trị đã chọn, nhãn, giá trị bộ chọn và siêu dữ liệu
workflow_* - sự kiện modal
view_submissionvàview_closedvới siêu dữ liệu kênh được định tuyến và dữ liệu nhập biểu mẫu
- hành động khối: giá trị đã chọn, nhãn, giá trị bộ chọn và siêu dữ liệu
Tham chiếu cấu hình
Tham chiếu chính: Tham chiếu cấu hình - Slack.Trường Slack tín hiệu cao
Trường Slack tín hiệu cao
- chế độ/xác thực:
mode,botToken,appToken,signingSecret,webhookPath,accounts.* - quyền truy cập DM:
dm.enabled,dmPolicy,allowFrom(cũ:dm.policy,dm.allowFrom),dm.groupEnabled,dm.groupChannels - nút chuyển tương thích:
dangerouslyAllowNameMatching(phá kính; giữ tắt trừ khi cần) - quyền truy cập kênh:
groupPolicy,channels.*,channels.*.users,channels.*.requireMention - luồng/lịch sử:
replyToMode,replyToModeByChatType,thread.*,historyLimit,dmHistoryLimit,dms.*.historyLimit - gửi:
textChunkLimit,chunkMode,mediaMaxMb,streaming,streaming.nativeTransport,streaming.preview.toolProgress - unfurls:
unfurlLinks,unfurlMediađể kiểm soát bản xem trước liên kết/media củachat.postMessage - vận hành/tính năng:
configWrites,commands.native,slashCommand.*,actions.*,userToken,userTokenReadOnly
Khắc phục sự cố
Không có trả lời trong kênh
Không có trả lời trong kênh
Kiểm tra theo thứ tự:
groupPolicy- allowlist kênh (
channels.slack.channels) — khóa phải là ID kênh (C12345678), không phải tên (#channel-name). Khóa dựa trên tên âm thầm thất bại dướigroupPolicy: "allowlist"vì định tuyến kênh mặc định ưu tiên ID. Để tìm ID: nhấp chuột phải vào kênh trong Slack → Copy link — giá trịC...ở cuối URL là ID kênh. requireMention- allowlist
userstheo từng kênh
Tin nhắn DM bị bỏ qua
Tin nhắn DM bị bỏ qua
Kiểm tra:
channels.slack.dm.enabledchannels.slack.dmPolicy(hoặc cấu hình cũchannels.slack.dm.policy)- phê duyệt ghép đôi / mục allowlist
- Sự kiện Slack Assistant DM: log chi tiết nhắc đến
drop message_changedthường có nghĩa là Slack đã gửi một sự kiện luồng Assistant đã chỉnh sửa mà không có người gửi là con người có thể khôi phục trong siêu dữ liệu tin nhắn
Socket mode không kết nối
Socket mode không kết nối
Xác thực bot + app token và việc bật Socket Mode trong cài đặt ứng dụng Slack.Nếu
openclaw channels status --probe --json hiển thị botTokenStatus hoặc
appTokenStatus: "configured_unavailable", tài khoản Slack đã được
cấu hình nhưng runtime hiện tại không thể phân giải giá trị được hỗ trợ bởi SecretRef.Chế độ HTTP không nhận sự kiện
Chế độ HTTP không nhận sự kiện
Xác thực:
- bí mật ký
- đường dẫn webhook
- URL yêu cầu của Slack (Sự kiện + Tương tác + Lệnh slash)
webhookPathduy nhất cho mỗi tài khoản HTTP
signingSecretStatus: "configured_unavailable" xuất hiện trong ảnh chụp nhanh
tài khoản, tài khoản HTTP đã được cấu hình nhưng runtime hiện tại không thể
phân giải bí mật ký dựa trên SecretRef.Lệnh native/slash không được kích hoạt
Lệnh native/slash không được kích hoạt
Xác minh bạn đã dự định dùng:
- chế độ lệnh native (
channels.slack.commands.native: true) với các lệnh slash tương ứng đã đăng ký trong Slack - hoặc chế độ một lệnh slash (
channels.slack.slashCommand.enabled: true)
commands.useAccessGroups và danh sách cho phép theo kênh/người dùng.Tham chiếu vision cho tệp đính kèm
Slack có thể đính kèm media đã tải xuống vào lượt của tác tử khi việc tải tệp Slack thành công và giới hạn dung lượng cho phép. Tệp hình ảnh có thể được chuyển qua đường dẫn hiểu media hoặc trực tiếp tới mô hình trả lời hỗ trợ vision; các tệp khác được giữ lại làm ngữ cảnh tệp có thể tải xuống thay vì được xử lý như đầu vào hình ảnh.Loại media được hỗ trợ
| Loại media | Nguồn | Hành vi hiện tại | Ghi chú |
|---|---|---|---|
| Hình ảnh JPEG / PNG / GIF / WebP | URL tệp Slack | Được tải xuống và đính kèm vào lượt để xử lý với khả năng vision | Giới hạn mỗi tệp: channels.slack.mediaMaxMb (mặc định 20 MB) |
| Tệp PDF | URL tệp Slack | Được tải xuống và hiển thị làm ngữ cảnh tệp cho các công cụ như download-file hoặc pdf | Đầu vào Slack không tự động chuyển đổi PDF thành đầu vào image-vision |
| Tệp khác | URL tệp Slack | Được tải xuống khi có thể và hiển thị làm ngữ cảnh tệp | Tệp nhị phân không được xử lý như đầu vào hình ảnh |
| Trả lời trong luồng | Tệp của tin nhắn khởi đầu luồng | Tệp của tin nhắn gốc có thể được hydrate làm ngữ cảnh khi câu trả lời không có media trực tiếp | Tin nhắn khởi đầu chỉ có tệp dùng một placeholder tệp đính kèm |
| Tin nhắn nhiều hình ảnh | Nhiều tệp Slack | Mỗi tệp được đánh giá độc lập | Quá trình xử lý Slack bị giới hạn ở tám tệp mỗi tin nhắn |
Pipeline đầu vào
Khi một tin nhắn Slack có tệp đính kèm được nhận:- OpenClaw tải tệp xuống từ URL riêng tư của Slack bằng token bot (
xoxb-...). - Tệp được ghi vào kho media khi thành công.
- Đường dẫn media đã tải xuống và loại nội dung được thêm vào ngữ cảnh đầu vào.
- Các đường dẫn mô hình/công cụ hỗ trợ hình ảnh có thể dùng tệp đính kèm hình ảnh từ ngữ cảnh đó.
- Tệp không phải hình ảnh vẫn có sẵn dưới dạng siêu dữ liệu tệp hoặc tham chiếu media cho các công cụ có thể xử lý chúng.
Kế thừa tệp đính kèm từ gốc luồng
Khi một tin nhắn đến trong một luồng (có chathread_ts):
- Nếu bản trả lời không có media trực tiếp và tin nhắn gốc đi kèm có tệp, Slack có thể hydrate các tệp gốc làm ngữ cảnh khởi đầu luồng.
- Tệp đính kèm trả lời trực tiếp được ưu tiên hơn tệp đính kèm của tin nhắn gốc.
- Một tin nhắn gốc chỉ có tệp và không có văn bản được biểu diễn bằng một placeholder tệp đính kèm để cơ chế dự phòng vẫn có thể bao gồm các tệp của nó.
Xử lý nhiều tệp đính kèm
Khi một tin nhắn Slack chứa nhiều tệp đính kèm:- Mỗi tệp đính kèm được xử lý độc lập qua pipeline media.
- Các tham chiếu media đã tải xuống được tổng hợp vào ngữ cảnh tin nhắn.
- Thứ tự xử lý theo thứ tự tệp của Slack trong payload sự kiện.
- Lỗi tải xuống của một tệp đính kèm không chặn các tệp khác.
Giới hạn dung lượng, tải xuống và mô hình
- Giới hạn dung lượng: Mặc định 20 MB mỗi tệp. Có thể cấu hình qua
channels.slack.mediaMaxMb. - Lỗi tải xuống: Các tệp mà Slack không thể phục vụ, URL hết hạn, tệp không truy cập được, tệp quá dung lượng, và phản hồi HTML xác thực/đăng nhập của Slack sẽ bị bỏ qua thay vì được báo cáo là định dạng không được hỗ trợ.
- Mô hình vision: Phân tích hình ảnh dùng mô hình trả lời đang hoạt động khi mô hình đó hỗ trợ vision, hoặc mô hình hình ảnh được cấu hình tại
agents.defaults.imageModel.
Giới hạn đã biết
| Tình huống | Hành vi hiện tại | Cách khắc phục |
|---|---|---|
| URL tệp Slack hết hạn | Tệp bị bỏ qua; không hiển thị lỗi | Tải lại tệp lên Slack |
| Chưa cấu hình mô hình vision | Tệp đính kèm hình ảnh được lưu dưới dạng tham chiếu media, nhưng không được phân tích như hình ảnh | Cấu hình agents.defaults.imageModel hoặc dùng mô hình trả lời hỗ trợ vision |
| Hình ảnh rất lớn (> 20 MB theo mặc định) | Bị bỏ qua theo giới hạn dung lượng | Tăng channels.slack.mediaMaxMb nếu Slack cho phép |
| Tệp đính kèm được chuyển tiếp/chia sẻ | Văn bản và media hình ảnh/tệp do Slack lưu trữ được xử lý theo khả năng tốt nhất | Chia sẻ lại trực tiếp trong luồng OpenClaw |
| Tệp đính kèm PDF | Được lưu làm ngữ cảnh tệp/media, không tự động định tuyến qua image vision | Dùng download-file cho siêu dữ liệu tệp hoặc công cụ pdf để phân tích PDF |
Tài liệu liên quan
- Pipeline hiểu media
- Công cụ PDF
- Epic: #51349 — Bật vision cho tệp đính kèm Slack
- Kiểm thử hồi quy: #51353
- Xác minh trực tiếp: #51354
Liên quan
Ghép nối
Ghép nối người dùng Slack với Gateway.
Nhóm
Hành vi kênh và DM nhóm.
Định tuyến kênh
Định tuyến tin nhắn đầu vào tới các tác tử.
Bảo mật
Mô hình mối đe dọa và gia cố bảo mật.
Cấu hình
Bố cục cấu hình và thứ tự ưu tiên.
Lệnh slash
Danh mục lệnh và hành vi.