打开课程目录

第五讲:飞书语音控制 Codex 桌面版

前四讲让寅宾具备了搜索、记忆和 Skill。最后一讲要把这些能力连到实际开发任务:在飞书里说一句话,让 Codex 在桌面开发环境中执行任务,再把进度和结果发回来。

先纠正最容易混淆的一点:

“通过飞书控制 Codex 桌面版”默认不是让机器人移动鼠标点击界面,而是通过 Codex app-server 控制原生线程。

飞书语音控制 Codex 桌面版架构图,语音消息经过飞书渠道和语音转写进入 OpenClaw,再通过 Codex app-server 创建或恢复原生线程,执行结果回到飞书。
图 1:飞书负责入口,OpenClaw 负责渠道、身份、权限和回传,Codex app-server 负责原生线程与开发任务。GUI 自动化只是可选补充路线。

学完这一讲,你应该能够回答:

问题本讲给出的答案
Codex 桌面版负责什么提供 Codex 原生线程、认证、模型、工具续跑、压缩和开发执行能力
OpenClaw 负责什么接收飞书消息、管理会话、选择模型、控制权限、展示过程并回传结果
两条路线是什么默认使用 app-server 原生线程;Computer Use 仅在需要操作图形界面时使用
语音如何变成任务飞书接收音频,OpenClaw 下载并转写,再用转写文本执行任务
如何继续一个任务在同一个飞书会话继续,或通过 /codex resume <thread-id> 恢复线程
为什么需要审批代码修改、命令执行和外部操作必须受工作目录、工具权限和人工确认约束

一、先分清两个系统

OpenClaw 与 Codex 不是互相替代,而是各自承担不同职责。

能力Codex 桌面版 / app-serverOpenClaw / 寅宾
原生线程创建、恢复、续跑、压缩选择并绑定当前线程
模型认证使用 Codex 账户和原生配置也可以在消息渠道选择模型
开发执行读写项目、运行命令、调用工具配置工作区、审批和可见性
消息渠道不负责飞书等外部渠道接入飞书并管理会话
身份与权限提供 Codex 自身权限模型增加渠道、用户、工具和审批边界
媒体与回传以开发任务和工具结果为主发送文字、卡片、图片、文件和进度
上下文Codex 原生 thread 与 compaction渠道历史、工作区文件、Skill 和记忆

一句话概括:

Codex 是执行开发任务的智能体;OpenClaw 是把飞书、语音、权限和 Codex 连接起来的控制面。

1.1 桌面版 Codex 的基本使用

Codex 桌面应用(用户常称 ChatGPT 桌面版)可以按四个动作理解:

  1. 选择项目。 打开一个本地代码目录,并确认当前分支和允许访问的范围。
  2. 创建线程。 一个线程对应一个连续任务,例如“修复移动端溢出”或“审查这次发布”。
  3. 描述任务。 写清目标、范围、约束、验收命令和交付格式,让 Codex 先调查再修改。
  4. 审查结果。 查看工具过程、文件差异和验证结果;遇到命令执行或高风险动作时进行审批。

桌面版的优势是可视化:项目、线程、工具调用、差异和审批都在同一个界面中,适合人工深度参与。它的限制是入口固定在桌面应用,离开电脑后不方便继续操作。

接入 OpenClaw 后,线程仍由 Codex 原生执行,但入口可以扩展到飞书。桌面版适合“坐下来详细审查”,飞书适合“随时提交、查看进度、补充方向和处理审批”。两边连接的是同一类核心能力,不是两套互不相关的系统。

二、默认路线:Codex app-server 原生线程

官方 @openclaw/codex 插件通过 Codex app-server 执行嵌入式智能体回合。它使用 Codex 的原生线程、恢复、工具续跑、压缩和 app-server 执行机制,而不是模拟用户点击桌面窗口。

2.1 请求如何流转

  1. 用户在飞书发出文字或语音。
  2. 飞书插件接收消息;如果是语音,则下载音频并生成媒体附件。
  3. OpenClaw 调用配置好的语音转写能力,把音频转成文字。
  4. OpenClaw 识别用户、渠道、工作区和权限,构造任务。
  5. Codex 插件通过 app-server 创建新线程,或恢复已有线程。
  6. Codex 在指定项目目录中执行任务,必要时请求审批或补充信息。
  7. OpenClaw 把状态、问题、审批请求和结果送回飞书。
  8. 完成后,原生线程保留,可继续追问、恢复或压缩。

2.2 两种传输方式

Codex 插件可以采用两种 transport:

传输方式工作方式适合场景
stdioOpenClaw 在本地启动 codex 进程并与其通信单机部署、配置简单
websocket连接一个已经在运行的 Codex app-server共享服务、已有 app-server 管理流程

第一次上手通常从 stdio 开始,确认链路后再考虑连接长期运行的 app-server。

2.3 homeScope:共享还是隔离

Codex 插件中的 appServer.homeScope 决定它使用哪一套 Codex 主目录:

取值使用的目录影响
agent智能体隔离目录默认更安全,认证、配置和线程与桌面版隔离
user原生 $CODEX_HOME 或 ~/.codex可共享原生认证、配置、插件和线程

如果希望 OpenClaw 看到并使用 Codex Desktop 的原生线程、登录状态和配置,需要认真评估 user 范围。共享也意味着权限和上下文影响面更大,不应在未确认的情况下直接开启。

三、安装与基础配置

3.1 安装插件

openclaw plugins install @openclaw/codex

如果 OpenClaw 配置里使用了 plugins.allow 白名单,需要把 codex 加入允许列表,否则插件不会启用。

3.2 登录模型供应商

openclaw models auth login --provider openai

实际供应商名称和登录流程以当前版本为准。已经通过 Codex 原生登录、且 homeScope 配置为共享时,也应先检查账户与权限是否符合预期。

3.3 最小配置示例

{
  plugins: {
    entries: {
      codex: {
        enabled: true
      }
    }
  },
  agents: {
    defaults: {
      model: "openai/gpt-6-astra"
    }
  }
}

如果还需要指定 app-server 传输和共享范围,可在 Codex 插件配置中补充。不要从网上直接复制来路不明的完整配置,先确认字段与当前版本一致,再用最小配置逐步验证。

3.4 验证状态

在支持命令的渠道中发送:

/codex status
/codex models
/codex account

期望结果分别是:插件与 app-server 状态正常、能看到可用模型、账户认证有效。任何一项失败时,先解决这一项,不要继续往下连接飞书。

四、常用线程命令

Codex 插件提供了一组以 /codex 开头的控制命令。它们用于管理线程和运行状态,而不是代替正常任务描述。

命令作用
/codex status查看插件、app-server 和当前绑定状态
/codex models查看可用模型
/codex threads [filter]列出原生线程
/codex resume <thread-id>恢复指定线程
/codex compact压缩当前线程上下文
/codex review对当前工作发起审查
/codex account查看账户状态
/codex mcp查看 MCP 连接状态
/codex skills查看 Codex 可用技能
/codex binding查看当前渠道与线程的绑定
/codex detach解除当前绑定
/codex stop停止当前运行
/codex steer <text>在不中断当前任务的情况下补充方向

4.1 为什么有时无法恢复

一个原生线程同一时间只能被一个 Codex 进程安全地推进。如果桌面版或其他进程正在运行该线程的回合,OpenClaw 不能强行 resume 或 branch。正确做法是:

  1. 等待当前回合结束。
  2. 在持有线程的客户端完成或停止任务。
  3. 再通过 /codex resume <thread-id> 继续。
  4. 原生子线程不能直接恢复时,回到父线程继续。

不要通过重复发送命令来“抢占”线程。这只会制造更多状态冲突。

五、接入飞书渠道

5.1 登录飞书渠道

openclaw channels login --channel feishu

飞书文档要求 OpenClaw 版本不低于 2026.5.29。生产使用前先确认版本和渠道配置已通过升级验证。

默认情况下,飞书可以使用 WebSocket 事件传输,不要求服务器暴露公网 URL。Webhook 是可选方式,适合已有统一回调网关的部署。

5.2 为什么飞书能接收语音

飞书渠道可以接收文字、富文本、图片、文件、音频、视频和贴纸。收到语音时:

  1. 入站音频先被规范化为媒体附件。
  2. 配置音频处理后,OpenClaw 下载语音文件并尝试转写。
  3. 如果飞书 payload 已经带有 transcript,则直接使用,不再重复运行语音识别。
  4. 如果没有任何转写能力,智能体只会看到类似 <media:audio> 的占位符和附件,无法可靠理解语音内容。

自动转写会按当前可用能力选择候选,包括回复模型、已配置的供应商认证、常见云端语音服务和本地语音识别工具。OpenAI 常见默认模型包括 gpt-4o-transcribe,也支持更轻量的 gpt-4o-mini-transcribe。具体顺序和可用项取决于版本、配置和账户。

语音可用性前提:飞书能收到音频,不等于系统一定能听懂。必须同时具备音频下载、媒体规范化、语音转写或飞书自带 transcript,才能把语音稳定转成任务。

5.3 推荐的首次连通测试

先不用语音,按下面顺序排除问题:

  1. 在飞书发送 /codex status,确认文字链路和插件正常。
  2. 发送“列出当前工作区路径”,确认会话绑定的是预期项目。
  3. 发送一段十秒语音:“请回复你收到的测试编号是一二三。”
  4. 查看回复是否准确转写数字;如果不准确,先检查语音识别配置。
  5. 最后再提交一个只读任务,例如“读取 README,用三句话总结项目目标,不要修改文件”。

只有文字、语音、只读执行三条链路都正常后,才适合开放写文件和运行命令。

六、用自然语言提交开发任务

接入完成后,飞书里的表达可以尽量自然,但最好包含五个要素:

要素示例
目标修复移动端导航栏溢出
范围只修改 src/components/Reader.astro
约束不改变桌面端样式,不升级依赖
验收390 像素宽度下无横向溢出,pnpm check 通过
交付给出改动摘要、验证结果和未验证项

可以这样直接说:

请让 Codex 检查教程站的移动端导航。只修改相关组件和样式,不要升级依赖。验收标准是 390 像素宽度下页面没有横向溢出,pnpm check 和 pnpm build 通过。完成后给出文件列表、测试结果和需要我确认的事项。

6.1 任务进行中如何补充要求

如果任务方向基本正确,只是需要增加约束,使用 steering,而不是重新发一个互相冲突的任务:

/codex steer 首页不要改,只处理教程详情页

如果任务目标已经错误,先停止:

/codex stop

然后再重新描述任务。不要在一个已经跑偏的线程上连续叠加矛盾要求。

6.2 审批如何回到飞书

Codex 在运行命令、修改文件或访问外部系统时,可能触发自己的权限请求。OpenClaw 可以把这些请求转成飞书中的可读消息。

批准前至少检查:

  • 执行的是哪个工作区,路径是否正确?
  • 命令是否会删除、覆盖、发布或付款?
  • 是否使用了生产凭证?
  • 影响范围是否只在当前项目?
  • 是否可以先在测试环境执行?
  • 如果不批准,有没有更小、更安全的替代步骤?

审批不是确认“机器人很聪明”,而是确认具体动作及其后果。

七、可选路线:Computer Use

只有在任务必须操作用户图形界面时,才需要 Codex Computer Use。例如:

  • 点击一个没有 API 的桌面应用。
  • 查看只存在于屏幕上的窗口状态。
  • 操作浏览器图形界面中的交互流程。
  • 在没有其他连接器的环境下完成点击和输入。

这条路线与 app-server 原生线程不同。它通常需要 macOS 屏幕录制、辅助功能等系统权限,也更依赖窗口位置、分辨率和应用状态。

常用命令:

/codex computer-use status
/codex computer-use install

7.1 为什么不把它作为默认方案

风险app-server 原生线程Computer Use
依赖界面布局否是
速度较快受截图和点击影响
可观测性线程与工具事件清晰需要观察屏幕与应用状态
故障类型认证、线程、工具错误权限、焦点、弹窗、坐标、分辨率
批量自动化更适合容易受界面变化影响
安全控制工作区和审批规则明确可能拥有更广的桌面操作范围

能用原生工具和连接器完成的任务,优先走原生路线。Computer Use 是补缺口,不是万能入口。

八、一次完整的语音任务演示

下面把全过程串联起来:

  1. 用户在飞书按住语音说:“让 Codex 在教程站项目里检查所有旧链接,修复能确认的失效链接。先列出计划,不要改依赖,完成后运行构建并把结果发给我。”
  2. 飞书把音频交给 OpenClaw,OpenClaw 下载并转写。
  3. OpenClaw 识别项目、工作区和当前飞书会话,恢复上次绑定的 Codex 线程,或创建新线程。
  4. Codex 扫描 Markdown 链接,列出计划和拟修改文件。
  5. OpenClaw 把计划发回飞书。
  6. 用户回复“按计划执行,第三方链接只报告不修改”。
  7. Codex 修改本地链接,运行检查与构建。
  8. 如果构建失败,OpenClaw 发回失败原因和下一步建议。
  9. 构建通过后,Codex 汇总文件、验证结果和未验证项。
  10. 用户继续追问“把这次经验写进项目文档”,同一个线程在保留上下文的情况下继续工作。

这条链路的价值不是“用语音代替键盘”,而是让任务入口、执行环境、审批和结果回传保持在同一个可追踪会话中。

九、故障排查

按从近到远的顺序检查,不要同时修改多个层。

现象优先检查处理方向
飞书收不到回复飞书渠道状态、机器人权限、事件订阅先测试普通文字消息
文字正常,语音无内容音频下载、媒体处理、转写供应商检查媒体附件与转写日志
/codex status 失败插件、白名单、app-server确认插件启用和进程状态
看不到桌面版线程homeScope、账户、线程归属评估共享用户目录,不强行切换
resume 失败线程是否被桌面版占用等当前回合结束后重试
修改了错误目录会话与项目绑定停止任务,检查 cwd 和权限
命令一直等待审批飞书卡片、审批消息、超时在渠道内查看原始请求
Computer Use 无法操作屏幕录制、辅助功能、焦点检查系统权限和当前窗口

十、安全边界

把飞书、语音、Codex 和桌面能力接在一起后,影响范围明显扩大。必须坚持:

  • 每个用户或群组绑定明确的工作区和权限。
  • 不用语音处理密钥、密码和生产凭证。
  • 删除、发布、付款、权限变更必须人工确认。
  • 外部网页和语音转写文本都不能成为绕过权限的指令。
  • Codex 的任务范围应在项目目录内,不能默认获得整台电脑的无限权限。
  • 审批消息要显示具体命令、路径和影响,而不是只问“是否允许”。
  • 任务结束后检查改了哪些文件、哪些命令运行过、哪些结果没有验证。
  • 定期清理线程绑定、过期凭证和不再使用的渠道权限。
正确预期:语音只是更自然的输入方式,不会自动提高权限,也不会让高风险操作变得安全。真正的安全来自工作区隔离、工具白名单和逐步审批。

十一、课堂练习

完成一次从语音到代码结果的闭环:

  1. 在飞书发送 /codex status,确认插件正常。
  2. 发送一条语音,让 Codex 只读一个项目 README,并总结三条要点。
  3. 查看飞书返回的转写结果是否完整。
  4. 用文字补充一个文件修改任务,明确范围、验收命令和禁止事项。
  5. 观察 Codex 的审批请求,分别记录一次允许和一次拒绝。
  6. 在任务完成后要求它列出改动文件、验证结果和未验证项。
  7. 同一个飞书会话继续追问,确认线程上下文得到保留。
  8. 最后检查 /codex binding,确认渠道与线程绑定符合预期。

十二、本讲小结

  1. 默认路线是 Codex app-server 原生线程。 它保留 Codex 的线程、恢复、压缩和工具执行能力。
  2. OpenClaw 是控制面。 它连接飞书、语音、身份、工作区、审批和结果回传。
  3. homeScope 决定共享还是隔离。 共享原生 Codex 目录能力更强,但权限和上下文影响也更大。
  4. 语音链路包含接收、下载、转写和理解。 任何一步缺失,语音都不能稳定成为任务。
  5. Computer Use 只处理必须操作界面的场景。 能走原生工具链时,优先走原生工具链。
  6. 所有执行都要有边界。 工作区、命令、审批、日志和回退路径缺一不可。

实践课结语

五讲连起来,就是一条完整的智能体工程路径:

讲次解决的问题
第一讲建立 OpenClaw、智能体与寅宾的整体认知
第二讲从网络获取可靠信息
第三讲用上下文文件形成长期协作人格与记忆
第四讲用 Skill 沉淀可复用工作方法
第五讲用飞书语音把 Codex 接入真实开发任务

下一阶段可以从自己的一个高频、低风险场景开始:先跑通,再把规则写进上下文,把流程沉淀成 Skill,最后接入一个稳定的渠道。不要第一天就追求“全自动接管”。


课程: 智能体工程导论

讲师: Job Zhao

公司名称: 青岛火一五信息科技有限公司

联系邮箱: postmaster@huo15.com

联系与加入

继续交流

扫码关注逸寻智库,或添加讲师赵博的企业微信。

逸寻智库二维码
逸寻智库扫码关注,获取后续课程与研究内容。
赵博企业微信二维码
赵博的企业微信扫码添加讲师,交流课程与实践问题。