首先我们来讲第一块,Codex核心能力与工程化设计的一个思想。那么Codex的话,相信大家如果是作为程序员的话,基本上多多少少都已经听说过了,或者有的同学已经用过一段时间了。 那这里的话 我给他做一个简单的概述啊 Codex是OpenAI官方推出的一款AI变成工具啊 但这个目前 这个已经不仅仅局限于AI变成这一块了啊 他能做的事情非常多啊 怎么等一下逐步来展开 那么大家可以通过这个官方的一个文档啊 如果想去深入的了解Codex所有的一些细节的话啊 我建议大家去看一下这个OpenAI 出的这个官方的这个开发者文档 这个是给开发人员看的 里面的一些文档的话写的非常详细 大家对一些概念性的论知 包括一些比如说我们来查一些指南 大家都可以通过这个文档做一个路手 所以说这是一份非常好的学习资料 这是我推荐给大家的 然后的话是Codex的话 它有一些模块的话 它是开源的 如果大家对它的底层原码感兴趣 比如说像CLI 是吧 还有一些这个 他的一些文档呀 你看 比如说他的一些agents.md的一些这个细节文档 大家如果感兴趣啊 可以去他的这个开源的这个仓库里面 去深入的去研究一下 这个也是我给大家提供的一份这个学习资料 就是这个路口 大家可以从这个地方去路手 如果你对他的这个圆码也比较感兴趣 像参与这个Codex 他的一个开源建设的话 大家可以在这个里面去做一个路手 OK 这个就是我给大家推荐的这个两份学习资料啊 然后下面这个的话是CodexAPP的这么一个页面啊 最开始的话Codex是没有APP版本的啊 它是基于这个CLI命令行的 所以最早期大家使用的话啊 基本上是基于这个命令行啊 比如说我们在这个里面输入一个这个Codex是吧 那我们进入到这个命令行页面 直接就可以做一个AI编程了 我们最开始的使用方式是这样的 但是的话 目前的话Codex已经出了这个APP了 然后也非常好用 等一下的话 我们就来给他讲一下 这个APP的一个安装跟使用 所以我们主要是基于这个CLI和这个APP 混合的这种方式去使用 还有的话 就是他还有一种插件形式的 就是我们可以用这个Coser或者VSCode 大家可以去装一个这个Coser 就是整个它有一个Codex插件 这个也比较好用 这个的话如果大家习惯性用这个WasteCode 或者是Coser的话 你可以把这个插件 装一个Codex插件 然后跟我们的这个编码结合起来去用 这也是OK的 这也是我比较推荐大家用的一种方式 如果你既要改代码 又要去做这个 你想用这个Codex的话 都是OK的 但你不在这个里面装插件 你用那个APP 然后或者是CLI 也是没有问题的 只是说在这个里面的话 切换就会比较简单一些 不然的话你要切换这个窗口 还是稍微有那么一点麻烦 不过这个都是小问题 所以说它的使用方式有 基本上就是三种 第一种的话就是我们用这个APP 然后第二种的话就是用CLI 还有的话就是一个插件形式 基本上目前主流的使用方式的话 就是三个 那么它主要啊 如果说在做这个AI编程这一块的话 它主要的功能有哪些呢 首先第一块的话啊 写代码就是一个基础功能的 那么在Codex里面的话 大家可以非常方便的去使用一些快捷指令 然后采用这种对话的方式 去让它去帮你去生成这个代码 或者说整个去开发一个项目 搭建一个项目架构都是OK的 还有一点的话 就是我们可以用Codex去学习一些 优秀的开源项目 比如说大家对这个开源项目比较感兴趣 就是把这个项目拉下来 然后通过Codex命令去分析一下 当前这个项目的话 它的一个结构是怎么样的 包括大家在公司里面 你去接手一些历史的一些遗留项目 是吧 一些代码你看不懂怎么办呢 那你也可以用Codex 可以去帮你去做一个阅读 然后帮助你快速的去理解 团队是如何去做一个开发的 然后包括里面的细节问题 他都可以通过Codex去把它分析出来 这也是一个场景 然后的话就是审查代码 那以前我们做那个代码审查的话 大家习惯性的要去看那个PR是吧 看PR里面的这个commit DIF里面到底给了哪些文件 然后看一下有没有漏洞 然后有问题的话 还得上面标注一下 以前的话 这个需要耗费大量的这个人工成本 专门需要一个代码审查 那现在有了Codex之后的话 我们做代码审查的话 其实会非常简单 就是这个里面的话 他会去分析 他有专门的review的这么一个斜杠命令 这个我们等一下会给大家讲这么一个案例 就是我们可以用review的一个命令 去快速的去分析本次 比如说我还没有提交的一些代码 我想让他分析一下 或者说我们已经提交的PR 这个代码有没有问题 也可以分析出来 让我们根据这个结果 最后去把这个代码 就是给提一些建议 或者给他拒绝这个皮牙合并 是吧 这个就是我们做代码审查 可以结合Codex做的一些事情 然后的话 大家还可以通过Codex去 排查一些线上的一些问题 是吧 比如我们线上发现一些bug 有一些日志 他定位了一些代码行 那我们把这些日志提供给Codex 那Codex的话 可以快速的去帮我们找到 这个代码到底哪里出问题了 并针对性的给一些修复方案出来 所以这个也是一个 比较好的一个应用方向 然后最后一个的话 就是自动化开发任务啊 那这一块也是用的比较多的一个场景 那就是说我们可以通过Codex啊 就是从零到一去做一个项目的一个开发 那我们等一下的话 也会带大家去基于这个流程 去做一个项目啊 就是从需求分析开始 到整个的一个项目的一个功能拆解啊 是吧 核心功能开发呀 包括测试啊 包括整个的一个啊 调试啊 是吧 这个我们等一下都会给大家去走一遍啊 所以这几个场景的话 都是Codex 它比较擅长 或者说比较主流的一些应用场景 那么Codex 它的一个核心能力有哪些呢 大家要比较好的去使用Codex的话 首先要对它的一个核心能力 或者说对它整个的一个功能架构的话 有一个认知 就是要有一个大的认知 这样的话 你在去做一些开发的时候 你就会想到 原来Codex已经集成这个能力了 那大家去直接把它去应用到 工作当中去的话 那这个提效就很明显了 那大家可以看一下 整个的一个 它的一个能力 那能力的话是非常多了 最主要的话 就是它的一个多任务处理 就是多线程 大家在用这个Codex过程中 你会发现一个点 就是整个 它是基于多线程的一个机制 就是你不断的跟它去对话 它会不断的去起 各种各样的线程 帮你去完成任务 并且最终做一个合并 所以它的一个跨项目的 多任务处理能力非常强 就是你可以让它同时去开发三个项目 开三个这个县城 是吧 然后最终 比如说我们想让它分析三个项目的一个细节 然后分析完之后做一个总结归纳 最后给你输出一张表格。 那他就是启动三个县程。 即使是跨多项目的话,他也可以用多任务的方式去处理。 这是他的一个非常强大的一个能力。 然后的话,他里面内置了一个叫Git WorkTree的一个这么一个机制。 它的一个优点是什么 就是我们可以在一个分支下面 可以支持加多个这个work tree 然后去并行开发 以前的话我们开发的话 就是都要做分支隔离的是吧 比如说某某同学是做这个A分支 某某同学是B分支 他们两个分支功能 如果要做并行开发的话 那得把他们两个分支给它合并了 是吧 这样的功能才能整合到一起 现在有了这个getwork tree的之后的话 Codex整合了这个之后的话 我们可以直接在一个分支里面 加多个worktree的方式做并行开发 并且的话代码它是相互隔离的 这样的话就达到了我不想见多分支 也能实现多人协作的这么一个目标 这是一个比较好的一个点 然后的话就是 我们可以通过这个Codex 做一个远程连接啊 就是它可以去专门连接到一个这个 不同的这个 比如说我们手机端是吧 我们手机端去远程连接 这个我们在手机档上面远程操控 我们电脑端的这么一个Codex 让它去干活 这个也是一个好的一个功能 这个就像那个小龙虾是吧 养虾一样 我可以远程指挥它去干活 并且的话 我们可以在这个Codex上面操作一些应用 比如说在iOS上面 去调用一些这个 在MacOS上面 就是我们的这个苹果系统上面 它可以去调用各种的应用 执行一些任务 包括一些操作流感器 当然都是支持的 并且的话它可以支持应用截图识别图片 然后做一些评审交付 执行终端的一些命令 然后操作浏览器 包括它还可以去添加一些Chrome插件 让Codex帮你去管理整个我们的这个浏览器 是吧 然后做一些浏览器的一些任务 并且的话它可以去生成一些图片 编辑图片 因为OpenAI的话 它本身就有一些这个图片的一些模型 多么碳模型 比如说像DLE3 然后image2 就是有它有生成 专门生成图片的模型 所以说它本身 也可以去编辑图片 这样的话 我们相当于 你可以把codex当做 这个AI绘画工具来用 这个也是可以的 包括我们还可以做一些 这个自动化 就是一些这个论务 是吧 你做了一些这个操作之后 你可以让它全自动的 去调用各种各样的工具 帮你去完成一个 大的一个任务 就全自动的 然后的话 就是我们还可以在codex上面 去搭建一些技能 这个我们等一下 也会给大家讲 就是怎么从零到一 去搭建一个技能 做真正企业级的 一个scale开发 然后怎么去使用它 然后包括一些这个 一些什么侧边软 与artifactor 这个是它的一些 跟踪计划来源 任务摘要和 生成文件预览的一些功能 这个都是它 比较实用的一些功能 还有包括它 比较强大的一个插件系统 这个我们等一下 也会给大家讲 这个插件功能的话 其实也非常强大 它可以极大程度的去拓展Codex 能做的一些事情 让它可以 比如说甚至去生生视频也是可以的 并且的话 它可以与我们的这个IDE 比如说与Coser 或者是用WasteCode 整个做一个同步 这个就是它的一个核心能力 那么大家有了一个 全方位的这个认知之后的话 后面你在用Codex的时候 你可以把这一点给考虑进去 如果说Codex里面已经集中这个功能的话 那你可以完全把它做一个整合 就大家可以可以把各种各样的功能 整合在一起搭配去使用 大家就是不要单独的去看待这个功能 你一定要把它做一个什么呢 就是整合 就是我们把一个工作流 你把整个串起来 那它就可以做很多事情 如果你只是聚焦它在单个功能上面的话 它可能做的功能的话就比较单一 所以大家要有一个全局的思维 OK 然后是Codex它的一个工程化设计思想 那么这个设计思想有什么用呢 那么Codex的话 跟我们以前的这个 AI编程助手的话 还是有一些不一样的地方 因为它毕竟是OpenAI出的 它的一些设计思想的话 跟这个Courser 或者是Ways Code 它们整合这个AI工具 稍微有一点不一样 那么它已经从一个 简单的这个AI编码助手 已经进化成一个叫做 全镇开发的一个伙伴了 为什么这么说呢 主要有以下几个基点 首先的话是规范工程取代了提示词工程 以前的话大家是吧 你做一个项目的话习惯性的 你要把提示词给写好是吧 那么Codex里面他已经在提供一个 就是在强调一个点啊 叫做规范化编程 就是目前业界有一个非常 这个主流的一个词啊 叫做这个SDD是吧 就是叫规范编程开发 就是以规范去驱动 我们整个的一个逻辑 也就是说他先要 你把这个规范写好 比如说去写agentsmd 写lulis 整个这个规范给他写好 写好完之后 然后再去用AI生成代码 这样的话 他的质量会非常高 所以以前的话 大家没有注意规范的时候 那他你去用自然语言 给他去表达的时候 那就会出现一个问题 就是这个东西的一个边界 就会有问题 就是你采用一个结构化的一个输入 整个它就会非常清晰 就是有规则跟没规则的区别 就是在于 它可以有一个目标 加边界加验收标准的一个结构 这个就相当于我们 大家实际在工作当中 你去做一个事情的时候 它有没有一个什么呢 就是规范 就是有没有自己的一个标准 如果你没有标准的话 你做一个事情的话 就会出现各种各样的一个问题 就是有标准的好处 就是它可以保质保量的去验收 就是达到这么一个效果 所以说Codex已经在强调 这个规范化的一个变成方式 就是用Agent MD 整个的一刻 包括这个Harness 这个Codex 前一段时间也发了一篇文章 是吧 就关于这个Harness Engineering 它整个的话 目前就是采用了这个整个一套Harness 去做一个落地的 包括他自己内部 OpenAI内部也是基于这个Harness 去做了整个的一个项目的一个落地的 之前他们有一篇文章里面提到了 就是三个人 一百多万行代码 全部都是AI生成的 就是用Harness Engineering去做的一个落地 就是人工 我们只限定规范 把标准写好 把目标定好 所有的代码都是AI生成的 人工不需要写一行代码啊 真的是一行代码都不需要写 他就是能把一个大型的项目给搞定 大概是花了啊 我记得是五到六个月 然后给他上线了啊 一个一百万多行的这个一个项目啊 就是这么简单 所以说啊 目前啊 Codex已经在深入的去落地这个Honest Engineering 所以他对规范的要求是非常严格的啊 大家等一下啊 我们在讲解过程中 大家就会感受到他整个这个逻辑啊 就是会变得非常规范化 然后第二块就是 他在这个意图拆解 与agent law 我们叫任务循环这一块的话 也会强调的比较多 因为Konex已经 不是单单的给你去生成一个代码了 他是通过agent循环机制 去模拟人类工程师的一个开发过程 什么意思呢 就是人是怎么干活的 他就是怎么干活的 就以前AI就给你写个代码就完事了 他也不管你能不能运行 啊 除非你 相当于他计划帮你做好了 执行模式也帮你做好了 最后你看到的结果就是没有问题的 就是可以跑的 所以大家现在会发现 就是今年这些个AI编程工具的话 它的进步非常大 就是在Agent这一块做了非常大的一个改进 那大家会发现目前像Cloud Code 或者其他的一些像这个Cloud 这个Codex 或者像这个其他的一些编程工具 大家会发现 它的一个质量明显就上去了 就是它写出来代码直接就可以用了 基本上没什么太明显的一个问题 所以说它内置的一个任务循环 就保证了我们整个的一些什么呢 一些bug一些安全性问题 它就帮你去避免了 因为它会按照我们人类的一个思维 首先会做一个plan计划 干活之前先把计划给你写清楚 写清楚之后的话 一步步的按照计划的一个目标 再去确认 然后再去编码 而不是说 跑到最后发现一堆问题 所以说他是先确认 由我们这个工程师自己去确认 因为他有一些授权模式 有确认模式 也有全托管的这种优劣模式 所以他会有一个确认过程 当我们确认没问题之后 他再去执行的时候 这时候大家会发现 他去执行任务的时候 他会拆得更细 就是agent这一块的话 它会做一个大量的一个拆分 犀利到每一个函数 每一个模块的一个编写 然后的话 它会有一个非常严格的审查模式 它会根据集合上下文去分析 潜在的一些bug 包括一些安全性问题 或者一些性能瓶颈等等的 它都会帮你分析的非常透彻 所以大家看到Codex 帮你升任代码之后 基本上这个代码就没什么问题了 可以用了 因为它内部帮你把这个几个模式 已经跑完了 所以说你看到的东西都是高质量 这也是为什么 这个Agent Loan 它是一个非常关键的一个点 就它做了比较大的一个改进 然后是上下文工程 就Codex在工程架构这一块 对于上下文管理这一块 做了非常大的一个优化 首先的话 它会做一些精简的一个线段检索 它会对整个代码库进行予以切分 指向模型去注入 与当前任务 与特定文件相关依赖 也就是说 我们去问一个问题的时候 他不是把整个都给你加载了 不是这个意思 他是做一个什么叫做注录 就是你问的这个问题 相关的一些代码片段 还有包括一些原数据 比如说一些markdown是吧 有关系的时候 再去做一个检索 做一些这个处理 而不是说一上来 就把整个项目给他拉上去了 那这个很容易出现一些上下文 超过限制的问题是吧 所以说这一块 他对于这个整个线的检索 做了一个精简 然后是ST 这个叫抽象语法术感知 他会结合代码的一个数状结构 去理解他的一个依赖引用 也就是说代码跟代码之间的一个关系的话 他是有依赖的 他不是说 简单粗暴的给你把一些这个代码拼在一起 然后去理解的 他是一定要把他的一个依赖关系给他分析出来 这个做过我们这个 加瓦项目开发啊 就Mavin依赖的这个同学 应该会比较清楚啊 包括极致Python里面啊 各种语言里面 其实都有一些 一些酷的一些依赖是吧 那么如果说啊 AI没有理解这个依赖引用的话 就很可能出现什么呢 就是一些编译报错呀 或者是一些少一些模块啊 是吧 就很容易出现这种问题 所以早期的AI编程工具 它帮你设计代码的话 有时候就就会出现这种问题 因为它没有分析透彻 它只是简单突破的给你去生成态 那现在Codex这种 最新的AI变成工具 这些问题他们都解决了 那么它给你把依赖分析的非常透彻 然后是外部工具的一个协同 那这个里面的话 主要是就是在工程化设计中 Codex的话 它其实是具备了强大的一个环境交互能力 它不是只是说一个文文生成技 它具有非常强大的一个自主执行能力 就是我们给了他中端环境的一个控制权 就是他可以几乎 你如果用的是这个bypass模式 是吧 你就把所有的权限交给他 那他就可以做很多事情了 不管是什么编译器啊 调试器啊 报管理器啊 是吧 直接调用 因为他相当于就是超级管理员 他可以做任何事情 并且的话 当代码报错的时候 他会自动的去处理 自动的去读取日志 然后去定位这个原因 并且自动修复 所以说这是 它非常强大的一个能力 就是它发现问题之后 它会自动的去修复问题 所以大家会觉得 目前的AI变成工具非常智能 因为它帮你把所有的问题都解决了 并且是全自动的 不需要你再去提什么问题了 所以这个是一个 非常大的一个优化点 好 所以说大家首先 要对Codex 它的一个工程化设计思想 要有一个认知 那么你掌握了这个 它的一个工程化设计思想之后的话 大家再去 用Codex的话 你就会发现啊 它的一些细节 就会怎么样更好的去使用它 OK