首页 > 教程 > Codex 教程 > Codex 非交互模式
Codex 教程

Codex 非交互模式

第 31 / 41 节 2026-11-08

非交互模式允许你在脚本、CI/CD 流水线或无头环境中使用 Codex。本节详细介绍如何配置和使用非交互模式。


基础用法

执行单个任务

基本 exec 命令

# 执行简单任务
codex exec "列出当前目录的 Python 文件"
# 使用双引号处理复杂命令
codex exec "分析 src/ 目录的代码结构"

从标准输入读取

stdin 输入

# 从管道读取
echo "解释这段代码" | codex exec --stdin
# 从文件读取
codex exec --stdin < task.txt
# 多行输入
cat <<EOF | codex exec --stdin
创建一个函数计算阶乘
测试这个函数
EOF

非交互模式非常适合自动化任务和脚本集成。


命令行参数

常用参数

参数 说明
exec "任务" 执行指定任务
--stdin 从标准输入读取任务
--model, -m 指定模型
--no-auto-approve 禁用自动确认
--output, -o 输出到文件

完整示例

完整参数示例

# 指定模型
codex exec -m gpt-5.4-mini "审查代码"
# 输出到文件
codex exec "创建 README" -o README.md
# 禁用自动确认
codex exec --no-auto-approve "运行测试"
# 组合使用
codex exec -m gpt-5.4 "审查 PR" --output review.md

配置

配置文件设置

配置非交互模式

# 非交互模式默认设置
[exec]
# 默认模型
default_model = "gpt-5.4"
# 自动批准阈值
auto_approve_threshold = "medium"
# 超时时间(秒)
timeout = 300

执行策略

在非交互模式下,默认策略通常是 deny(拒绝可能产生副作用的操作):

设置执行策略

# 使用 ask 策略
codex exec --approval ask "创建文件"
# 使用 approve 策略(谨慎使用)
codex exec --approval approve "运行测试"
# 使用 deny 策略(只读)
codex exec --approval deny "分析代码"

出于安全考虑,非交互模式下默认禁用可能产生副作用的操作。


Shell 脚本集成

基本脚本

Shell 脚本示例

#!/bin/bash
# 使用 Codex 进行代码审查
codex exec "审查 src/ 目录中的代码" --output review.md
if [ $? -eq 0 ]; then
    echo "审查完成,结果已保存到 review.md"
else
    echo "审查失败"
fi

批量处理

批量处理脚本

#!/bin/bash
# 批量审查多个文件
for file in $(find src -name "*.py"); do
    echo "审查: $file"
    codex exec "审查 $file 文件" --output "review_$(basename $file).md"
done

条件执行

#!/bin/bash
# 根据文件数量决定是否使用 Codex
FILE_COUNT=$(find src -name "*.py" | wc -l)
if [ $FILE_COUNT -gt 10 ]; then
    echo "文件较多,使用 Codex 批量审查"
    codex exec "审查所有 Python 文件" --output full_review.md
else
    echo "文件较少,逐个审查"
    for file in $(find src -name "*.py"); do
        codex exec "简单审查 $file"
    done
fi

CI/CD 集成

GitHub Actions

GitHub Actions 工作流

span style="color: green;">
name: Code Review
on: [pull_request]
jobs:
  codex-review:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Setup Codex
        uses: openai/codex-action@v1
      - name: Run Code Review
        run: |
          codex exec "Review code changes in this PR" \
            --output review.md
      - name: Upload Review
        uses: actions/upload-artifact@v4
        with:
          name: code-review
          path: review.md

GitLab CI

GitLab CI 配置

span style="color: #007F45;">
codex_review:
  image: node:20
  before_script:
    - npm install -g @openai/codex
  script:
    - codex exec "Review changes in this merge request" --output review.md
  artifacts:
    paths:
      - review.md

Jenkins

Jenkins Pipeline

pipeline {
    agent any
    stages {
        stage('Code Review') {
            steps {
                sh 'codex exec "Review changed files" --output review.md'
            }
        }
    }
    post {
        always {
            archiveArtifacts 'review.md'
        }
    }
}

将 Codex 集成到 CI/CD 流程中,可以实现自动化代码审查和质量检查。


最佳实践

输出处理

  • 使用 --output 将结果保存到文件
  • 检查返回码判断执行是否成功
  • 处理可能的错误情况

性能优化

  • 使用 gpt-5.4-mini 减少成本
  • 批量处理多个任务
  • 设置合理的超时时间

安全性

  • 避免使用 --approval approve
  • 在 CI/CD 中使用只读模式
  • 保护 API 密钥

在生产环境中使用非交互模式时,请格外注意安全问题。


常见问题

Q: 非交互模式支持所有功能吗?

大部分功能都支持,但某些需要交互确认的功能可能无法使用。

Q: 如何处理需要确认的操作?

使用 --no-auto-approve 参数,或在配置文件中设置执行策略。

Q: 输出格式可以定制吗?

目前支持纯文本输出和 Markdown 输出。

Q: 如何在 Docker 中使用?

将 Codex 安装到 Docker 镜像中,然后在 CI/CD 流程中调用。

©️版权声明:
本网站(https://aigc.izzi.cn)刊载的所有内容,包括文字、图片、音频、视频等均在网上搜集。
访问者可将本网站提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。除此以外,将本网站任何内容或服务用于其他用途时,须征得本网站及相关权利人的书面许可,并支付报酬。
本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站,予以删除。

继续学习其他教程