# FireAI Pilot 现在会分别学习每个网络：家、咖啡馆和工地各有各的答案

> FireAI 0.1.8 让 FireAI Pilot 学会区分网络和安全模式：在家中允许的连接，在咖啡馆或工地的 Wi-Fi 上可以继续被拦截。

FireAI Security & Research Team (HisnLabs) · Published 2026-09-30
Canonical: https://hisnlabs.com/zh/blog/fireai-pilot-anwangluo-xuexi

一位在 Reddit 上看过 FireAI 演示的读者提出的问题，正是这次发布所回答的。他预计自己会一直使用 Paranoid 模式，“毕竟工地 Wi-Fi 上会冒出那么多来路不明的设备”，并想知道 FireAI Pilot 是按网络分别学习，还是为所有情况构建同一个配置。

> 自动驾驶模式是真的按网络分别学习，还是随着时间推移构建一个全局配置？
>
> — FireAI 演示帖下的一位 Reddit 评论者

在 FireAI 0.1.8 之前，如实的回答是：整台 Mac 共用一个配置。从 0.1.8 起，两者兼有。[FireAI Pilot](https://hisnlabs.com/zh/docs/autopilot) 保留在任何地方都成立的经验，并增加属于某一个网络、属于开放 Wi-Fi 整体以及属于每种安全模式的经验。

## 为什么单一配置不适合笔记本电脑

笔记本电脑一天会切换好几次网络，而同一个连接的正确答案也随之改变。照片同步客户端在家里没有问题。但在咖啡馆的热点或共享的工地网络上，同样的流量会让该网络上的所有人知道你在使用哪项服务以及何时使用，你可能更希望它等一等。美国联邦贸易委员会指出，由于如今大多数网站都会加密流量，公共热点比过去更安全；但加密保护的是所发送的内容，而不是某个 App 正在与某台服务器通信这一事实。

在单一全局配置下，FireAI Pilot 把这些选择视为相互矛盾：周一拦截，周二允许。它要么每次都询问，要么采用最后一次的答案。对于在不同地点之间移动的人来说，这两种做法都不符合其本意。

## 经验如何被区分开

FireAI Pilot 是一个在 Mac 上运行的小型决策模型。它是基于具名信号的逻辑回归，这些信号包括 App、其签名、目的地所属公司、流量类型，以及该 App 以前是否用过这个目的地；你的每个回答都会微调相关信号的权重。0.1.8 版新增了将网络或安全模式与上述事实结合起来的信号：

| 信号 | 捕捉的内容 | 适用范围 |
| --- | --- | --- |
| 此网络 | 你在这个 Wi-Fi 上按 App、目的地和流量类型作出的回答 | 这个 Wi-Fi，或某个已保存位置的所有 Wi-Fi |
| 开放 Wi-Fi | 你在没有密码或安全性较弱的网络上作出的回答 | 下一个开放网络，即使从未见过 |
| 安全模式 | 你在 Home、Coffee shop、Paranoid 或 Under attack 模式开启时作出的回答 | 开启该模式的所有网络 |
| 所有地方 | FireAI Pilot 原本就使用的信号 | 所有网络 |

*每个回答都会同时训练全局信号以及网络和模式信号。*

由于这些信号是叠加的，在任何地方都成立的经验（“这位用户会拦截遥测”）在 FireAI 从未见过的网络上依然适用，而只在某个地方成立的经验（“在家允许，在工地拦截”）则由网络信号学习，并只留在那里。

> FireAI Pilot 在你的 Mac 上从你自己的回答中学习。在你的网络上试试看。 [Download FireAI for Mac](https://hisnlabs.com/en/download)

## 四个地方，四种答案

- 工地 Wi-Fi，Paranoid 模式：网络上有来路不明的设备，于是你拦截了一次同步客户端和聊天 App 的文件预览。此后 FireAI Pilot 会在那里拦截它们，只在出现新情况时再次询问。
- 开放的咖啡馆网络：[Coffee Shop Armor](https://hisnlabs.com/zh/docs/coffee-shop-armor) 会在你加入时切换到 Coffee shop 模式。你在上一家开放咖啡馆拦截过的内容在这里同样有效，你还没回答任何问题就已生效。
- 从未去过的酒店或机场：对该网络一无所知，因此由开放 Wi-Fi 和安全模式的经验，加上在任何地方都成立的经验来发挥作用。
- 家：同样的 App 可以自由连接，因为你在家中的回答训练了家庭网络的信号。你在别处选择的拦截在这里只是一个参考，绝不是决定性的一票。

## 你过去的决定按网络加权

在使用模型之前，FireAI Pilot 会先查看你自己过去作出的类似决定。在 0.1.8 中，在其他网络上作出的决定，其权重约为在本网络上作出的决定的三分之一。因此，在工地 Wi-Fi 上拦截两次，就足以让它在工地据此行动，但在家里则不够。当你在不同网络上的选择不一致时，FireAI Pilot 会询问你而不是猜测，并从你的回答中学习。

## 哪些内容留在 Mac 上

为了区分网络，FireAI 通过 Apple 的 CoreWLAN 框架读取当前 Wi-Fi 的名称。macOS 只向拥有定位权限的 App 提供该名称，而 FireAI 原本就会为[按 Wi-Fi 切换配置](https://hisnlabs.com/zh/docs/switch-profiles-by-wifi)申请这一权限。FireAI 存储的是该名称或其所属已保存位置的简短指纹，绝不存储名称本身，而且只保存在你的 Mac 上。“Forget What FireAI Learned”（忘记 FireAI 学到的内容）会将它连同 FireAI Pilot 学到的其他内容一并清除。

## 局限

- 没有定位权限时，或使用有线连接时，FireAI 无法区分网络，FireAI Pilot 会像以前一样为整台 Mac 学习一个配置。
- 名称相同的两个不同网络，对 FireAI Pilot 来说是同一个网络。当已知名称以不同的接入点或更弱的安全性出现时发出警告的，是另一项功能 [Trusted Wi-Fi check](https://hisnlabs.com/zh/docs/coffee-shop-armor)。
- 重命名某个已保存位置会让其网络经验重新开始；在任何地方都成立的经验会被保留。
- 网络经验会改变 FireAI Pilot 的决定和建议，但绝不会覆盖你自己的规则、安全模式的拦截或紧急断网开关。

## FireAI 0.1.8 build 3 的其他内容

这个构建版本还降低了 FireAI 自身的 CPU 占用。Home 现在只重绘发生变化的部分，世界地图的地球仪以每秒 24 帧绘制，并在 FireAI 处于后台时暂停，3D 吉祥物在入场动画结束后停止绘制。完整列表见[发布页面](https://hisnlabs.com/en/whats-new)。FireAI 可以在设置中自行更新，你也可以[下载它](https://hisnlabs.com/zh/download)并免费试用 17 天。

## FireAI 和 HisnLabs 在其中扮演的角色

每个地点只需决定一次，其余的由 FireAI Pilot 在你的 Mac 上记住。

FireAI 是 HisnLabs 自己的产品：一款直接在 Mac 上运行的 AI 防火墙。它用通俗易懂的语言显示你的应用建立的每一个连接，并让你决定哪些数据可以离开你的 Mac——它的 AI 在本地运行，因此你的流量永远不会发送给我们或任何其他人。HisnLabs 的安全研究团队负责让这些判断保持准确：归类哪些域名只是普通的遥测、哪些属于真正的服务，追踪连接背后的国家和网络，并用真实的流量模式训练设备端模型（FireAI Pilot 功能）——这一切都不会离开你的 Mac。

你可以阅读它背后的技术决策，或试用 FireAI 17 天：[HisnLabs 出品的 FireAI](https://hisnlabs.com/zh/download)。

## Sources

- [FireAI docs: FireAI Pilot learns each Wi-Fi network and each security mode](https://hisnlabs.com/en/docs/fireai-pilot-learns-per-network)
- [FireAI docs: FireAI Pilot](https://hisnlabs.com/en/docs/autopilot)
- [FireAI docs: Coffee Shop Armor](https://hisnlabs.com/en/docs/coffee-shop-armor)
- [FireAI docs: Switch profiles by Wi-Fi](https://hisnlabs.com/en/docs/switch-profiles-by-wifi)
- [U.S. Federal Trade Commission: Are Public Wi-Fi Networks Safe? What You Need To Know](https://consumer.ftc.gov/articles/are-public-wi-fi-networks-safe-what-you-need-know)
- [Apple Developer: CWInterface ssid()](https://developer.apple.com/documentation/corewlan/cwinterface/ssid())
- [Wikipedia: Logistic regression](https://en.wikipedia.org/wiki/Logistic_regression)
