
背景
在使用 AI Agent 时,你是否曾经困惑过:应该选择什么环境、什么形态的 Agent 终端?以 Codex 为例,有 Desktop App,也有 CLI 工具。如果使用的是 Windows 环境,例如我,还面临着 PS7、WSL2 的选择。
根据奥卡姆剃刀原理,如非必要,勿增实体。对于功能相近的工具,我倾向于只保留最适合当前任务的一种。 尤其是 AI Agent 这类工具,使用的不只是工具本身,还有大量定制配置、Skill、MCP 等;这些内容也会不断更新、迭代。如果在同一台电脑上使用两种 Agent 终端,难免会遇到重复配置、重复安装 Skill 等问题。
选择工具时,应以要完成的任务为起点。对我而言,Codex 主要用于以下场景:
- 对 AgenticOS 相关知识的梳理、学习、记录。
- 开发 AgenticOS 相关的 demo、具体实践。
- 处理生活中日常记账、保险、备忘等重复、繁琐的事项。
- 博客文章润色。
- 对平时一些思维火花进行记录。
- 论文撰写辅助。
UI 易读性 vs. 工具链完备度
从界面的易用性、易读性,以及相应环境下工具链的完备程度出发,可以绘制出 4 个象限。

Linux 工具链
对多数后端、Python 和开源开发任务来说,Linux 上的工具链通常更统一。许多项目优先提供 Linux 的安装说明和脚本;Bash、CI 风格脚本、tmux、cron 等工具也更自然地融入这套环境。以后如果要运行或搭建 LangChain、LangGraph 一类工具,Linux 往往能少踩一些依赖和脚本兼容的问题。
前提是:项目代码、运行时和开发工具都在 Linux 一侧。 满足这个前提时,WSL2 的工具链优势才会真正体现出来。macOS 同样具备 Unix 风格的开发环境,但并不等同于 Linux。
界面易读性
此处讨论的是文档处理等需要在 Agent 对话中反复阅读、比对和修改文本的任务,而不是 Web 前端开发。
CLI 的输出紧凑,也便于快速操作;但需要反复阅读、比对和修改长文本时,它不如 GUI 直观。Desktop App 对这类任务更友好,目录和会话也更容易浏览、切换和管理。CLI 当然也可以切换与恢复会话,但会话通常要回到对应的项目目录或工作上下文。例如,使用 codex resume 前,往往需要先执行 cd <对应文件夹>。
因此,同时开启多个会话处理文档,且经常需要中断后接续时,更适合使用 Desktop App 形态的 Agent 工具。
如果是代码类任务,我仍然推荐 CLI 形态的 Agent。代码的阅读和审阅主要在 IDE 中完成,CLI 则更便于 Agent 直接调用项目内的工具、读写文件、执行 Shell 命令和配合 Git。这里更重要的不是终端本身的速度,而是它能否和项目环境连成一体。
跨文件系统交互带来的成本和风险
下面这些成本有一个明确的前提: 项目代码放在 Windows 文件系统,而 Codex CLI 和构建、扫描工具运行在 WSL2 中。也就是一侧保存文件,另一侧频繁访问和处理它们。以 Android 项目为例,这种组合会带来以下问题:
- 文件读写性能瓶颈
- 在
/mnt/c下跨文件系统读写大量文件、扫描目录或执行构建时,I/O 可能明显变慢。实际影响取决于项目规模、工具和访问方式,不能简单地把它理解为WSL2整体性能较差。
- 在
- 路径格式、换行符、文件权限的差异
- 如果同一项目需要在两侧构建或运行,就可能要维护两套
Node、Git、Python、JDK等运行时 WSL2环境需要单独维护网络代理配置- 在我当前的工作流中,
Playwright MCP运行在 Windows,需要通过桥接提供给WSL2中的Codex
这些问题大多都有解法,但每多一层桥接和配置,后续升级、排错和迁移时就多一份维护成本。若项目必须留在 Windows 文件系统,直接使用 Windows 上的 CLI 往往更省心;如果决定使用 WSL2,最好把项目和运行时一起放在 Linux 文件系统中,让代码、依赖和工具尽量留在同一侧。
工具选择小结
基于前文讨论,可以把 Windows 环境的工具选择策略总结如下:
| 场景 | 工具 |
|---|---|
| 文档类任务,或需要在 Agent 对话中反复阅读和接续会话 | Codex App |
| 编码类任务,且项目原生在 Windows 环境中 | Codex CLI on Windows |
| 依赖 Linux 工具链,且项目与运行时都放在 Linux 一侧 | Codex CLI on Linux |