AI News HubLIVE
站内改写3 分钟阅读

Show HN:Klorn – 我构建了一个邮件防火墙,因为每个AI收件箱让我的收件箱更嘈杂

Klorn是一个开源的邮件防火墙工具,它不提供聊天界面或建议卡片,而是将每封收到的邮件分类为静默、队列、推送或自动四种状态。它使用廉价AI模型打分,结合确定性规则决定分类,确保安全可靠。系统支持自托管,并包含完整的本地开发指南。

来源Hacker News AI作者: k08200

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 收件箱更安静、更可靠的邮件处理方式。它目前处于早期阶段,但设计理念清晰,代码开源,值得关注。