本篇文章更新時間:2026/03/21
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持 。
內容目錄
用 Channels 讓 Claude 主動回應外部事件
把 Claude 從終端機裡「解放」出來的核心技術
編輯前言:這篇文章來自 Push events into a running session with channels - Claude Code Docs。它說明了什麼是 Channel、怎麼安裝、如何安全地接收來自 Telegram/Discord 的事件,以及為何這項功能補上了 Claude Code 的最後一塊拼圖。
核心觀點 (Key Takeaways)
- Channel 是一種會主動把事件推進你當前 Claude Code session 的 MCP server,不像傳統整合需要輪詢或重新開 session。
- Channels 支援 Telegram、Discord 以及本地 fakechat demo,而且可以雙向溝通,像真正的 chat bridge。
- 安全性依靠 sender allowlist 與組織層級的權限控制,只有被允許的 ID 才能推送事件。
深入解析
文章最重要的核心,就是 Channels 能讓「外部事件」直接進入你正在進行中的 Claude Code session。這跟以往的使用方式有很大差別:以前 Claude 只能在你敲命令時回應,但現在可以在你離開終端機時,替你處理來自 Telegram、Discord、CI Webhook 等事件。
什麼是 Channel?
原文提到:
A channel is an MCP server that pushes events into your running Claude Code session.
換句話說,Channel 是一種運行在你本地 session 上的插件。當外部平台(Telegram、Discord、Webhook)有新訊息時,它會直接把事件推給 Claude,而不是重新開一個 cloud session。
也因此,Claude 的回覆雖然會顯示在你使用的 Telegram/Discord,但你在終端機裡只會看到工具呼叫與確認訊息,而不是實際回應內容。
三種支援方式:從 fakechat 到 Telegram/Discord
文章介紹三種方式:
- fakechat:本地端 demo,不需任何認證,方便快速理解 Channels 行為。
- Telegram / Discord Plugin:透過 Bun 運行插件後,自動搭建聊天橋接。
- 自建 Channels:目前處於 research preview,需使用 allowlist 規則與 Dev flags。
fakechat 的定位非常清楚:給使用者在連動真實平台前先「感受一下」事件推播流的樣子。
安全性:sender allowlist 與 pairing 流程
這部分是我覺得最務實的一段。
文章說:
Every approved channel plugin maintains a sender allowlist
也就是即使你的 bot token 外流,陌生人也無法透過 Channel 傳訊息給 Claude,除非你的終端機明確把他的 sender ID 加入 allowlist。
而 Telegram / Discord 都透過 pairing code 的方式來 bootstrap allowlist,流程非常直覺:
- 你在 Telegram/Discord 找到 bot 並傳訊息
- bot 回你 pairing code
- 在 Claude session 裡輸入它
- ID 正式加入 allowlist
我覺得這個流程簡單、清楚,也符合安全最佳實踐。
Team / Enterprise 的控管方式
企業級的設定也很清楚:
- Pro/Max:預設可用,但每個 session 需
--channels額外開啟 - Team/Enterprise:預設禁用,需管理員開啟 channelsEnabled
也就是說,企業可以避免資料從外部通道任意流入,只有經過管理員授權的組織,才能啟用。
Channels 與其他 Claude 功能的關係
文章後半段把 Channels 與其他功能做比較,我認為非常具有方向性:
- Claude Web Sessions:適合完全獨立的雲端任務
- Slack:從團隊聊天生出 session
- MCP servers:讓 Claude 查詢外部系統,但不會主動推訊息
- Remote Control:用手機操控本地 Claude,但不是事件推播
Channels 的定位在於:
Pushing events from non-Claude sources into your already-running local session.
這一補,讓 Claude Code 能正式擔任「長期持續的代理」(persistent agent),因為它能被動接收事件,而不是只能等你手動啟動。
筆者心得與啟發
這篇文章讓我最深的體會是:Channels 是 Claude Code 從工具走向 Agent 的關鍵一步。
以前 AI 開發者常遇到一個痛點:要讓 AI 在背景持續運作、同時回應外部訊息,往往得自行架構一堆 middleware(Webhook server、消息隊列、輪詢、事件分派器…)。
但 Channels 的概念非常直接:把這些事件「推進」你原本正在跑的 session,而不是要求你另外開 session 或建後端。
實務上,我認為 Channels 有三大應用場景最值得期待:
- 隨時在 Telegram 問問題,用的卻是你本地完整的開發環境。
- CI/CD Webhook 推送錯誤後,Claude 直接在你本地打開相關檔案並開始 debug。
- 把 Channels 與 Scheduled tasks 結合,建構類似 webhook + CRON 的混合代理。
總結來說,Channels 是現階段 Claude Code 最值得深入研究的功能之一,它不只是消息橋接器,而是讓你的「本地 AI」真正擁有主動反應能力的基礎建設。如果你正在評估如何讓 AI 更像代理、能長期運作、能被動接收事件,那 Channels 絕對值得親手玩一遍。
