OK,好,那我們繼續,我們公開課的下一個小節這個內容。那麼公開課其實相比之下,其實講的會比較快一些。主要是大家有這樣的一個全局的技術的認識和了解。然後對於很多底層東西,我們其實是不會展開講。更多其實就是比如說我們接下來直接上手使用Codex來進行運行。看一下到底應該怎麼樣來進行開發。
那么之前我们其实是大概给大家介绍了一下
关于Deepseek v4 flash跟我们的Responsees API
它的一些基本的能力
那么接下来比较重要的就是我们怎么样使用这Codex
来完成更加复杂的这些agent开发
很多底层的原理基本上大家了解一下
想一想知道是怎么一回事也就可以了
但比较重要的是我们怎么样去使用现在这工具来完成对应的开发
这里有一个大家需要知道的一个点
就在于对于Codex来说
它其实现在功能现在是很丰富的
那有CodexClip
有Codex的桌面端
就是Codex的APP
还有Codex IDE的拓展
还有Codex的Cloud
它的云环境的运行和ChatGPT等等
当然现在Codex桌面端跟ChatGPT实际上是已经合并了
他们是已经合并成一个APP了
那么大家之前可能很多
我们不管开发同学用的比较多的
实际上就是Codex的桌面端会用的比较多
对吧
当然我们之后其实会比较多的
是使用这codex的命令行来进行开发
当然对于命令行来说
大家也不用怕
觉得说命令行
这个环境会比较恐怖
对不对
这个纯命令行需要点击来进行操作
会比较困难等等
这个其实不用特别担心
我们接下来会带大家一步一步来进行实现
所以其实还好
对于开发人员来说
其实使用这个桌面
使用这个命令行来完成开发
这个事情其实是迟早的事
是一定需要去克服和一定需要来进行解决的
好
那么接下来我们说对于Kodaks怎么样来进行安装
这里安装其实并不会特别复杂
基本上就是运行这些命令来进行安装
那么一般来说我们使用这CURL来进行安装的
这个情况是比较多的
这个应该是我们最为常见的一个情况
那么正好我们现在也一边
来给大家来进行一个运行
一边来给大家看一下
到底应该怎么样来进行配置
首先我们说基本上就是这么三行的命令
就可以完成所有的安装
那么一般来说
我们说使用这CURL来进行安装
肯定是最多的
当然我们说如果你安装好了这NPM的话
那么使用NPM来进行安装也是可以的
然后对于MacOS来说
如果你有Home Pro的话
你也可以使用它来进行安装
这三种安装方法其实都是可以的
都是没有什么问题的
那么安装完了之后
接下来你就可以输入 version 来看一下它的版本号
那么目前 codex的click或者 codex命令版本号最多是0.146.0
这个应该是最新版 这个应该问题不大
大家安装好之后 接下来就可以直接来进行使用了
当然安装完了之后 这里其实我们可能还需要做的一个事情
是把deep-seekv4这个模型给它来进行一个接入
那么具体怎么接入 实际上它本质是有两种方法
这个比较简单的是直接用官方的这个方法来进行运行
除此之外呢你也可以使用这个CCSWITCH来进行一个中转也是可以的
当然这个CCSWITCH是什么怎么样来进行一个使用
我们一会儿在后面在这里的时候到时候会给大家看一下
这个CCSWITCH怎么样来进行使用
但是我们现在觉得呢其实使用官方的这个接入CODEX的方法
应该是最简单的一种方式
那么官方怎么样去接入CODEX呢很简单
比如说如果你现在是MacOS的话
macos的话 那么你就直接运行这样的命令 其实就可以了 也就是说在你的命令行里面
你就可以直接
你就可以直接运行 我们现在的这样的命令
然后就可以进入到我们接下来他就他脚本实际上是直接全自动的去完成某一个叫做codex-deep-research-setup
这样的一个脚本的安装和运行
然后呢这个脚本啊
最核心的这个作用啊
实际上就是帮你一键啊
把你当前底层的Codex的所有配置呢
都给你迁移到啊
Deep Seek当中去啊
当然这个如果你需要手动来进行配置的话
实际上非常非常复杂
你需要修改很多很多参数和变量啊
才能够把你底层已经安装好的
这一整个Codex给它迁移到
Deep Seek这个基础环境里面去啊
但是如果你现在使用官方啊
Deep Seek官方给你提供的
这样的脚本的话啊
实际上所有的事情都省啊
他会非常非常的这个便记啊
然后呢当然如果你想看这个脚本里面具体写了什么东西的话
那么这个脚本实际上它是规定了啊
关于当前这个modal啊modal provider啊
然后呢他介入方法啊
对不对
然后他的这个written effort
然后呢我们现在的啊这个chat log啊
就是我们现在这个对话日志保存在哪里
然后等等等等啊
所有的我们说相关的这个配置信息全部都会帮你写进去
当然我们说你运行了这个脚本之后啊
上面其实是呃mac用户啊
是运行这个
然后呢你如果是windows用户的话啊
就是运行下面这个情况
然后你在运行的过程当中
他就会提醒你
是下面这个接测你可以不用管
然后他就会提醒你
你现在是使用Deepseek模型
还是Deepseek Pro模型
还是要去回到原始的Codex环境里面去
他实际上是会给你三个不同的选项的
那么这三个不同选项
你就可以自由的来进行选取了
当然现在DeepseekV4 Pro模型的正式版还没有上线
所以你可能只能去选取这个Flash
就是Deep Stick V4 Flash正式版来进行运行
然后当你输入完成之后
那么接下来它会提醒你输入API Key
然后你再输入API Key
输入完API Key之后
那么接下来它就会显示这Completed这样的按钮
当你当这样的信息
当你如果看到Completed的信息的话
说明你现在配置成功了
就这么样的情况
当然我们说如果你还想继续回到你最一开始的这样的配置
或者你想切换底层模型的话
那么就再次运行这样的命令就可以了
比如说我现在想再切回我们原始的codex这样的环境的话
那么OK你再运行一下这个命令
它又会弹出我们最开始的三个选项
你是使用Deepseek v4的flash这个模型
还是pro这个模型
还是回到你最开始的codex的这样的环境配置
然后你选择回到最开始的codex环境配置就可以了
它就可以让你回到你最开始的codex的配置
当然我们最开始安装好了codex之后
其实还并没有来进行授权
所以其实你这里面如果是需要来进行回到你原始的Codex版本的话
那么其实你是需要重新围绕你Codex来进行授权的
就比如说你可以使用现在的订阅的这样的额度来去完成Codex的运行
这个其实是完全OK的
那么说此之外我们从下面还有一个叫做使用CCSWITCH
CCSWITCH实际上最早是Cloudcode的一个编码形式的这样的一个同步映射的这样的工具
我们之前不是说了吗
对你当前这个模型来说
你需要介入各样的不同的
agent里边去
那么你可能就需要
满足不同的agent
它本身的响应格式
对吧
那么在原来的这个情况下
比如很多模型
它响应格式本来不符合
比如说Anthopic
他们的这个要求
那这个时候怎么办呢
这个时候你就可以使用
这个Sysswitch
它是可以帮你把你的
输出的格式来进行转换
转换了之后
就可以介入到
比如Cloud Code
或者是Codex里边去
是这么一回事
但现在我们说DeepSeek
它出了兼容
我们当前的Codex
这个版本的API响应格式之后
现在你也是可以使用这个CCSwitch
因为CCSwitch它有一个goi的这样的页面
它其实是可以直接在我们这个前端
来进行这个运行
就可以也是一个比较简单的
这样的这个运行的这个方法
它是可以在这个goi
它是可以在这个goi里面来进行一个
直接的这个同步的这样的一个运行
这个也是可以的
但只不过呢CCSwitch现在来看
可能并不一定有我们上面所看到的
那样的一个
但是如果之前是使用過SYSWITCH,那確實可以在GUI的頁面裡面直接來進行一個本地的轉換,其實就可以了。
它其实是可以把原始的响应格式来进行转换
然后直接就把它导入到我们当前的Codex里边去
它的流程并不是去修改你Codex本身的
并不是修改你本身Codex这样的一个配置
而是让你现在本地去响应的这样的Deep Seek的
这样的一个模型的API跟输出结果
能够去适配你当前的SitSWitch
是怎么样的一个情况
OK好
那这个呢是我们说的啊
它的一个
基本的一个配置的这个方法
然后啊
接下来比较重要的一点啊
是关于我们的
我们的这codex啊
应该如何来进行一个使用
当然其实对于codex来说啊
稍等我们这给大家看一下哈
关于codex啊
如何来进行使用啊
因为我这边是远程啊
连的啊
连的这个codex啊
然后呢我们来看一下
我们实际上啊
这个codex
应该如何来使用呢
大家稍等一下
大家看一下
其实我们说像Codex
或者是这个
Cloud Code
它的这个使用方法
现在来看已经是
非常的
已经是非常的这个类似了
其实之前一段时间
这个
Codex
cloud code封号的那段时间
因为我们团队其实最早
是全部在
使用这个
我们团队
其实使用
cloud code其实使用的是比较多的
在这
大家看一下
然后呢在
codex的这个
在cloud code封号了之后呢
其实我们才全部的
全部的转向了
这个codex
所以在过去一段时间
实际上我们在
使用codex的场景
其实非常多
基本上从头到尾
都是在使用codex
所以在codex里边
我们也是积累了非常多的一些
使用的一些心得和一些方法
那么总的来说
我们这里可以先快速的给大家看一下
如果我们现在接下来要去使用这个Codex的话
那么你到底有哪一些需要去注意的这个事项
那么首先我们说对于这个Codex来说
它的基本的这个项目结构
其实和Cloud Code
或者和其他的一些这个项目
其实很大的这个区别
那么当我们接下来要去使用这个Codex的话
我们这里先给大家补充一轮这个理论基础
那么首先你可能基本的项目结构
可能就长成这个样子
大家现在看到的
对不对
底层它会有一个agents.md
然后它会有一个.cloud
.codex这样的文件夹
然后下面可能就是你的一系列的
对应的这样的一些项目文件
那么codex实际上我们在进行开发的时候
仍然是围绕一个又一个独立的完整的项目
去构建对应的项目文件这样的形式来进行开发
那么底层会有一个agents.md这样的文档
那么这个文档实际上是一个非常关键
非常重要的一个全局
涉及到全局的影响
这样的文档
那么这个文档
它在实际的定义的过程当中
就是我们整个项目运行的过程
它需要遵循的最低层的
核心的这样的指令
比如说我们现在如果要去
开发一些项目的话
那么实际上开发的项目的
目标核心功能底层规则
都需要写到agent.md里面去
好那么紧接着
它还有一个.codex
这样的文件夹
那么.codex的文件夹
它的非常核心的功能
是去保存我们现在
在进行整个agent项目运行
你可能免不了
需要去额外定义一些子agent
对不对
那么所有的这些子agent
那么对于Codex来说
它的子agent
是TML这样的格式来进行定义的
那么它全部都是保存在
.Codex的文件夹里面
就一个叫做agents的文件夹里面
它里面有非常非常多的
一些关于你子agent这样的定义
那么什么叫做子agent
那么为什么我们需要单独定义系列的子agent
那么大家现在看到这样的项目录
其实也就是我们之后
去搭建AI数据分析智能体的
完整的项目的目录
所以我们这里现在可以
大概给大家看一下
它是一个什么样的基本结构
那么所谓的agents里面
我们需要定义很多的子agents
原因也是因为你在实际开发过程当中
可能免不了需要去有一些
特定的开发类型的这样的任务
比如说我需要来进行PRD的审查
对不对
或者是我现在需要去围绕一些
项目的功能来编写一些测试脚本
那对应的这不同类型的工作
它实际上是需要有一套自己独立的生下文的
对不对
那这个时候我们就需要给它去创建一系列的agents
一系列的子agents
那到时候遇到这样的问题
我们就可以直接分派给对应的subagents来进行完成
就可以了
是这么样的一个基本功能的定位
然后这个文件夹里面当然就是现在的
我们所有的sqs保存的地方
对不对
然后各式各样sqs都在里边
那么在网上下还有一些profile
和这个skeema 它实际上是我们当前特定的某些项目文件
里面的一些内容 当然还有test 还有readme
当然如果你现在所有的项目文件里面
如果还有紫项目的话 每个紫项目里面可能他也是需要有对应的一些readme
这样的文档 这个是它的一个基本项目结构
那么比较重要的是我们初学者上手来进行使用的时候
你是需要编辑好每一个agents.md这样的文档的
那么agents.md这个文档
稍等我们刷新一下
agents.md这个文档
它实际上不会随着你未来上下文的变化
而变化
它实际上是会始终都会加载到你当前的项目文件里面去
所以它实际上是最为核心
最为永久的项目的记忆
这点你实际上是需要首先给它讲清楚的
那么同时呢
我们实际上每次在进行运行的时候呢
刚刚其实我们看到啊
有一个叫profile这样的这个参数啊
那么profile这个参数呢
它啊核心的这个用途是我们接下来呢
在运行每个不同的这个项目的这个时候啊
那其实你可以导入对应的一些这个profile啊
给他特定的一段提示词啊
是这么一回事
然后呢对于这个codex来说呢
它呢实际上是有上下文的这个啊
它呢是有这个全局的这个记忆啊
并且是有这跨文档的拥有记忆的啊
但是呢我们现在的啊
这个codex的实际上也是可能啊
需要在你的memory参数里
那么除了我们对于Codex来说
它有天然的一些记忆功能之外
其实有的时候我们还需要
接着它的钩子系统
给它人工的设定一些记忆的功能
当然这点会比较复杂
这个我们稍后再说
然后同时对于Codex来说
我们实际上进行运行的时候
它还有很多斜杠命令
那么这些斜杠命令里边用的比较多的
比如说Compact对不对
去亚洲藏小文
然后Model去切换你当前这样的模型
然后Permissions去设置
你当前的对话当中的这样的一个权限
然后这个states是去看你当前绘画运行的这样的基本状态
这里面大家其实都是可以通过一些命令来进行测试的
那么实际上我们在进行复杂任务开发的这个时候
我们往往需要比如说组件多agent这样的系统
对不对
这个时候比较重要的就是我们的profile
我们的agent
我们的skill和我们的subagent这四个对象
当然这里面我们先给大家快速的过一下
大家理解一下是什么样的概念
稍后我们会有具体的操作
那profile实际上指的是
我们每次在开启codex的时候
你其实可以给他输入一个profile
相当于是给他输入一段文本信息
让他接下来是执行什么样的任务
给他临时的人工
给他灌入输入一个上下文
然后同时我们刚刚说了
你的自定义的agent
可以灵活的派发各式各样不同类型的任务
然后我们的skills
他可以灵活的加载对应的
skills加载对应的上下文
对不对
然后我们的subagent
实际上是我们子agent派发的一种方式
我们可以灵活的把你工作拍拍给你自定的agent
是怎么样的一个情况
然后同时我们这里其实接下来是定义了多个的profile
这样的文档
多个profile文档实际上
它是用于不同的agent去执行不同类型的任务
这点我们稍后会看到完整的profile这样的文档
然后如果你现在是要创建一些agent的话
那么每一个agent实际上它都需要有一个名字
需要有个description
需要有一个sendbox的这样的权限设置
和我们的developer instructions
这点其实这个developer instructions非常重要的
它实际上就是我们每次当前对应的agent
对应的特殊的定义好的agent
每次运行的时候
它所加载进去
进去它上下文
是这么一回事
当然我们说对应的
对于codex来说
它的skill创建也是类似的
需要有一个name
需要有一个description
对不对
然后需要有一个当前的skills的这样的证文
用于去描述我们所有的skills
这样的内容差不多
我们说是这样的一些基本的设置
当然除此之外
我们有的时候同学可能还会用到
像exec这样的功能
所谓exec这样的功能就指的是
我们给当前cogex
给他输入一条完整的指令
让他一次性的完成整个完整指令
中途不间断
它实际上是一个一次性的
任务的执行的这样的方法等等
这些实际上是一个基本的
我们说cogex
它的一个使用的过程