channels.<channel>.streaming.mode: "progress" và OpenClaw sẽ tạo
tin nhắn sau khi công việc thực sự bắt đầu, chỉnh sửa tin nhắn khi tác nhân đọc, lập kế hoạch, gọi
công cụ hoặc chờ phê duyệt, rồi biến tin nhắn đó thành câu trả lời cuối cùng.
Discord đã mặc định dùng
streaming.mode: "progress" khi
channels.discord.streaming chưa được đặt, vì vậy bản nháp tiến trình
xuất hiện tại đó mà không cần cấu hình. Mọi kênh khác mặc định dùng partial
hoặc off; xem Truyền phát và chia đoạn
để biết bảng giá trị mặc định đầy đủ cho từng kênh.Bắt đầu nhanh
Những gì người dùng thấy
Đối với tiến trình công cụ thô, nhãn xuất hiện sau khi tác nhân bắt đầu công việc có ý nghĩa
và tiếp tục bận trong khoảng thời gian trễ ban đầu.
Nhãn nằm ở đầu danh sách dòng tiến trình cuộn, vì vậy sẽ cuộn khỏi màn hình khi
đủ số dòng công việc cụ thể xuất hiện. Tiêu đề trạng thái chỉ hiển thị trạng thái
bằng ngôn ngữ thông thường của tác nhân, trừ khi nhãn được cấu hình rõ ràng. Các
phản hồi chỉ có văn bản thuần túy không bao giờ hiển thị bản nháp tiến trình; một dòng chỉ xuất hiện cho
các bản cập nhật công việc thực tế, ví dụ
🛠️ Bash: run tests, 🔎 Web Search: for "discord edit message",
hoặc ✍️ Write: to /tmp/file.
Câu trả lời cuối cùng thay thế bản nháp tại chỗ khi kênh có thể thực hiện việc đó
một cách an toàn; nếu không, OpenClaw gửi câu trả lời cuối cùng qua cơ chế gửi thông thường và
dọn dẹp hoặc ngừng cập nhật bản nháp (xem Hoàn tất).
Chọn chế độ
channels.<channel>.streaming.mode kiểm soát hành vi hiển thị trong khi đang xử lý:
Chọn
progress khi người dùng quan tâm đến “đang có chuyện gì xảy ra” hơn là theo dõi
văn bản câu trả lời được truyền từng token; chọn partial khi chính văn bản câu trả lời là
tín hiệu tiến trình; chọn block cho các đoạn xem trước lớn hơn. Trên Discord và
Telegram, streaming.mode: "block" vẫn là truyền phát bản xem trước, không phải
cơ chế gửi phản hồi theo khối thông thường — hãy dùng streaming.block.enabled cho trường hợp đó.
Cấu hình nhãn
Nhãn tiến trình nằm trongchannels.<channel>.streaming.progress. Nhãn
dòng công cụ thô mặc định là "auto", sử dụng nhãn tích hợp thuần túy Working.
Tiêu đề trạng thái ẩn nhãn ngầm định đó; hãy đặt
label: "auto" rõ ràng nếu bạn cũng muốn có nhãn phía trên:
label: "auto"):
Kiểm soát các dòng tiến trình
Các dòng tiến trình đến từ sự kiện lượt chạy thực tế: lúc công cụ bắt đầu, cập nhật mục, kế hoạch tác vụ, phê duyệt, đầu ra lệnh, bản tóm tắt bản vá và hoạt động tương tự của tác nhân. Chúng được bật theo mặc định (progress.toolProgress, mặc định true).
Các công cụ cũng có thể phát tiến trình có kiểu trong khi một lệnh gọi duy nhất vẫn đang chạy. Đây
là cách một thao tác tìm nạp hoặc tìm kiếm chậm cập nhật bản nháp hiển thị trước khi công cụ
trả về kết quả cuối cùng. Bản cập nhật tiến trình là kết quả công cụ một phần với
nội dung mô hình trống và siêu dữ liệu kênh công khai rõ ràng:
progress.text trong giao diện người dùng tiến trình của kênh. Kết quả
công cụ thông thường vẫn đến sau dưới dạng content/details và là phần duy nhất
được trả về cho mô hình.
Khi thêm tiến trình vào một công cụ, hãy phát một thông báo ngắn, chung chung và trì hoãn thông báo đó
cho đến khi thao tác đã chờ đủ lâu để thông báo trở nên hữu ích. web_fetch
thực hiện chính xác việc này với độ trễ 5 giây:
Chế độ chi tiết
OpenClaw sử dụng cùng một bộ định dạng cho bản nháp tiến trình và/verbose:
"explain" là giá trị mặc định và giữ cho bản nháp ổn định bằng các nhãn ngắn gọn.
"raw" nối thêm lệnh cơ sở khi có, hữu ích trong khi
gỡ lỗi nhưng gây nhiễu hơn trong cuộc trò chuyện. Ví dụ, một lệnh gọi node --check /tmp/app.js
được hiển thị khác nhau tùy theo chế độ:
Văn bản lệnh/exec
streaming.progress.commandText (mặc định "raw") kiểm soát lượng chi tiết lệnh
hiển thị bên cạnh các dòng tiến trình exec/bash, độc lập với chế độ chi tiết
ở trên. Đặt thành "status" để giữ dòng tiến trình công cụ hiển thị trong khi ẩn
hoàn toàn văn bản lệnh:
Luồng bình luận
streaming.progress.commentary (mặc định false) xen kẽ phần
tường thuật bình luận/mở đầu trước công cụ của mô hình (💬, ví dụ “Tôi sẽ kiểm tra… rồi
…”) với các dòng công cụ trong bản nháp. Xem
Truyền phát và chia đoạn để biết
dạng cấu hình dùng chung giữa các kênh.
Khi luồng bình luận được bật, phần mở đầu chỉ hiển thị dưới dạng các dòng 💬 xen kẽ đó;
tiêu đề trạng thái bên dưới không xuất hiện để luồng giữ nguyên
dạng đã được tài liệu hóa.
Tiêu đề trạng thái
Trên Discord và Telegram ở chế độ tiến trình, phần mở đầu trước công cụ có kiểu của mô hình trở thành tiêu đề trạng thái của bản nháp khi có sẵn. Các kênh ở chế độ tiến trình khác giữ nguyên hành vi trạng thái hiện tại. Tiêu đề được bật theo mặc định và không bỏ qua cổng hoạt động thông thường đối với các lượt ngắn; việc bậtstreaming.progress.commentary sẽ chuyển phần mở đầu sang
luồng bình luận xen kẽ.
Trên Discord, khi một mô hình tiện ích được phân giải cho tác nhân — một
utilityModel rõ ràng, hoặc giá trị mặc định
mô hình nhỏ do nhà cung cấp chính khai báo (OpenAI → gpt-5.6-luna,
Anthropic → claude-haiku-4-5) — mô hình đó cung cấp một đoạn đệm ngắn bằng ngôn ngữ thông thường
khi mô hình không phát phần mở đầu hoặc đã im lặng khoảng 20 giây
(tiêu đề của Telegram hiện chỉ dùng phần mở đầu):
streaming.progress.narration, mặc định
true) và không bao giờ dự phòng về mô hình chính: nó chỉ chạy với
utilityModel rõ ràng hoặc giá trị mặc định do nhà cung cấp khai báo cho nhà cung cấp
chính của tác nhân. Đặt utilityModel: "" để tắt hoàn toàn định tuyến tiện ích. Các dòng công cụ
tiếp tục tích lũy bên dưới và xuất hiện trở lại nếu cả hai nguồn trạng thái dừng. Các lần chỉnh sửa
bản nháp vẫn chờ cổng hoạt động thông thường và một thay đổi văn bản
thực tế, giúp tránh nhấp nháy ở các lượt nhanh và giảm số lần chỉnh sửa trong các kênh
bận rộn. Đặt narration: false để chỉ tắt đoạn đệm của mô hình tiện ích; tiêu đề
phần mở đầu của mô hình vẫn được bật:
commandText: "status", đầu vào tường thuật cũng bỏ qua văn bản lệnh exec/bash,
khớp với nội dung bản nháp hiển thị.
Giới hạn dòng
Giới hạn số dòng được giữ hiển thị (mặc định 8):Hiển thị phong phú (Slack)
Slack có thể hiển thị các dòng tiến trình dưới dạng trường Block Kit có cấu trúc thay vì văn bản thuần túy:Ẩn các dòng công cụ/tác vụ
Giữ một bản nháp tiến trình duy nhất nhưng ẩn các dòng công cụ và tác vụ:toolProgress: false, OpenClaw vẫn ẩn các thông báo tiến trình công cụ độc lập kiểu cũ
cho lượt đó — kênh vẫn yên tĩnh về mặt hiển thị cho đến khi có câu trả lời cuối cùng,
ngoại trừ nhãn nếu đã được cấu hình.
Hành vi của kênh
Các kênh không hỗ trợ chỉnh sửa an toàn sẽ quay về dùng chỉ báo đang nhập hoặc
chỉ gửi kết quả cuối cùng. Xem Phát trực tiếp và chia đoạn để biết
phân tích đầy đủ về hành vi thời gian chạy theo từng kênh.
Hoàn tất
Khi câu trả lời cuối cùng đã sẵn sàng, OpenClaw cố gắng giữ cuộc trò chuyện gọn gàng:- Ở chế độ
progresstrên Discord, câu trả lời cuối cùng được gửi dưới dạng tin nhắn mới kèm một biên nhận hoạt động-#nhỏ ở cuối (ví dụ:-# 🧠 2 thoughts · 🛠️ 5 tool calls · ⏱️ 12s), và bản nháp trạng thái sẽ bị xóa sau khi câu trả lời đó được gửi. Các kênh bận rộn không để lại nhật ký công cụ mồ côi phía trên câu trả lời; khi kết thúc bằng lỗi, bản nháp được giữ lại làm bản ghi hiển thị của lượt thất bại. - Nếu bản nháp có thể trở thành câu trả lời cuối cùng một cách an toàn (các chế độ
partial/block), OpenClaw sẽ chỉnh sửa trực tiếp bản nháp đó. - Nếu kênh sử dụng luồng tiến trình gốc, OpenClaw sẽ hoàn tất luồng đó khi phương thức truyền gốc chấp nhận văn bản cuối cùng.
- Trong các trường hợp khác (nội dung đa phương tiện, lời nhắc phê duyệt, đích trả lời tường minh, quá nhiều đoạn hoặc chỉnh sửa/gửi thất bại), OpenClaw gửi câu trả lời cuối cùng qua đường dẫn gửi thông thường của kênh thay vì ghi đè lên bản nháp.
Khắc phục sự cố
Tôi chỉ thấy câu trả lời cuối cùng. Kiểm tra xemchannels.<channel>.streaming.mode có phải là progress đối với tài khoản
hoặc kênh đã xử lý tin nhắn hay không. Một số đường dẫn nhóm hoặc trả lời trích dẫn sẽ tắt
phần xem trước bản nháp cho một lượt khi kênh không thể chỉnh sửa đúng
tin nhắn một cách an toàn.
Tôi thấy nhãn nhưng không thấy các dòng công cụ.
Kiểm tra streaming.progress.toolProgress. Nếu giá trị là false, OpenClaw vẫn giữ
hành vi dùng một bản nháp nhưng ẩn các dòng tiến trình của công cụ và tác vụ.
Tôi thấy một tin nhắn cuối cùng mới thay vì bản nháp đã được chỉnh sửa.
Đó là phương án dự phòng an toàn được mô tả trong phần Hoàn tất. Điều này có thể
xảy ra với câu trả lời có nội dung đa phương tiện, câu trả lời dài, đích trả lời tường minh, bản nháp Telegram
cũ, thiếu đích luồng Slack, tin nhắn xem trước đã bị xóa hoặc không thể
hoàn tất luồng gốc.
Tôi vẫn thấy các thông báo tiến trình độc lập.
Chế độ tiến trình ẩn các thông báo tiến trình công cụ độc lập mặc định bất cứ khi nào
có bản nháp đang hoạt động. Nếu các thông báo độc lập vẫn xuất hiện, hãy xác nhận lượt đó
thực sự đang sử dụng chế độ progress, chứ không phải streaming.mode: "off" hoặc một đường dẫn
kênh không thể tạo bản nháp cho tin nhắn đó.
Teams hoạt động khác với Discord hoặc Telegram.
Microsoft Teams sử dụng luồng gốc trong các cuộc trò chuyện cá nhân thay vì phương thức truyền xem trước
gửi rồi chỉnh sửa dùng chung, đồng thời ánh xạ streaming.mode: "block" sang hình thức
gửi theo khối của Teams vì nền tảng này không có chế độ khối xem trước bản nháp như Discord và
Telegram.