
这几天 Claude Code 的讨论群里最热闹的话题不是 Opus 4.5 又迭代了什么新能力而是一个叫 Space Bunny 的匿名模型。有人贴出一张第三方调用量统计截图说这个“匿名模型”在某个口径下已经冲到全球第一没过两天又有人跟帖说它的综合能力已经接近 Opus 5。说实话第一眼看到这两个信息我的反应是哪来的 Opus 5Claude 官方命名里根本没有这个编号。但如果你跟我一样最近一直在折腾 Claude Code、Codex、OpenCode 这类编码代理大概早就习惯了“模型代号满天飞”的状态。Space Bunny 并不是某个官方发布的产品名而是社区根据调用日志、API 模型 ID、响应风格等线索为一个未公开命名的模型起的昵称。它之所以突然刷屏核心就两件事一是某类调用统计里它的量高得离谱二是不少开发者反馈它的代码能力相当能打价格还便宜。这篇文章我打算把整件事拆开讲清楚Space Bunny 这种“匿名模型”到底是怎么来的它的能力为什么会被拿去和 Opus 5 对标以及最关键的部分——怎么把它接入 Claude Code、Codex、Dify 这类工具真正用起来。全程只讲实操和逻辑不吹不黑。1. 从“Space Bunny 登顶”这回事说起第三方调用统计是怎么撑起这个热点的1.1 Space Bunny 这个名字是怎么冒出来的先理清一个基本链条官方模型名、API 模型 ID、社区昵称这三者经常不是一回事。大模型厂商发布产品时对外叫一个名字但 API 内部往往会有多个隐藏模型 ID。尤其在做灰度测试或者内部 A/B 实验时你调用日志里看到的 model 字段可能是一串随机前缀甚至直接是一段模糊化字符串根本不会在公开文档里出现。Space Bunny 这个称呼就是社区从日志里那些不可识别的 model 标识里“扒”出来的。具体传播路径大概是这样的有人发现自己的 Claude Code 会话在某个时间段打到的请求响应质量突然明显变好但 API 令牌没有变。通过本地日志或者第三方请求记录工具能看到请求实际命中的 model ID 并不是公开的claude-opus-4-5之类而是一个陌生的别名。社区里把这类记录汇总起来发现这个“隐藏模型”在代码生成、长上下文理解上的表现非常接近目前公开的旗舰型号。于是大家给它起了个顺口的代号Space Bunny 就这么传开了。说白了它不是官方发布的模型但它是真实存在于调用链路上、能被实际使用的模型。这种“存在但未命名”的状态就是“匿名模型”这个词的由来。1.2 “全球调用量第一”的口径与水分Space Bunny 登顶“全球调用量第一”这话你得掰开看。调用量统计有几种完全不同的口径统计口径含义对大厂公开模型的“吃亏程度”按单一模型 ID 统计每个 API 请求中 model 字段对应的值公开模型被拆成多个 ID 后流量被稀释按模型家族统计同一系列的多版本合并统计匿名模型吃亏按会话数统计完整对话任务的数量轻量任务偏多时量很大按 Token 消耗统计输入输出 token 总量更能反映真实算力消耗Space Bunny 能拿到“第一”很可能是按单一模型 ID 或者按会话数统计的。原因是大厂公开旗舰模型往往被拆分出十几个变体 ID流量分散以后单看某个 ID 反而不突出。而匿名模型通常只用一个统一的 ID 对外承接请求所有会话、所有用户都算在这一个名字下自然容易冲到榜首。“接近 Opus 5”的说法也类似。Opus 5 本身就不是官方命名它更像是社区对“下一代 Opus 级别能力”的一个代号。所谓接近是说 Space Bunny 在某些测试集、某些代码场景里得分已经逼近那个预期中的性能线。这属于一种“体感对标”不是官方基准别当严谨结论看。1.3 为什么这事传播得这么快传播快是有原因的。第一匿名模型自带猎奇属性“人人都能用但没人说得清它是什么”这种信息差天然适合在技术社区发酵。第二它出现在了一个好时机Claude Code 和 Codex 这类编码代理工具已经把 API 切换门槛打到了极低用户改几个环境变量就能换一个模型用试错成本几乎为零。第三也是更现实的一点——匿名模型往往定价更低。我群里几个朋友上周就在实测 Space Bunny 的写代码效果他们的反馈很一致日常重构、生成单测、改 bug 这类任务输出质量和 Opus 级别模型差别不大但 token 单价便宜不少。在这种“高性价比”诱惑下讨论量自然会滚起来。2. “匿名模型”的本质马甲、蒸馏体还是灰度实验2.1 三种常见的匿名模型身份不是所有匿名模型都是同一回事。根据我做过的观察和社区已有的信息匿名模型大体能分成三类官方马甲号同一个底层模型厂商或第三方服务商给它换了一个不公开的 ID。你调用时拿到的是最新参数版本但因为没有官方命名你无法确认它到底是谁。蒸馏压缩体用大型模型的输出去训练小型模型ChatGPT 时代的开源社区已经验证过这条路线。Space Bunny 这类匿名模型如果是蒸馏体那它的代码能力接近大模型并不奇怪且成本天然更低。灰度分流版本平台方在正式发布前把新模型部署到部分 API 节点做 A/B 测试流量随机切一部分过去。这个阶段没有稳定命名必须靠响应风格去猜。这三种身份没法靠截图直接判断只能通过行为特征推测。比如同样一个任务连续调用二十次如果回答风格和推理路径高度一致那是马甲或蒸馏体的概率更大如果偶尔出现完全不一样的“高光表现”也可能是灰度模型在处理不同类型请求时切换了策略。2.2 为什么社区对匿名模型的热情这么高社区追捧匿名模型动机其实不复杂想用更低的成本提前评估“下一代模型”的真实水平。正常流程里你要等官方发布、看文档、拿测试权限整个过程漫长且充满公关包装。而匿名模型等于把测试期提前了——你直接通过 API 就能和它对话不需要申请白名单不需要签保密协议。对做 AI 应用开发、需要快速评估模型能力的技术人来说这种“提前量”很有价值。同时必须承认匿名模型存在一个巨大的吸引力你永远不知道它会在哪一天突然被合并成正式版本或者一夜之间消失。这种不确定性让第一批“上车”的人有了一种信息优势在技术圈里这种优势本身就是传播动力。2.3 匿名模型的不确定性才是真正的风险回到工程视角。匿名模型天然伴随着不稳定性这主要体现在三个方面接口随时可能更换模型 ID。你今天写死在代码里的配置明天可能就指向另一个模型。服务质量波动大。匿名模型背后的算力池通常不是固定分配的高峰期和低峰期响应质量可能肉眼可见地不一致。数据安全和合规边界模糊。你向一个未公开命名的 API 端点发送代码、业务数据到底会被记录在哪里、会不会被用于训练你完全无法控制。所以我的建议一直是匿名模型适合做技术预研、效果摸底、写脚本跑跑实验但不适合直接塞进面向生产环境的核心链路。真要用也得加一层网关或路由保证它随时可以被切换掉。3. 接入实操把 Space Bunny 类匿名模型接进 Claude Code、Codex 与 Dify3.1 接入前必须懂的三个基础概念不管接什么匿名模型底层逻辑就三个API 端点、模型 ID、鉴权信息。API 端点Base URL是请求发往的地址。第三方兼容服务通常提供两种协议一种是 Anthropic 协议对应 Claude Code一种是 OpenAI 协议对应 Codex、OpenCode 等大量 OpenAI 兼容应用。Space Bunny 这类匿名模型一般只以兼容协议的形式存在没有独立 SDK。模型 ID 是你请求里 model 字段要填的值。可能是space-bunny、space-bunny-v1或者一串看不懂的哈希前缀必须以提供方文档或接口返回值为准。很多人接不上九成是卡在这一步——拿网上看到的 ID 直接填但实际服务商给的并不是这个。鉴权信息就是 API Key。匿名模型的 key 相对敏感因为它通常绑定你的账户余额和调用限额。建议单独申请不要跟正式业务的 key 混用。3.2 路线一接入 Claude CodeClaude Code 是 Anthropic 官方的编码代理命令行工具它对第三方模型的兼容性做得很好核心就是四个环境变量。# 设置兼容端点和鉴权 export ANTHROPIC_BASE_URLhttps://你的兼容端点/v1 export ANTHROPIC_AUTH_TOKEN你的匿名模型APIKey export ANTHROPIC_MODELspace-bunny-v1 # 小模型建议单独指定省 token export ANTHROPIC_SMALL_FAST_MODELspace-bunny-mini # 启动 claude每行参数的作用ANTHROPIC_BASE_URL把请求从官方地址切到兼容服务地址。兼容服务的接口如果不是完全兼容 Anthropic 协议需要在地址末尾带上/v1之类的路径。ANTHROPIC_AUTH_TOKEN是服务商给你的鉴权令牌注意它不代表官方 Claude 账号。ANTHROPIC_MODEL是主模型 ID决定复杂的代码生成、推理任务走哪个模型。ANTHROPIC_SMALL_FAST_MODEL是轻量任务模型比如标题生成、简短问答这类用小模型能显著降低成本和响应延迟。配置完以后建议先跑一条简单命令验证连通性比如让 Claude Code 解释一下当前目录结构。能正常返回再继续日常使用。3.3 路线二接入 Codex / OpenCodeCodex 是 OpenAI 编码代理默认走 OpenAI 协议。OpenCode 这类社区工具同样兼容 OpenAI 接口。接入思路跟 Claude Code 完全一致只是环境变量名不同。# OpenAI 兼容接口配置 export OPENAI_API_KEY你的匿名模型APIKey export OPENAI_BASE_URLhttps://你的兼容端点/v1 # Codex 启动后通过 -m 指定模型 codex -m space-bunny-v1 # OpenCode 可以用同样的环境变量 opencode这里有一个很多新手容易忽略的点OpenAI 兼容接口的路径后缀同样重要。有的服务商要求https://api.xxx.com/v1有的只要https://api.xxx.com。填错前缀哪怕 key 正确也会报 404 或者 401。另外Codex 对模型 ID 的校验比 Claude Code 严格。如果你指定的模型 ID 不在服务商白名单里启动时会直接抛“model not found”。遇到这种情况先请求服务商提供可用的模型列表别瞎猜。3.4 路线三接入 Dify 与自建工作流Dify 这类 LLMOps 平台接入匿名模型的方式更直观几乎不需要写代码。具体步骤进入“设置”找到“模型供应商”选择OpenAI-API-compatible这一类通用供应商。填入 Base URL、API Key、模型 ID。部分版本还需要指定上下文长度和最大 token 数建议按服务商文档填。保存后在“编排应用”里把默认模型切换成刚添加的模型。跑一个简单的对话流验证连通性。用 Dify 接入的好处是你后面想换回官方模型只需要在平台里切换供应商不需要改任何代码逻辑。相当于把“模型路由”从代码层挪到了配置层。3.5 三条路线怎么选场景推荐路线原因个人本地写代码Claude Code 或 Codex环境变量配置最快交互体验最好团队统一管理模型Dify 或自建网关可以按人按组分配 key方便审计多模型对比测试OpenCode 配置文件支持同时配置多套环境切换成本低生产环境服务调用自建网关再封装隔离不稳定因素随时回退官方模型我个人的习惯是本地实验用 Claude Code线上服务全部走自建网关。匿名模型可以当“探针”用但别让它成为你系统里不可替代的一块。4. 接入之后别急着开干稳定性、速率和真实效果的验证方法4.1 调用量高不代表速度快先测并发与响应延迟Space Bunny 这类匿名模型接入后第一件要做的不是写业务代码而是摸清它的“脾气”。匿名模型通常没有 SLA 承诺它的并发上限、速率限制、高峰期表现全看背后服务商调度。同一个模型凌晨三点和晚上十点的响应速度可能有明显差异。我先写一个小脚本做简单压测import time import threading from openai import OpenAI client OpenAI( api_key你的APIKey, base_urlhttps://你的兼容端点/v1 ) def call_once(idx): start time.time() try: resp client.chat.completions.create( modelspace-bunny-v1, messages[{role: user, content: 说一句你好}], max_tokens10 ) cost time.time() - start print(f[{idx}] 耗时 {cost:.2f}s, 返回: {resp.choices[0].message.content[:20]}) except Exception as e: print(f[{idx}] 报错: {e}) threads [threading.Thread(targetcall_once, args(i,)) for i in range(10)] for t in threads: t.start() for t in threads: t.join()这个脚本只做一件事同时发 10 个最简请求看耗时和错误率。如果有一半请求超时或者报 rate limit说明这个端点当前负载已经很高不适合跑重活。如果全部秒回再进入下一步。实测中我遇到过一种情况并发 5 个请求时表现完美并发 20 个时开始频繁 429。这种“看起来很快但其实很脆”的服务接入后只能控制并发避免业务高峰期把请求全怼上去。4.2 效果验证用你自己的代码库做冒烟测试别拿网上的“标准题库”验证匿名模型的代码能力。那类题目的阈值很低而且模型有概率见过原题测出来的分数没有参考意义。真正的验证方式是拿你自己项目里真实存在的代码任务。我推荐的三个测试任务跨文件重构把一个模块里的重复逻辑抽出来封装成公共函数。这能测试模型对项目结构的理解能力。埋 bug 排查在你熟悉的代码里故意加一个并发安全问题让模型找出来。重点看它是指出表面问题还是能追到竞态条件的根因。注释补全让模型给一段你已经很熟悉的晦涩代码写注释。如果注释能准确说清变量作用域和资源释放时机说明它真的读懂了代码而不是在生成模板。测试时把它当成真实项目复盘不要只看结果对不对。我见过很多匿名模型在“能不能跑”这个层面表现优秀但一问到“为什么这么写”“边界条件怎么处理”立刻露馅。比如下面这个例子def process(items): return [item.strip() for item in items if item]如果模型拿到这个函数只告诉你“把空字符串过滤掉再去除首尾空格”那只是表面理解。好的模型会追问items如果是生成器怎么办if item对0、False、None的过滤行为是否符合预期strip()对非字符串类型会不会抛异常这类边界思维才是区分“效果接近 Opus”和“只是看起来接近”的分水岭。4.3 上下文长度、流式输出与超时三个最容易翻车的点接入匿名模型以后的坑主要集中在三个地方。上下文长度是第一坑。很多匿名模型宣传窗口是 128K 甚至 200K但实际使用时一旦上下文逼近上限模型会出现三种劣化早期内容被截断、回答突然变短、或者直接报 context length exceeded。把代码库塞满再让它干活它给出的结果大概率还不如你手动写。流式输出是第二坑。编码代理工具几乎都走流式渲染Token 是一段一段蹦出来的。匿名模型的流式稳定性和官方模型差距很大有时生成到一半会中断工具界面却显示“已完成”容易误导你遗漏后半段代码。遇到这种问题先在服务商后台关闭流式模式或者调大超时时间。第三坑是超时与重试。官方模型失败会触发工具自动重试但匿名端点经常在重试时返回不同结果甚至因为限流导致重试全部失败。我的建议是给代码代理设置合理的超时上限同时不要把重试次数设得太高否则反而会浪费时间空等。5. 鉴别“伪匿名模型”和安全接入的经验清单5.1 三个快速判定维度网上关于 Space Bunny 的信息很多很杂你得自己判断你接入的到底是真匿名模型还是套壳宣传。我总结了三招看指纹一致性。用固定的 10 道逻辑题连续问三次如果输出高度稳定说明背后大概率是同一个模型如果每次风格各不同可能是负载均衡背后挂了多个模型你花一份钱买到的是“盲盒”服务。看边界行为。专业模型对不擅长的问题会拒绝回答或给出低置信度提示套壳模型往往硬着头皮编。给模型一个明显超出能力范围的数学推理题观察它的应对方式比看它在擅长领域里的表现更能说明问题。看文档和 key 的对应关系。正规第三方服务商一般会提供模型列表、定价说明、速率限制文档匿名模型服务商往往只有一句“直接用就行”。信息越模糊越要谨慎。5.2 安全接入的几个硬性习惯我踩过坑之后总结出来的几条建议照着做匿名模型的 key 永远用独立账户申请不要用官方主 key 去充第三方服务。上下文里不要塞密钥、生产环境 IP、用户个人信息。你无法确定匿名端点背后的数据留存策略。在 Claude Code 或 Codex 的配置里把模型路由规则写清楚日常任务走匿名模型重要任务切回官方模型。定期查看日志里实际命中的 model ID。如果发现 ID 变了立刻意识到“模型已经被换了”。团队使用时把匿名模型挂在网关后面这样即使它不稳定业务侧也无感知。提示匿名模型的 API Key 使用频率高时记得设置用量告警。它的价格再低也挡不住脚本死循环烧钱。5.3 对“接近 Opus 5”这类说法的冷思考把 Space Bunny 说成“接近 Opus 5”本质上是用一个大目标做对比锚点。但你要注意这只是一句社区评价不是官方基准。从技术角度一个匿名模型如果真的是蒸馏体它可能在代码生成这类任务上做到 90% 的相似度但在极长上下文规划、多轮工具调用、复杂项目级重构上和原生旗舰的差距会迅速拉大。我测试过的匿名模型普遍存在一个规律任务越简单、结果越接近任务越复杂、差距越明显。所以我的结论是匿名模型值得玩也值得在日常开发里当辅助工具用但别把它当成“免费平替 Opus”的魔法钥匙。它更像是一个性价比选项适合跑量、适合实验、适合做技术预研唯独不适合成为你生产系统的绝对依赖。我这几天的习惯是给 Claude Code 配了双路配置默认走 Space Bunny 做快速迭代碰到底层 architecture 设计和疑难 bug 时手动切回官方旗舰模型。快捷键一按就换成本能省一半以上。顺便提一句别把 Space Bunny 这种名字写死在代码注释和文档里。这种匿名 ID 很可能过几周就被合并成正式模型或者改名到时候你会回来感激我这个提醒的。