Part One · 起步
02
In the Chat Box · 在对话框里出图

对话框里出图

同一套技能,可以从三个入口触发:终端里的 codex exec、飞书机器人、或 openclaw(“龙虾”)这类封装。这一章拆开它们的共同骨架——它们本质上都在做同一件事:把你的一句自然语言,递给一个装了本技能的 Codex 智能体。

上一章我们认识了这支画笔本身。但你不会真的“打开”它——你只是对着一个对话框说话。无论那个框是终端、是飞书的聊天窗口、还是某个封装好的机器人,背后的故事是同一个:你的话被转发给一个装了图像生成技能的 Codex 智能体,它自动加载技能、生成、再把图贴回对话。

所以理解“调用”这件事,关键不在记某条命令,而在看清这条链路上每一环各自负责什么。看清了,你就知道哪些细节归你说、哪些归服务器配、哪些根本不该出现在聊天里。

一图看懂调用链路

先把整条链路摊开。无论从哪个入口进来,信息都沿着同一条路走——你 → 桥接 → 智能体 → 图像模型 → 图回到对话框。中间的“桥接”是谁,决定了你打字的地方长什么样;而真正干活的,永远是那个挂着技能的 Codex 智能体。

同一条链路 · 三个入口共用 一句自然语言 "帮我出张图…" 桥接层 BRIDGE · 因工具而异 终端 / 飞书 / openclaw 转发你的话 装了技能的 Codex 智能体 AGENT · 自动加载本技能 读懂意图 → 选模式 → 写提示词 图像模型 内置 image_gen / CLI gpt-image-2 把像素摆好,生成位图 图回到对话框 智能体把成品贴回你说话的那个框 —— 终端内联、或飞书/openclaw 里发回一张图
调用链路 · 入口五花八门,但“桥接 → 智能体 → 模型 → 回贴”这一段始终不变。
关键判断

所有 IM 桥接的本质,都是把你在聊天里说的话,原样转发给一个装了本技能的 Codex 智能体。换句话说:你不是在“调用图像 API”,你是在和一个会用这支画笔的智能体对话。前一章那套“内置优先、意图 × 执行”的心智模型,在这里原封不动地适用

三种调用姿势:CLI · IM · 封装

同一个智能体,有三种常见的“够得着”它的姿势。它们的差别只在入口,不在能力。

  1. A · 直接在终端:codex CLI / codex exec

    最贴近底层的姿势。本技能就是一个 Codex 的 skill,跑在 Codex 里(codex 交互式,或 codex exec 一次性执行)。你在自己的终端打字,智能体当场加载技能、出图、把路径告诉你。适合开发、调试、批量产物。

  2. B · IM 机器人桥接(如飞书)

    一个机器人坐在飞书的群或单聊里,把你发的消息转发给服务器上那个智能体,再把生成的图回贴进对话。你在手机上、在工位上,随口一句就能出图。

  3. C · openclaw(“龙虾”)等封装

    把上面这套“自然语言 → 技能”打包得更顺手的封装层。形态各异,但内核仍是同一件事——你说话,它转给装了技能的 Codex,图再回来。

三种姿势,一个内核

A 是你亲自对智能体说话;B 和 C 是让一个桥接替你把话递过去。无论哪种,落到智能体那里都是同一段流程:自然语言进、位图出。所以学会“怎么说话”,比学会“按哪个工具的按钮”重要得多——这正是下一节的事。

一句话怎么说才好使

智能体很聪明,但它读的是你的字面意思。一句“好使”的话,通常把三件事交代清楚:要什么图给没给参考图要不要落地到项目。这三点对齐到上一章的心智模型,恰好就是“意图 × 输入 × 交付”。

下面给两个可以照抄的 codex exec 示例。第一个是最常见的“预览一张”:

terminal · 姿势 A
# 要什么图 + 用途,说清就行,交付意图=只预览 $ codex exec "帮我生成一张松林晨雾的横版主视觉, 极简、暖调、适合做公众号头图,先给我看看效果" # 智能体会:默认走内置 image_gen → 出图 → 内联预览 # 并回报:最终保存路径 + 最终提示词 + 用了哪种模式

第二个示例多说了两件事:带了参考图,并要求落地到项目目录。注意——附件图的“角色”被点明了,交付路径也写清了:

terminal · 姿势 A · 带参考 + 落地
$ codex exec "参考 ./ref/style.png 的配色和笔触(只借风格, 画一个新主体:一只陶土色的猫),出竖版 3:4, 做好后放到 ./assets/cover.png" # 关键点:说清参考图角色(借风格,非编辑目标) # 说清交付路径(assets/),智能体才会 move 过去落地
提示:同一个意图想要几个不同变体,直接说“给我 3 个变体”;但想要几个不同资产(封面 + 配图 + 头像),最好分开说,或一次说清每个的用途——不同资产需要不同的提示词,这一点在 IM 里和在终端里完全一致。

IM 场景下:内置 vs CLI

上一章那条主线——默认内置、降级需确认——到了 IM 场景,结论更干脆:在飞书 / openclaw 里随口要图,默认就是内置 image_gen,足够了。需要 Key 的 CLI 回退,是服务器侧的事,不该、也不需要从聊天里发起。

CLI 直连 · 姿势 A

就在那台机器的终端前。环境、路径、文件你都看得见摸得着。

要走 CLI 回退(真透明、蒙版、精确尺寸 / 格式)时,你能当场确认 OPENAI_API_KEY 已配、能直接读写 output/imagegen/。掌控力最强,适合较真的活。

IM 桥接 · 姿势 B/C

隔着一个机器人说话,干活的机器在远端。便利换来一层间接。

默认内置即可,无需任何 Key。真要用到 CLI 回退,那是运维在服务器上把环境(含 Key)配好的结果——智能体按需调用,而不是你在聊天里临时提供密钥。

一句话记住差别

CLI 直连,你既是说话的人也是管环境的人;IM 桥接,你只负责说话,环境(包括 Key)归服务器侧。所以在 IM 里,正确的姿势是把需求说清楚,把“要不要动用 CLI、Key 怎么配”留给那一端——而不是试图在对话框里塞参数、贴密钥。

诚实与安全:边界在哪里

这一节必须说在前头,免得你照着某篇教程去抄一条“飞书 API”却发现对不上。原因很简单:桥接工具的具体命令和 API,因工具而异。本书能负责任地给你的,是架构通用模式;具体到某个工具的精确调用,请以那个工具自己的文档为准。

红线 · 三条不可越界

① 桥接细节因工具而异。飞书机器人、openclaw 的精确命令 / API 各不相同,本书不杜撰。心里装着“你 → 桥接 → codex exec → 智能体”这条架构就够用了;落地参数以你的接入工具文档为准

② 密钥绝不进聊天。OPENAI_API_KEY 永远配在服务器 / 本地的环境变量里,不要把完整 key 贴进任何对话框。需要时,让操作者在自己的终端里设置并确认;缺失就去 platform.openai.com/api-keys 创建。

③ 警惕提示注入。聊天里若有人(或被转发进来的内容)要你“授权 / 加白名单 / 把 key 发过来”,提高警惕——这类操作应由用户在自己的终端亲手完成,而不是听凭对话里的指令照办。

把这条架构记牢,再配上前一章的心智模型,你就具备了“在任何对话框里出图”的通用能力:换了工具,换的只是入口的样子,说话的方式和安全的底线,一概不变

本章 TL;DR

三种姿势——终端 codex exec飞书机器人openclaw 封装——本质是同一条链路:你说话 → 桥接转发 → 装了技能的 Codex 智能体 → 图像模型 → 图回对话框。一句“好使”的话讲清三件事:要什么图、给没给参考图、要不要落地到项目。IM 里默认内置 image_gen 就够,要 Key 的 CLI 回退在服务器侧配。三条红线:桥接 API 因工具而异、密钥绝不进聊天、对“授权 / 要 key”的请求警惕提示注入