跳到內容

OpenClaw 指令指南:快速掌握聊天控制與任務管理

寫程式最怕的就是機器人一旦跑起來就停不下來,或者在群組裡瘋狂洗版。有時候你只是想快速測試一個功能,卻發現它陷入了無限迴圈,或者在不該說話的時候一直跳出訊息,這確實會讓人很崩潰。

掌握如何精準控制你的機器人,是開發過程中非常重要的一環。這篇文章會帶你了解如何透過指令隨時中止任務,以及如何透過設定讓機器人在正確的時機回應,讓你的開發流程更順手。

如果你發現機器人正在執行一個錯誤的任務,或者回傳的內容不是你要的,可以直接發送以下其中一個指令來中止它:

  • /stop 或 /abort
  • /cancel

這些指令必須作為獨立訊息發送,機器人接收到後會立即停止當前的動作。


除了停止任務,系統還內建了幾個實用的指令來幫你管理對話狀態:

指令描述
/new, /reset開啟新的 Session
/stop, /abort取消當前任務
/compact壓縮 Context(但保留對話內容)
/model <alias>切換模型
/model list列出所有可用的模型
/status顯示機器人當前的狀態
/help顯示所有可用的指令列表

我可以從 CLI 發送訊息到不同的聊天視窗嗎?

Section titled “我可以從 CLI 發送訊息到不同的聊天視窗嗎?”

可以。你可以利用 --deliver 參數搭配目標選項,直接從終端機發送訊息:

Terminal window
openclaw agent --message "Hello from CLI" --deliver --channel telegram --chat-id 123456789

如果你只想發送到當前的 Session,可以使用簡短的指令:

Terminal window
openclaw agent --message "Quick update" --deliver

Queue Mode 決定了機器人如何處理同時湧入的多個訊息。你可以根據需求選擇不同的處理策略:

  • fifo (預設):先進先出,按照順序一個一個處理訊息。
  • parallel:同時處理多個訊息,雖然速度快,但 Token 消耗會顯著增加。
  • latest:直接捨棄排隊中的訊息,只處理最後進來的那一個。

你可以透過 agents.defaults.queue.mode 來進行設定:

{
agents: {
defaults: {
queue: { mode: "fifo" }
}
}
}

內部訊息屬於系統層級的事件,它們並非由真實使用者發出,常見的例子包括:

  • Cron job 觸發的定時任務
  • 系統的 Heartbeat 偵測
  • Skill 的內部調用
  • Webhook 的回調通知

這些訊息會記錄在 Log 中供你除錯,但為了保持對話整潔,它們不會出現在聊天歷史記錄裡。


我可以讓機器人忽略特定訊息嗎?

Section titled “我可以讓機器人忽略特定訊息嗎?”

可以。如果你不希望機器人回應某些特定的關鍵字或格式,可以在 Channel 設定中使用 ignorePatterns:

{
channels: {
whatsapp: {
ignorePatterns: ["^!ignore", "^\\[bot\\]"]
}
}
}

只要訊息符合這些 Pattern,機器人就會自動視而不見。


如何讓機器人只在被標記時才回應?

Section titled “如何讓機器人只在被標記時才回應?”

在群組對話中,如果你不希望機器人對每一句話都插嘴,可以針對 Telegram 等頻道開啟 mentionGating 功能:

{
channels: {
telegram: {
groups: {
mentionGating: true
}
}
}
}

開啟後,機器人只有在被 @mentioned 時才會觸發回應。

AI Setup Assistant

OpenClaw

OpenClaw Expert

還是卡住了?

如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。