我如何在 Telegram 中啟動 /new session?

嗨,

我有一個相當簡單的問題。我如何在 n8n 中執行相當於 /new 的操作?

我的目標是在從特定 webhook 呼叫時啟動一個新的工作階段。所以我最初的計畫是建立兩個 Telegram 節點:第一個包含 /new,然後等待回應,之後再移至下一個節點。但是,當我嘗試時,我看到 /new 不被視為指令,而是被視為簡單訊息。

這可能嗎?如果可以,最好的方法是什麼?

謝謝,

L

hello @DupervalAI

能詳細描述一下嗎?什麼是 /new,你要重新建立的是哪種會話?

Telegram 節點將所有命令視為訊息,所以你應該相應地解析它們

你是否想為每個傳入的 webhook 呼叫建立一個新的聊天?@DupervalAI

歡迎 @DupervalAI

Telegram 節點確實會將 /new 作為訊息文字接收(Telegram 會將所有機器人命令作為以 / 開頭的訊息文字傳送),所以你不需要從 n8n 傳送命令 - 你只需要偵測它並對其做出反應。在你的 Telegram 觸發器之後新增一個 IF 節點,檢查 {{ $json.message.text === '/new' }},然後在「true」分支中重設你的工作階段。重設方式取決於「工作階段」在你的工作流程中的含義 - 如果你使用的是具有記憶體節點(Window Buffer Memory 等)的 AI Agent,將該聊天的 Session ID 變更為新值(例如,附加時間戳記:{{ $json.message.chat.id }}_{{ Date.now() }}),這樣可以有效地開啟全新的上下文。透過 Telegram 節點將確認訊息傳回給使用者,然後在「false」分支中繼續你的正常流程。

哎呀,我才意識到我在訊息中漏掉了一個小細節:Telegram 機器人實際上是 Hermes Agent 的前端。所以當我傳送訊息給它時,資訊應該會傳送給 Hermes Agent。

昨天繼續處理後,我發現問題似乎是因為我使用 n8n 的 token 來傳送訊息給 Telegram 機器人。而且因為 n8n 的 token 與 Hermes 機器人的 token 相同,機器人沒有回應,我認為是因為它認為自己在和自己對話。所以任何帶有機器人 token 的訊息都可能被忽略。當我透過 n8n 傳送訊息,然後我在同一個聊天中手動轉發它,Agent 就會有反應。

所以現在我在尋找一個解決方案,讓 n8n 能夠與機器人通話,而不會讓機器人認為它在和自己對話。

我不確定這個解釋是否有意義。

L

哦,回答一下這個問題:/new 是 Hermes 命令,用來告訴代理開始新對話,有點像在 ChatGPT、Claude 或 Gemini 中開啟新聊天。這樣做可以防止對話漂移。但在我的情況下,n8n 啟動的每個對話都需要乾淨的狀態,所以我使用 /new 來防止現有聊天信息中的「污染」。

L

感謝你提供的所有答案。我需要把所有這些整合在一起,以獲得連貫的觀點,並測試看看哪些方法最適合我的目的。

L