模型 / 資料集
Onelevenvy/flock avatar
Onelevenvy/flock

Flock:用 Rust 與 Tauri 打造的桌面多代理工作台,值不值得裝

A desktop multi-agent harness built with Rust, Tauri, and React, powered by langgraph-rust.

1,109 個 Star143 個 ForkRustApache-2.0
GitHub

秒懂

它是什麼?
Flock 把 LangGraph 式的代理狀態機、ReactFlow 視覺化流程編輯器與沙箱 VNC 收進同一個桌面程式,並由作者自己實作的 langgraph-rust 驅動。它解決的是「代理在背景亂跑、你看不到也管不住」這件事,代價是要接受一個由個人維護、仍在 0.3.x 的專案。
適合誰用?
如果你要的是一個能看見代理每一步、必要時接手滑鼠鍵盤的桌面工作台,而且能接受 Apache-2.0 授權下由個人維護的 langgraph-rust 作為核心,Flock 值得在隔離環境先跑一輪。若你需要多使用者後端、穩定 API 介面或長期支援承諾,這個專案目前不適合。
可以商用嗎?
可以。Apache-2.0 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 71 天前。
用什麼語言寫的?
主要是 Rust(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

Flock 想解決的是「代理跑起來之後你看不見」

多數代理工具在終端機裡執行,你能拿到的最終產物是一段文字或幾個檔案。中間發生了什麼、代理為什麼在第 7 步決定刪掉那個目錄,通常只能從日誌反推。Flock 的定位是把這條執行鏈放進桌面視窗:README 把它描述為 multi-agent harness,並在對照表裡直接點名傳統聊天客戶端做不到的事,包含視覺化流程、代理直接操作檔案、多步自主執行、cron 排程與多代理協作。

目標讀者相當明確。一類是需要反覆設計代理流程、並想用拖曳方式調整節點連接的人;另一類是已經在用 Playwright 或 xdotool 做自動化,但苦於無法即時看到瀏覽器與桌面狀態的人。README 說明的使用情境包括讀寫檔案、執行 bash 指令、瀏覽網頁與跑複雜管線,這些都屬於「代理會實際動到本機資源」的場景,因此它把人工審批與沙箱放在很前面。

反過來說,如果你只是要一個能問答、偶爾查資料的聊天視窗,Flock 的節點編輯器、VNC 串流與容器管理都是你不需要承擔的重量。

架構:Tauri 外殼、flock-agent 迴圈、SQLite 檢查點

README 的 mermaid 圖把資料流畫得相當清楚,值得照著讀一遍。最上層是 Tauri 桌面 UI,以 React 與 Mantine 組成,透過 IPC 與 Tauri Command 和 src-tauri 核心通訊。核心再以 JSON 協定把工作交給 flock-agent,也就是 LangGraph 的執行核心。代理的狀態機由 langgraph-rust 承載,執行過程中的狀態寫入 SQLite checkpointer,這也是它能做到「追蹤歷史執行路徑、逐步除錯狀態」的原因。

工具層是 flock-tools。它是一個工具註冊表,往下接三種執行位置:本機的內建工具(Bash、檔案、grep)、MCP 伺服器註冊表,以及隔離容器。沙箱這一側再分兩路,一路是 X11 與 VNC 伺服器(x11vnc 加 websockify)把桌面以 WebSocket 串回 UI,另一路是 Playwright 與 xdotool 負責瀏覽器與作業系統層級的操作。

模組切成五個 crate:flock-core 放共用設定 schema、SQLite 資料模型、加密工具與 IPC 通道;flock-agent 是代理執行迴圈與記憶系統;flock-workflow 負責節點邏輯,以及把 JSON 編譯成 LangGraph 的 AST;flock-tools 管工具與沙箱;flock-skills 載入系統提示。這個切法讓「流程定義」與「執行引擎」分離,視覺化編輯器產生的 JSON 最後要經過 flock-workflow 的編譯步驟才會變成可跑的圖。

有一點必須講明:整個代理語意建立在 langgraph-rust 上,而 README 明說那是作者「個人的 Rust 版 LangGraph 實作」。這代表你採用的不只是 Flock,還連帶採用了這個底層實作的行為與缺口。

節點、審批與 VNC:三個機制的實際分工

視覺化編輯器由 ReactFlow 驅動,README 列出十種節點:start 與 answer 定義輸入與最終輸出;llm 與 agent 分別是純推理節點與帶工具的 LangGraph 代理;classifier 與 ifelse 負責語意路由與條件分支;code 可跑自訂 JS 或 Python 轉換;human 是流程中的中斷點;plugin 與 parameter_extractor 則用來暴露工具與抽取結構化資料。這十種節點構成一個可表達分支、迴圈與人工介入的圖,而不是只有線性鏈。

人工審批不在流程圖裡,而是在工具呼叫層。README 的說法是寫檔、跑 bash、改設定這類動作需要使用者明確同意,你能看到計畫再決定放行或拒絕。這一層和 human 節點是兩件事:前者擋的是執行期的副作用,後者擋的是流程前進的時機。

VNC 的角色更特殊。當代理卡在驗證碼之類的關卡,README 說你可以直接接管沙箱的滑鼠與鍵盤。這等於承認自動化一定會有走不通的時候,並把「人接手」當成正式路徑而非例外處理。代價是這條路徑依賴 x11vnc 與 websockify 的組合,能不能在你的平台上順利串起來,是採用前必須實測的環節。

從原始碼編譯:Tauri 前置條件與執行入口

README 沒有給出可直接複製的安裝指令,Quick Start 章節在提供的內容裡被截斷,因此這裡只能描述你必須準備什麼,不能替你保證指令正確。

這是一個 Tauri 應用,前端是 React,後端是 Rust,所以本機需要 Rust 工具鏈與 Node 套件管理器。Tauri 本身在各平台另有系統相依,這部分要照 Tauri 官方文件處理,不是 Flock 能代勞的。取得原始碼後,典型流程是先在前端目錄安裝依賴,再用 Tauri 的開發或建置指令啟動,但實際的目錄名稱與 script 名稱請以 repo 內的 package.json 與 src-tauri 設定為準,不要照抄本文的推測。

設定面有幾個關鍵字可以從 README 推出來。API Key 支援 OpenAI、Gemini、Anthropic Claude、AWS Bedrock 與 Ollama 或本地端模型,貼上即可開始,README 稱之為 zero configuration。技能以 YAML frontmatter 的提示檔提供,並支援檔案變更時的 hot-reloading,所以 flock-skills 會監看檔案。MCP 伺服器只需連接一次,之後所有助理與流程會自動繼承新暴露的 schema 與工具。排程使用標準 cron 語法。這些都是設定層的行為描述,具體的設定檔路徑與鍵名在提供的材料中沒有列出,需要自行在 repo 中確認。

沙箱與檢查點的代價:隔離換來的是維運負擔

Flock 把危險操作放進隔離容器,這是它相對聊天客戶端最實質的差異。但隔離不是免費的。容器要能跑,宿主機就得有可用的容器執行環境;VNC 要能把畫面串進 UI,x11vnc 與 websockify 就得在容器內正常啟動並讓 WebSocket 連通。README 沒有說明這些元件是隨程式打包、還是需要使用者自行安裝,提供的材料也沒有交代支援哪些平台。若你的環境無法啟動容器,這個專案最核心的安全設計就形同虛設,剩下的只是一個本機執行的代理外殼。

狀態保存同樣值得注意。代理狀態寫在 SQLite checkpointer,好處是流程可回溯、可從中斷處續跑;代價是這個資料庫會累積對話、工具輸出與中間狀態。README 提到 flock-core 內含加密工具,但沒有說明資料庫本身是否加密、金鑰如何管理、檔案落在哪個路徑。對處理敏感內容的人來說,這是採用前必須自己查清楚的問題,而不是可以假設的預設值。

還有一個容易被忽略的邊界:Flock 是桌面應用,不是伺服器。它適合單人在自己機器上操作代理,不適合當成多人共用的後端服務。

什麼時候該選 Flock,什麼時候該選 n8n

同樣打著視覺化工作流與自動化旗號的 n8n,走的是完全不同的路。n8n 是伺服器端的工作流引擎,以 Node.js 撰寫,通常部署成服務,節點生態以 SaaS 整合與 Webhook 觸發為主,強項在於把外部系統串起來,並讓多人共用同一套流程。它的執行主體是既定的整合動作,不是會自己決定下一步的代理。

Flock 反過來。它的執行主體是 LangGraph 狀態機驅動的代理,節點裡有 classifier 做語意路由、有 agent 節點帶工具、有 human 節點等人回覆,工具可以落到本機檔案系統或沙箱桌面。它的強項是「代理自己規劃、你在一旁審批與接手」,而不是「把 A 系統的資料送到 B 系統」。

所以選擇的判準不是功能多寡,而是你要的是可預測的整合管線,還是需要判斷力的自主執行。前者選 n8n 這類伺服器端引擎;後者才輪到 Flock。若你的需求其實是前者,Flock 的沙箱與 VNC 會變成純粹的額外維運成本。

授權、維護成本與 0.3.x 的現實

授權是 Apache-2.0,屬於寬鬆授權,允許修改與再散布,並包含專利授權條款。實際使用前仍應自行閱讀完整授權文本,本文不構成法律意見。需要留意的是,Flock 依賴的 langgraph-rust 是獨立專案,它的授權狀態不在這份材料裡,採用前應一併確認。

維護成本落在兩個地方。第一是版本節奏:從提供的 release 清單看,v0.3.0 到 v0.3.1 相隔約兩週,v0.2.9 到 v0.3.0 只隔一天,這種密度通常意味著介面與行為還在調整,升級時要有重新驗證流程的準備。第二是依賴鏈:Flock 的代理語意綁在作者自製的 langgraph-rust 上,這個底層若缺少你要的節點行為,你只能等上游或自己動手,沒有第三方生態可以繞道。

README 也交代了重寫歷史:原本是 Python 加 LangGraph、LangChain、FastAPI 的後端,現在改成 Rust 加 Tauri 的桌面程式,舊程式碼保留在 legacy/python 分支。這說明專案經歷過一次徹底的架構替換,也意味著網路上關於舊版的教學與討論,對現在的版本多半不適用。

最後一個具體的判斷點:這個專案沒有 Homepage,README 也沒有列出社群支援管道。對需要長期支援承諾的團隊來說,這比任何功能清單都更能決定要不要採用。

編輯結論

如果你要的是一個能看見代理每一步、必要時接手滑鼠鍵盤的桌面工作台,而且能接受 Apache-2.0 授權下由個人維護的 langgraph-rust 作為核心,Flock 值得在隔離環境先跑一輪。若你需要多使用者後端、穩定 API 介面或長期支援承諾,這個專案目前不適合。動手前先確認三件事:langgraph-rust 是否已支援你需要的節點語意、沙箱容器在你的平台上能否啟動並串出 VNC 畫面,以及 SQLite checkpointer 的資料庫位置是否符合你的備份與加密要求。

官方來源

  1. Issues
  2. License: Apache-2.0
  3. Onelevenvy/flock on GitHub
  4. README
  5. Releases
社群筆記

社群筆記