• 请不要在回答技术问题时复制粘贴 AI 生成的内容
hotoh521
V2EX  ›  程序员

我开发了一款接入 20+免费大模型渠道的 AI 编程工具

  •  
  •   hotoh521 · 3 days ago · 2424 views

    我做了十几年游戏开发,从 Unity C# 做到 Unreal C++,后来又碰了不少自研引擎。去年开始深度用 Claude Code 和 Codex CLI 写代码——不是那种"帮我写个排序"的用法,是让它读整条渲染管线,跨十几个文件改逻辑,加物理调试工具,修多线程 bug 。

    Claude Code 的质量确实能打。它会先读项目结构,搞清楚调用链,再动手改。改了之后跑编译验证,报错了自己查,查到再修,循环到过。Codex 补刀也准,尤其是 C++ 模板报错的时候,它能把那一大坨 error 日志翻译成人话,告诉我问题在哪一行。

    但账单是真的顶不住。

    Claude Code 的 Dynamic Workflows 很能打,但账单更狠

    先说一下 Claude Code 的 Dynamic Workflows 是什么——不是"付费功能",是 Claude Code 内置的一套工作流执行系统。你写一个 .js 脚本,里面用 agent()parallel()pipeline()consensus() 这些函数定义步骤,Claude Code 就会按你的流程自动调度——串行、并行、投票、验收,全自动跑。

    举个例子,你想审查代码质量,可以这样写:

    parallel([
      agent("扫描潜在 bug"),
      agent("检查安全漏洞"),
      agent("审查性能热点"),
      agent("评估可维护性"),
    ]);
    consensus([...], { strategy: "multi-lens" });
    

    四个 agent 并行扫代码,一个 consensus 节点汇总投票。一个简单的流程。

    但这玩意儿一旦展开就是算力黑洞。一个 parallel 块 5 个 agent ,一个 pipeline 里 3 个阶段,每个阶段再并行 5 个——三层嵌套就是 75 个 agent 出来。 每个 agent 独立调 API 、读代码、推理、输出,一场下来几千次 API 调用。改个复杂点的功能,几十上百个 agent 不是夸张,是常态。

    Claude Code 的 Dynamic Workflows 本身不收费。 但它是"多 agent = 多 token"的架构——agent 的规模和你承担的成本线性相关。你用 100 个 Claude agent 跑一个大型重构,不管 Anthropic 收不收费,token 账单都能把月预算打穿。

    这才是核心矛盾:多 agent 协作是刚需,但全程用 premium 模型养一支 agent 军团,成本根本兜不住。

    免费模型到处都有,但没统一的管理方式

    我手上有这些免费/低成本渠道的 key:

    • GitHub Models:免费 playground access ,有速率限制,需要 GitHub token (models:read scope )
    • Hugging Face Router:免费用户每月有 Inference Provider 积分
    • SambaNova Cloud:Free Tier ,不绑支付方式就能用,有日请求/Token 上限
    • Together AI:注册送试用额度
    • Groq:免费层,推理速度确实快
    • Gemini:Google 免费层
    • DeepSeek / Kimi:白菜价
    • NVIDIA NIM / OpenRouter / Mistral / Cerebras / Fireworks / Z.ai:各有免费或试用渠道
    • LLM7 / Kilo Gateway:无 key 渠道,开了就能用
    • 本地的 Ollama / LM Studio / llama.cpp

    渠道是不少。但每个都要单独注册、配 key 、记 env 。今天想用 Groq 切一下,翻半天邮件找 key ;明天想试 SambaNova 的 DeepSeek-V3.1 ,又得重新配一轮。

    更关键的是:你有了便宜模型,不等于它能写出好代码。 免费模型的单次回答质量,跟 Claude Code / Codex 比确实有差距——推理深度不够、上下文一长就跑偏、复杂重构容易翻车。所以很多人手里攒着一堆免费 key ,最后还是老老实实给 Claude 充钱。

    我想解决的问题就一个:用免费/便宜的模型,通过工作流编排,跑出跟 Claude Code 、Codex 一样质量的产出。 一个模型单打独斗不行,那让它当一条流水线里的一个工位——规划用便宜的、执行用便宜的、验证用便宜的,多个便宜模型并行交叉审查,质量差距靠结构和协作来弥合。

    FreeUltraCode:把这些渠道统一管起来

    FreeUltraCode 是个本地桌面应用( Tauri 2 + Rust ,源码在 GitHub 上)。它做的事情很直接:

    一个下拉菜单,切渠道。

    底部 Channel 选择器里列出所有你配好的渠道。想用哪个点哪个,接下来的对话走那条线。注册三步:选 channel → 点"去注册"跳官网拿 key → 贴回来保存,状态变绿色 Ready 。

    它不替你翻墙、不替你注册、不存你的 key 到任何服务器。所有配置、聊天记录、API key 全在你本地机器上。

    关键是:中间切模型,上下文保留。 前面聊的文件引用、中间结论、工具输出,换渠道之后还能接着用。不用重新喂上下文。

    实际用法(游戏开发场景)

    需求:"给这个第三人称角色控制器加上攀爬系统"
    
    第一步 → 切 GitHub Models / Groq
      让 AI 扫项目结构,找到 CharacterMovement 、Input 、Animation 三层
      读相关代码,列出现有接口和需要改的地方
      (免费模型干这些够了)
    
    第二步 → 切 Claude Code / Codex
      核心逻辑来了——状态机新增 Climbing 状态,
      物理查询改 Raycast → CapsuleTrace ,
      动画蓝图加 BlendSpace
      (贵的模型做关键设计决策)
    
    第三步 → 切 Together AI / DeepSeek
      补测试用例、跑 Lint 、生成注释、写提交信息
      (量大但简单,免费渠道并行跑)
    
    第四步 → 切回 Claude Code
      最终审查——walk through 所有改动,检查边界条件,
      确认网络同步逻辑没漏
      (把关必须用稳的)
    

    Free Auto:切渠道的脏活让工具干

    上面说的是手动切渠道——你知道哪个模型适合当前任务,自己选。但有时候你不想管这些。比如凌晨两点跑 CI 挂了一个 linting 任务,你只想让随便一个免费渠道把事情做了,别来烦你。

    这时候 FreeUltraCode 的 Auto 渠道freecc:auto,Channel 下拉菜单第一个选项)就上场了。它不是某个固定的上游 API——它是一个智能路由器

    1. 你配好 20+ 个免费渠道的 key (愿意配几个配几个)
    2. 切到 Auto ,发请求
    3. 代理按顺序轮转尝试——哪个渠道先返回正常结果,用哪个
    4. 碰了 429 (限流)?自动跳过,等 30 秒冷却再重试
    5. 碰了 5xx (上游挂了)?标记故障,本轮不再尝试
    6. 所有渠道都挂了?返回 503 + 失败日志,告诉你谁挂了、为什么

    连接超时有预算——每个渠道不会死等,超时就换下一个。成功的渠道天然排在前面(冷却状态清空),有问题的被推到队尾。

    实际效果就是:发请求,等结果,渠道切换完全无感。你配了 8 个渠道,Auto 就是 8 个渠道的容灾池——一个挂了自动下一个顶上。

    Auto 也可以固定模型。 比如你在 Settings 里给 Auto 设 model override 为 z-ai/glm-5.1,那无论 Auto 这次路由到 Groq 、Together 还是 DeepSeek ,都会要求上游跑同一个模型。适合你对模型效果有偏好的场景。

    实际场景(游戏开发):
    
    凌晨两点,CI 挂了,Claude Code 报了个 lint 错误。
    你不在电脑前,但 FreeUltraCode 的定时任务还在跑。
    
    Auto 渠道自动尝试:
      GitHub Models → 429 ,跳过,冷却 30s
      Groq → 正常,几分钟修完
      (后面的 DeepSeek 、Together 、HuggingFace 根本不用动)
    
    第二天早上起床,CI 绿了,commit 写好了。
    你甚至不知道昨晚到底是 Groq 还是 DeepSeek 修的问题。
    也不需要知道。
    

    本地代理:不用改全局配置,多条线同时跑

    市面上类似的工具有 cc-switch ,但它的做法是改 Claude Code 的全局环境变量——切一次渠道,改一轮 ANTHROPIC_BASE_URL。这意味着同一时间只能走一条线,而且是对全局生效的,你开两个终端窗口也全切过去了。

    FreeUltraCode 没走这条路。它内置一个 Rust 写的本地反向代理,监听 127.0.0.1,按端口路径路由。你的 Claude Code 不用改任何配置,它以为自己还在跟 Anthropic 官方 API 说话,但实际上:

    Claude Code → 127.0.0.1:8766/ch/official     → Anthropic 官方
    Claude Code → 127.0.0.1:8766/ch/deepseek     → DeepSeek
    Claude Code → 127.0.0.1:8766/ch/kimi         → Kimi
    Claude Code → 127.0.0.1:8766/ch/auto         → Free Auto 智能切换
    

    每个渠道对应一个端口路径,互不干扰。你可以同时开着官方 Claude 、DeepSeek 、Kimi 三个渠道的 Claude Code 会话。 代理在中间做 Anthropic ↔ OpenAI 协议互译,上游是 OpenAI 协议的( Groq 、Together 、DeepSeek ),代理帮你翻;上游本身就是 Anthropic 协议的( Kimi 、Z.ai ),直接透传。

    更关键的是:同一个 Claude Code 会话里也能动态切渠道。 Claude Code 每次都从环境变量 ANTHROPIC_BASE_URL 读 API 地址——FreeUltraCode 的 gateway 在每次调用时动态注入这个值。这就意味着:

    第一轮对话:
      DeepSeek 扫项目结构,找问题 → 便宜
    
    第二轮对话:
      切回 Claude 官方 → 精准修复
    
    同一场会话,上下文全保留。
    

    不需要重新开终端,不需要重喂文件引用和中间结论。DeepSeek 负责定位问题,Claude 官方负责动手改——各干各擅长的,成本可控。

    所以对比 cc-switch 和 FreeUltraCode 的渠道切换方式:

    cc-switch FreeUltraCode
    配置方式 改全局环境变量 Gateway + 端口转发,不改全局配置
    同时多渠道 ❌ 同一时间只能一条线 ✅ 多终端不同渠道,互不干扰
    同会话动态切换 ❌ 需要改配置重启 ✅ 每次调 API 动态注入 base URL
    协议翻译 依赖上游兼容性 Rust 代理内置 Anthropic↔OpenAI 互译

    /ultracode:用便宜模型跑出贵模型的质量

    这就是 FreeUltraCode 里 /ultracode 干的事。一句话描述任务,自动生成执行方案,并行跑多个子 agent——规划、执行、审查、对抗验证、验收门——整条链路全走你配的免费渠道。

    fuc ultracode "把武器系统的伤害计算从客户端移到服务端,处理好预测回滚"
    

    六个内置策略自动选择:分类执行、并行合成、对抗验证、生成过滤、锦标赛、循环直到完成。

    底层逻辑:用结构化流水线替代单模型深度推理。 单个便宜模型做不好的事,让五个便宜模型分步骤干,互相审查,层层验收。成本加起来可能还是 Claude 单次调用的一个零头。

    每次运行在 .fuc-run/<run-id>/ 下留完整日志:任务账本、事件流、裁决、最终结果。

    技术栈

    技术
    桌面壳 Tauri 2 + Rust
    前端 React 18 + Vite 5 + TypeScript 5
    状态管理 Zustand
    样式 Tailwind CSS
    渠道代理 Rust tiny_http + ureq,本地反向代理,Anthropic ↔ OpenAI 协议互译
    存储 纯本地,不依赖任何服务端

    适合谁

    • 每天用 Claude Code / Codex 写代码,token 账单肉疼的
    • 手上有好几个免费渠道的 key ,但切来切去配置麻烦的
    • 知道哪些任务可以放便宜模型跑、哪些必须用贵的,想精细化省成本的
    • 做游戏/图形/系统开发的——这类项目文件多、编译重、AI 调用量大

    不适合偶尔问一句的轻度用户。轻度使用直接开终端跑 Claude Code 就够了,不需要套个壳。

    当前默认模型(部分)

    渠道 默认模型 费用模式
    GitHub Models openai/gpt-4.1-mini 免费,需 GitHub token ,有速率限制
    Hugging Face Router deepseek-ai/DeepSeek-V4-Pro 每月免费推理积分
    SambaNova Cloud DeepSeek-V3.1 Free Tier ,不绑卡,有日限额
    Together AI Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 注册送试用额度
    Kilo Gateway poolside/laguna-xs.2:free 无 key ,200 req/hr
    LLM7 codestral-latest 无 key ,100 req/hr

    项目地址

    跑起来

    cd app
    npm install
    npm run dev       # Web → localhost:5173
    npm run desktop   # Tauri 桌面应用
    

    Windows 直接双击仓库根目录的 run.bat

    16 replies    2026-06-09 09:32:19 +08:00
    kuse2001
        1
    kuse2001  
       3 days ago via Android
    有意思,支持一下
    hamiwushi
        2
    hamiwushi  
    PRO
       3 days ago
    大佬厉害,动手能力强又喜欢无私分享。我们有个平台 apinode.pro,愿意提供 500 刀额度来实际支持大佬。为大佬点赞。
    hotoh521
        3
    hotoh521  
    OP
       3 days ago
    @hamiwushi 你们搞中转站应该发财了吧,生意太好了
    corningsun
        4
    corningsun  
       3 days ago
    不支持 mac 吗?
    hotoh521
        5
    hotoh521  
    OP
       3 days ago
    @corningsun 正在开发中,这两天就发布
    zisen
        6
    zisen  
       3 days ago
    大佬牛逼,请教一下大佬,目前常用 ultracode 的场景是什么,和普通对话编程有啥区别
    hotoh521
        7
    hotoh521  
    OP
       3 days ago
    @zisen 对于功能比较复杂、跨多个模块、大规模代码迁移、升级等非常有方便,我主要是用虚幻引擎开发方面的,有开发光线追踪、部分功能从 UE4 升级到 UE5 时会用到。
    teaguexiao
        8
    teaguexiao  
       2 days ago
    Multi-agent 拉高质量下限的思路确实比单模型深度推理更扛用,尤其是跨模块改动时让几个便宜模型互相 review 比 prompt 里堆上下文靠谱多了。用 SambaNova 做代码扫描 + Claude 官方做核心改动这个分工,我在跑 AWS 基础设施自动化时也试过,token 费用可以压到原来三分之一不到。
    defunct9
        9
    defunct9  
       2 days ago
    9router 差不多吧
    hotoh521
        10
    hotoh521  
    OP
       2 days ago
    @teaguexiao 主要是 Claude Code 真的太贵的,公司一周的额度我两天就用完了
    hotoh521
        11
    hotoh521  
    OP
       2 days ago
    @defunct9 也有参考 9router ,不过主要定位不一样,我主要还是为了用多 agents 来组装 workflow 的,用便宜模型模型只是逼不得已。
    hotoh521
        12
    hotoh521  
    OP
       2 days ago
    @hamiwushi 真的支持吗,我注册了账号: [email protected]
    defunct9
        13
    defunct9  
       1 day ago via iPhone
    昨天的 gpt team 盛宴佬没有加入吗? 500 刀算什么,随便了
    hotoh521
        14
    hotoh521  
    OP
       1 day ago
    @defunct9 不够用啊
    hotoh521
        15
    hotoh521  
    OP
       1 day ago
    @defunct9 我只是想看看中转站说话算数不,哈哈!
    hamiwushi
        16
    hamiwushi  
    PRO
       7h 28m ago
    @hotoh521 必须支持,500 刀已入账,大佬加油
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5497 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 87ms · UTC 09:00 · PVG 17:00 · LAX 02:00 · JFK 05:00
    ♥ Do have faith in what you're doing.