目录
每出一个新模型,就得把会话一个个打开,切换模型和 effort。会话少的时候还好,可如果你习惯每个项目开一个会话,数量很快就会上到几十个。2026年9月22日,Claude Opus 5.5 与 GPT-6 Sol、Luna 在同一天发布,我当时面对的正是这件苦差事。
先说结论:无论是 Claude Code 的桌面应用(下文称 Claude Code Desktop)还是 Codex,只要对助手说一句“把所有会话都改成 X”,就能改好,不必自己逐个去点。界面上并没有“全部修改”按钮,而是由助手在后台一个一个地改。不过,两者能改到的范围、生效的时机以及确认结果的方法,差别相当大。
本文依据我在2026年9月24日亲手修改设置、再改回原样的实测,以及官方文档(Claude Code 的 Desktop 与 Model configuration 页面,Codex 的 Models、Config basics 和 Slash commands 页面),介绍具体做法和需要注意的地方。终端里的 Claude Code(CLI)不在本文范围内。
结论:两者都能按请求全部修改,但底层都是逐个进行
来源:笔者2026年9月24日的实测(Claude Code Desktop 2.7032.0,内置 Claude Code 2.1.280;Codex 桌面应用 26.917.6896.0)及各家官方文档
Claude Code Desktop
一句请求,就能修改其他会话
修改时不会发送消息。从下一轮开始生效,重启应用后依然保留。唯一改不了的,是你正在对话的那个会话。
Codex
一句请求,现有对话也能改
笔者环境中现有的 115 个对话全部改好了。但它用的是内部机制而非官方方法,还向 2 个打开着的对话各发了一条消息。新对话的默认值写在配置文件里。
两者通用
用界面和保存值来确认
问模型“你现在的 effort 是多少”并不可靠。先记下修改前的值,改完后把每个会话重新读一遍。
1. 为什么想一次性全部改掉
Claude Code Desktop 和 Codex 都会按会话(按对话)分别记住模型和 effort。即使新模型出来后你决定今后都用它,现有的会话仍会继续用旧模型运行。
- Claude Code Desktop:官方文档说明,模型从发送按钮旁的下拉菜单中选择,会话进行中也可以切换。能改的是当前打开的那个会话。
- Codex:在官方 Slash commands 页面上,
/model和/reasoning都是为当前对话选择模型和推理深度。修改配置文件里的默认值,并不会改变现有对话里已保存的值(后文详述)。
effort(模型推理的深度)也是同样的道理。例如 Opus 5.5 的默认 effort 是 medium,不少人因此重新权衡了用量和效果(参见 Opus 5.5 的文章和 effort 设置的文章)。成本也要考虑:effort 越高,推理 token 越多,停留在高 effort 的会话会悄悄消耗你的用量上限。
所以,与其一个个打开会话去切换,本文的做法是对助手说一句“全部改成这个”。因为你要做的只是提一次请求,本文把它称为“批量修改”。
2. Claude Code Desktop:直接交给助手去改
官方文档怎么说
Claude Code Desktop 的文档里有一节叫 Work across sessions。其中写道,Claude 可以列出 Code 标签页中的其他会话,读取每个会话做过的事,并在会话之间传递消息,你也可以让它给会话改名或归档。
不过截至2026年9月24日,这一节列出的操作只有列出、读取、发消息、改名和归档,并没有提到修改模型或 effort。而应用提供给助手的工具里,却包括切换其他会话模型的工具和修改其 effort 的工具。下面是我实际使用后的结果。这不是文档中写明的步骤,行为可能在今后的版本中改变。
实际试一试
我用 2 个没有在运行的会话做了测试。两者一开始都是 Opus 5.5、effort 为 medium;我把它们改成 Sonnet 5、effort 为 low,确认结果后再改了回来。
在 Claude Code Desktop 中确认到的情况
来源:笔者实测(2026年9月24日,Claude Code Desktop 2.7032.0,内置 Claude Code 2.1.280,Windows 11)
① 提出请求
在另一个会话里,请它把这 2 个会话设为 Sonnet 5、effort 为 low。目标会话没有收到任何消息。
② 确认保存值
助手重新读取会话信息,确认两者都已变为 Sonnet 5、low。它还说明,修改从下一轮开始生效。
③ 在界面上确认
打开目标会话,输入框显示为 Sonnet 5、Low。
④ 重启后依然保留
结束应用进程并重新启动后,仍显示 Sonnet 5、Low。最后我把两者改回 Opus 5.5、medium,并确认了结果。
需要注意的是确认的方式。我问其中一个改过的会话“你现在的 effort 是多少”,它回答“effort 是 10”,而这并不是任何一个档位。模型未必能被正确告知自己的 effort。要确认,请看界面上的输入框,或让助手重新读取保存的值。
修改会话的规则
以下是我根据应用提供给助手的工具说明以及实际表现整理出的规则。
- 修改从下一轮开始生效:已经在运行的那一轮会用当前模型跑完,不会中途换模型。
- 只能选择模型菜单中列出的模型:如果指定了菜单里没有的模型,会返回可选项的列表。
- effort 有 low、medium、high、xhigh、max 共 5 档:应用界面以英文显示,分别为 Low、Medium、High、Extra、Max。可用的最高档位取决于模型。
- 无法修改你正在对话的会话:工具会以“会话不应悄悄改变自身成本”为由拒绝。发出请求的那个会话,请自己用它的模型菜单切换。
- 可能会要求你确认:根据工具说明,修改其他会话时应用会请你确认,尤其是切换到更贵的模型或更高的 effort 时。我的测试是在 Bypass permissions 模式(跳过权限确认)下进行的,所以没有出现确认卡片。在默认模式下,可能每个会话都要批准一次。
3. Claude Code Desktop 能改到哪些、改不到哪些
即使你说“全部”,助手也改不了它看不到的会话。官方文档的 Work across sessions 一节对它能看到的范围说明如下。
| 会话类型 | 能否按请求修改 | 备注 |
|---|---|---|
| Code 标签页中的本地会话 | 可以 | 本次实测对象 |
| Code 标签页中的 SSH 和 WSL 会话 | 助手能看到 | 会列出,但未尝试修改模型 |
| 云端会话 | 看不到 | 官方文档写明(请在云端会话中自行切换) |
| 从终端 CLI 或 VS Code 扩展启动的会话 | 看不到 | 即使在同一项目文件夹中也看不到 |
| 发出请求的会话本身 | 不可以 | 连列表中都不出现(请从模型菜单自行切换) |
| 已归档的会话 | 明确要求时可纳入 | 默认不在列表中 |
另一个要点是:默认情况下,它只能看到最近活跃的 20 个会话。官方文档这样写,应用的工具默认也只返回 20 个。要求“全部”时,请加上一句“不要停在 20 个,把所有会话都列出来”。在我的环境中,即使不算已归档的,会话也有几十个。
还有一个副作用。模型或 effort 一改,该会话的“最近活跃”时间就会被更新为当前时间。如果侧边栏按最近活跃排序,顺序就会变。一次改几十个会话会打乱平时的顺序,介意的话,请事先用置顶或分组整理好。
4. Codex:默认值写进配置文件,现有对话按请求逐个修改
在 Codex 中,今后新建的对话和已有的对话,做法并不相同。
今后的对话:配置文件(官方方法)
官方 Models 页面说明,本地的默认模型用 config.toml 中的 model 设置,effort 则是 model_reasoning_effort。桌面应用、CLI 和 IDE 扩展读取的都是同一个配置文件。
model = "gpt-6-sol"
model_reasoning_effort = "medium"
文件位置是 ~/.codex/config.toml(Windows 上为 C:\Users\<username>\.codex\config.toml)。如果这两个键已经存在,请修改它们的值,而不是另起新行。键重复会导致文件无法作为配置文件读取。
还要注意优先级。根据官方 Config basics 页面,命令行选项、项目中的 .codex/config.toml 以及 profile 的优先级都高于用户配置文件。如果某个项目自己设置了模型,修改用户配置不会影响那个项目。
另外,Codex 云端对话的默认模型无法修改(官方 Models 页面说明目前不支持)。本地的配置文件管不到云端。
现有对话:没找到官方的批量方法
修改现有对话的官方方法,是打开该对话,从输入框下方的菜单中选择,或者使用 /model 和 /reasoning。两者都只作用于当前打开的那一个对话。无论在官方文档还是应用里,我都没有找到一次修改所有对话的按钮或步骤。
于是我请 Codex “把其他对话也全部改成 GPT-6 Sol、medium”。Codex 利用应用的内部机制(App Server),依次加载每个对话并改写其设置。
5. 让 Codex 修改 115 个对话时发生了什么
115 是我的 Codex 中现有对话的数量(不含已归档的)。我请 Codex 把它们全部改成 GPT-6 Sol、medium。
下面根据 Codex 在完成后留下的记录,说明整个流程(2026年9月24日,Codex 桌面版 26.917.6896.0,CLI 0.155.0-alpha.16)。
Codex 修改 115 个对话所经历的 5 个阶段
来源:Codex 的工作记录(2026年9月24日)
① 备份
保存配置文件和每个对话的保存值,以便随时还原。
② 清点对象
把列表一直取到最后一页。对象为未归档的普通对话,共 115 个。
③ 修改默认值
改写 config.toml 中的 2 个键,再重新读取文件,确认内容一致。
④ 逐个修改
112 个对话在不发送消息的情况下改好。应用中打开着的 2 个对话和执行任务的那个对话,是通过发送一条简短消息来修改的。
⑤ 逐一核对
以只读方式读取开始时清点的全部 115 个对话的保存值。115/115 均为 Sol、medium。
有些对话收到了消息
第④步是 Codex 与 Claude Code Desktop 差别最大的地方。空闲的对话可以加载后只改写设置。但应用当前已加载的 2 个对话,因为“已经有另一个写入方”,无法从外部加载。
Codex 没有强行解锁,也没有直接编辑保存的数据,而是利用应用的“向其他对话发送消息”功能,附上模型和 effort,发送了一条只请求确认的简短消息。这样设置确实改了,但也意味着那个对话里实际跑了一轮。换句话说,Codex 的批量修改视情况可能会在部分对话中留下一条消息。
只改配置文件,现有对话不会变
即使第③步改了默认值,每个现有对话仍保存着各自的模型和 effort。修改默认值只影响新对话,所以第④步必须作为另一项工作来做。
这不是官方方法
Codex 使用的是所安装版本中包含的内部机制。我在公开文档的正文中没有找到它,也无法保证今后的版本仍会同样运作。Codex 自己也在记录中写道,它不建议直接编辑保存的数据(数据库或对话记录),因为界面状态、保存的历史和下一轮的设置可能会不一致。已归档的对话、子代理、定时运行和云端对话也不在修改范围内。重启整个应用后界面如何显示,我没有确认,也没有在界面上逐一核对全部 115 个对话。
6. 两者对比
| 项目 | Claude Code Desktop | Codex |
|---|---|---|
| 能否按请求批量修改现有会话 | 可以(在 2 个会话上测试) | 可以(在 115 个对话上完成) |
| 使用的机制 | 应用提供给助手的工具(无文档写明的步骤) | 应用的内部机制(非官方方法) |
| 是否发送消息 | 不发送 | 通常不发送(打开着的对话各收到一条) |
| 生效时机 | 从下一轮开始 | 从下一轮开始 |
| 发出请求的对话 | 无法修改(需自行切换) | 通过发送消息修改 |
| 默认能看到的会话 | 最近 20 个(要求时可看全部) | 翻页读取全部 |
| 不在范围内 | 云端会话,以及从 CLI 或 VS Code 启动的会话 | 云端对话、已归档对话、子代理、定时运行 |
| 新会话的默认值 | 本文未涉及 | config.toml 中的 model 和 model_reasoning_effort(官方) |
| 副作用 | 排序改变(最近活跃时间被更新) | 部分对话中留下确认消息 |
一句话概括:Claude Code Desktop 是“应用把修改用的工具交给了助手”,而 Codex 是“助手操作应用的内部机制完成修改”。两者你都只需提出请求,但 Codex 的路径更容易随版本变化而失效,中途停下时的影响也更大。
7. 请求示例与防止出错的 4 项检查
请求示例
在 Claude Code Desktop 中,可以这样请求:
把除已归档之外的所有会话都设为 Opus 5.5、effort 为 medium。
不要停在 20 个,把所有会话都列出来,正在运行的会话跳过。
修改前先记下每个会话的模型和 effort,完成后把每个会话重新读一遍确认。
在 Codex 中,可以这样写:
把新对话的默认值和所有现有对话都设为 GPT-6 Sol、medium。
开始前先备份当前设置,并把列表一直取到最后一页。
如果需要向打开着的对话发送消息,请先告诉我有几个。
最后,重新读取开始时清点的每个对话,确认全部一致。
防止出错的 4 项检查
- 让它保留修改前的值:想要还原时如果不知道原来的值,就只能一个会话一个会话地回忆。如果你有意让某些会话使用不同的模型,这一点尤其重要。
- 写清楚范围:是否包括已归档的会话、是否跳过正在运行的会话、是否只限于某个项目。在 Claude Code Desktop 中,别忘了“不要停在 20 个”。
- 最后让它全部重新读一遍:不要数中途的“成功”回复,而要重新读取开始时清点的所有对象,确认全部一致。Codex 能说出 115/115,靠的就是这项检查。
- 自己打开一个看看:至少在一个会话中亲眼确认输入框显示的是新设置。问模型自己的 effort 并不可靠。
还有一点:在 Claude Code Desktop 中,发出请求的那个会话不会被修改,最后别忘了自己从模型菜单切换它。
总结
截至2026年9月24日,Claude Code Desktop 和 Codex 都没有一次修改所有会话模型的按钮。尽管如此,我在两者中都确认了:只要请助手去做,就能在不逐个打开会话的情况下全部改好。
Claude Code Desktop 利用应用提供的工具,在不发送消息的情况下修改会话,修改在重启后依然保留。不过它只能看到本地的桌面会话,默认只有最近 20 个,发出请求的会话本身也不在范围内。在 Codex 中,新对话由配置文件负责,现有对话则由助手利用内部机制逐个修改。当时打开着的对话各收到了一条消息。
今后每出一个新模型,不必再挨个打开所有会话了。保留修改前的值、划定范围、全部重新读取、亲眼确认一个。在请求中加上这 4 项检查,批量修改会安全得多。
FAQ
Q. Claude Code Desktop 有一次修改所有会话的按钮吗?
A. 截至2026年9月24日,我没有找到。模型和 effort 要在打开的会话里,从输入框的菜单中逐个选择。本文介绍的方法,是请助手替你修改其他会话。
Q. 修改会话时会向它发送什么吗?
A. 在 Claude Code Desktop 中不会。下次使用该会话时,它直接以新设置运行。在 Codex 中,只有应用里打开着的对话为了修改设置各收到了一条简短的确认消息,并实际跑了一轮。
Q. 正在工作的会话会中途切换模型吗?
A. 不会。两个应用中,修改都从下一轮开始生效,已经在运行的那一轮会用原来的模型跑完。
Q. 可以问模型“你现在用的是什么模型和 effort”来确认吗?
A. 不推荐,因为并不可靠。在我的测试中,一个设为 low effort 的会话回答“effort 是 10”。请看界面上的输入框,或让助手重新读取保存的值。
Q. 云端会话或 CLI 会话也能批量修改吗?
A. 从 Claude Code Desktop 的助手那里不行,因为它看不到这些会话。官方文档也写明,它看不到云端会话,以及从终端 CLI 或 VS Code 扩展启动的会话。至于 Codex 的云端对话,目前连默认模型都无法修改。
Q. 一次性把所有会话都升到更高的模型,安全吗?
A. 修改本身没问题,但如果所有会话都用顶级模型加高 effort 运行,用量上限会消耗得更快。Claude Code Desktop 应用在切换到更贵的模型或更高的 effort 时,也被设计为会请你确认。日常的起点该设在哪里,请参见 effort 设置的文章和 GPT-6 Sol 与 Luna 的文章。