「免费模型清单」是个错的抽象
静态清单里写着「免费」,不代表你的账户此刻真的能完成一次请求。这句话是整个项目的起点。
这篇讲的是设计取舍。想看功能全貌和安装步骤,读 oaf.asia 上的原文。
清单会骗人,而且是善意地骗
「哪些大模型可以免费用」这个问题,网上从不缺答案。GitHub 上有 star 过万的 awesome 列表,社区里每周都有新的整理帖。
问题是这些清单记录的是声明,不是证据。
一个模型出现在清单里,意味着某个时刻某个人看到某个页面写着 free。它不告诉你:这个额度需不需要特定地区、要不要信用卡、有没有邀请资格、今天有没有被限流、模型 ID 和你的客户端协议兼不兼容。等你注册完、拿到 key、改完配置,才在一串看不懂的报错里发现此路不通。
于是「免费」的真实成本变成了试错时间,而清单越长,试错成本越高。
把一张表拆成两张
模力自由港 的核心设计只有一句话:公开目录只产生候选,真实请求才产生可运行。
两张表,中间隔着一次实际调用:
- 候选目录 —— 模型雷达定时扫公开目录,筛出明确零价格、公开 HTTPS 且尚未登记的。它们只是候选,不会因为「看起来免费」就进正式路由
- 可运行目录 —— Live Status 向真实上游发最小请求,记录成功状态、延迟和脱敏错误。你看到的「可用」,来自实际响应证据
这个拆分带来的不只是准确性,还有可解释性:当某个模型不可用,你知道它卡在哪一层 —— 是还没验证过的候选,还是验证过但此刻上游挂了,还是密钥/额度问题。清单给不了这个信息,因为清单只有一个状态。
候选升级成可运行也不是自动发生的。要同时满足公开 HTTPS、协议兼容、专用环境变量和真实响应,才允许进入可信路由。
第二个决定:路由器是个高权限中心
统一路由这件事有个容易被忽略的副作用 —— 它天然是个高权限中心。
它要接触多个提供商的 API Key,还要改写你开发客户端的配置。换句话说,一个「帮你省钱的小工具」,实际拿到的权限比大多数 SaaS 都大。
所以自由港把这个控制面留在本机,默认只监听 127.0.0.1。客户端拿到的是本地代理 Token,不接触任何上游密钥。公开网站发布的只是脱敏后的模型元数据、候选资料和验证状态;本地的 registry.yaml、API Key、代理 Token 和响应正文都不进公开目录。
使用分析同理:成功率、p50/p95、Fallback 挽回和 Token 统计只保存在本机;Prompt、响应正文、工具参数、API Key 和原始请求 ID 都不进数据库。
这是一条真正的取舍 —— 云端集中式路由能做得更聪明(跨用户的可用性数据是很好的信号),但代价是把密钥和用量交出去。这个项目选了另一边。
第三个细节:只在首字节前 fallback
虚拟模型会按能力、健康度、成功率、延迟、额度和免费证据挑候选,Provider、匿名 Key 槽和模型三层隔离。
但降级有一条硬规则:只在首字节前 fallback,流式开始后绝不重放。
这条值得单独说。自动重试是提高成功率最便宜的手段,但一旦响应已经开始流式输出,重放意味着用户可能看到两段拼接起来的、彼此矛盾的内容 —— 而且他没法知道发生过这件事。把「更高的成功率」和「不撒谎」放在一起选,这里选了后者。
谁用得上
一个端口接九类客户端:Codex、Claude Code、OpenCode、Kimi CLI、OpenClaw、WorkBuddy、Hermes、Pi、OMP,从同一注册表同步。Responses、Anthropic Messages、OpenAI 兼容接口和 MCP 通道同时可用。
适合想低成本试不同模型、又不想反复折腾配置的人:AI 编程工具用户、独立开发者和学生、模型评测者,以及在意密钥边界的团队。
得说清楚的边界
- 免费额度、账户资格和模型目录会随提供商政策变化。 重要生产任务仍应准备稳定付费通道和降级方案 —— 这个项目降低的是试错成本,不是可用性承诺
- 当前维护仓库是私有的,源码安装需要 GitHub 仓库读取权限
- 候选自动接入不是默认行为
安装、七项服务的完整说明和中文仪表盘截图,都在 oaf.asia 的原文里。