在 Mac Mini 上运行 Claude:将最实惠的 Apple 产品变为后台工作主力

@0xclayn
英语4天前 · 2026年7月17日
137K
29
8
1
111

TL;DR

一份实用指南,教您如何使用 Mac Mini 和 Claude API 设置持久的 AI 自动化流程,以处理电子邮件分类和代码审查等日常任务。

大部分自动化方案都以同样的方式消亡。有人搞了个聪明的玩意儿,在聊天窗口里跑了一次,合上笔记本去吃晚饭,然后整个东西就消失了。脚本从来不是薄弱环节,笔记本才是。它必须保持开启、插电、唤醒,工作才能继续——而笔记本的设计初衷恰恰与之相反。

Mac mini 就没有这个问题。基础版的价格大约 599 美元,功耗比一盏台灯还低,运行时几乎无声,而且它的唯一使命就是:保持开机。正是这个特性,让它成为人们悄悄将 Claude 工作流托付给的那台机器。

本文将介绍三种这样的工作流——一个会自动分类的收件箱、一个会在夜间审核的拉取请求、以及一个会给你简报而非会议标题的日历——所有这些都运行在某个角落里的 mini 上,默默完成那些不需要有人记得去启动的工作。

clayne - inline image

为什么不用 Claude 聊天界面来做这些?

你当然可以把邮件粘贴到 Claude 里,让它起草回复。你也可以把代码差异贴进去,请求审核。这篇文章里没有任何一项功能是聊天窗口做不到的。

改变的是“谁按下执行键”。

在聊天界面里,你就是触发器,每次都是。你打开标签页,粘贴内容,阅读回复,再复制到别处。一旦你停止操作,流程就停止了。它是一把只有你手握着才能动的工具。

而在 mini 上,触发器是一个定时任务、一个 webhook、或者一个文件夹里出现的新文件。Claude 完成工作,根据你预先写好的规则检查自己的输出,然后要么发布结果,要么重试——整个过程不需要任何人打开笔记本。这就是“我使用的模型”和“一个自主运行的系统”之间的全部区别。

桌面上到底放了什么

三层结构,没有一样是稀奇的:

机器。 一台 Mac mini,运行着 launchd 任务(macOS 上比 cron 更守规矩的替代品),这些任务会按计划或在文件变化时触发 Python 脚本。任何一台小型、始终在线的 PC 都能完成同样的工作——mini 只是恰好安静、运行成本低、而且小到可以藏在显示器后面。

存储。 普通的文件夹和 Markdown 文件,以及工作流直接触及的任何东西——通过 IMAP 连接的收件箱、本地克隆的 GitHub 仓库、同步到 .ics 订阅源的日历。没有任何东西依赖别人的应用。如果 mini 明天消失了,它产生的所有文件仍然可以在任何电脑上正常打开。

推理引擎。 Claude,通过 API 调用。Sonnet 处理任何需要真正判断力的任务——决定一个拉取请求是否可以安全合并、起草一条听起来像你本人的回复。Haiku 处理那些廉价、高吞吐量的任务——分类、打标签、是/否检查。这样拆分工作,是每月账单能控制在咖啡订阅费以下的主要原因。

现在来看实际的工作流。

常规任务一:你检查时收件箱已经没有噪音

大多数收件箱里并没有多少艰难的决定。里面塞满了你根本不需要干预的东西——一封新闻简报、一个日历确认、一个供应商问了你五十遍的问题。难点不在于回复它们,而在于每个问题在你还未决定是否处理之前,就已经偷走了你二十秒的注意力。

text
1运行时间: 工作日每 15 分钟一次
2监视对象: 主收件箱中的新邮件
3
4步骤:
5 1. 拉取同一线程中的最近 10 封邮件作为上下文
6 2. Claude 对新邮件进行分类:
7 - 例行(确认、新闻简报、自动回复)
8 - 需要回复(真正的问题、请求)
9 - 需要人工决策(金钱、冲突、任何模棱两可的情况)
10 3. 例行 -> 自动归档,记录到每日摘要中
11 需要回复 -> Claude 以我的语气起草回复,保存到草稿箱,
12 未经我打开确认绝不发送
13 需要人工 -> 原封不动,标记,不尝试起草
14
15检查: 分类必须包含一行理由。如果 Claude 无法给出引用实际邮件内容
16 的理由,则该邮件默认归入“需要人工”类别。
17停止条件: 批次中的每封邮件都已完成分类,或任何一封邮件重试 3 次后
18 仍未成功,则直接标记给我处理。

这里的关键规则是回退机制。任何 Claude 无法自信分类的内容,它不会去猜测——而是像往常一样直接交到你手里。这个工作流并非试图取代那 10% 困难决策的判断力,而是避免在 90% 的简单事情上浪费你的注意力。

常规任务二:拉取请求在你醒来前就完成了初审

代码审查有一个奇怪的失败模式:最重要的审查——针对晚上 11 点提交的 PR——往往会在半睡半醒中被匆忙完成,或者更糟,被一句“我明天再看”然后不了了之地合并。

text
1运行时间: 每次有新的拉取请求时,通过 GitHub webhook 触发
2
3步骤:
4 1. 拉取代码差异和关联的问题(如果有的话)
5 2. Claude 根据固定评分标准进行审查:
6 - 是否与关联问题的实际范围一致?
7 - 是否涉及 auth、支付或迁移的变更?(标记,不判断)
8 - 变更行是否有测试覆盖?(有还是缺失)
9 - 命名和结构是否与文件其余部分保持一致?
10 3. 评论直接发布在 PR 上,每个评分项 1-5 分,
11 并明确指出最弱的两个点
12
13检查: 只有引用具体行号的评论才会被发布。没有行号引用的审查
14 会被丢弃并重试——模糊的反馈不值得发布。
15停止条件: 评论已发布,或重试 2 次后,PR 保持原样,并附上一条
16 说明:自动审查无法完成。

这里没有任何自动合并的操作。它是一双永不疲倦的第二双眼睛,在你真正的第一双眼睛工作之前,就已经审查了你的 PR。使用固定评分标准进行评分,是它保持有用的关键——一个被要求“自由式审查这段代码”的模型,要么会赞美一切,要么会随机挑刺。而一个根据四个固定问题打分的模型,每次都会产生同类型的反馈,这正是让它值得在早上 8 点阅读的原因。

clayne - inline image

常规任务三:会议附带了简报,而不仅仅是标题

日历邀请告诉你时间和地点。但它几乎从不告诉你走进会议室之前真正需要记住什么——和那个人最近的邮件往来、上次会议未解决的问题、某个会被人问到的数字。

text
1运行时间: 每次有 2 名及以上参与者的日历事件前 45 分钟
2
3步骤:
4 1. 拉取最近的邮件往来,以及任何与参与者姓名或事件标题
5 关联的共享文档
6 2. Claude 撰写一页简报:
7 - 上次达成了什么共识(如果有的话)
8 - 一个值得提出的待解决问题
9 - 最近一次交流中提到的任何数字或日期
10 3. 在事件开始前 30 分钟以推送通知形式发送
11
12检查: 简报必须引用实际的先前消息或文档。如果没有找到
13 先前的上下文 -> 通知中显示“未找到历史记录”,
14 而不是编造摘要。
15停止条件: 已发送,或者如果参与者是新人,则完全跳过。

最后这条检查值得仔细琢磨。Claude 很容易在找不到真实上下文时,凭空编造一份听起来合理的简报——而一份看似合理的假简报比没有简报更糟糕,因为你可能会相信它。强制要求诚实地报告“未找到任何内容”,才使得那些真正生成的简报值得一读。

clayne - inline image

上述所有方案依赖的两条规则

剥去具体细节,每个常规任务都依赖于相同的两条护栏。

一条可检查的规则,而不是一个模糊的感觉。 “给这封邮件分类”是一个模糊的感觉。“给这封邮件分类,并且如果你不能引用证明该标签的句子,就默认归入安全类别”才是一条规则。区别在于,Claude 是在根据某个具体标准给自己的成果打分,还是仅仅生成一些听起来像那么回事的东西。

一个真正的停止条件。 上述每个常规任务都有重试次数的硬性限制,以及在无法干净完成任务时的明确定义的回退方案。没有这个,一封格式错误的邮件或一个带有损坏差异的 PR,就会在重试循环中整晚愉快地消耗 API 调用,账单会在 bug 报告之前出现。

把这两点搞对了,具体任务是什么几乎就不重要了——收件箱、代码、日历,或者其他任何东西都可以。

在构建之前,先用手动方式感受一下

这一切都不需要你一开始就接触终端。你可以在普通的 Claude 对话中运行同样的模式,看看它是否真的对你有用,然后再进行自动化:

text
1你将分轮次完成此任务,在宣布完成之前检查自己的输出。
2
3任务:
4[你想要处理的事情]
5
6轮次规则:
7- 执行工作。
8- 对照以下条件进行检查:[具体的、可检查的条件]
9- 如果未通过检查,说明问题所在,并只重新做那一部分。
10- 如果通过,则说“完成”并停止。
11- 永远不要问我澄清性问题——做出最合理的假设,
12 用一句话说明,然后继续。
13
14开始。

这就是整个机制的缩略版。没有 mini,没有 webhook,没有定时任务——只有 Claude 根据规则检查自己的输出,而不是在第一个看起来合理的草稿处就停止。如果你在同类任务上手动运行这个模式三到四次,并且每次都回来继续使用,那就说明它值得放到一台不需要你记得去运行的机器上。

防止它在凌晨 2 点崩溃的顺序

那些可靠运行这些方案的人,没有一个是先写 cron 任务的。真正经得起考验的顺序是:

  1. 在聊天界面中手动运行,直到输出始终正确。
  2. 将那个确切的提示词变成脚本——逻辑上不做任何改动。
  3. 在其他任何东西之前,先添加检查和重试限制。
  4. 只有到那时,才将其连接到定时任务或 webhook。

直接跳到第四步,你将以最痛苦的方式了解“没有停止条件”的代价,通常是在早上面对一堆重复的 PR 评论,或者收件箱里躺着上百封相同的草稿。

这到底给你带来了什么

这一切并不会让 Claude 变得更聪明。它带来的是“你使用的工具”和“无论你是否关注都在运行的系统”之间的区别。mini 并不是有趣的部分——它只是给工作流提供一个永远不需要重新打开的机器的最便宜、最安静的方式。

从本文中的手动版本开始。如果你发现自己手动运行它超过两三次,那就值得把它放到一台在你上床睡觉后仍然保持开机的盒子上。

感谢阅读本文

作者: @0xclayn

保存此文

二次创作

使用 YouMind 创作爆款文章

收集素材、拆解爆点、生成视觉资产、撰写内容,并在一个 AI 工作空间里完成分发。

了解 YouMind
写给创作者

把你的 Markdown 变成干净的 𝕏 文章

图片上传、表格、代码块,往 𝕏 上手动重排太痛苦。YouMind 把整篇 Markdown 一键转成干净、可直接发布的 𝕏 文章草稿。

试试 Markdown 转 𝕏

更多可拆解样本

近期爆款文章

探索更多爆款文章