OpenClaw Telegram streaming progress mode 設定教學:即時顯示「正在輸入」與處理進度

我平常會用 Telegram 遠端交辦 OpenClaw 處理一些事情。簡單的問題通常很快就能收到回答,但如果任務需要搜尋記憶、讀取文件、呼叫多個工具、執行 Bash,甚至臨時撰寫與測試腳本,等待時間就可能拉得比較長。

多等幾分鐘還好。Telegram 畫面完全沒有動靜,才會讓人開始亂猜。

OpenClaw 還在處理嗎?Agent 是不是當掉了?剛才的訊息到底有沒有成功送出?要不要再傳一次?

如果只是一般聊天,多問一次或許沒什麼。但碰到會寫入檔案、更新資料或執行自動化流程的任務,重複下指令反而可能讓同一件事跑兩次,製造更多麻煩。

OpenClaw 的 Telegram streaming progress mode,剛好能改善這段「不知道系統到底在幹嘛」的空白時間。任務開始後,Telegram 先顯示「正在輸入」(typing);進入工具處理階段後,再以同一則暫時訊息更新 WorkingBash、搜尋、讀檔或寫檔等狀態。任務完成,暫時內容清除,再送出正式的 final 回覆。

使用者不需要一直盯著 Telegram,偶爾看一眼,就知道 Agent 還在工作。


「正在輸入」和處理進度,其實是兩個功能

這裡要先分清楚兩組設定。

第一個是 Telegram typing indicator,也就是聊天畫面中的「正在輸入」。它的用途很單純:讓使用者知道 OpenClaw 已經開始處理這則訊息。不過,它不會告訴你目前正在讀檔、搜尋,還是執行 Bash。

第二個是 OpenClaw 官方文件所稱的 Progress drafts。在 Telegram 的設定裡,對應的是 streaming.mode: "progress"。它會建立一則可持續編輯的暫時訊息,顯示 Agent 目前進行到哪一類工作。

兩者搭配後,使用流程大致會是:

  1. OpenClaw 開始處理,Telegram 顯示「正在輸入」。
  2. 任務持續較久或開始呼叫工具,畫面出現 Working 與工具狀態。
  3. 任務完成,清除暫時的進度草稿,再交付正式答案。

很快完成的純文字回覆,不一定會出現 Progress draft。OpenClaw 會等任務確實進入有意義的工作狀態,才建立這則暫時訊息,所以短任務直接看到 final 是正常的。


設定指令要在哪裡執行?

這些指令不是傳給 Telegram Bot 的聊天訊息,也不是到 BotFather 裡設定。

你需要在實際安裝並執行 OpenClaw 的電腦上開啟終端機:

  • Linux:開啟 Terminal,或透過 SSH 連進主機。
  • macOS:開啟 Terminal。
  • Windows 原生安裝:使用 PowerShell 或 Windows Terminal。
  • Windows 搭配 WSL 安裝:開啟 Ubuntu/WSL 終端機,在 WSL 環境裡執行。

只要終端機可以正常執行 openclaw,目前位於哪個工作資料夾通常不重要。這些指令會修改 OpenClaw 的 active config,不會把設定寫進你當下所在的資料夾。

可以先跑下面兩個指令確認:

openclaw --version
openclaw config file

第一個指令確認 OpenClaw CLI 可以使用,第二個則會顯示目前真正生效的設定檔位置。


用 OpenClaw CLI 啟用 typing indicator 與 Progress drafts

我建議優先使用 openclaw config set,把以下指令逐行貼進終端機執行:

openclaw config set agents.defaults.typingMode instant
openclaw config set agents.defaults.typingIntervalSeconds 3

openclaw config set channels.telegram.streaming.mode progress
openclaw config set channels.telegram.streaming.progress.commandText status
openclaw config set channels.telegram.streaming.progress.label Working

前兩行負責 Telegram 的「正在輸入」提示:

  • typingMode instant:OpenClaw 的模型處理流程開始後,立即送出 typing indicator。
  • typingIntervalSeconds 3:每 3 秒刷新一次 Telegram 的 typing 狀態。

後三行負責處理進度草稿:

  • streaming.mode progress:啟用顯示工具狀態的 Progress drafts。
  • progress.commandText status:只顯示工具標籤,不顯示完整原始命令。
  • progress.label Working:把任務開始時的固定標籤設為 Working

label 並不是必填。若不設定,OpenClaw 可以自動選擇一個內建的單字標籤;如果希望每次畫面都一致,再固定使用 Working 即可。

我會建議一般使用者把 commandText 設為 status。除錯時雖然可以使用 raw 查看更多命令細節,但日常操作沒有必要讓 Telegram 顯示冗長的路徑與參數,也能降低敏感資訊出現在聊天畫面的機會。


設定實際寫進哪個檔案?

OpenClaw 預設的主要設定檔是:

~/.openclaw/openclaw.json

這裡的 ~ 是「目前執行 OpenClaw 的使用者家目錄」,所以實際路徑會依作業系統與帳號不同:

  • Linux/WSL:/home/<使用者名稱>/.openclaw/openclaw.json
  • macOS:/Users/<使用者名稱>/.openclaw/openclaw.json
  • Windows 原生環境:C:\Users\<使用者名稱>\.openclaw\openclaw.json

如果使用不同的 profile、自訂 state 位置,或設定過 OPENCLAW_CONFIG_PATH,實際檔案可能不在預設位置。因此,不要只憑網路文章猜路徑,直接執行:

openclaw config file

以它顯示的結果為準。

執行前面的 openclaw config set 後,相關內容會寫入 active config,結構大致如下。既有的 openclaw.json 還會包含模型、Gateway、其他 channel 與工具設定,下面只是本篇相關的片段:

{
  "agents": {
    "defaults": {
      "typingMode": "instant",
      "typingIntervalSeconds": 3
    }
  },
  "channels": {
    "telegram": {
      "streaming": {
        "mode": "progress",
        "progress": {
          "commandText": "status",
          "label": "Working"
        }
      }
    }
  }
}

熟悉 JSON 的人也可以直接編輯這個檔案,但不要拿上面的片段整份覆蓋原檔,否則其他 OpenClaw 設定會一起消失。小範圍修改仍以 openclaw config set 比較安全,因為 CLI 會先驗證變更後的設定結構,再寫入磁碟。


設定完成後如何檢查?

先用以下指令讀回設定並驗證檔案:

openclaw config get agents.defaults.typingMode
openclaw config get agents.defaults.typingIntervalSeconds
openclaw config get channels.telegram.streaming
openclaw config validate

OpenClaw Gateway 預設會監看 active config。channels.*agents.* 這類設定通常可以直接 hot reload,不需要手動重新啟動。

如果你的部署環境已經關閉設定監看,或修改後測試一直沒有生效,可以再執行:

openclaw gateway restart --safe

接著從 Telegram 傳送一個確實會讀檔、搜尋或呼叫工具的稍長任務。正常情況下,你會先看到「正在輸入」,然後出現 Working 或工具狀態,最後由正式回覆收尾。


offpartialblockprogress 有什麼差別?

OpenClaw 的 Telegram streaming mode 不只一種:

  • off:不顯示暫時預覽,只傳送最後答案。
  • partial:在同一則預覽訊息中,逐步顯示答案文字。
  • block:以較大的文字區塊更新答案預覽。
  • progress:顯示工具與工作狀態,完成後再交付 final 答案。

如果平常大多是文字問答,想看答案慢慢生成,partial 會比較符合需求。

我使用 Telegram 遠端操作 OpenClaw 時,更想確認的是 Agent 有沒有繼續工作。長任務常把時間花在記憶搜尋、讀寫檔案、執行指令與等待工具回傳,這些階段本來就沒有多少答案文字可以串流。此時 progress 比逐字顯示回答更有參考價值。

而且它只維持一則暫時訊息,不會每執行一項工具,就在 Telegram 多留一則通知。等待時看得到活動,結束後畫面又能恢復乾淨,這個平衡我蠻喜歡的。


實際使用時還要注意幾件事

Progress drafts 是狀態提示,不是完整的執行紀錄。使用 commandText: "status" 時,看到的是 Bash、搜尋或讀檔等簡短標籤,不會把完整命令、工具輸出與讀取內容全部貼進 Telegram。

短任務也可能完全看不到 Working。根據目前的機制,OpenClaw 會等工作持續一段時間,或累積到足以判斷為實際工作的事件後,才顯示 Progress draft。回答太快,直接送 final,反而是正常結果。

另外,progress mode 在完成時會清除狀態草稿,再以正常訊息送出 final。若回覆包含檔案、圖片、引用回覆,或內容太長需要拆成多則 Telegram 訊息,呈現方式可能略有不同。這不是異常,OpenClaw 會優先確保最後結果能完整送達。

如果是從較舊的 OpenClaw 版本升級,設定檔裡可能還留著 streamMode、布林型 streaming 等舊欄位。遇到設定無法載入或欄位不相容,可以先執行:

openclaw doctor --fix

OpenClaw 更新速度不慢。實際設定前,仍建議對照當下版本的 Telegram 官方文件Typing indicators 文件,確認欄位名稱是否有調整。


AI Agent 的進度回報,也讓我想到職場溝通

用了一段時間後,我發現自己在意的是等待期間有沒有回應。當一件事需要等比較久,只要中間適度回報,我就比較放心,也不會一直跳回 Telegram 查進度。

回頭看職場,其實也是同一回事。

主管、客戶、供應商或跨部門同事交辦一件工作,不一定期待你立刻完成。他們通常只是想知道:你有沒有收到?有沒有開始處理?大概什麼時候會有下一個進度或結果?

我之前在〈別讓你的不讀不回,慢慢毀了你的專業度與信任感〉這篇文章中,曾經談過 responsereply 的差別:

  • Response 是「回應」,代表你有意識地接住對方的訊息。
  • Reply 才是「回覆」,也就是完整的解法、答案或結果。

很多時候,我們沒有辦法當下 reply,但可以很快 response

例如先告訴對方:「我收到訊息了,這件事需要一點時間確認,我預計明天中午前回覆。」對方知道事情已經被接住,自己也得到合理的處理時間。接下來若遇到延遲、風險或重要節點,再主動更新一次;完成時交付結果,並說明還有哪些事情待確認。

進度回報不用變成流水帳。回太多細節,反而增加彼此負擔。讓對方知道「我有收到、我正在處理、下一次什麼時候會更新」,通常就夠了。

如果我們不希望遇到一個對指令愛理不理、完全沒有進度的 AI Agent,那麼自己也不要成為那個對重要 request 愛回不回的人。

OpenClaw 用 Progress drafts 降低 Telegram 等待時的不確定感。工作中適時回報進度,也是在告訴對方:放心,我有在處理。


📌 您可能也會有興趣的其他文章:

留言

熱門文章

Gemini Voyager 教學:資料夾管理、引用回覆、去浮水印一次搞定

用AI一鍵生成簡報PPT投影片真的有那麼神?全網最詳細AI簡報工具彙整與實測心得

Windows 桌面圖示每次重新開機或外接螢幕就跑位亂移?從設定排除到 DesktopOK 一鍵還原完整攻略

為什麼 Nystatin(制黴菌素)要「漱口或塗抹」,不是直接吞?完整解析與用法指南

Google AI Pro 隱藏福利!每月 10 美元額度怎麼領?完整設定步驟 + 安全防護

快速又免費的語音轉文字神器『Faster Whisper』,一鍵解決影音內容爆量時代的痛點!

微軟 Copilot 全新語音功能重磅來襲!免費無限暢聊,直球對決 ChatGPT 進階語音模式!

AI 語音助理新革命:Copilot Vision 無限免費、視覺功能全開,完整評比 ChatGPT 進階模式

G6PD 缺乏者的抗生素選擇指南|社區診所常見處方與藥師建議一次搞懂

打字太慢?試試 Wispr Flow:神速 AI 即時語音輸入讓你效率翻 4 倍