@openclaw/feishu chính thức: tin nhắn trực tiếp với bot, trò chuyện nhóm, phản hồi thẻ dạng luồng và các công cụ tài liệu/wiki/ổ đĩa/Bitable của Feishu.
Trạng thái: sẵn sàng cho môi trường production đối với tin nhắn trực tiếp với bot + trò chuyện nhóm. WebSocket là phương thức truyền sự kiện mặc định (không cần URL công khai); chế độ webhook là tùy chọn.
Bắt đầu nhanh
Yêu cầu OpenClaw 2026.5.29 trở lên. Chạy
openclaw --version để kiểm tra. Nâng cấp bằng openclaw update.1
Chạy trình hướng dẫn thiết lập kênh
@openclaw/feishu nếu chưa có, sau đó hướng dẫn thiết lập:- Thiết lập thủ công: dán App ID và App Secret từ Feishu Open Platform (
https://open.feishu.cn) hoặc Lark Developer (https://open.larksuite.com). - Thiết lập bằng mã QR: quét mã QR trong ứng dụng Feishu để tự động tạo bot. Luồng này giới hạn tin nhắn trực tiếp ở tài khoản của chính bạn (
dmPolicy: "allowlist"vớiopen_idcủa bạn).
2
Sau khi hoàn tất thiết lập, hãy khởi động lại Gateway để áp dụng các thay đổi
Độ bền của dữ liệu gửi đến
OpenClaw đưa bền vững các phong bìim.message.receive_v1 và drive.notice.comment_add_v1 đã xác thực vào hàng đợi trước khi chuyển tới tác tử. Các sự kiện đang chờ hoặc có thể thử lại vẫn tồn tại sau khi Gateway khởi động lại, tiếp tục được tuần tự hóa theo từng cuộc trò chuyện hoặc tài liệu và sử dụng ID sự kiện của Feishu để ngăn các mục trùng lặp trong hàng đợi khi bản ghi hoàn tất đang hoạt động hoặc được giữ lại vẫn còn tồn tại.
Nếu không thể lưu bền vững một sự kiện WebSocket sau số lần thử lại có giới hạn, OpenClaw sẽ đóng socket đó và buộc thiết lập một kết nối mới đã xác thực thay vì tiếp tục sau một lượt chưa được cam kết. Các loại sự kiện Feishu khác, bao gồm phản ứng và lời mời họp VC, sử dụng đường dẫn sự kiện thông thường và không nhận được bảo đảm về hàng đợi bền vững này.
Kiểm soát truy cập
Tin nhắn trực tiếp
Cấu hìnhchannels.feishu.dmPolicy (mặc định: pairing) để kiểm soát ai có thể nhắn tin trực tiếp cho bot:
Phê duyệt yêu cầu ghép nối:
Trò chuyện nhóm
Chính sách nhóm (channels.feishu.groupPolicy, mặc định: allowlist):
Yêu cầu đề cập (
channels.feishu.requireMention):
- Mặc định: bắt buộc @mention, ngoại trừ khi chính sách nhóm có hiệu lực là
"open"; khi đó giá trị mặc định làfalseđể các tin nhắn không thể chứa nội dung đề cập (ví dụ: hình ảnh) vẫn đến được tác tử. - Đặt rõ ràng
truehoặcfalseđể ghi đè; ghi đè theo từng nhóm:channels.feishu.groups.<chat_id>.requireMention. @allvà@_allchỉ dành cho phát sóng không được xem là nội dung đề cập bot. Tin nhắn đề cập trực tiếp cả@allvà bot vẫn được tính là đề cập bot.
Ví dụ cấu hình nhóm
Cho phép tất cả nhóm, không yêu cầu @mention
Cho phép tất cả nhóm, vẫn yêu cầu @mention
Chỉ cho phép các nhóm cụ thể
allowlist, bạn cũng có thể cho phép một nhóm bằng cách thêm mục groups.<chat_id> rõ ràng. Các mục rõ ràng không ghi đè groupPolicy: "disabled". Giá trị mặc định dùng ký tự đại diện trong groups.* cấu hình các nhóm khớp, nhưng bản thân chúng không cho phép các nhóm.
Hạn chế người gửi trong một nhóm
channels.feishu.groupSenderAllowFrom đặt cùng một danh sách người gửi được phép cho tất cả nhóm; allowFrom theo từng nhóm được ưu tiên.
Tin nhắn do bot tạo
Theo mặc định, Feishu bỏ qua tin nhắn do các bot khác tạo. Để cho phép các cuộc trò chuyện nhóm giữa các bot, hãy cấp cho ứng dụng các phạm viim:message.group_at_msg.include_bot:readonly và im:message:readonly, sau đó đặt allowBots:
channels.defaults.botLoopProtection dùng chung.
Lấy ID nhóm/người dùng
ID nhóm (chat_id, định dạng: oc_xxx)
Mở nhóm trong Feishu/Lark, nhấp vào biểu tượng trình đơn ở góc trên bên phải rồi đi tới Settings. ID nhóm (chat_id) được liệt kê trên trang cài đặt.

ID người dùng (open_id, định dạng: ou_xxx)
Khởi động Gateway, gửi tin nhắn trực tiếp cho bot, sau đó kiểm tra nhật ký:
open_id trong đầu ra nhật ký. Bạn cũng có thể kiểm tra các yêu cầu ghép nối đang chờ:
Các lệnh thường dùng
Feishu/Lark không hỗ trợ trình đơn lệnh dấu gạch chéo gốc, vì vậy hãy gửi các lệnh này dưới dạng tin nhắn văn bản thuần túy.
Khắc phục sự cố
Bot không phản hồi trong trò chuyện nhóm
- Đảm bảo bot đã được thêm vào nhóm
- Đảm bảo bạn @mention bot (bắt buộc theo mặc định)
- Xác minh
groupPolicykhông phải là"disabled" - Kiểm tra nhật ký:
openclaw logs --follow
Bot không nhận được tin nhắn
- Đảm bảo bot đã được phát hành và phê duyệt trong Feishu Open Platform / Lark Developer
- Đảm bảo đăng ký sự kiện bao gồm
im.message.receive_v1 - Để tự động tham gia lời mời họp, cũng hãy đăng ký
vc.bot.meeting_invited_v1 - Đảm bảo đã chọn persistent connection (WebSocket)
- Đảm bảo đã cấp tất cả các phạm vi quyền cần thiết
- Đảm bảo Gateway đang chạy:
openclaw gateway status - Kiểm tra nhật ký:
openclaw logs --follow
vc.bot.meeting_invited_v1 chỉ phân phối sự kiện. Tính năng tự động tham gia
bị tắt theo mặc định. Để bật tính năng này trên toàn cục:
vc:meeting.bot.join:write. Ví dụ: Skills tác tử VC
lark-cli chính thức
cung cấp vc +meeting-join.
Thiết lập bằng mã QR không phản ứng trong ứng dụng Feishu trên thiết bị di động
- Chạy lại quá trình thiết lập:
openclaw channels login --channel feishu - Chọn thiết lập thủ công
- Trong Feishu Open Platform, tạo ứng dụng tự xây dựng rồi sao chép App ID và App Secret của ứng dụng
- Dán các thông tin xác thực đó vào trình hướng dẫn thiết lập
App Secret bị rò rỉ
- Đặt lại App Secret trong Feishu Open Platform / Lark Developer
- Cập nhật giá trị trong cấu hình của bạn
- Khởi động lại Gateway:
openclaw gateway restart
Cấu hình nâng cao
Nhiều tài khoản
defaultAccount kiểm soát tài khoản nào được sử dụng khi các API gửi đi không chỉ định accountId. Các mục tài khoản kế thừa thiết lập cấp cao nhất; hầu hết các khóa cấp cao nhất có thể được ghi đè theo từng tài khoản.
accounts.<id>.tts sử dụng cùng cấu trúc với messages.tts và được hợp nhất sâu lên cấu hình TTS toàn cục, vì vậy các thiết lập Feishu nhiều bot có thể giữ thông tin xác thực nhà cung cấp dùng chung trên toàn cục, đồng thời chỉ ghi đè giọng nói, mô hình, tính cách hoặc chế độ tự động theo từng tài khoản.
Giới hạn tin nhắn
textChunkLimit- kích thước đoạn văn bản gửi đi (mặc định:4000ký tự)streaming.chunkMode-"length"(mặc định) chia tại giới hạn;"newline"ưu tiên ranh giới dòng mớimediaMaxMb- giới hạn tải lên/tải xuống nội dung đa phương tiện (mặc định:30MB)
Truyền phát
Feishu/Lark hỗ trợ phản hồi dạng luồng thông qua thẻ tương tác (API truyền phát Card Kit). Khi được bật, bot cập nhật thẻ theo thời gian thực trong lúc tạo văn bản.streaming.mode: "off" để gửi toàn bộ phản hồi trong một tin nhắn; renderMode: "raw" (văn bản thuần túy thay vì thẻ) cũng vô hiệu hóa thẻ truyền phát trực tiếp. streaming.block.enabled mặc định bị tắt; chỉ bật tùy chọn này khi bạn muốn các khối của trợ lý đã hoàn tất được gửi đi trước phản hồi cuối cùng. Giá trị boolean cũ streaming và các khóa phẳng blockStreaming / blockStreamingCoalesce / chunkMode được di chuyển sang cấu trúc lồng nhau này thông qua openclaw doctor --fix.
Tối ưu hóa hạn mức
Giảm số lượng lệnh gọi API Feishu/Lark bằng hai cờ tùy chọn:typingIndicator(mặc địnhtrue): đặtfalseđể bỏ qua các lệnh gọi phản ứng đang nhậpresolveSenderNames(mặc địnhtrue): đặtfalseđể bỏ qua việc tra cứu hồ sơ người gửi
Phạm vi phiên nhóm và luồng chủ đề
channels.feishu.groupSessionScope (cấp cao nhất, theo tài khoản hoặc theo nhóm) kiểm soát cách ánh xạ tin nhắn nhóm tới các phiên tác tử:
Đối với các phạm vi chủ đề, nhóm chủ đề gốc của Feishu/Lark sử dụng sự kiện
thread_id (omt_*) làm khóa phiên chủ đề chuẩn. Nếu sự kiện bắt đầu chủ đề gốc không có thread_id, OpenClaw sẽ lấy thông tin này từ Feishu trước khi định tuyến lượt tương tác. Các phản hồi nhóm thông thường được OpenClaw chuyển thành luồng vẫn tiếp tục sử dụng ID tin nhắn gốc của phản hồi (om_*) để lượt đầu tiên và các lượt tiếp theo nằm trong cùng một phiên.
Đặt replyInThread: "enabled" (cấp cao nhất hoặc theo nhóm) để phản hồi của bot tạo hoặc tiếp tục một luồng chủ đề Feishu thay vì phản hồi trực tiếp trong dòng. topicSessionMode là phiên bản tiền nhiệm đã lỗi thời của groupSessionScope; ưu tiên groupSessionScope.
Công cụ không gian làm việc Feishu
Plugin cung cấp các công cụ tác tử dành cho tài liệu, cuộc trò chuyện, cơ sở tri thức, bộ nhớ đám mây, quyền và Bitable của Feishu, cùng với các Skills tương ứng (feishu-doc, feishu-drive, feishu-perm, feishu-wiki). Các nhóm công cụ được kiểm soát bằng channels.feishu.tools:
tools.base là bí danh của tools.bitable; giá trị bitable được chỉ định rõ ràng sẽ được ưu tiên khi cả hai đều được đặt. Các cổng kiểm soát theo tài khoản nằm trong accounts.<id>.tools.
Cấp drive:drive.metadata:readonly để tra cứu trực tiếp feishu_drive info bên ngoài thư mục
gốc, trừ khi ứng dụng đã có đầy đủ phạm vi drive:drive. Nếu không có một trong hai phạm vi, info
vẫn duy trì khả năng tra cứu thư mục gốc cũ thông qua drive:drive:readonly.
Phiên ACP
Feishu/Lark hỗ trợ ACP cho tin nhắn trực tiếp và tin nhắn trong luồng nhóm. ACP trên Feishu/Lark được điều khiển bằng lệnh văn bản — không có menu lệnh gạch chéo gốc, vì vậy hãy sử dụng trực tiếp các tin nhắn/acp ... trong cuộc trò chuyện.
Liên kết ACP lâu dài
Khởi tạo ACP từ cuộc trò chuyện
Trong tin nhắn trực tiếp hoặc luồng Feishu/Lark:--thread here hoạt động với tin nhắn trực tiếp và tin nhắn trong luồng Feishu/Lark. Các tin nhắn tiếp theo trong cuộc trò chuyện đã liên kết được định tuyến trực tiếp tới phiên ACP đó.
Định tuyến đa tác tử
Sử dụngbindings để định tuyến tin nhắn trực tiếp hoặc nhóm Feishu/Lark tới các tác tử khác nhau.
match.channel:"feishu"match.peer.kind:"direct"(tin nhắn trực tiếp) hoặc"group"(trò chuyện nhóm)match.peer.id: Open ID của người dùng (ou_xxx) hoặc ID nhóm (oc_xxx)
Cô lập tác tử theo người dùng (Tạo tác tử động)
BậtdynamicAgentCreation để tự động tạo các phiên bản tác tử được cô lập cho từng người dùng nhắn tin trực tiếp. Mỗi người dùng có riêng:
- Thư mục không gian làm việc độc lập
USER.md/SOUL.md/MEMORY.mdriêng biệt- Lịch sử trò chuyện riêng tư
- Skills và trạng thái được cô lập
Các liên kết động bao gồm
accountId Feishu đã chuẩn hóa, nhờ đó tài khoản mặc định và tài khoản có tên sẽ định tuyến từng người gửi tới đúng tác tử động.Nếu một tài khoản có tên đã tạo tác tử động không có phạm vi trên một bản phát hành cũ, tác tử cũ đó vẫn được tính vào maxAgents. Hãy xác nhận rằng tài khoản mặc định không sử dụng tác tử đó trước khi xóa, hoặc tạm thời tăng maxAgents; OpenClaw không thể suy luận an toàn tài khoản nào sở hữu trạng thái cũ không rõ ràng.Thiết lập nhanh
Cách hoạt động
Khi một người dùng mới gửi tin nhắn trực tiếp đầu tiên:- Kênh tạo một
agentIdduy nhất:feishu-{user_open_id}cho tài khoản mặc định hoặc một bản tóm lược danh tính có giới hạn với tiền tố tài khoản cho tài khoản có tên - Tạo không gian làm việc mới tại đường dẫn
workspaceTemplate - Đăng ký tác tử và tạo liên kết cho người dùng này
- Trình trợ giúp không gian làm việc bảo đảm các tệp khởi tạo (
AGENTS.md,SOUL.md,USER.md, v.v.) tồn tại trong lần truy cập đầu tiên - Định tuyến mọi tin nhắn trong tương lai từ người dùng này tới tác tử chuyên dụng của họ
Tùy chọn cấu hình
Các biến mẫu:
{agentId}- ID tác tử được tạo (ví dụ:feishu-ou_xxxxxxhoặcfeishu-support-<identity_digest>){userId}- open_id Feishu của người gửi (ví dụ:ou_xxxxxx)
Phạm vi phiên
session.dmScope kiểm soát cách ánh xạ tin nhắn trực tiếp tới các phiên tác tử. Đây là cài đặt toàn cục ảnh hưởng đến tất cả các kênh.
Đánh đổi: Việc sử dụng
"main" cho phép tự động tải tệp khởi tạo (USER.md, SOUL.md, MEMORY.md), nhưng đồng nghĩa mọi tin nhắn trực tiếp trên tất cả các kênh đều dùng chung một mẫu khóa phiên. Đối với bot công khai nhiều người dùng, khi khả năng cô lập quan trọng hơn việc tự động tải tệp khởi tạo, hãy cân nhắc "per-channel-peer" và quản lý thủ công các tệp khởi tạo.
Sử dụng
"per-account-channel-peer" khi các tài khoản Feishu có tên cần duy trì các phiên riêng biệt cho cùng một người gửi. Các liên kết động bảo toàn phạm vi tài khoản.Triển khai nhiều người dùng điển hình
Xác minh
Kiểm tra nhật ký Gateway để xác nhận tính năng tạo động đang hoạt động:Ghi chú
- Cách ly workspace: Mỗi người dùng có thư mục workspace và phiên bản agent riêng. Người dùng không thể xem lịch sử hội thoại hoặc tệp của nhau trong luồng nhắn tin thông thường.
- Ranh giới bảo mật: Đây là cơ chế cách ly ngữ cảnh nhắn tin, không phải ranh giới bảo mật chống lại các bên thuê chung có chủ đích thù địch. Tiến trình agent và môi trường máy chủ được dùng chung.
- Phải duy trì bật tính năng ghi cấu hình: Việc tạo agent động ghi các agent và liên kết vào cấu hình; thao tác này bị bỏ qua khi
channels.feishu.configWriteslàfalse(mặc định: bật). bindingsnên để trống: Các agent động tự động đăng ký liên kết riêng- Lộ trình nâng cấp: Các liên kết thủ công hiện có tiếp tục hoạt động cùng với các agent động
session.dmScopecó phạm vi toàn cục: Điều này ảnh hưởng đến tất cả các kênh, không chỉ Feishu
Tham chiếu cấu hình
Cấu hình đầy đủ: Cấu hình GatewayCác loại tin nhắn được hỗ trợ
Nhận
- ✅ Văn bản
- ✅ Văn bản đa dạng thức (bài đăng)
- ✅ Hình ảnh
- ✅ Tệp
- ✅ Âm thanh
- ✅ Video/phương tiện
- ✅ Nhãn dán
file_key thô. Khi tools.media.audio được cấu hình, OpenClaw
tải tài nguyên ghi chú thoại xuống và chạy chức năng chuyển âm thanh thành văn bản dùng chung trước lượt
agent, để agent nhận được bản chép lời nội dung nói. Nếu Feishu đưa trực tiếp
văn bản chép lời vào payload âm thanh, văn bản đó sẽ được sử dụng mà không cần thêm
lệnh gọi ASR. Khi không có nhà cung cấp chuyển âm thanh thành văn bản, agent vẫn nhận được
phần giữ chỗ <media:audio> cùng với tệp đính kèm đã lưu, thay vì payload tài nguyên
Feishu thô.
Gửi
- ✅ Văn bản
- ✅ Hình ảnh
- ✅ Tệp
- ✅ Âm thanh
- ✅ Video/phương tiện
- ✅ Thẻ tương tác (bao gồm cập nhật dạng streaming)
- ⚠️ Văn bản đa dạng thức (định dạng kiểu bài đăng; không hỗ trợ đầy đủ các khả năng biên soạn của Feishu/Lark)
audio và yêu cầu
nội dung đa phương tiện tải lên ở định dạng Ogg/Opus (file_type: "opus"). Nội dung đa phương tiện .opus và .ogg hiện có
được gửi trực tiếp dưới dạng âm thanh nguyên bản. MP3/WAV/M4A và các định dạng có khả năng là âm thanh khác
chỉ được chuyển mã thành Ogg/Opus 48kHz bằng ffmpeg khi phản hồi yêu cầu gửi dưới dạng giọng nói
(audioAsVoice / công cụ tin nhắn asVoice, bao gồm cả phản hồi ghi chú thoại
TTS). Các tệp đính kèm MP3 thông thường vẫn là tệp thông thường. Nếu thiếu ffmpeg hoặc
quá trình chuyển đổi thất bại, OpenClaw sẽ dùng tệp đính kèm thay thế và ghi nhật ký lý do.
Luồng và phản hồi
- ✅ Phản hồi nội tuyến
- ✅ Phản hồi trong luồng
- ✅ Phản hồi có nội dung đa phương tiện vẫn nhận biết luồng khi phản hồi một tin nhắn trong luồng
Liên quan
- Tổng quan về kênh - tất cả các kênh được hỗ trợ
- Ghép nối - luồng xác thực và ghép nối DM
- Nhóm - hành vi trò chuyện nhóm và kiểm soát bằng lượt đề cập
- Định tuyến kênh - định tuyến phiên cho tin nhắn
- Bảo mật - mô hình truy cập và gia cố bảo mật