Show HN:Klorn – 我構建了一個郵件防火牆,因為每個AI收件箱讓我的收件箱更嘈雜
Klorn是一個開源的郵件防火牆工具,它不提供聊天介面或建議卡片,而是將每封收到的郵件分類為靜默、佇列、推送或自動四種狀態。它使用廉價AI模型打分,結合確定性規則決定分類,確保安全可靠。系統支援自託管,幷包含完整的本地開發指南。
Klorn 是一個全新的郵件防火牆工具,其核心理念與市面上大多數 AI 收件箱工具截然相反。當前許多工具在收件箱中新增建議卡片、AI 草稿或提示徽章,讓收件箱變得更加嘈雜。Klorn 做的正好相反:每封入站郵件只得到一個分類——靜默(SILENT)、佇列(QUEUE)、推送(PUSH)或自動(AUTO)——並且這個分類繫結到生成它的確切位元組資料。沒有聊天介面,沒有建議卡片,沒有 60 種工具的代理。輸出是一個單一決定,而且大部分時間這個決定是“你不需要看到這個”。
Klorn 的核心思想體現在其四層分類系統中。靜默類郵件會被記錄但永不呈現,適用於營銷、收據等僅需留作反饋依據的內容。佇列類郵件是預設狀態,讓你自己安排時間檢視,沒有推送或通知。推送類郵件值得打斷你,會觸發通知,可選 Telegram 或電話。自動類郵件可逆且無需人工干預,但操作側(如傳送郵件)受確定性樓層機制約束。
分類過程並非由 LLM 直接選擇層級。相反,模型對每封郵件在四個維度(置信度、發件人信任度、可逆性、緊急程度)上分別打出 0 到 1 的分數,然後一個 deterministic 規則(位於 tier-policy.ts)將這些分數對映到具體層級。模型僅負責感知,而規則是可讀且可單元測試的,無需模型介入即可審計。
這種分離帶來了兩個重要後果。首先,廉價模型即可勝任。當模型只需一致地讀取四個訊號時,無需前沿模型的推理深度。在 Klorn 的 50 封郵件評估集上,gemini-2.5-flash 獲得了 88% 的準確率,對緊急郵件的召回率達到 100%,超越了 gpt-4o 和 gemini-2.5-pro(均為 82%),而成本僅為其一小部分。其次,系統能夠安全地降級——如果 LLM 不可用或受限,關鍵詞回退機制可在零模型呼叫下產生相同四維分數,確保緊急郵件依然能得到處理。
所有分類都與內容雜湊繫結:評分器讀取的確切位元組(發件人、主題、片段、標籤)在決策時經過 sha256 雜湊並儲存。讀取路徑會重新雜湊,並在不匹配時丟擲 AttentionHashMismatchError,防止後續的富化操作悄悄使層級失效。
Klorn 還設有一個確定性樓層機制,防止不可逆操作(如傳送郵件、永久刪除、外部轉發)僅憑分類器置信度執行。這些操作需要一份在審批時鑄造的 ActionReceipt,該收據固定了規範收件人/主題/正文的有效載荷位元組(sha256),執行時任何漂移都會導致操作被拒絕。這一機制被強制執行:executeToolCall 中的中央守衛會在任何未經驗證收據的樓層操作上關閉失敗,即使自主路徑也無法繞過審批來傳送、轉發或硬刪除郵件。
需要明確的是,Klorn 並非成品。它目前是一個早期概念驗證,只有一位真實使用者(作者本人)。它也不是“與收件箱聊天”的工具,沒有聊天介面。它不是多租戶雲服務,目前僅支援自託管。此外,其功能並不對開源版本進行限制:雲版本將提供託管服務、已驗證的 Gmail 作用域和團隊工作空間,而防火牆原則和程式碼將在兩個版本中保持開源。
專案的 CI 中有一個紅色檢查是故意為之的:作用域預算(Scope Budget)會在變更導致路由/頁面/模式表面積超過固定預算時失敗,強制開發者有意識地確認作用域價值,而非無節制擴充套件。其他檢查(lint、型別、測試、構建、安全、評估)均為綠色。
Klorn 的託管演示 (klorn.ai) 當前執行在 Google OAuth 測試模式下,因為需要 gmail.modify 作用域且尚未透過 CASA Tier 2 驗證。想試用而不自託管,需先被新增為測試使用者(最多 100 個槽位)。最快的途徑是提交 issue 或傳送郵件。
產品本身的第一屏不是聊天或收件箱,而是一個決策佇列。零散訊號被收集並呈現為卡片,回答三個問題:看什麼、為什麼重要、什麼操作已就緒。當前介面包括決策佇列、郵件、日曆、簡報和設定。
技術棧方面,前端使用 Next.js 15、React 19、TypeScript 和 Tailwind CSS;API 使用 Fastify、TypeScript 和 Prisma;資料庫為 PostgreSQL;身份驗證採用 JWT、bcrypt 和 Google OAuth;AI 支援 OpenAI 相容介面(本地優先),OpenRouter/Gemini 作為故障轉移;即時通訊使用 WebSocket 和 Web Push;計費整合 Stripe。
本地開發環境要求 Node.js 22+、pnpm 和 PostgreSQL 16。專案使用 pnpm 工作區管理,包含 api、web、core、docs 等包。克隆倉庫後,需複製環境檔案、生成加密金鑰、配置 Google OAuth 憑證。若要本地執行 LLM,可將 Klorn 指向 Ollama 或 LM Studio 等相容伺服器,使郵件分類完全在本地執行,無需雲金鑰。資料庫透過 docker-compose 啟動 PostgreSQL 16,然後執行 Prisma 遷移和生成。最後分別在兩個終端啟動 API 和 Web 開發伺服器。
總而言之,Klorn 透過將感知與決策分離、內容雜湊繫結和確定性樓層機制,提供了一種比現有 AI 收件箱更安靜、更可靠的郵件處理方式。它目前處於早期階段,但設計理念清晰,程式碼開源,值得關注。