Codex Desktop 的 ambient suggestions 开关为什么有的人能看到、有的人看不到

今天顺手查了一个挺有意思的 Codex Desktop 小现象。

起因是这个帖子:Codex API 号池里突然出现 ambient_suggestions 请求。帖子里有人贴图,说 UI 里其实有一个“建议提示 / Enable ambient suggestions”的开关。但我在自己的 Codex Desktop 菜单里找了半天,确实没有看到这项。

于是拆了一下当前 macOS Codex Desktop 包,版本是 26.602.40724。结论有点反直觉:这不是简单的“菜单漏了”,而是这行设置本身有账户显示 gate。

对应的设置行在 General settings 里,文案大概是:

  • Suggested prompts
  • Suggest what to do next by searching project files and connected apps
  • Enable ambient suggestions

真正的开关 key 是:

ambient-suggestions-enabled

它的默认值在打包代码里是 true,描述是:

Whether home-page ambient suggestions are enabled

但 UI 里这一行是否显示,不直接由这个 key 决定,而是先走账户条件:

var allowedPlans = [
  "plus",
  "pro",
  "business",
  "team",
  "self_serve_business_usage_based",
];

function canShowAmbientSuggestionsSetting({ authMethod, email, plan }) {
  return authMethod === "apikey"
    ? true
    : authMethod === "chatgpt"
      ? isOpenAIEmail(email) || allowedPlans.some((p) => p === plan)
      : false;
}

function isOpenAIEmail(email) {
  return email?.toLowerCase().endsWith("@openai.com") === true;
}

也就是说:

登录/账户状态 UI 里是否显示这项
API key 模式 显示
ChatGPT Plus / Pro / Business / Team 显示
OpenAI 内部邮箱 显示
ChatGPT Free 或不在列表里的 plan 不显示

所以如果你看到别人截图里有这个开关,而你自己的 Codex Desktop 里没有,不一定是版本不同,也不一定是你没找对菜单。可能只是当前账户状态没有通过这段 gate。

更微妙的是,这里其实有两层逻辑:

  1. ambient-suggestions-enabled:真实开关值,默认 true
  2. authMethod + email + plan:决定 UI 设置行显示不显示。

所以“功能开关存在”和“菜单里看得见开关”不是一回事。

我本机还看了一眼本地状态目录,确实存在历史 ambient-suggestions 缓存,最近一次写入是 2026-05-21;但今天没有新的缓存写入。这个只能说明这套功能历史上确实跑过,不能单独证明当前还在跑。

个人感觉这里最容易误导人的点是:当 UI gate 把设置项藏起来时,用户会自然以为“我没有这个功能/不会受影响”。但真实情况可能是:设置 key 仍存在,默认值仍是 enabled,只是当前账户形态下没有暴露关闭入口。

如果要完全确认一台机器当前状态,最好不要只看菜单,而是同时看:

  • 当前 auth_modeapikey 还是 chatgpt
  • ChatGPT 账号 plan 是否在允许列表里
  • 本地 ambient-suggestions 缓存是否近期写入
  • 是否有新的 ambient suggestions 相关请求或日志

这类小 gate 很有意思:它不是功能权限本身,也不是配置本身,而是“配置项的可见性权限”。排查 UI 缺项时,值得把这三层拆开看。