首先我们来讲第一块,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