使用案例 · Agent 友好 CLI

做一个 Codex 能稳定调用的命令行工具

把重复访问的 API 或内部脚本封装成可组合命令,并用结构化输出、写入预演和配套 Skill 固定调用方法。

完成后应有一个已经放到 PATH 的命令、清楚的帮助文本、可预测的 JSON 输出、稳定退出码、认证自检、写操作预演和一份配套 Skill。验收者从另一个目录运行 tool --help,再完成一次搜索、按 ID 精确读取和写入预演,结果都能被脚本解析。这个证据比一句“Codex 可以用”更可靠。

先选一段值得封装的重复工作

适合做 CLI 的对象通常有稳定 API、日志源、导出目录或团队脚本,而且 Codex 会反复搜索、读取、下载或准备写入。先收集正式接口文档、分页规则、认证方式、错误样例和几份脱敏响应。若服务没有稳定标识符或写入不可撤销,先解决接口边界,别急着包一层命令。

把读取和写入分开列。读取可以包括 searchgetlistdownload。写入先做 draftplan,正式提交再使用明确的 apply。每个子命令说明必填参数、标准输出、标准错误、退出码和副作用。默认行为不应依赖交互选择,否则自动任务会卡在无人回答的提示上。

做一个 Codex 能稳定调用的命令行工具的入口、目标与准备条件操作示意图
图 1 · 进入任务前先确认目标、范围和准备条件

先把命令契约做小

搜索命令支持查询词、分页游标和数量上限,返回结果 ID、标题与下一页游标。精确读取只接收 ID,避免代理根据模糊标题选错对象。下载命令把文件写到显式目录并返回最终路径。所有正常数据写入标准输出,诊断信息写入标准错误,成功与不同失败使用固定退出码。

JSON 字段要稳定。缺失值使用统一表示,时间采用一种格式,分页结果不要在数据中混入进度文案。人类阅读可以另加 --format text,机器默认仍保持结构化。长列表必须分页,既控制响应体,也让调用者能在取得足够证据后停止。

为输出定义可测试的模式,并在顶层带上 CLI 版本或模式版本。新增可选字段通常可以兼容旧调用者,改名、换类型和删除字段需要升级主版本。--version--help 和每个子命令的示例要在无凭据时也能运行,便于 Codex 先理解接口再决定是否请求权限。

认证只从系统凭据存储或环境变量读取,帮助文本只写变量名。提供 auth check 之类的只读自检,输出账户范围与缺失权限,不回显令牌。写入命令要求显式目标和幂等键,先返回将要变化的对象、字段与请求摘要,得到批准后才提交。

做一个 Codex 能稳定调用的命令行工具的三步关键操作与请求骨架示意图
图 2 · 把关键操作拆成三步,并给每一步留下可观察结果

用真实失败来打磨接口

为成功、空结果、无权限、限流、服务错误、非法参数和网络中断准备测试。HTTP 成功并不总等于业务成功,解析层要识别服务自己的错误字段。下载一半失败时删除临时文件或标出不完整状态,写入超时则用幂等键查询结果,避免盲目重试产生重复对象。

错误输出也要有固定结构,至少带可识别代码、简短说明和能否重试。调用者据此选择补参数、等待或请求人工处理,避免把所有失败都交给下一次盲试。

把可重复的响应做成夹具,测试 JSON 模式和退出码。再连接一个测试账户完成小范围集成验证。可见结果应包含命令、输入、脱敏输出和预期退出码,不能只保存终端里的一句成功提示。

安装后换到仓库之外的临时目录运行帮助、认证检查和只读命令。这样能发现相对路径、当前目录配置和未打包资源等问题。随后把命令与一个现有仓库脚本串起来,确认管道只消费标准输出。

再做一次中断测试。让进程在分页中途、下载中途和写入等待批准时退出,检查它有没有留下锁、半成品或无法解释的远端状态。恢复方式写进帮助文本,调用者才能在失败后安全继续。

用 Skill 保存正确的调用顺序

CLI 解决可执行接口,Skill 负责告诉后续 Codex 任务先运行哪条读取命令、怎样分页、哪些写操作必须等批准。SKILL.md 的描述写清触发场景,正文放最短工作流,较长模式和示例放进 references,确定性检查可以放进 scripts。

Skill 中不要复制 API 密钥,也不要把所有 CLI 帮助全文塞进去。它只保留顺序、判断和安全边界。安装后开一个新任务,用自然语言提出真实需求,观察 Codex 是否先查 ID、再精确读取、最后停在写入批准之前。

做一个 Codex 能稳定调用的命令行工具的结果验收与交付证据清单示意图
图 3 · 用结果、检查与交付证据确认任务真的完成

风险与限制

CLI 会把底层服务的能力放大到自动流程中。权限过宽、输出不稳定和隐式写入都会扩大误操作。服务接口变更后,旧 Skill 也可能继续给出过时顺序。应记录 CLI 版本与输出模式,为破坏性改动保留版本策略,并定期用测试账户复查。

交付清单

  1. 命令从任意目录可调用并有完整帮助
  2. 搜索、精确读取和下载使用稳定 JSON
  3. 分页、错误和退出码已经测试
  4. 认证自检不泄露凭据
  5. 写入提供预演、显式批准和幂等保护
  6. 配套 Skill 能在新任务中选对调用顺序

参考

  1. OpenAI Agent 友好 CLI 用例
  2. Codex Skills 编写说明
  3. Codex 项目指令说明
  4. Codex 集成终端
  5. Codex 非交互模式
  6. Codex MCP 说明