P3-6-1:AI 免费渠道发现器与免费池
计划状态
- 计划名称:AI 免费渠道发现器与免费池
- 计划编号:
P3-6-1 - 当前状态:历史基线已完成,候选试用暂停,现行运行职责已由 P3-6-2 收口
- 所属阶段:阶段三:通用 AI Runtime MVP / P3-6 AI 免费层与来源目录
- 当前记录:本页是 P3-6 的初始发现、Registry 与首轮试用基线;实时执行证据写入阶段三当前执行摘要和计划历史。当前模型核心接入工作以 P3-6-2:官方 OmniRoute 模型核心接入 为准。
- 历史目标与完成边界:当时利用 OmniRoute 及其他公开来源完成一次初始全量免费渠道盘点,并验证目录同步、健康检查、额度记录、分级、自动选择和失败切换。薄 Runtime 迁移后,Registry 只保留研究元数据和检查证据,不再承担 Provider 运行、选择、冷却或失败切换。
- 当前筛选策略:先批量发现并登记候选,再对有明确公开目录或已提供 Key 的来源分批测试;批量登记不等于启用,也不自动导入任何凭据。
本专项属于阶段三,不创建第二套计划系统。以下正文保存 2026-07-28 至 2026-07-30 的初始发现、Runtime 直连与免费池历史证据,不代表当前架构。当前 OmniRoute 已完成 root 官方默认 npm 原生生产迁移与旧容器清理;现行模型核心、Runtime 边界、Console 和升级契约一律以 P3-6-2 为准,不得从本页恢复 Runtime Provider Router、密钥、健康/冷却或 Console 写操作。
历史目标
完成以下最小闭环:
OmniRoute/官方目录
→ 来源和模型发现
→ Free AI Source Registry
→ 模型目录同步
→ 健康与额度记录
→ 渠道等级和优先级
→ Worker 免费池选择
→ 失败后切换下一个渠道
当时目标是让 Worker 优先使用免费或低成本 Provider,并由 Runtime 处理 Local/Premium 回退。该目标路径已经退役;当前 Boss/Worker 统一通过官方 OmniRoute Combo,Runtime 不再实现免费池选择或 Provider 回退。
历史分布式底座接入声明(当时)
- 接入结论:接入。
- Network:使用主节点、
pcdell-101和pcdell-103现有 Tailnet 私有网络;只访问允许的公开 HTTPS 目录和 Provider API,不新增公网入口。 - Nomad:Nomad 继续是唯一调度器;目录同步和批量健康检查作为已注册的周期 Batch 任务运行,不创建第二调度器或新的常驻控制服务。
- Compute:主节点 Runtime 负责 Registry、路由、状态、额度、成本和失败记录;101/103 的固定 Docker Worker 负责公开目录抓取、解析、去重和无凭据健康探测。Nomad 根据既有
compute-general、batch_allowed=true和实时可用性选择节点,不硬编码单一节点。 - Storage:小型结构化记录进入 Runtime SQLite;Runtime Artifact 持久化暂停,不把大型目录快照、证据或哈希写入已退役对象存储;临时抓取文件进入任务目录或 Cloudreve 的
临时目录,完成后清理。 - Observability:Runtime 记录同步批次、Nomad Job/Allocation、实际节点、来源、模型、HTTP 状态、延迟、失败、额度快照和路由切换;Console 只读展示汇总和历史。
- Adapter 归属:
NomadAdapter提交固定同步/健康任务;StorageAdapter当前只维护 Runtime 本地状态,Cloudreve WebDAV 持久化须独立设计;FeedbackAdapter记录健康、失败、成本和切换;免费池协调器属于主节点 Runtime 内部,不新增独立服务。 - 执行映射:
main处理 Registry、路由和状态;nomad-batch只执行注册的公开目录同步、解析、去重和健康探测,不接收任意 Shell、模型生成入口或主机命令。 - 数据路径:来源元数据、模型目录摘要、等级、健康、额度和路由状态进入 Runtime;原始公开响应仅在任务临时目录内处理和清理,不恢复已退役 Artifact 写入;不保存提示词、敏感业务数据或 Provider Token。
- 凭据路径:公开目录同步可以无凭据运行;需要 Token 的 Provider 只由 Runtime ProviderAdapter 持有 root-only 密钥。Worker、模型上下文、MCP Tool、Codex 和浏览器均不可见 Provider、Nomad、Storage、Docker 或主机凭据。
- 生命周期:Runtime 创建同步任务、回收状态、校验结果、更新 Registry 和清理 Job/临时文件;失败只记录并触发下一个渠道选择或告警;不使用普通租约、epoch、fencing 或普通 TTL。
- 验收证据:必须保留来源快照、模型目录响应摘要、Registry 变更、Nomad Job/Allocation、实际执行节点、健康结果、额度记录、切换事件、Console 展示和临时清理事实。
来源范围
首轮发现来源
首轮以 OmniRoute GitHub 仓库的免费模型目录、免费额度文档和 Provider 清单为主,并补充各 Provider 官方目录和文档。至少盘点:
- OpenCode Zen
- OpenRouter 免费模型
- Gemini Free Tier
- Groq Free API
- Hugging Face Inference Providers
- Mistral Experiment
- GitHub Models
- Cerebras、SambaNova、Z.AI、SiliconFlow 等目录中出现的候选
- Local Provider:Ollama 或等价本地模型路线
OmniRoute 仓库中的数量、额度和“免费”描述只作为发现线索;AgentMeshOS 必须保存来源 URL、抓取时间、原始声明和自己的测试结果,不能直接复制为可用结论。
不纳入首轮自动接入
- 需要共享 Cookie、共享 Token 或批量账号的渠道。
- 只能通过浏览器页面操作、没有稳定 API 的渠道。
- 目录或额度完全无法追溯的渠道。
- 需要绕过访问限制、验证码、地区限制或反自动化措施的渠道。
- OmniRoute 自身的 Dashboard、CLI、MCP、Docker Socket 和主机挂载能力。
这些来源仍可登记为发现线索,但不得进入免费池运行路由。
P3-6-1.1 首轮来源盘点结果
盘点快照日期:2026-07-28。以下结论区分了上游声明和 AgentMeshOS 本次直接测试;“目录接口成功”不等于推理接口、免费额度或生产可用性已经验证。
| 来源 | 类型 | 上游资料 | 本次直接测试 | 当前等级 | 当前状态 | 下一步 |
|---|---|---|---|---|---|---|
| OmniRoute | Provider Router / 目录工具 | GitHub diegosouzapw/OmniRoute,MIT,分支 release/v3.8.49;仓库维护 freeModelCatalog 和免费额度说明 |
GitHub API、README、免费层文档和目录源码可读取 | 目录来源 | 已发现,未部署 | 继续导入候选元数据;不安装、不作为第二 Gateway |
| OpenCode Zen | Provider Gateway | 官方列出 OpenAI 兼容 /zen/v1/models 和 Chat Completions;包含多个限时免费模型 |
GET https://opencode.ai/zen/v1/models 返回 HTTP 200;此前无凭据非敏感短请求也返回结构化响应 |
二级 | 已发现,待试用 | 核对登录/API Key 路径、额度和隐私;只做非敏感试用 |
OpenRouter :free |
Provider Router | 官方文档说明支持 :free 模型和 Free Models Router,免费模型限速较低 |
GET https://openrouter.ai/api/v1/models 返回 HTTP 200;Benson 提供独立 Key 后,公开短请求返回 HTTP 200、6090ms |
二级 | 已验证,已部署 | 继续验证实际 Worker 推理、额度与回退 |
| Gemini Free Tier | 官方 Provider | 官方提供 OpenAI 兼容地址和 Free Tier | 匿名 GET /v1beta/models 返回 HTTP 403,证明目录需要认证;未发送推理请求 |
二级 | 已发现,待试用 | 核对 API Key、地区、免费模型和数据策略 |
| Groq Free API | 官方 Provider | 官方提供 OpenAI 兼容 https://api.groq.com/openai/v1 和 Free API Key |
匿名 GET /openai/v1/models 返回 HTTP 401,证明目录需要认证;未发送推理请求 |
二级 | 已发现,待试用 | 核对账号限速、免费额度和 Worker 任务适配性 |
| Hugging Face Inference Providers | 聚合 Provider | 官方提供统一 API、Provider 选择和免费层 | 尚未导入 Token;未进行推理测试 | 二级 | 已发现,待试用 | 核对免费额度、上游选择、隐私和模型目录 |
| Mistral Experiment | 官方 Provider | 官方说明无需信用卡、保守限速,适合评估和原型 | 尚未导入账号;未进行 API 测试 | 二级 | 已发现,待试用 | 核对 Experiment 账号、模型目录和限额 |
| GitHub Models | 官方 Provider | 官方 Quickstart 要求 GitHub 账号和 models PAT |
匿名访问 https://models.github.ai/inference/models 返回 HTTP 401;未进行 PAT 测试 |
四级 | 已发现,待试用 | 先确认当前新账号可用性,再决定是否进入试验池 |
| Ollama / Local Provider | 本地 Provider | 本地模型路线,不依赖外部免费额度,但消耗节点资源 | 当前 AgentMeshOS 未部署本地模型服务 | 二级候选 | 已发现,未部署 | 作为免费池失败时的 Local 回退,不纳入外部目录额度统计 |
盘点结论
- OpenRouter 已在公开短请求上完成实际推理验证,并作为已部署的二级候选进入免费池;这不等于 Worker 完整推理、自动切换或业务成功已经验证。
- OpenCode Zen 保持失败状态;其目录可读不代表当前推理可用。
- Gemini、Groq 和 GitHub Models 的匿名目录失败是认证要求,不是 Provider 不可用结论。
- OmniRoute 的
freeModelCatalog是发现线索和候选目录,不直接覆盖 AgentMeshOS 的健康、额度和等级状态。 - OmniRoute 目录中的
avoid、caution等上游标记会保存为证据字段,不自动转换为 AgentMeshOS 的可用状态。
盘点证据
- OmniRoute 仓库
- OmniRoute 免费层资料
- Gemini OpenAI compatibility
- Groq OpenAI compatibility
- OpenRouter Free Variant
- Hugging Face Inference Providers
- Mistral API tiers
- GitHub Models Quickstart
Registry 字段
Free AI Source Registry 至少记录:
source_id
name
source_url
official_docs_url
terms_url
source_type
api_base_url
wire_api
model_catalog_url
model_ids
capabilities
free_type
quota_notes
quota_snapshot
region
privacy_notes
data_classification
deployment_state
availability_level
priority
health_state
last_checked_at
last_success_at
last_failure_at
failure_reason
fallback_sources
evidence_ref
updated_at
生命周期状态固定为:
可用只表示当前测试通过,不表示永久稳定或已经用于敏感数据。暂停表示额度耗尽、接口失败、健康检查连续失败或人工暂时关闭;恢复后可重新试用。
可用等级
一级:标准 API、模型目录和低风险请求均已验证
二级:登录或 API Key 后可用,接口验证通过
三级:依赖 OAuth、浏览器会话、专用客户端或动态额度
四级:接口、额度、地区或稳定性仍不明确
五级:接口失效、来源关闭或已停用
免费池默认只从一级和二级中选择。三级保留为试验来源,四级和五级只保留目录记录。等级变化必须追加事件,不覆盖原始发现事实。
免费池路由规则
免费池只服务明确允许使用免费策略的 Worker 任务,不自动替换 Boss 的 Premium Provider。
选择因素按最小规则排序:
- 状态为“可用”。
- 等级为一级,其次二级。
- 模型能力满足任务类型。
- 数据等级符合 Provider 允许范围。
- 额度尚未耗尽。
- 最近健康检查成功。
- 优先级、延迟和成本作为并列条件。
运行中发生以下错误时,当前渠道进入冷却并尝试下一个可用渠道:
- HTTP 429 或额度耗尽。
- HTTP 5xx。
- 网络超时或连接失败。
- 模型不存在或目录失效。
- Provider 返回明确的暂时不可用状态。
切换必须记录原渠道、目标渠道、原因、任务 ID、模型和时间。自动切换不修改 API Key、Provider 配置、Nomad 配置或默认模型。全部候选失败时,记录告警并按任务策略选择 Local 或 Premium 回退;没有回退时返回明确失败,不伪造完成。
周期同步与健康检查
周期任务分为三类:
- 目录同步:读取 OmniRoute 公共目录、官方模型目录和来源文档,去重后写入 Registry。
- 轻量健康检查:优先请求模型目录;只有已启用且有凭据的来源才发送最小非敏感测试请求。
- 额度快照:记录 Provider 返回的剩余额度、限速、重置时间或“未知”,不猜测额度。
周期任务使用既有 Nomad Batch 和固定 Worker 镜像。同步频率先使用低频配置,并提供 Console 的“立即同步”和“立即检查”;频率、来源和测试开关由 Runtime 配置管理,不在浏览器直接调度 Nomad。
Console 页面
新增 admin-only 的“AI 免费池”工作区,先提供最小可用视图:
- 当前可用渠道数量和模型数量。
- 渠道名称、等级、模型、健康状态、最近检查时间和额度状态;桌面端的密钥与测试/保存/暂停操作保持单行,窄屏才换行。
- 当前优先级和替代渠道。
- 最近失败、冷却和自动切换历史。
- 每个来源独立显示红黄绿可用状态:绿表示已启用且最近真实短请求成功,黄表示待测试,红表示失败或冷却,灰表示已暂停。
测试、启用、保存密钥、暂停。测试仅发送固定公开短文本,直接检验当前来源,不使用回退掩盖失败;成功才可进入路由候选。明确无需密钥的来源不显示 Key 输入或保存操作。- 候选来源目录与运行池共用同一份 Registry:候选目录只显示尚未接入运行池的发现记录并允许登记;已启用来源只在“来源与模型”显示一次。Premium Provider 页面不重复显示来源目录。
- 同步批次、Nomad Job、实际节点和结果摘要只读信息。
页面不回显 Token,不直接暴露 Nomad API,不允许浏览器直接提交任意任务或命令。
实施步骤
P3-6-1.0:OmniRoute 架构复核(进行中,暂停后续候选试用)
2026-07-28 起暂停对其余 OmniRoute 候选的直接测试。原因不是目录解析失败,而是需要先以完整目标解析范围反推 Runtime 的 Adapter 边界,避免把当前 Chat Completions 能力错误当作候选筛选条件。
固定研究对象:OmniRoute release/v3.8.49,提交 3b515d90b3848cfa49ce7d8f0f718bcde59cf507。本次定向源码核查覆盖官网 Quick Start、Provider Plugin Manifest、Provider Registry、协议转换、Executor Registry、Credential Gate、Cooldown、Auto Combo 和部署说明。该版本的 open-sse 目录含约 1,191 个 TypeScript 文件、200 个 Provider Registry 入口、130 个 Executor 文件、56 个 Translator 文件和 12 个 Token refresh Provider 模块。
已验证事实:
- OmniRoute 是本地完整 AI Gateway,默认暴露单一 OpenAI-compatible
/v1/*入口,Dashboard/数据库/连接管理/路由/协议转换均属于同一服务;它不是单纯的 Provider 目录或可直接嵌入的轻量 Python 库。 - Provider Registry 是其静态事实源,包含格式、认证头/前缀、端点、模型、能力、动态 URL、OAuth、Session Pool 和专用 Executor 信息;
Provider Plugin Manifest明确将完整元数据与 Sidecar 可执行资格分开。 - 默认 Executor 仅覆盖一部分静态 HTTP Provider;Gemini、Claude、Responses、OAuth、Cookie/Web、CLI、动态 URL 和会话池等依赖 Translator 或专用 Executor。OmniRoute 自己也不会把所有 Registry 条目交给同一个通用 Sidecar。
- 其官方 Manifest 文档建议:先导入完整元数据,再只让静态端点/API Key/default executor 的候选进入 Sidecar;其余保留在原路径,直到实现等价 Adapter 和遥测验证。
本项目的候选资料模型据此调整为三层,而不是“能否由当前 Adapter 调用”的二元筛选:
完整 Provider Manifest
├── 协议与认证元数据:全部解析并保存
├── Adapter 能力矩阵:当前 Runtime 是否能执行、需要何种 Adapter
└── 运行资格:独立的测试、健康、凭据、额度和路由状态
待决技术选型:
| 方案 | 可维护性 | 部署复杂度 | 扩展性 | 结论 |
|---|---|---|---|---|
| 直接部署 OmniRoute 为私有 Gateway | 上游承担大量协议适配,但引入其 Dashboard、SQLite、Node、凭据与完整控制面 | 高,新增常驻服务和第二个模型路由中心 | 覆盖最广,但与 Runtime Provider Router 重叠 | 未决定,须单独获得架构授权后才可测试 |
| 导入 OmniRoute Provider Plugin Manifest,Runtime 自己执行 | 元数据与执行边界清晰,继续由 AgentMeshOS 管理 Token、任务、成本和 Console | 低,不新增 Gateway | 可按协议族逐步补 Adapter | 当前推荐方向 |
| 逐 Provider 手工维护 | 初期简单,后续维护成本最高 | 低 | 最差,容易遗漏协议和模型能力 | 不采用 |
当前结论:先把 OmniRoute Manifest 作为完整发现/解析事实源,再决定 Runtime 要补的协议 Adapter;不安装、不部署、不把 OmniRoute 当作当前系统依赖,也不继续批量候选试用,直到该架构复核完成。
研究证据:
P3-6-1.1:目录和来源盘点
- 固定 OmniRoute 仓库版本和资料快照。
- 读取免费模型目录、额度说明、Provider 清单和更新日期。
- 补充官方来源地址、模型目录地址和初始证据。
- 形成首轮候选清单,去重并标记来源状态。
P3-6-1.1b:OmniRoute 全量候选批量发现(已完成)
- 使用固定的 OmniRoute
release/v3.8.49生成目录作为唯一只读输入,不安装 OmniRoute,不启动其 Dashboard、CLI、MCP 或 Gateway。 - 由 Nomad 固定 Worker 读取并解析目录,按 Provider 聚合模型、免费类型、上游 ToS 标记和额度字段;本快照确认
81个 Provider、523条模型记录。 - Runtime 将候选统一登记为
pending_evaluation / not_deployed / unknown;已有 OpenRouter、OpenCode Zen 等 Runtime 记录只按来源地址去重,不覆盖密钥、健康、启用状态或实际模型目录。 - 本工作包只完成“筛选和登记”,不批量试用、不批量启用;登记后再从候选中选择有公开目录或已有 Key 的来源做短请求测试。
P3-6-1.2:Registry 扩展
- 扩展现有
free_ai_sources及相关模型、健康、额度和事件记录。 - 增加等级、优先级、部署状态、健康状态、最后成功/失败和替代渠道。
- 保留来源快照和更正记录,不覆盖原始发现。
P3-6-1.3:Nomad 同步任务
- 注册固定的目录同步和健康检查任务类型。
- 使用现有
NomadAdapter和 101/103 Worker 标签选择机制。 - 拒绝任意命令、内网地址、localhost、元数据地址和外部写请求。
- 验证 Job、Allocation、节点、回传校验和清理。
P3-6-1.4:Runtime 免费池协调器
- 实现一级/二级候选选择。
- 实现额度、健康和冷却状态判断。
- 实现 429、5xx、超时和模型失效后的切换。
- 写入切换、失败、成本和回退事件。
- 保持 Boss Premium Provider 配置不变。
P3-6-1.5:Console 工作区
- 增加 admin-only “AI 免费池”页面。
- 展示目录、等级、健康、额度、优先级和切换历史。
- 增加立即同步、立即检查、启用和暂停操作。
- 复用现有认证、SSE 和 Runtime 私有接口,不新增公网端口。
P3-6-1.6:首轮真实试用
- 先使用公开模型目录和无凭据测试。
- 再由 Benson 在 Console 提供明确的测试 Provider 配置。
- 只发送非敏感短请求或目录请求。
- 验证至少两个免费候选、一个 Local 或 Premium 回退。
- 保存真实请求、Token、额度、失败和切换证据。
四态执行清单
| 工作包 | 当前状态 | 完成口径 |
|---|---|---|
| P3-6-1.1 目录和来源盘点 | 已完成 | OmniRoute 当前目录和其他官方候选已完成首轮事实盘点,目录访问和认证边界已记录 |
| P3-6-1.1b OmniRoute 全量候选批量发现 | 已完成 | 固定 Worker 已在 101 完成 release/v3.8.49 只读目录扫描,生产回传 80 个 Provider 候选并完成 Registry 去重登记;所有新记录仍为待评估/未部署 |
| P3-6-1.2 Registry 扩展 | 已完成 | 来源、模型、健康检查、额度快照、等级、部署状态和证据可持久化,旧库迁移已验证 |
| P3-6-1.3 Nomad 同步任务 | 已完成 | 固定 Worker 任务类型、HCL、公开目录回传和 Registry 写入已通过测试;真实 OpenCode Zen Smoke 已在 101 完成,回传、Premium Boss 审核、Registry 写入和 Job 清理均已验证;周期调度仍属于后续协调器工作 |
| P3-6-1.4 Runtime 免费池协调器 | 进行中 | 候选选择、公开 Chat Completions Adapter、OpenRouter 实际选择、HTTP 429 冷却、OmniRoute 免费 Combo 真实调用和失败记录已验证;仍缺第二个外部来源的真实切换与 Local/Premium 实际策略回退证据 |
| P3-6-1.5 Console 工作区 | 已完成(真实免费探针入口已补齐) | admin-only AI 免费池视图展示来源、模型、健康、冷却、路由历史和候选三态;“免费路由测试”显示实际 Provider、模型、响应和延迟,失败不会被本地回落伪装成成功 |
| P3-6-1.6 首轮真实试用 | 已完成 | OpenCode Zen 与 OpenRouter 已完成公开短请求;两条来源均返回 HTTP 200 并写入健康历史;此前 OpenCode 429 失败、冷却和确定性 Local 回落证据保留 |
| P3-6-1.7 专项验收 | 未开始 | 初始全量目录、自动更新、免费池和失败切换证据完整 |
验收与发布
git diff --check、Python/TypeScript/Shell 检查通过。- 计划状态检查、MkDocs strict 和全站链接检查通过。
- OmniRoute 资料快照、官方来源、模型目录和 Registry 对应一致。
- 至少两个免费候选完成目录或健康验证;未验证来源不进入可用池。
- Nomad 真实 Job/Allocation 在 101 或 103 完成并清理。
- Worker 无法读取 Provider、Nomad、Storage、Docker 或主机凭据。
- Console 能显示免费池、额度、健康、冷却和切换历史。
- 模拟 429、超时、5xx 和模型失效后,Runtime 能切换或明确失败。
- Premium Provider、Boss 会话和现有 Gateway 只读职责不受影响。
- 发布前保留回滚点;失败时停用新增免费池配置,不删除历史 Registry 和证据。
P3-6-1.2 已完成证据
free_ai_sources已增加官方文档、API 地址、协议、目录、免费类型、额度快照、数据等级、部署状态、可用等级、优先级、健康状态、失败和时间字段。- 新增
free_ai_source_models,模型 ID 与来源独立保存并去重。 - 新增
free_ai_source_checks,为后续健康检查保留追加式历史表。 - 旧版 Runtime SQLite 在启动时自动补齐新增字段;旧的来源登记请求保持兼容。
- 运行态接口仍只返回非敏感 Registry 数据,不保存或回显 Provider Token。
- 本地隔离环境执行
PYTHONPATH=. ../temp/ai-runtime-test-venv/bin/pytest -q:当前全套 25 项通过。 - P3-6-1.3 新增
free_source_sync/free_source_health固定 Worker 类型;Nomad HCL 传递任务类型,Worker 只读取公开 JSON 目录并回传模型、HTTP 状态和延迟。 - 免费目录回传可自动登记来源、模型列表和
free_ai_source_checks健康历史;周期调度尚未实现,未提交常驻或周期 Job。 - 首次生产 Smoke 任务
379f7f4081bb4fc6实际调度到pcdell-101,Worker 目录读取成功,但回传路径的同步Runner.run_sync()被错误置于异步事件循环,任务随即清理。修复后,历史离线任务也保持离线快照,避免把演示模型错误发送到后来配置的 Premium Provider。 - 修复后的真实 Smoke 任务
e9b86630d39747ac实际调度到pcdell-101,Allocationc2205d5a-3652-864f-1a27-9a8b2689fc82以退出码0完成。Worker 从https://opencode.ai/zen/v1/models读取 HTTP200、659ms目录,Runtime 登记来源、模型和健康历史;Premium Boss 快照app.anbalu.top / gpt-5.6-terra自动审核通过,并记录 Token 和人民币精确成本。清理后 Runtime 执行状态为cleaned,Nomad Allocation 列表为空。
P3-6-1.4 初始协调器证据
ProviderRouter.select_free_source只选择status=enabled、deployment_state=deployed、health_state=healthy、等级 1/2、数据等级匹配且模型目录包含目标模型的来源。- 选择、无候选和冷却均追加到
free_ai_route_events与 Runtime 事件流;来源失败可进入cooldown,下一次选择不会重复使用该来源。 - admin-only 接口提供候选选择、冷却和路由历史读取;不回显 Token、不执行推理、不自动启用来源、不修改 Premium Provider。
- 本地隔离环境执行 28 项 Runtime 测试通过,覆盖候选选择、HTTP 429 冷却、无候选结果和路由事件历史。
- OpenCode Zen 已以
chat_completions协议、laguna-s-2.1-free、公开数据等级启用为测试来源。Runtime 容器内最短请求实际收到 HTTP429,来源自动进入cooldown,路由历史记录选择、冷却与无候选,随后回落到deterministic-demo;不重试或绕过限额。 2026-07-28OpenRouter 已保存 Benson 提供的独立 API Key;Runtime 直接公开短请求返回 HTTP200、6090ms,来源状态为enabled / deployed / healthy。随后协调器以openai/gpt-oss-20b:free和公开数据等级创建选择事件,任务标识free-pool-openrouter-smoke-20260728,实际选择该来源。此事件证明选择策略,不代表 Nomad Worker 已执行模型推理。
P3-6-1.1b 批量发现实施证据
- OmniRoute
release/v3.8.49的固定生成目录前期离线快照记录为81个 Provider、523条模型记录;上游免费类型和 ToS 标记仅作为发现字段保存,不转换为可用结论。生产 Worker 本次实际解析回传80个 Provider 候选,Registry 以真实回传为准,前期快照与生产解析的 1 个数量差异列为下一次目录同步核对项。 - Runtime 新增固定
free_source_discoveryWorker 类型和 admin-only批量发现候选操作;Worker 只能读取固定目录地址,禁止任意 URL、命令或凭据。 - 首次真实任务
a51ee781b0c0472a曾因 Worker 镜像未包含free_catalog.py被预检阻断;修复后任务结果被自动审核,但旧 Worker 回传超时触发一次性 Token 重试,Nomad 记录为失败,根因和历史均保留。 - 修复 Worker 镜像清单和回传等待时间后,最终任务
04ea8ef7ea624edc在pcdell-101完成:Nomad Jobagentmeshos-runtime-04ea8ef7ea624edc、Allocation9a11aa3b-9886-6e92-88b4-359ff815c31e、退出状态complete;AI Boss 自动审核通过,任务回传 80 个候选,Registry 共 80 条 OmniRoute 候选记录,其中 78 条为新增待评估/未部署,OpenRouter/OpenCode 既有记录按来源去重。Job 已无运行中的 Allocation,Runtime 健康检查通过。 - 本次只读扫描未安装 OmniRoute、未导入未知 Token、未启用新增 Provider;生产候选状态仍保持
pending_evaluation / not_deployed / unknown。
P3-6-1.5 初始 Console 工作区证据
- 现有 Console 新增 admin-only
AI 免费池视图,展示启用、健康、冷却、来源模型、失败原因和路由历史。 - 页面只通过既有 Runtime 私有反代读取来源与路由事件;对已有完整 API 地址和模型目录的来源提供暂停/重新启用,不展示 Provider Token,也不直接调用 Nomad。
2026-07-28管理员真实打开页面并执行暂停、重新启用;Runtime 日志记录对应 API 调用,当前来源状态与 UI 一致。历史paused事件随后明确改名为“最近事件/路由与来源操作历史”,不再与当前状态混淆。2026-07-28新增每来源直接测试:Runtime 只发送固定公开短文本,不使用免费池回退;成功写入healthy并显示绿灯,未测试显示黄灯,失败或冷却显示红灯,暂停显示灰灯。密钥仍只存在 Runtime root-only 加密边界。- 同日 OpenCode Zen 真实测试返回
HTTP 429,延迟335ms;Runtime 写入free_ai_source_checks(check_type=inference,state=failed,error_code=http_429),Console 显示红色“不可用”。该结果是来源当前不可用证据,不是免费推理成功结论。
P3-6-1.6 首轮真实试用进展
- OpenRouter 公开模型目录
https://openrouter.ai/api/v1/models返回 HTTP200,登记 15 个:free模型。Benson 已通过 Console 保存独立 API Key;Runtime 的公开短请求返回 HTTP200、6090ms,状态更新为enabled / deployed / healthy。密钥不回显,也不进入 Worker、模型上下文或浏览器存储。 - OpenCode Zen 的首次真实无凭据推理曾收到 HTTP
429并按 Runtime 策略进入冷却;本轮复测返回 HTTP200,延迟约7566ms,用量51 tokens。 - OpenRouter 本轮真实短请求返回 HTTP
200,延迟约781ms,用量40 tokens;使用既有独立 API Key,密钥不回显。 - 两条来源均通过免费池选择接口被选中;此前 OpenCode 429 后回落至
deterministic-demo的路由事件仍可追溯。该回落属于当前 Local/确定性测试回退,不代表 Premium 自动回退已完成。 - P3-6-1.6 的双来源短请求验收已完成;Worker 仍只执行目录抓取,不能把来源直连推理测试写成 Worker 模型推理验收。
历史明确不做(当时边界)
- 当时不安装 OmniRoute;该限制已被后续 P3-6-2 的官方原生迁移取代。
- 不新增外置模型网关、第二调度器或常驻中间服务。
- 不批量注册账号、不抓取共享 Token、不绕过验证码或限额。
- 不把未知渠道自动标记为可用。
- 不把免费池用于未脱敏私有数据。
- 不把免费调用成功等同于业务成功或盈利成功。
- 不把免费池做成新的审批中心或普通任务门禁。
专项出口
只有以下事实都有证据时,P3-6-1 才能标记完成:
初始候选目录已登记
→ Registry 可持续更新
→ 目录和健康检查可运行
→ 免费池可选择候选
→ 失败可切换
→ Local/Premium 回退可记录
→ Console 可见
→ 101/103 与 Nomad 证据完整
免费额度和 Provider 状态会持续变化。专项完成后,Registry 仍由周期同步维护;新增或停用来源追加历史事件,不覆盖原始结论。