2026年9月4日 星期五

介紹一下 Rune - Zero-Trust AI Agent 的由來

2026 年 5 月 1 日下午帶著家人小孩們去新北大都會公園玩耍,腦中突然靈光一閃:既然 AI Agent 直接跑在系統上始終存在信任隱患,為何不自己寫一個能被 Linux 各種沙盒(Sandboxing)機制嚴格管控的 Agent?當下便拿出 iPad,透過 Terminus 連線並運用已年訂閱的 Gemini CLI 開始實作 Prototype。到了傍晚天剛暗下來時,Rune 的雛形就已經跑起來了。

隨著開發推進,我發現自己需要一套輕量的 Markdown Wiki 來瀏覽並集中存放各類 AI Agent 產出的 Context,但又不想安裝龐大複雜的 Obsidian——我單純只想 review 這些內容,順便整合進內建的 AI Agent。於是順理成章將 Rune 擴展出 Web UI 服務,這便是 Rune Notes 的由來。接著又覺得多人共用、群聊會很有意思,便串接了 GitHub & OAuth2 認證。

起初我只透過 RESTful API 搭配 Agent Skill,但整體體驗不如預期,於是進一步實作了 MCP 支援。為了確認與各家 Agent 的相容性,在測試過程中還順手送了個 patch 給 Hermes Agent,修復它原先在 MCP 上的問題,確保它能順暢對接 Rune Notes 的 MCP 機制。之後為了省去手動複製貼上網頁內容的麻煩,又順手搓出 Rune Chat 這套支援 Firefox 與 Chrome 的瀏覽器擴充功能。此外我還試著擴展了 Vim plugin,雖然目前流暢度仍有進步空間,但秉持「有需求就自己動手做」的原則,慢慢迭代就好。目前編譯後的 binary 大小不到 8 MB,極度輕量但功能相當齊全。

都看到這裡了,不妨順手到 GitHub 點個 Star 吧!我也準備好了 Docker image 方便本地部署,只要搭配 Tailscale,就能無痛搭建出私密的個人筆記庫或小型團隊的 Markdown Wiki 共筆平台。

現在在瀏覽器上我非常仰賴 Rune Chat:不論是刷 LeetCode、HackerRank、讀 O'Reilly Media 線上書籍,還是整理公司雜務與會議筆記,遇到任何網頁內容都能隨手呼叫這位私人助理。所有資料全數保留在本地,搭配 ZDR LLM 或本地模型,隱私與安全性完全在掌控之中。Rune 本身採 Zero-Trust 設計,在權限配置上完全不予放行,它本質上就只能單向地在筆記系統內處理文件。雖然目前難免還有點小瑕疵與毛病,但整體體驗已經相當順手。

說來有趣,Rune 最初其實純粹是為了不浪費 Google Gemini 年訂閱而敲出來的專案——早期全靠 Gemini CLI 一路推進,後期則切換到了 Antigravity CLI 繼續開發。