【AI大模型Harness】-Codex源码深度解读

作者:Java后端的Ai之路日期:2026/9/18

Codex源码深度解读:从原理到企业落地,一篇文章搞懂AI编程Agent的天花板

2026年8月19日,OpenAI正式将驱动Codex App、CLI和IDE扩展的底层执行框架——Codex Agent Harness全面开源(Apache-2.0协议)。这意味着,曾经只存在于OpenAI内部的生产级AI Agent运行时,现在任何人都可以阅读源码、二次开发、甚至嵌入到自己的企业系统中。本文将从源码层面拆解Codex的设计哲学,结合实际代码教你如何在企业项目中落地使用。


文章目录

  • Codex源码深度解读:从原理到企业落地,一篇文章搞懂AI编程Agent的天花板
    • 痛点场景:你是不是也遇到过这些开发噩梦?
    • 一、Codex到底是什么?
      • 1.1 专业定义
        • 1.2 大白话解释
        • 1.3 生活案例
    • 二、为什么要用Codex?痛点的解决方案
      • 2.1 解决"读代码慢"的问题
        • 2.2 解决"重复劳动多"的问题
        • 2.3 解决"质量参差不齐"的问题
        • 2.4 解决"调试耗时"的问题
        • 2.5 一句话总结
    • 三、Codex是怎么演进过来的?
      • 3.1 第一世:2021年,那个"懂代码的GPT"
        • 3.2 沉寂期:2022-2024年,名字被雪藏
        • 3.3 第二世:2025年4月,Codex CLI开源
        • 3.4 2025年5月,云端Agent预览
        • 3.5 2025年9月,GPT-5-Codex成为默认
        • 3.6 2026年上半年,生态爆发
        • 3.7 2026年8月,Harness全面开源
    • 四、Codex源码架构深度解读
      • 4.1 整体目录结构
        • 4.2 核心概念:Thread、Session、Turn、Step
        • 4.3 Agent Loop核心源码解析
        • 4.4 上下文管理:ContextManager
        • 4.5 工具调度:Tool Runtime
        • 4.6 沙箱安全:多平台隔离
        • 4.7 持久化:Thread Store
        • 4.8 三层集成接口
    • 五、Codex怎么用?常用场景教学
      • 5.1 安装与配置
          • 安装Codex CLI
            * 配置API Key
            * 配置文件
        • 5.2 场景一:交互式开发(最常用)
        • 5.3 场景二:非交互式执行(codex exec)
        • 5.4 场景三:AGENTS.md项目配置
        • 5.5 场景四:Skills技能包
          • 创建自定义Skill
            * 使用Skill
        • 5.6 场景五:MCP工具扩展
          • 配置MCP Server
    • 六、企业项目中如何使用Codex?
      • 6.1 企业部署模式
        • 6.2 CI/CD集成(最实用的企业场景)
          • GitHub Actions集成
            * 自动修复Lint问题
        • 6.3 Python SDK集成(嵌入到自己的系统)
          • 安装SDK
            * 基本用法
            * 批量处理任务
        • 6.4 企业安全配置
          • 权限审批规则
            * 沙箱策略
            * 审计日志
        • 6.5 企业落地最佳实践
    • 七、竞品对比:Codex vs Claude Code vs Cursor vs GitHub Copilot
      • 7.1 核心参数对比表
        • 7.2 各工具优劣势分析
          • Codex
            * Claude Code
            * Cursor
            * GitHub Copilot
        • 7.3 选型建议
    • 八、面试官高频面试题
      • 8.1 基础概念题
        • 8.2 架构设计题
        • 8.3 工程实践题
        • 8.4 深度思考题
    • 九、总结

痛点场景:你是不是也遇到过这些开发噩梦?

先讲一个真实的故事。

我有个朋友在一家中型互联网公司做后端开发,上周跟我吐槽了他的一天:

  • 早上9点,产品经理扔过来一个需求:“把用户中心的三个接口重构一下,顺便加个缓存层。”
  • 他花了2小时读代码,搞清楚这三个接口分布在5个文件里,调用链长达8层。
  • 开始写代码,改到一半发现公共方法被其他模块依赖,又得回去看调用方。
  • 下午3点,终于写完了,跑测试,15个用例红了7个。
  • 开始调试,发现是缓存key的命名规则和老代码不一致。
  • 晚上8点,修完bug,写文档,写单测,提交PR。
  • 第二天,code review被打回来,说命名不规范、缺少错误处理。

这不是个例。根据Stack Overflow 2025年开发者调查,开发者平均只有32%的时间在写新功能,其余时间都花在读代码、调试、修bug、写文档、跑测试上。

更扎心的是:

  • 上下文切换成本高:一个需求可能涉及前端、后端、数据库、配置文件,来回切换文件和工具,注意力被切碎。
  • 重复劳动多:写CRUD、写单测、写文档、改格式,这些机械性工作占据了大量时间。
  • 知识断层严重:老员工走了,代码没人懂;新人上手,光熟悉项目就要一两周。
  • 质量参差不齐:每个人写代码风格不一样,code review变成了"规范纠察队"。
  • 调试耗时:一个诡异的bug,可能要追半天日志,加无数print。

那有没有一种工具,能像一个不知疲倦的初级工程师一样,帮你读代码、写代码、跑测试、修bug,而且7x24小时不喊累?

有,这就是Codex。

但Codex不是简单的"代码补全工具",它是一个完整的软件工程智能体运行时。要真正用好它,我们得从源码层面理解它到底是怎么工作的。


一、Codex到底是什么?

1.1 专业定义

Codex是OpenAI推出的生产级开源Coding Agent运行时,用Rust实现了一套统一的Agent核心(Codex Core),通过App Server(JSON-RPC 2.0)对外暴露,让CLI、IDE扩展、Web等多个前端共享同一份Agent Loop、工具编排、沙箱隔离和记忆管线。

源码地址:https://github.com/openai/codex

截至2026年8月,仓库已累计超过10万Star,是目前最火的AI编程Agent开源项目。

1.2 大白话解释

说人话,Codex就像一家全国性银行的IT系统:

  • 模型层(GPT-5.x-Codex) = 银行的"大脑",负责做决策,比如"这个需求该怎么实现"。
  • Harness核心(Rust写的) = 银行的"核心业务系统",负责管账户、管交易、管流程,是真正干活的地方。
  • CLI/IDE/Web = 银行的"柜台/APP/网银",是用户接触到的界面,不管你用哪个界面,背后都是同一套核心系统。
  • 工具层(Shell/文件/MCP) = 银行的"业务窗口",比如取钱窗口、转账窗口,Agent通过这些工具来操作真实世界。
  • 沙箱层 = 银行的"金库保险库",把操作限制在安全范围内,防止Agent搞破坏。

你可能会问:“这不就是个高级版的ChatGPT吗?”

区别大了。ChatGPT是"你问一句,它答一句",而Codex是"你给个任务,它自己规划、自己执行、自己验证、自己修正,直到完成"。

举个例子:

  • 你跟ChatGPT说:"帮我写个用户登录接口。"它给你返回一段代码,你自己复制粘贴到项目里。
  • 你跟Codex说:"帮我写个用户登录接口。"它会自己找到项目里的用户模块,看现有代码风格,创建文件,写代码,跑测试,测试不过自己修,最后给你一个可以直接合并的PR。

1.3 生活案例

想象你是一个餐厅老板。

  • 传统开发 = 你自己买菜、切菜、炒菜、端菜、收银,一个人干所有活,累得半死还容易出错。
  • 代码补全工具(如Copilot) = 雇了个切菜工,你说切什么他切什么,但不会自己炒菜。
  • Codex = 雇了个厨师长,你说"今天做个红烧肉",他自己规划菜单、买菜、切菜、炒菜、尝咸淡、调整火候,最后端上桌,你只需要验收。

这就是Agent和补全工具的本质区别:补全工具是"工具",Agent是"员工"。


二、为什么要用Codex?痛点的解决方案

2.1 解决"读代码慢"的问题

Codex启动时会自动扫描项目结构,读取AGENTS.md配置文件,理解项目的技术栈、编码规范、目录结构。你问它任何问题,它都能快速定位到相关文件。

1# 你只需要在项目根目录放一个AGENTS.md
2# Codex启动时会自动加载
3cat AGENTS.md
4
1# 项目规范
2- 语言:Python 3.11+
3- 框架:FastAPI
4- 代码风格:PEP 8,使用black格式化
5- 测试框架:pytest
6- 数据库:PostgreSQL,使用SQLAlchemy ORM
7- 禁止事项:不要修改migrations目录,不要直接写SQL
8

2.2 解决"重复劳动多"的问题

Codex可以通过codex exec命令实现自动化,比如自动写单测、自动修lint、自动更新文档。

1# 自动为src/auth目录下的所有文件写单元测试
2codex exec --full-auto "为 src/auth/ 目录下的所有 Python 文件编写单元测试,使用 pytest,覆盖率达到80%以上"
3
4# 自动修复lint错误
5codex exec --full-auto "运行 flake8 检查,修复所有可以自动修复的问题"
6
7# 自动更新CHANGELOG
8codex exec --full-auto "根据最近的git commit记录,更新 CHANGELOG.md"
9

2.3 解决"质量参差不齐"的问题

Codex严格按照AGENTS.md中定义的规范写代码,不会因为"心情"而改变风格。而且它写完代码会自动跑测试,测试不过就自己修。

1# 让Codex在写完代码后自动跑测试
2codex exec --full-auto "实现用户登录功能,完成后运行 pytest tests/test_auth.py 确保所有测试通过"
3

2.4 解决"调试耗时"的问题

你可以把报错信息直接扔给Codex,它会自己分析错误、定位代码、修复问题。

1# 把报错信息通过管道传给Codex
2pytest tests/ 2>&1 | codex exec --full-auto "分析这些测试失败的原因,并修复代码中的bug"
3

2.5 一句话总结

Codex的价值不是"替你写代码",而是"替你干那些你不想干但又必须干的活",让你把精力集中在真正需要创造力的地方。


三、Codex是怎么演进过来的?

很多人以为Codex是2025年才出来的新产品,其实它已经有5年历史了。理解它的演进历程,能帮你更好地理解它的设计决策。

3.1 第一世:2021年,那个"懂代码的GPT"

2021年7月,OpenAI在arXiv挂出论文《Evaluating Large Language Models Trained on Code》,Codex正式进入视野。

  • 架构:基于GPT-3的decoder-only Transformer
  • 参数规模:120亿
  • 训练数据:筛选GitHub 5400万个公开仓库,总计159GB高质量代码
  • 能力:HumanEval基准测试达到28.8%的通过率
  • 用途:给GitHub Copilot供血,做代码补全

这个时期的Codex,本质上就是一个"代码补全模型",你写一半,它帮你补另一半。

3.2 沉寂期:2022-2024年,名字被雪藏

2022年之后,OpenAI把重心放在了ChatGPT和GPT-4上,Codex这个名字逐渐淡出公众视野。但内部一直在积累Agent相关的技术。

3.3 第二世:2025年4月,Codex CLI开源

2025年4月,OpenAI突然发布Codex CLI,一个用Rust写的本地终端Agent。

  • 核心变化:从"模型"变成了"Agent",不再只是补全代码,而是能执行完整任务
  • 技术栈:Rust重写核心,零依赖安装
  • 沙箱:原生支持macOS Seatbelt、Linux Landlock+seccomp、Windows Job Objects
  • 开源协议:Apache-2.0

发布后npm周下载量很快冲到百万级,成为当时最火的AI编程工具。

3.4 2025年5月,云端Agent预览

OpenAI推出基于云沙箱的并行软件工程智能体,先给Pro/Enterprise用户,6月开放到Plus用户。

  • 核心变化:从"本地运行"变成"云端运行",可以并行处理多个任务
  • 能力:可以同时开多个子任务,每个子任务在独立的沙箱中运行
  • 模型:codex-1和codex-mini

3.5 2025年9月,GPT-5-Codex成为默认

GPT-5-Codex模型成为云端默认,引入Skills和Automations功能。

  • Skills:可复用的技能包,比如"写单测"、“代码审查”
  • Automations:自动化工作流,可以定时执行任务

3.6 2026年上半年,生态爆发

  • 桌面App发布
  • Codex Security安全扫描功能
  • 子代理(Subagents)功能
  • GPT-5.3/5.4-Codex模型相继落地
  • 与GitHub Copilot深度集成

3.7 2026年8月,Harness全面开源

这是里程碑式的事件。OpenAI把驱动所有Codex产品的底层执行框架——Codex Agent Harness全面开源。

开源的内容包括:

  • Rust核心(codex-rs)
  • App Server驱动层
  • 完整的SDK集成接口(TypeScript和Python)
  • 三层集成接口:codex exec、Codex SDK、App Server

这意味着,你现在可以把Codex的核心嵌入到自己的产品中,打造属于自己的AI编程Agent。


四、Codex源码架构深度解读

终于到了最硬核的部分。我们来拆开Codex的源码,看看它到底是怎么工作的。

4.1 整体目录结构

先看一下仓库的核心目录结构:

1openai/codex/
2├── codex-rs/                    # Rust核心,所有Agent逻辑都在这里
3│   ├── core/                    # 核心引擎:Session、Turn、上下文、工具调度
4│   ├── session/                 # 会话管理:turn循环、输入队列
5│   ├── context_manager/         # 上下文管理:历史消息、压缩、注入
6│   ├── tools/                   # 工具运行时:Shell、文件、MCP
7│   ├── sandboxing/              # 跨平台沙箱抽象
8│   ├── linux-sandbox/           # Linux Landlock / bubblewrap
9│   ├── windows-sandbox-rs/      # Windows 受限token、ACL
10│   ├── thread-store/            # 线程持久化抽象
11│   ├── skills/                  # 技能发现、加载、渲染
12│   ├── plugins/                 # 插件系统
13│   ├── mcp-server/              # MCP协议服务端
14│   ├── app-server/              # JSON-RPC 2.0 App Server
15│   ├── tui/                     # 终端UI
16│   └── exec/                    # 非交互执行入口
17├── sdk/
18│   ├── typescript/              # TypeScript SDK
19│   └── python/                  # Python SDK
20└── docs/                        # 文档
21

4.2 核心概念:Thread、Session、Turn、Step

要理解Codex的源码,首先要理解这四个核心概念:

概念类比说明
Thread一次对话用户和Agent的一次完整会话,包含所有历史消息
Session一次运行Thread的一次运行实例,管理当前状态
Turn一轮交互用户发一条消息,Agent处理完返回,这是一个Turn
Step一次模型调用一个Turn可能包含多次模型调用(思考->调工具->看结果->再思考)

用餐厅的例子:

  • Thread = 一桌客人从入座到离开的全过程
  • Session = 这桌客人当前的用餐状态(点菜中/上菜中/用餐中)
  • Turn = 客人叫一次服务员,服务员处理完回来
  • Step = 服务员处理过程中的一个动作(去厨房下单/端菜/结账)

4.3 Agent Loop核心源码解析

Agent Loop是Codex的心脏,负责协调用户、模型和工具。核心逻辑在codex-rs/core/session/turn.rs的run_turn函数中。

我们来看简化版的核心逻辑:

1// codex-rs/core/session/turn.rs
2pub async fn run_turn(
3    &mut self,
4    turn_context: &TurnContext,
5    input: UserInput,
6) -> Result<TurnOutput> {
7    // 第1步:构建初始上下文
8    let mut context = self.build_initial_context(turn_context, input)?;
9    
10    // 第2步:进入循环,直到模型给出最终回答或达到最大步数
11    let mut step_count = 0;
12    while step_count < turn_context.max_steps {
13        step_count += 1;
14        
15        // 第3步:调用模型,获取响应
16        let model_response = self.call_model(&context).await?;
17        
18        // 第4步:解析模型响应
19        match model_response {
20            ModelResponse::Text(text) => {
21                // 模型给出了文本回答,这轮结束
22                return Ok(TurnOutput::Final(text));
23            }
24            ModelResponse::ToolCall(tool_calls) => {
25                // 模型要求调用工具
26                for tool_call in tool_calls {
27                    // 第5步:检查权限,是否需要用户审批
28                    if self.needs_approval(&tool_call, turn_context)? {
29                        return Ok(TurnOutput::NeedsApproval(tool_call));
30                    }
31                    
32                    // 第6步:在沙箱中执行工具
33                    let result = self.execute_tool(&tool_call, turn_context).await?;
34                    
35                    // 第7步:把工具结果加入上下文,继续循环
36                    context.push_tool_result(tool_call, result);
37                }
38            }
39        }
40    }
41    
42    Err(TurnError::MaxStepsExceeded)
43}
44

这个循环的核心思想是:模型不是一次性给出答案,而是不断地"思考->行动->观察->再思考",直到完成任务。

这就是ReAct(Reasoning + Acting)模式的工程化实现。

4.4 上下文管理:ContextManager

上下文管理是Agent最关键的技术之一。模型的上下文窗口是有限的(比如200K tokens),但一个项目可能有几百万行代码。怎么在有限的上下文里塞下最有用的信息?

Codex的ContextManager做了这几件事:

1// codex-rs/core/context_manager/mod.rs
2pub struct ContextManager {
3    history: ConversationHistory,    // 对话历史
4    system_prompt: SystemPrompt,     // 系统提示词
5    tool_schemas: ToolSchemas,       // 工具定义
6    compact_strategy: CompactStrategy, // 压缩策略
7}
8
9impl ContextManager {
10    pub fn build_context(&self) -> Result<Context> {
11        let mut context = Context::new();
12        
13        // 1. 系统提示词(永远保留)
14        context.push(self.system_prompt.render());
15        
16        // 2. 工具定义(永远保留)
17        context.push(self.tool_schemas.render());
18        
19        // 3. AGENTS.md内容(项目规范,永远保留)
20        context.push(self.load_agents_md()?);
21        
22        // 4. 最近的对话历史(保留最近N轮)
23        context.push(self.history.recent_turns(10));
24        
25        // 5. 更早的历史(压缩成摘要)
26        if self.history.len() > 10 {
27            let summary = self.compact_strategy.compress(
28                self.history.older_turns(10)
29            )?;
30            context.push(summary);
31        }
32        
33        // 6. 如果还超预算,继续压缩
34        while context.token_count() > self.max_tokens {
35            context.compact_one_layer()?;
36        }
37        
38        Ok(context)
39    }
40}
41

大白话解释:上下文管理就像你整理行李箱。系统提示词和工具定义是"身份证和护照",必须带;AGENTS.md是"旅行攻略",必须带;最近的对话是"刚买的纪念品",优先带;更早的历史是"旧衣服",压缩成摘要带;实在装不下,就扔最不重要的。

4.5 工具调度:Tool Runtime

工具是Agent与真实世界交互的桥梁。Codex内置了这些工具:

工具功能
shell执行Shell命令
read_file读取文件
write_file写入文件
apply_patch应用补丁(修改文件)
grep搜索代码
glob匹配文件
mcp调用MCP协议的外部工具

工具执行的核心逻辑:

1// codex-rs/core/tools/runtime.rs
2pub async fn execute_tool(
3    &self,
4    tool_call: &ToolCall,
5    turn_context: &TurnContext,
6) -> Result<ToolResult> {
7    // 第1步:查找工具定义
8    let tool = self.registry.get(&tool_call.name)?;
9    
10    // 第2步:验证参数
11    let params = tool.validate_params(&tool_call.arguments)?;
12    
13    // 第3步:检查执行策略(是否允许、是否需要审批)
14    self.exec_policy.check(&tool_call.name, &params)?;
15    
16    // 第4步:在沙箱中执行
17    let result = match tool_call.name.as_str() {
18        "shell" => self.sandbox.exec_shell(&params.command).await?,
19        "read_file" => self.sandbox.read_file(&params.path).await?,
20        "write_file" => self.sandbox.write_file(&params.path, &params.content).await?,
21        "apply_patch" => self.apply_patch(&params).await?,
22        _ => return Err(ToolError::UnknownTool(tool_call.name.clone())),
23    };
24    
25    // 第5步:记录审计日志
26    self.audit_log.record(&tool_call, &result);
27    
28    Ok(result)
29}
30

4.6 沙箱安全:多平台隔离

沙箱是Codex的安全底线。AI执行命令可能会搞破坏,所以必须限制它的权限。

Codex为三个平台都做了原生沙箱:

1// codex-rs/sandboxing/src/lib.rs
2pub trait Sandbox {
3    async fn exec_command(&self, cmd: &str) -> Result<CommandOutput>;
4    async fn read_file(&self, path: &Path) -> Result<Vec<u8>>;
5    async fn write_file(&self, path: &Path, content: &[u8]) -> Result<()>;
6}
7
8// Linux实现:使用Landlock + seccomp
9// codex-rs/linux-sandbox/src/lib.rs
10pub struct LinuxSandbox {
11    landlock: Landlock,   // 文件系统访问控制
12    seccomp: Seccomp,     // 系统调用过滤
13    cgroup: Cgroup,       // 资源限制(CPU、内存)
14}
15
16// macOS实现:使用Seatbelt
17// codex-rs/core/src/sandbox/macos.rs
18pub struct MacOSSandbox {
19    profile: SeatbeltProfile,  // 沙箱配置文件
20}
21
22// Windows实现:使用受限Token + Job Objects
23// codex-rs/windows-sandbox-rs/src/lib.rs
24pub struct WindowsSandbox {
25    restricted_token: RestrictedToken,  // 受限访问令牌
26    job_object: JobObject,              // 作业对象(资源限制)
27}
28

生活案例:沙箱就像给AI配了一个"儿童安全座椅"。它可以在座椅里活动(读写指定目录、执行允许的命令),但不能解开安全带乱跑(不能删除系统文件、不能访问网络、不能修改其他目录)。

4.7 持久化:Thread Store

Codex支持会话持久化,你可以中断一个任务,明天再继续。核心是ThreadStore:

1// codex-rs/thread-store/src/lib.rs
2pub trait ThreadStore {
3    async fn save_thread(&self, thread: &Thread) -> Result<()>;
4    async fn load_thread(&self, id: &str) -> Result<Thread>;
5    async fn list_threads(&self) -> Result<Vec<ThreadSummary>>;
6    async fn delete_thread(&self, id: &str) -> Result<()>;
7}
8
9// 默认实现:本地文件系统,JSONL格式
10pub struct FileThreadStore {
11    base_dir: PathBuf,
12}
13
14// 每个Thread保存为一个目录
15// thread-id/
16//   ├── metadata.json    # 元信息(标题、创建时间、模型)
17//   ├── events.jsonl     # 所有事件(消息、工具调用、结果)
18//   └── rollout/         # rollout记录(用于调试和复现)
19

4.8 三层集成接口

Codex Harness开源后,提供了三层集成接口,满足不同场景的需求:

1┌─────────────────────────────────────────────────────────┐
2│  第三层:App Server(JSON-RPC 2.0)                      │
3│  适合:IDE扩展、桌面App、Web应用                         │
4│  特点:双向通信、实时事件流、审批请求、多客户端连接       │
5├─────────────────────────────────────────────────────────┤
6│  第二层:Codex SDK(TypeScript / Python)                │
7│  适合:程序化编排、自定义工作流、嵌入到其他系统           │
8│  特点:API调用、线程管理、流式输出、细粒度控制           │
9├─────────────────────────────────────────────────────────┤
10│  第一层:codex exec(命令行)                            │
11│  适合:脚本、CI/CD、一次性任务                           │
12│  特点:一行命令、标准输入输出、JSONL事件、最轻量         │
13└─────────────────────────────────────────────────────────┘
14

五、Codex怎么用?常用场景教学

理论讲完了,现在来实操。这一部分会给你可以直接复制运行的代码。

5.1 安装与配置

安装Codex CLI
1# 方式1:npm安装(推荐)
2npm install -g @openai/codex
3
4# 方式2:Homebrew(macOS)
5brew install openai/codex/codex
6
7# 验证安装
8codex --version
9
配置API Key
1# 方式1:交互式登录(会打开浏览器)
2codex login
3
4# 方式2:设置环境变量
5export OPENAI_API_KEY="sk-your-api-key-here"
6
7# 方式3:使用Azure OpenAI(企业常用)
8export AZURE_OPENAI_API_KEY="your-azure-key"
9export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com"
10codex --profile azure
11
配置文件

Codex的配置文件在~/.codex/config.toml:

1# ~/.codex/config.toml
2model = "gpt-5.4-codex"
3sandbox = "auto"  # auto, always, never
4
5[approval]
6# 哪些命令需要审批
7require_approval = ["rm -rf", "git push", "npm publish"]
8# 哪些命令自动允许
9auto_approve = ["ls", "cat", "git status", "pytest"]
10
11[profiles.azure]
12model = "gpt-5.4-codex"
13api_type = "azure"
14azure_endpoint = "https://your-resource.openai.azure.com"
15

5.2 场景一:交互式开发(最常用)

在项目目录下启动交互式会话:

1cd your-project/
2codex
3

启动后你会看到一个TUI界面,直接输入需求即可:

1> 帮我实现一个用户注册接口,要求:
2> 1. 接收用户名、邮箱、密码
3> 2. 密码用bcrypt加密
4> 3. 邮箱格式校验
5> 4. 用户名不能重复
6> 5. 写完后跑一下测试
7

Codex会自动:

  1. 查看项目结构和现有代码
  2. 创建或修改文件
  3. 安装依赖(如果需要)
  4. 运行测试
  5. 报告结果

你可以随时按Ctrl+C中断,或者输入/approve批准危险操作。

5.3 场景二:非交互式执行(codex exec)

codex exec是自动化的利器,适合脚本和CI/CD。

1# 基本用法:执行一个任务
2codex exec "为 src/utils.py 编写单元测试"
3
4# 完全自动模式(不需要人工审批)
5codex exec --full-auto "修复所有flake8错误"
6
7# 指定模型
8codex exec --model gpt-5.4-mini "给这个函数加注释"
9
10# 从标准输入读取内容
11cat error.log | codex exec --full-auto "分析这个错误日志,找出根本原因"
12
13# 输出JSON格式(方便脚本解析)
14codex exec --json --full-auto "审查这个PR的代码质量,返回评分和建议"
15
16# 指定输出schema(结构化输出)
17codex exec --full-auto \
18  --output-schema '{"type":"object","properties":{"summary":{"type":"string"},"risk_level":{"type":"string","enum":["low","medium","high"]}}}' \
19  "分析这次代码变更的风险"
20

5.4 场景三:AGENTS.md项目配置

AGENTS.md是给AI看的"项目说明书",放在项目根目录,Codex启动时自动加载。

一个完整的模板:

1# 项目说明
2
3## 项目概述
4这是一个基于FastAPI的用户管理系统,提供用户注册、登录、权限管理功能。
5
6## 技术栈
7- 语言:Python 3.11+
8- Web框架:FastAPI
9- ORM:SQLAlchemy 2.0
10- 数据库:PostgreSQL 15
11- 缓存:Redis
12- 测试:pytest + pytest-asyncio
13- 代码风格:black + isort + flake8
14
15## 目录结构
16

src/
├── api/ # API路由
├── models/ # 数据模型
├── schemas/ # Pydantic schema
├── services/ # 业务逻辑
├── utils/ # 工具函数
└── config.py # 配置
tests/ # 测试
migrations/ # 数据库迁移

1
2## 编码规范
3- 所有函数必须有类型注解
4- 所有公共函数必须有docstring
5- 错误处理使用自定义异常,不要裸except
6- 数据库操作必须使用异步
7- 密码必须用bcrypt加密,不要明文存储
8
9## 测试要求
10- 新功能必须有对应的单元测试
11- 测试覆盖率不低于80%
12- 运行测试命令:pytest tests/ -v
13
14## 禁止事项
15- 不要修改migrations目录下的文件
16- 不要在代码中硬编码密钥或密码
17- 不要直接写SQL,必须用ORM
18- 不要删除现有的测试用例
19
20## 常用命令
21- 启动开发服务器:uvicorn src.main:app --reload
22- 运行测试:pytest tests/ -v
23- 代码格式化:black src/ && isort src/
24- 生成迁移:alembic revision --autogenerate -m "描述"
25

5.5 场景四:Skills技能包

Skills是可复用的技能包,可以理解为"给AI的专业培训手册"。

创建自定义Skill
1mkdir -p ~/.codex/skills/code-review
2cat > ~/.codex/skills/code-review/SKILL.md << 'EOF'
3---
4name: code-review
5description: 对代码进行专业审查,检查安全性、性能、可维护性
6---
7
8## 使用场景
9当用户要求代码审查、code review、检查代码质量时使用。
10
11## 审查清单
121. 安全性:SQL注入、XSS、敏感信息泄露
132. 性能:N+1查询、不必要的循环、内存泄漏
143. 可维护性:命名规范、注释、函数长度
154. 错误处理:异常捕获、错误提示、边界情况
165. 测试:是否有对应的测试用例
17
18## 输出格式
19- 总体评分(1-10分)
20- 按严重程度分类的问题列表
21- 每个问题的具体位置和修复建议
22EOF
23
使用Skill
1# 显式调用
2codex exec "$code-review 审查 src/auth.py"
3
4# 隐式调用(Codex会自动匹配)
5codex exec "帮我看看这段代码有没有问题"
6

5.6 场景五:MCP工具扩展

MCP(Model Context Protocol)是Anthropic提出的开放协议,Codex也支持。通过MCP,你可以给Agent接入外部工具。

配置MCP Server
1// ~/.codex/mcp.json
2{
3  "mcpServers": {
4    "github": {
5      "command": "npx",
6      "args": ["-y", "@modelcontextprotocol/server-github"],
7      "env": {
8        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_your_token"
9      }
10    },
11    "postgres": {
12      "command": "npx",
13      "args": ["-y", "@modelcontextprotocol/server-postgres"],
14      "env": {
15        "DATABASE_URL": "postgresql://user:pass@localhost:5432/mydb"
16      }
17    }
18  }
19}
20

配置后,Codex就可以直接操作GitHub和数据库了:

1codex exec "查看repo myorg/myproject的issue #123,分析问题并创建一个修复PR"
2

六、企业项目中如何使用Codex?

个人使用和企业使用是两回事。企业更关注安全、合规、权限、审计。这一部分讲企业级落地。

6.1 企业部署模式

企业通常有三种部署模式:

模式说明适合场景
SaaS模式直接用OpenAI的Codex Cloud中小企业、快速验证
Azure模式通过Azure OpenAI调用,数据在Azure有Azure订阅的企业、合规要求
自托管模式自己部署Codex Harness + 私有模型金融、政府等强合规场景

6.2 CI/CD集成(最实用的企业场景)

GitHub Actions集成
1# .github/workflows/codex-review.yml
2name: Codex Code Review
3
4on:
5  pull_request:
6    branches: [main]
7
8jobs:
9  review:
10    runs-on: ubuntu-latest
11    steps:
12      - uses: actions/checkout@v4
13        with:
14          fetch-depth: 0
15
16      - name: Setup Node.js
17        uses: actions/setup-node@v4
18        with:
19          node-version: '20'
20
21      - name: Install Codex
22        run: npm install -g @openai/codex
23
24      - name: Run Codex Review
25        env:
26          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
27        run: |
28          # 获取PR的diff
29          git diff origin/main...HEAD > pr.diff
30          
31          # 用Codex审查
32          codex exec --full-auto --json \
33            --output-schema '{"type":"object","properties":{"score":{"type":"number"},"issues":{"type":"array","items":{"type":"object","properties":{"severity":{"type":"string"},"file":{"type":"string"},"line":{"type":"number"},"description":{"type":"string"},"suggestion":{"type":"string"}}}}}}' \
34            "你是一个资深代码审查员。请审查以下PR的diff,从安全性、性能、可维护性三个维度给出评分和具体问题。
35            评分标准:9-10优秀,7-8良好,5-6一般,<5需要重大修改。
36            Diff内容:
37            $(cat pr.diff)" > review-result.json
38
39      - name: Post Review Comment
40        uses: actions/github-script@v7
41        with:
42          script: |
43            const fs = require('fs');
44            const result = JSON.parse(fs.readFileSync('review-result.json', 'utf8'));
45            const issues = result.issues.map(i => 
46              `- **[${i.severity}]** ${i.file}:${i.line} - ${i.description}\n  建议:${i.suggestion}`
47            ).join('\n');
48            github.rest.issues.createComment({
49              owner: context.repo.owner,
50              repo: context.repo.repo,
51              issue_number: context.issue.number,
52              body: `## Codex代码审查报告\n\n**综合评分:${result.score}/10**\n\n### 发现的问题\n${issues}`
53            });
54
自动修复Lint问题
1# .github/workflows/codex-fix.yml
2name: Codex Auto Fix
3
4on:
5  schedule:
6    - cron: '0 2 * * 1'  # 每周一凌晨2点
7  workflow_dispatch:
8
9jobs:
10  fix:
11    runs-on: ubuntu-latest
12    steps:
13      - uses: actions/checkout@v4
14
15      - name: Install Codex
16        run: npm install -g @openai/codex
17
18      - name: Run linter and fix
19        env:
20          OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
21        run: |
22          # 运行flake8,把错误传给Codex修复
23          flake8 src/ --output-file=lint-errors.txt || true
24          codex exec --full-auto "根据以下flake8错误,修复src/目录下的代码问题。只修复报告的问题,不要做其他改动。错误信息:$(cat lint-errors.txt)"
25
26      - name: Create Pull Request
27        uses: peter-evans/create-pull-request@v6
28        with:
29          title: "chore: 自动修复lint错误"
30          body: "由Codex自动生成的lint修复PR"
31          branch: codex/auto-fix-lint
32

6.3 Python SDK集成(嵌入到自己的系统)

如果你想把Codex嵌入到自己的产品中,可以用官方Python SDK。

安装SDK
1pip install codex-sdk
2
基本用法
1# codex_integration.py
2from codex import CodexClient
3import asyncio
4
5async def main():
6    # 初始化客户端
7    client = CodexClient(
8        api_key="sk-your-api-key",
9        model="gpt-5.4-codex",
10    )
11
12    # 创建一个线程(会话)
13    thread = await client.threads.create(
14        title="修复用户登录bug",
15        instructions="你是一个Python后端专家,负责修复用户登录模块的bug。",
16    )
17
18    # 提交任务,流式获取事件
19    task = await client.tasks.create(
20        thread_id=thread.id,
21        prompt="用户反馈登录时偶尔出现500错误,日志显示是数据库连接池耗尽。请分析原因并修复。",
22        workspace_path="/path/to/project",
23    )
24
25    # 流式监听事件
26    async for event in task.stream():
27        if event.type == "message":
28            print(f"[Agent] {event.content}")
29        elif event.type == "tool_call":
30            print(f"[Tool] {event.name}({event.arguments})")
31        elif event.type == "tool_result":
32            print(f"[Result] {event.result[:100]}...")
33        elif event.type == "approval_request":
34            # 需要人工审批
35            print(f"需要审批: {event.tool_name}")
36            # 可以选择批准或拒绝
37            await event.approve()
38
39    # 获取最终结果
40    result = await task.result()
41    print(f"任务完成: {result.summary}")
42    print(f"修改的文件: {result.modified_files}")
43
44asyncio.run(main())
45
批量处理任务
1# batch_process.py
2from codex import CodexClient
3import asyncio
4
5async def process_file(client: CodexClient, file_path: str):
6    """为单个文件生成单元测试"""
7    thread = await client.threads.create(title=f"测试 {file_path}")
8    task = await client.tasks.create(
9        thread_id=thread.id,
10        prompt=f"为文件 {file_path} 编写单元测试,使用pytest,覆盖率达到80%以上。",
11        workspace_path="/path/to/project",
12    )
13    result = await task.result()
14    return file_path, result.summary
15
16async def main():
17    client = CodexClient(api_key="sk-your-api-key")
18
19    # 需要处理的文件列表
20    files = [
21        "src/auth.py",
22        "src/user.py",
23        "src/order.py",
24        "src/payment.py",
25    ]
26
27    # 并发处理(注意控制并发数,避免触发限流)
28    semaphore = asyncio.Semaphore(3)  # 最多3个并发
29
30    async def process_with_limit(file_path):
31        async with semaphore:
32            return await process_file(client, file_path)
33
34    results = await asyncio.gather(*[process_with_limit(f) for f in files])
35
36    for file_path, summary in results:
37        print(f"{file_path}: {summary}")
38
39asyncio.run(main())
40

6.4 企业安全配置

企业使用时,安全是第一位的。以下是关键的安全配置:

权限审批规则
1# ~/.codex/rules/security.rules
2# 危险操作:需要审批
3prefix_rule("rm -rf /", decision="deny")
4prefix_rule("git push --force", decision="deny")
5prefix_rule("npm publish", decision="approve")
6prefix_rule("docker run --privileged", decision="deny")
7
8# 安全操作:自动允许
9prefix_rule("ls", decision="allow")
10prefix_rule("cat", decision="allow")
11prefix_rule("git status", decision="allow")
12prefix_rule("pytest", decision="allow")
13prefix_rule("flake8", decision="allow")
14
15# 写操作:需要审批
16prefix_rule("git commit", decision="approve")
17prefix_rule("git push", decision="approve")
18
沙箱策略
1# ~/.codex/config.toml
2[sandbox]
3# 只允许访问项目目录
4allowed_directories = [
5    "/path/to/project",
6    "/tmp",
7]
8
9# 禁止访问的目录
10denied_directories = [
11    "/etc",
12    "/root",
13    "/home/user/.ssh",
14]
15
16# 禁止网络访问(可选)
17network = "deny"
18
19# 资源限制
20max_memory_mb = 2048
21max_cpu_cores = 2
22max_execution_time_seconds = 300
23
审计日志
1# ~/.codex/config.toml
2[audit]
3enabled = true
4log_file = "/var/log/codex/audit.log"
5log_format = "json"
6
7# 记录的内容
8record = [
9    "user_input",
10    "tool_calls",
11    "tool_results",
12    "approval_decisions",
13    "file_modifications",
14]
15

审计日志示例:

1{"timestamp":"2026-09-14T10:30:00Z","user":"zhangsan","action":"tool_call","tool":"shell","command":"pytest tests/","result":"success","duration_ms":1523}
2{"timestamp":"2026-09-14T10:30:05Z","user":"zhangsan","action":"file_write","path":"src/auth.py","lines_added":45,"lines_removed":12}
3

6.5 企业落地最佳实践

  1. 从小范围试点开始:先在一个非核心项目中试用,积累经验后再推广。
  2. 制定AGENTS.md规范:统一项目配置,确保AI输出符合团队规范。
  3. 建立审批流程:危险操作必须人工审批,不能完全放权。
  4. 保留人工审核:AI生成的代码必须经过code review才能合并。
  5. 监控使用情况:统计使用量、成功率、节省时间,用数据说话。
  6. 定期培训:团队成员需要学习如何写好Prompt,如何与AI协作。

七、竞品对比:Codex vs Claude Code vs Cursor vs GitHub Copilot

市面上AI编程工具很多,怎么选?我们来做一个全面的对比。

7.1 核心参数对比表

对比维度CodexClaude CodeCursorGitHub Copilot
出品方OpenAIAnthropicCursor Inc.GitHub/Microsoft
核心定位全栈软件工程Agent终端优先的编程AgentAI-first IDE代码补全+轻量Agent
运行环境本地CLI + 云端沙箱本地终端IDE内IDE内
开源程度Harness核心开源(Apache-2.0)闭源闭源闭源
支持模型仅OpenAI模型仅Claude模型Claude/GPT/Gemini多模型GPT/Claude多模型
多文件操作强,自动规划最强,全仓库理解强,IDE集成有限
上下文窗口模型相关(最高200K+)200K + 自动压缩模型相关64K(Pro+)
沙箱安全原生多平台沙箱本地执行,权限提示本地执行本地执行
CI/CD集成原生支持(codex exec)支持(CLI)不支持有限支持
企业功能完善中成熟成长中最成熟
MCP支持支持支持(首创)支持支持
价格(个人)$200/月(Pro)$20/月(Max)或API计费$20/月$10/月(Pro)
适合人群需要自动化和企业集成的团队终端重度用户、复杂重构喜欢IDE交互的开发者企业团队、GitHub重度用户

7.2 各工具优劣势分析

Codex

优势:

  • 核心开源,可以二次开发和嵌入
  • 原生支持CI/CD,自动化能力最强
  • 三层集成接口,适配各种场景
  • OpenAI生态原生集成(ChatGPT、API)
  • 云端沙箱,可以并行处理大任务

劣势:

  • 价格较高,个人版$200/月
  • 只能用OpenAI模型,不能切换
  • 企业功能还在完善中
  • TUI界面学习成本较高
Claude Code

优势:

  • Claude模型代码理解能力强,复杂重构表现好
  • 终端优先,与Git/Shell集成紧密
  • MCP协议的首创者,生态丰富
  • 价格相对合理

劣势:

  • 闭源,不能自定义核心逻辑
  • 只能用Claude模型
  • 没有云端沙箱,大任务受本地资源限制
  • 企业合规功能不如Copilot成熟
Cursor

优势:

  • IDE体验最好,交互流畅
  • 支持多模型切换
  • Tab补全+Agent+内联编辑一体化
  • 上手门槛低

劣势:

  • 闭源,定制能力弱
  • Token消耗较大
  • 不适合CI/CD自动化
  • 重度依赖IDE,不适合服务器环境
GitHub Copilot

优势:

  • 企业生态最成熟,合规方案完善
  • 与GitHub深度集成(PR、Issue、Actions)
  • 价格便宜,$10/月起
  • 多编辑器支持(VS Code、JetBrains等)
  • Microsoft企业渠道分发

劣势:

  • Agent能力相对较弱,更偏补全
  • 闭源,不能自定义
  • 多文件操作能力有限
  • 复杂任务需要人工引导较多

7.3 选型建议

  • 如果你是个人开发者,预算有限:选GitHub Copilot,性价比最高。
  • 如果你是终端重度用户,经常做复杂重构:选Claude Code。
  • 如果你喜欢IDE内交互,想要一体化体验:选Cursor。
  • 如果你需要CI/CD自动化、企业集成、或者想自己定制Agent:选Codex。
  • 如果你的团队已经深度使用GitHub,重视企业合规:选GitHub Copilot。

很多团队的实际做法是:Copilot做日常补全 + Codex做自动化任务 + Claude Code做复杂重构,三者配合使用。


八、面试官高频面试题

最近AI Agent岗位面试中,Codex相关的问题越来越多。以下是高频面试题和参考答案。

8.1 基础概念题

Q1:Codex和传统的代码补全工具有什么本质区别?

A:核心区别在于"工具"和"Agent"的区别:

  • 代码补全工具(如早期Copilot)是被动的,你写它补,不理解全局上下文,不会执行操作。
  • Codex是主动的Agent,你给一个任务,它自己规划、自己调用工具(读写文件、执行命令)、自己验证结果、自己修正错误,直到完成任务。
  • 本质上是从" autocomplete “到” autonomous "的转变。

Q2:Codex的Agent Loop是怎么工作的?

A:Agent Loop采用ReAct模式,核心循环是:

  1. 构建上下文(系统提示词+历史+工具定义+项目规范)
  2. 调用模型,获取响应
  3. 如果是文本回答,结束本轮
  4. 如果是工具调用,检查权限,在沙箱中执行
  5. 把工具结果加入上下文,回到第2步
  6. 直到模型给出最终回答或达到最大步数

关键源码在codex-rs/core/session/turn.rs的run_turn函数。

8.2 架构设计题

Q3:Codex为什么用Rust重写核心,而不是继续用TypeScript?

A:主要有几个原因:

  1. 性能:Agent Loop是CPU密集型的,Rust的性能远高于TypeScript。
  2. 零依赖部署:Rust编译成单个二进制文件,不需要Node.js环境,安装简单。
  3. 沙箱原生绑定:Rust可以直接调用操作系统的沙箱API(Landlock、Seatbelt、Job Objects),TypeScript需要通过原生模块间接调用。
  4. 内存安全:Agent执行不可信的模型输出,Rust的内存安全特性可以减少漏洞。
  5. 并发模型:Rust的async/await和所有权系统适合高并发的工具执行场景。

Q4:Codex的上下文管理是怎么做的?上下文不够了怎么办?

A:Codex的ContextManager采用分层策略:

  1. 系统提示词和工具定义永远保留(这些是"宪法",不能丢)
  2. AGENTS.md项目规范永远保留
  3. 最近N轮对话完整保留
  4. 更早的对话压缩成摘要
  5. 如果还超预算,继续按层压缩,从最不重要的开始
  6. 最终保证在模型的上下文窗口内

压缩的方式通常是让模型自己总结历史,生成摘要。

Q5:Codex的沙箱是怎么实现的?为什么需要沙箱?

A:需要沙箱是因为AI执行的命令是模型生成的,不可信,可能会搞破坏(比如删文件、访问敏感数据)。

Codex为三个平台做了原生实现:

  • Linux:Landlock(文件系统访问控制)+ seccomp(系统调用过滤)+ cgroup(资源限制)
  • macOS:Seatbelt(沙箱配置文件)
  • Windows:受限Token(降低权限)+ Job Objects(资源限制)

沙箱限制了Agent可以访问的目录、可以执行的系统调用、可以使用的资源,确保即使模型输出恶意命令,也不会造成严重后果。

8.3 工程实践题

Q6:AGENTS.md和README有什么区别?怎么写好AGENTS.md?

A:区别:

  • README是给人看的,侧重项目介绍、使用方法。
  • AGENTS.md是给AI看的,侧重编码规范、目录结构、禁止事项、常用命令。

写好AGENTS.md的要点:

  1. 明确技术栈和版本
  2. 说明目录结构,让AI知道去哪找代码
  3. 写清楚编码规范(命名、注释、错误处理)
  4. 列出禁止事项(不要改什么、不要做什么)
  5. 给出常用命令(测试、构建、格式化)
  6. 不要写废话,AI的上下文是有限的

Q7:在CI/CD中使用Codex需要注意什么?

A:几个关键点:

  1. API Key安全:存在Secrets中,不要硬编码
  2. 权限控制:CI环境中用--full-auto,但要限制能执行的命令
  3. 超时控制:设置最大执行时间,防止死循环
  4. 幂等性:确保任务可以重复执行而不产生副作用
  5. 结果验证:AI生成的代码必须跑测试,不能直接合并
  6. 限流处理:批量任务要控制并发数,避免触发API限流
  7. 审计日志:记录所有操作,便于追溯

Q8:怎么评估Codex的效果?有哪些指标?

A:可以从几个维度评估:

  • 任务完成率:给定任务,有多少比例能独立完成
  • 代码质量:生成代码的bug率、code review通过率
  • 时间节省:相比人工,节省了多少时间
  • 迭代次数:平均需要多少轮对话才能完成任务
  • 测试覆盖率:生成代码的测试覆盖情况
  • 用户满意度:开发者的主观评价

常用的基准测试有SWE-bench(软件工程任务)、HumanEval(单函数编程)等。

8.4 深度思考题

Q9:Codex的局限性是什么?未来可能怎么发展?

A:当前局限性:

  1. 上下文窗口有限:超大型项目还是无法全部加载
  2. 模型幻觉:有时会生成不存在的API或错误的逻辑
  3. 复杂推理能力不足:需要深度架构设计的任务还做不好
  4. 成本较高:大任务的Token消耗很大
  5. 安全性:即使有沙箱,prompt注入等攻击仍然存在

未来发展方向:

  1. 更长的上下文:模型上下文窗口不断扩大
  2. 多Agent协作:一个主Agent调度多个子Agent,分工合作
  3. 更强的工具使用:接入更多外部系统(数据库、API、云服务)
  4. 自我改进:Agent能从错误中学习,不断优化
  5. 更完善的企业功能:权限、审计、合规、私有化部署

Q10:如果让你自己设计一个Coding Agent,你会怎么设计?

A:参考Codex的架构,我会这样设计:

  1. 核心循环:ReAct模式,思考->行动->观察->再思考
  2. 上下文管理:分层保留+智能压缩,优先保留高价值信息
  3. 工具系统:可扩展的工具注册机制,支持MCP协议
  4. 沙箱隔离:多平台原生沙箱,确保安全
  5. 持久化:会话保存和恢复,支持中断后继续
  6. 权限系统:细粒度的工具执行权限和审批流程
  7. 多前端:核心与UI分离,CLI/IDE/Web共享同一核心
  8. 可观测性:完整的事件日志和调试工具,便于排查问题
  9. 插件系统:支持第三方扩展,不修改核心代码
  10. 企业级特性:审计、监控、团队协作、私有化部署

九、总结

通过这篇文章,我们从源码层面深度解读了Codex:

  1. 是什么:Codex是OpenAI开源的生产级Coding Agent运行时,用Rust实现,核心是Harness。
  2. 为什么用:解决读代码慢、重复劳动多、质量参差不齐、调试耗时等痛点。
  3. 演进历程:从2021年的代码补全模型,到2025年的CLI Agent,再到2026年Harness全面开源。
  4. 源码架构:Thread/Session/Turn/Step四层概念,Agent Loop核心循环,ContextManager上下文管理,Tool Runtime工具调度,多平台沙箱,Thread Store持久化。
  5. 怎么用:交互式开发、codex exec自动化、AGENTS.md配置、Skills技能包、MCP工具扩展。
  6. 企业落地:CI/CD集成、Python SDK嵌入、安全配置、审计日志。
  7. 竞品对比:Codex vs Claude Code vs Cursor vs GitHub Copilot,各有优劣,按需选择。
  8. 面试题:从基础概念到架构设计到工程实践,覆盖高频考点。

最后想说的是:AI不会取代程序员,但会用AI的程序员会取代不会用AI的程序员。

Codex这样的工具,本质上是把程序员从机械性劳动中解放出来,让我们能专注于真正需要创造力和判断力的工作。越早掌握这些工具,就越能在未来的竞争中占据优势。

现在就去安装Codex,在你的项目里试试吧。记住,最好的学习方式就是动手。


转载声明:本文为原创文章,如需转载,请联系作者获得授权,并注明出处。


《【AI大模型Harness】-Codex源码深度解读》 是转载文章,点击查看原文。


相关推荐


【从0开始学习计算机网络】| 邮件协议入门:SMTP、POP3、IMAP
一条泥憨鱼2026/9/10

🌈个人主页:一条泥憨鱼(欢迎各位大佬莅临) 🎬精选专栏传送门: ❄️《数据结构》 ❄️《AI与Agent那些事》 ❄️《从0开始学计算机网络》 ❄️《后端开发》 你有没有想过这么一个问题:每天上班第一件事就是打开邮箱客户端,或者掏出手机刷一下 Gmail,看到新邮件弹出来,顺手回一封。整个过程行云流水,但你有没有停下来问过——我点下"发送"按钮的那一瞬间,这封邮件到底经历了什么?它是怎么穿过网线、越过服务器,最后出现在对方手机上的? 这个问题的答案,就藏在三个缩写里:SMT


设计一个多计时任务的任务管理功能
剪刀石头布啊2026/9/2

前言 我们想写一个功能,能够不停的添加计时任务执行,且每个任务都支持自定义延迟时间做某件事件,平时我们可能直接setTimeout就完事了,有多个少个任务开启多少个setTimeout,可是这样真的行么,同时开启这么多timeout不仅仅延迟会很大,性能也会有折扣 实际上我们只使用一个setTimeout计时器,就可以实现这种多个自定义延迟时间的任务功能 实现步骤 只需要下面的步骤即可: 待办任务处理:将待办任务存放到队列中,根据延迟时间计算出最终执行时间戳,任务可有序,可无序,处理方式不同,


AI 想放弃了,人没有 -- 肘子的 Swift 周报 #150
东坡肘子2026/8/25

AI 想放弃了,人没有 最近,Linus Torvalds 在调试一个 Intel Xe GPU 驱动问题时,经历了一场被他自己称为“debug session from hell”的漫长排查。最终的修复简单得有些不可思议:把一处 round_up() 改成 round_down()。但为了找到这一行代码,他前后添加了 24 个调试 patch,启动了 18 次 kernel。其中大量繁琐工作,都是在 AI 的帮助下完成的。 这个故事最有意思的地方并不是“AI 帮 Linus 修复了 Linux


DeepSeek API涨价观察:AI行业从免费到收费的转折点
Yoyo Chen1802026/8/12

北大燕姐 · 商业观察 8月6日,DeepSeek一纸公告,AI圈炸了。 短短几行字:API服务价格将整体上调,预计涨幅较大。评论区一片哀嚎,四个字刷了屏:AI免费时代,结束了。 别慌。恰恰相反,我想说一句反话:普通人的机会,来了。 只是机会从来不会平均分配,它只给看得懂的人。这半年,北大燕姐帮企业主和内容创作者做IP定位,见过太多人:工具用得很溜,方向一塌糊涂。AI涨价这一天,恰好是一面照妖镜,照出谁在裸泳,谁早有准备。 一、先把事件捋清楚 8月1日:单日Token处理量破8万亿,


第三人称——骑马系统以及交互动画
神龙天舞20012026/8/3

第三人称——骑马系统以及交互动画 大家好,今天我们来聊一个在游戏开发里特别有“内味儿”的话题——第三人称视角下的骑马系统,以及那些让玩家觉得“哇,这马好听话”的交互动画。骑马不是简单的“把角色模型放到马背上”,它涉及到动画状态机、物理交互、摄像机跟随、甚至还有“骑手重心偏移”这种细节。这篇文章我会用最接地气的方式,把核心逻辑拆开揉碎,配上能跑的代码示例,让你看完就能上手做原型。## 一、骑马系统的核心:不是“骑上去”,而是“合体”很多新手做骑马,就是把玩家角色(Humanoid)的骨骼绑定到马(


Go Modules 包管理详解:go.mod、go.sum 与依赖管理
程序员爱钓鱼2026/7/26

Go 编程实战系列(五) 上一篇《第一个 Go 程序:Hello World》中,我们创建了第一个 Go 项目,并执行过这样一条命令: go mod init hello-go 执行完成后,项目目录中会出现一个 go.mod 文件。 很多初学者第一次看到它时可能会疑惑: go.mod 到底有什么用?Go 项目的第三方库从哪里下载?为什么有时还会出现 go.sum?go get 和 go mod tidy 又有什么区别? 这些问题都与 Go Modules 有关。 Go Modules 是现代


Alibaba买家账号运营指南:注册流程、账号养护及多账号管理实践
xiaobaihuoke2026/7/18

在跨境电商行业中,很多企业把重点放在卖家账号运营、产品推广以及广告投放上,但实际上,一个稳定、高质量的买家账号,同样是跨境运营体系中不可忽视的重要资源。 无论是进行海外市场调研、寻找供应商、分析行业趋势,还是获取产品报价,一个真实、活跃的Alibaba国际站买家号,都能够帮助企业更加深入了解市场。 然而,随着Alibaba平台风控机制不断完善,买家账号的运营已经不再是简单注册即可使用。账号注册后的行为习惯、活跃程度以及采购轨迹,都会影响账号后续的使用价值。 因此,买家号运营逐渐形成了一个完


再见Fable 5,OpenAI出手了!GPT-5.6真香~
AI袋鼠帝2026/7/10

大家好,我是袋鼠帝 我最近在疯狂使用Fable 5,好用是好用,就是太贵啦! 不过不是在Claude 官方使用的,因为我最新的一个号,在7月1号又tm被封了,服了都(已经记不清是第几个了) 天下苦A社久矣.. 所以,我最近都是在Cursor上用的Fable 5,虽然我下血本充了200$的订阅,但跑了两天Fable 5,总用量就已经超过48%了。。。 整的我都有点不敢用了,除非核心任务,其他时候我都只敢开启auto模式(自动选择模型) 就是这么憋屈。 然后今天凌晨,OpenAI终于出手了! G


从零构建ReAct智能体:让AI学会边想边做
树獭非懒2026/7/2

前言 大语言模型已经能写诗、编程、做数学题,但它有一个根本性的短板:无法与外部世界交互。你问它"今天深圳天气怎么样",它只能诚恳地告诉你"我的知识截止到某某日期"——不是它不想回答,是它根本没有"看天气"这个动作能力。 这就是智能体(Agent)要解决的核心问题:让 LLM 不仅能想,还能做。 业界现有的智能体框架(LangChain、LlamaIndex 等)已经将这套机制封装得非常完善,但它们的高度抽象也让很多人停留在"调包侠"阶段,对背后的运行机制一知半解。本文的目标,是带你从零构建一个


Swift 还让你 Excited 吗?-- 肘子的 Swift 周报 #141
东坡肘子2026/6/23

Swift 还让你 Excited 吗? 上周,Reddit 上一篇题为《Is anyone else excited by Swift progress as the language?》的帖子引发了不少讨论。WWDC 2026 上,Apple 明确表示,Swift 已被用于 WebKit 关键组件、QUIC 网络栈、字体渲染、驱动与固件。发帖者据此认为,Swift 正在向核心操作系统内核迈进,并将这一幕视为 2014 年"高级系统编程语言"承诺的兑现。评论区的讨论则很快从“是否兑现了承诺”,

首页编辑器站点地图

本站内容在 CC BY-SA 4.0 协议下发布

Copyright © 2026 聚合阅读