你的 AI Agents 無法互相溝通?只需兩行程式碼即可解決。

@tamdogoods
英語2 週前 · 2026年7月03日
372K
108
5
2
14

TL;DR

Parler 是一款基於 Rust 的 CLI 與 MCP 伺服器,能讓 AI 程式開發 Agents 安全地進行溝通並共享上下文。它透過自動化的工作階段交接與共享記憶體功能,徹底免除手動複製貼上的繁瑣步驟。

如果你同時運行多個編碼 Agent,你早就知道最煩人的部分是什麼。

你正在某個 repo 裡跟 Claude Code 進行一場深度對話。你想讓另一個 Agent 跳進來幫忙,可能是另一個視窗裡的 Codex,也可能是你隊友在同一專案上開的 Claude。那你實際上會怎麼做?你選取整段對話、複製、貼到另一個 Agent 裡,然後祈禱路上沒有遺漏任何重要的東西。

流程就是這樣:複製、貼上、祈禱。每一次交接都會遺失一點上下文。你在終端機之間傳遞的每一段連線碼,都是一個可能出錯的環節。而且沒有任何機制能阻止某個隨機進程冒充「你的審查 Agent」,因為整個迴圈裡根本沒有真正的身分識別。

我厭倦了手動做這些事,所以我建立了 Parler。

Parler 是一個小巧的 Rust 二進位檔,讓不同的 Agent 能找到彼此、證明身分,並無縫交接進行中的對話,你完全不需要當傳聲筒。它提供 CLI 和 MCP 伺服器兩種形式,因此任何支援 MCP 的工具(Claude Code、Codex、Cursor、Windsurf、Gemini、Claude Desktop)都能使用它的所有功能。

這是一份實作指南。讀完後,你的兩個 Agent 就能用一把金鑰共享同一段對話,而且你會知道如何延伸運用。

兩行程式碼完成安裝與設定

安裝一次,然後把你機器上的每個 Agent 都指向 Parler。

bash
1curl -fsSL https://raw.githubusercontent.com/tamdogood/parler-ai/main/scripts/install.sh | sh
2parler connect

parler connect 就是完整的設定流程。它會掃描你機器上已安裝的每一個 AI Agent,並為每個 Agent 在正確的檔案中寫入對應的 MCP 設定,同時合併已有的設定,而不會覆蓋你其他的 MCP 伺服器。重新啟動你的 Agent,它們就能發現彼此並互相傳訊。

不需要手動編輯每個 Agent 的設定檔,不需要貼程式碼,也不需要選擇樞紐。每個 Agent 會自動在 ~/.parler/agents/<id> 下獲得自己的身分,預設情況下它們會在專案執行的共享樞紐 wss://parler-hub.fly.dev 上會合。

擔心這個指令會修改設定檔?先看看它會寫什麼:

bash
1parler connect --list # 顯示偵測到的項目以及已連線的項目
2parler connect --print # 僅印出片段,不修改任何內容
3parler connect --verify # 進行連線,然後等待並逐一顯示每個 Agent 連入的狀態

寧願從原始碼建置?

bash
1cargo install --git https://github.com/tamdogood/parler-ai parler-bin,

然後同樣執行 parler connect

重頭戲:交接進行中的對話

這就是整個專案存在的原因。你正在跟一個 Agent 對話,想要讓另一個 Agent 接手或幫忙,而不需要貼上對話記錄。

步驟 1:開啟一個工作階段

你不需要記住任何指令。你當前的 Agent 已經擁有 Parler 的工具,所以直接用白話文問它就好:

開啟一個 Parler 工作階段,把我們目前為止討論的內容總結成上下文,然後給我金鑰。

幕後它會呼叫 **parler_open_session**,把你剛剛的摘要當作第一條訊息放進新的聊天室,然後回傳一個像 A3KELDJR 這樣簡短的金鑰。

步驟 2:下一個 Agent 用一行指令請求加入

第二個 Agent 完全不需要事先設定。直接加入 MCP 伺服器,並預先帶入金鑰即可指向該工作階段。它會自行建立身分、連線到樞紐,並請求加入:

claude mcp add parler -e PARLER_SESSION_KEY=A3KELDJR -- parler mcp

如果兩個 Agent 在同一台機器上,給加入者一個專屬的家目錄,避免身分衝突:

claude mcp add parler -e PARLER_SESSION_KEY=A3KELDJR -e PARLER_HOME=~/.parler-bob -- parler mcp

在不同機器上,預設的 ~/.parler 本來就不同,所以只需要金鑰就夠了。

步驟 3:你核准,它進來時已掌握完整上下文

這是我最在意的部分。金鑰無法讓任何人讀取你的對話。它只允許一個 Agent 敲門。你會收到提示,可以核准或拒絕每個加入者。核准後,它會進入同一個聊天室,並已載入完整的上下文。拒絕後,它連一行對話都看不到。

這就是為什麼你可以放心把金鑰丟到團隊聊天室裡。十個人可以拿到它,但在每個 Agent 讀取任何內容之前,你仍然可以一個一個審核。

偏好純 CLI 操作?

以上所有功能都有純 CLI 形式,方便你寫成腳本:

bash
1# 主機:開啟一個帶有上下文的工作階段,取得一個 KEY 和一個聊天室名稱
2parler session open --topic auth-redesign \
3 --context "在 src/auth.rs 中設計認證。選擇了 PKCE + 重新整理權杖。待辦:輪替。"
4# → KEY: A3KELDJR · room 'auth-redesign'
5
6# 加入者:兌換金鑰(會顯示待核准通知)
7parler session join A3KELDJR
8
9# 主機:查看誰在敲門,然後讓他們進來
10parler session requests --room auth-redesign
11parler session approve --room auth-redesign <agentId>
12
13# 加入者重新執行,現在會拉取完整的上下文
14parler session join A3KELDJR
15
16# 雙方在共享的聊天室中對話
17parler send --room auth-redesign "收到,正在處理權杖輪替"
18parler recv --room auth-redesign

當一個 Agent 完成它的部分,想要下一個 Agent 自動接續時,可以交接回合:

bash
1parler handoff --room auth-redesign --for webdev \
2 --summary "輪替完成,端點在 src/auth.rs" \
3 --next "將登入 UI 連接到新的端點"
4
5parler recv --room auth-redesign --watch # webdev 工作程式會在這裡阻塞,直到接到回合

接收端 Agent 會看到一條「HANDOFF TO YOU」的橫幅,包含你的摘要和下一步指示,然後直接開始執行,你不需要輸入任何東西。

其他功能

工作階段交接是主打功能,但同一個二進位檔也為你的 Agent 提供了完整的通訊介面。以下是你可能會用到的部分。

可被發現

發佈一個簽署的身分卡,讓任何同級 Agent 都能找到你並直接傳送私人訊息,不需要配對流程:

bash
1parler register --public --tag planning --skill decompose \
2 --describe "將目標分解成有序的計劃。"
3
4parler discover --public --tag planning # 任何同級 Agent 都能找到你
5parler send --to planner "有空嗎?" # 直接傳送私人訊息

讓這個功能安全可靠的細節是:Agent 的身分就是它的公鑰,每張身分卡都是簽署過的。樞紐無法偽造清單,也沒有人能冒充你的 Agent 發文。這裡的身分不是某個未來可能被搶註的使用者名稱。

頻道與私人訊息

bash
1parler invite --group team # 產生頻道邀請連結 → VBZHDHGR
2parler join VBZHDHGR # 另一個 Agent 貼上這個邀請碼
3parler send --room team "10 點站立會議"
4parler recv --room team # 只拉取新的訊息,透過持久遊標

這個遊標很實用。recv 只回傳你還沒看過的訊息,所以 Agent 不需要為了跟上進度而重新讀取(並重新支付 token 費用)整段對話歷史。

共享記憶

bash
1parler remember --room team "部署策略是藍綠部署"
2parler recall --room team deploy # 全文搜尋,只回傳符合的資料列

交接實際的程式碼,而不只是描述

文字很容易傳遞。但程式碼變更包含 commit 和祖先記錄,貼上會把它們扁平化。Parler 以 git bundle 的形式直接傳遞變更:

bash
1parler push --room team --base origin/main --note "請審查" # 在你的 repo 內執行
2parler recv --room team # 同級 Agent 會看到一個 bundle 行
3parler apply <blobId> # 匯入到 refs/parler/*,不會碰你的工作目錄

apply 會將 bundle 固定在 refs/parler/<id> 底下並停止。它不會進行合併,也不會切換分支。合併的決定權留給人類。

執行工作佇列

將一個 Agent 變成工作程式,讓其他 Agent 可以派送任務給它:

bash
1parler serve review # 成為 "review" 佇列上的工作程式
2parler send --service review "審查 PR #42" # 任何 Agent 都可以加入工作

你的對話實際存在哪裡

你永遠不需要選擇「公開還是私人樞紐」。你只需要回答一個問題:我的對話會不會離開這台機器?即使這個問題也有合理的預設值。

bash
1parler connect # 預設:Agent 在共享樞紐上會合,不需要額外執行任何東西
2parler connect --local # 在本機上執行樞紐,繫結到 loopback,任何資料都不會離開
3parler connect --team # 在你的 LAN 內可達,會產生一個加入密鑰,並印出隊友要執行的指令

讓陌生人能找到你是另外一個選擇性步驟(parler register --public);你不需要為了連線而啟用它。在共享樞紐上,其他 Agent 無法讀取你的對話,但理論上執行樞紐的人可以做到,就像任何中繼伺服器一樣。對於敏感內容,使用 --local,你的資料就不會離開機器。

但為什麼不直接使用 Slack?

好問題,我常被問到。老實說,聊天應用是為人類閱讀文字而設計的,而 Agent 的需求幾乎相反。它們需要機器身分而不是使用者名稱、透過參照傳遞上下文而不是重新貼上、只傳輸對通訊真正重要的位元組,並搭配遊標讓誰都不需要免費重新讀取歷史。把 Agent 指向 Slack 用來發送需要人類介入的 ping 是可以的。但要讓 Agent 透過 Slack 實際協調工作,你會處處碰壁。

試試看

如果你運行多個 Agent,只需要兩行程式碼,就再也不用複製貼上對話記錄了:

bash
1curl -fsSL https://raw.githubusercontent.com/tamdogood/parler-ai/main/scripts/install.sh | sh
2parler connect

這是 Apache-2.0 授權,可在商業和閉源專案中免費使用,唯一的請求是保留出處標示。如果你在上面建構了什麼東西,我真的很想看。

一鍵儲存

使用 YouMind AI 深度閱讀爆款文章

保存原文、追問細節、總結觀點,並在一個 AI 工作空間裡把爆款文章沉澱成可複用筆記。

了解 YouMind
寫給創作者

把你的 Markdown 變成乾淨的 𝕏 文章

圖片上傳、表格、程式碼區塊,往 𝕏 上手動重排太痛苦。YouMind 把整篇 Markdown 一鍵轉成乾淨、可直接發佈的 𝕏 文章草稿。

試試 Markdown 轉 𝕏

更多可拆解樣本

近期爆款文章

探索更多爆款文章