start	end	text
0	22800	OK,好,那我們繼續,我們公開課的下一個小節這個內容。那麼公開課其實相比之下,其實講的會比較快一些。主要是大家有這樣的一個全局的技術的認識和了解。然後對於很多底層東西,我們其實是不會展開講。更多其實就是比如說我們接下來直接上手使用Codex來進行運行。看一下到底應該怎麼樣來進行開發。
22800	25440	那么之前我们其实是大概给大家介绍了一下
25440	28440	关于Deepseek v4 flash跟我们的Responsees API
28440	30360	它的一些基本的能力
30360	33540	那么接下来比较重要的就是我们怎么样使用这Codex
33540	37260	来完成更加复杂的这些agent开发
37260	40780	很多底层的原理基本上大家了解一下
40780	43480	想一想知道是怎么一回事也就可以了
43480	47060	但比较重要的是我们怎么样去使用现在这工具来完成对应的开发
47060	49960	这里有一个大家需要知道的一个点
49960	51220	就在于对于Codex来说
51220	53040	它其实现在功能现在是很丰富的
53040	54040	那有CodexClip
54040	56880	有Codex的桌面端
56880	58100	就是Codex的APP
58100	59560	还有Codex IDE的拓展
59560	60540	还有Codex的Cloud
60540	63700	它的云环境的运行和ChatGPT等等
63700	66740	当然现在Codex桌面端跟ChatGPT实际上是已经合并了
66740	68820	他们是已经合并成一个APP了
68820	70620	那么大家之前可能很多
70620	73100	我们不管开发同学用的比较多的
73100	75760	实际上就是Codex的桌面端会用的比较多
75760	76180	对吧
76180	78080	当然我们之后其实会比较多的
78080	80520	是使用这codex的命令行来进行开发
80520	81780	当然对于命令行来说
81780	83040	大家也不用怕
83040	84140	觉得说命令行
84140	87680	这个环境会比较恐怖
87680	88180	对不对
88180	91900	这个纯命令行需要点击来进行操作
91900	92840	会比较困难等等
92840	94720	这个其实不用特别担心
94720	97200	我们接下来会带大家一步一步来进行实现
97200	99260	所以其实还好
99260	100280	对于开发人员来说
100280	101620	其实使用这个桌面
101620	104140	使用这个命令行来完成开发
104140	105780	这个事情其实是迟早的事
105780	109160	是一定需要去克服和一定需要来进行解决的
109160	109680	好
109680	112220	那么接下来我们说对于Kodaks怎么样来进行安装
112220	115040	这里安装其实并不会特别复杂
115040	117260	基本上就是运行这些命令来进行安装
117260	121440	那么一般来说我们使用这CURL来进行安装的
121440	123920	这个情况是比较多的
123920	129900	这个应该是我们最为常见的一个情况
129900	135360	那么正好我们现在也一边
135360	137120	来给大家来进行一个运行
137120	138440	一边来给大家看一下
138440	140720	到底应该怎么样来进行配置
140720	143840	首先我们说基本上就是这么三行的命令
143840	145740	就可以完成所有的安装
145740	146640	那么一般来说
146640	149080	我们说使用这CURL来进行安装
149080	150660	肯定是最多的
150660	152720	当然我们说如果你安装好了这NPM的话
152720	155160	那么使用NPM来进行安装也是可以的
155160	157140	然后对于MacOS来说
157140	158360	如果你有Home Pro的话
158360	159880	你也可以使用它来进行安装
159880	162640	这三种安装方法其实都是可以的
162640	163640	都是没有什么问题的
163640	164720	那么安装完了之后
164720	167720	接下来你就可以输入 version 来看一下它的版本号
167720	174720	那么目前 codex的click或者 codex命令版本号最多是0.146.0
174720	177720	这个应该是最新版 这个应该问题不大
177720	180720	大家安装好之后 接下来就可以直接来进行使用了
180720	184720	当然安装完了之后 这里其实我们可能还需要做的一个事情
184720	188720	是把deep-seekv4这个模型给它来进行一个接入
188720	191720	那么具体怎么接入 实际上它本质是有两种方法
191720	196220	这个比较简单的是直接用官方的这个方法来进行运行
196220	200220	除此之外呢你也可以使用这个CCSWITCH来进行一个中转也是可以的
200220	203720	当然这个CCSWITCH是什么怎么样来进行一个使用
203720	207220	我们一会儿在后面在这里的时候到时候会给大家看一下
207220	208720	这个CCSWITCH怎么样来进行使用
208720	212220	但是我们现在觉得呢其实使用官方的这个接入CODEX的方法
212220	214720	应该是最简单的一种方式
214720	217220	那么官方怎么样去接入CODEX呢很简单
217220	219220	比如说如果你现在是MacOS的话
219220	224100	macos的话 那么你就直接运行这样的命令 其实就可以了 也就是说在你的命令行里面
224500	225100	你就可以直接
227420	232140	你就可以直接运行 我们现在的这样的命令
232380	242940	然后就可以进入到我们接下来他就他脚本实际上是直接全自动的去完成某一个叫做codex-deep-research-setup
243180	246620	这样的一个脚本的安装和运行
246620	248480	然后呢这个脚本啊
248480	250060	最核心的这个作用啊
250060	251920	实际上就是帮你一键啊
251920	255260	把你当前底层的Codex的所有配置呢
255260	256740	都给你迁移到啊
256740	258280	Deep Seek当中去啊
258280	260480	当然这个如果你需要手动来进行配置的话
260480	261820	实际上非常非常复杂
261820	264320	你需要修改很多很多参数和变量啊
264320	266480	才能够把你底层已经安装好的
266480	268880	这一整个Codex给它迁移到
268880	271040	Deep Seek这个基础环境里面去啊
271040	272960	但是如果你现在使用官方啊
272960	274100	Deep Seek官方给你提供的
274100	275160	这样的脚本的话啊
275160	276600	实际上所有的事情都省啊
276600	278800	他会非常非常的这个便记啊
278800	281640	然后呢当然如果你想看这个脚本里面具体写了什么东西的话
281640	283380	那么这个脚本实际上它是规定了啊
283380	285680	关于当前这个modal啊modal provider啊
285680	286980	然后呢他介入方法啊
286980	287180	对不对
287180	288380	然后他的这个written effort
288380	291300	然后呢我们现在的啊这个chat log啊
291300	293100	就是我们现在这个对话日志保存在哪里
293100	294300	然后等等等等啊
294300	297740	所有的我们说相关的这个配置信息全部都会帮你写进去
297740	300420	当然我们说你运行了这个脚本之后啊
300420	303100	上面其实是呃mac用户啊
303100	303680	是运行这个
303680	305640	然后呢你如果是windows用户的话啊
305640	307840	就是运行下面这个情况
307840	309840	然后你在运行的过程当中
309840	311040	他就会提醒你
311040	314040	是下面这个接测你可以不用管
314040	315040	然后他就会提醒你
315040	318440	你现在是使用Deepseek模型
318440	320040	还是Deepseek Pro模型
320040	324240	还是要去回到原始的Codex环境里面去
324240	327240	他实际上是会给你三个不同的选项的
327240	328440	那么这三个不同选项
328440	329840	你就可以自由的来进行选取了
329840	333840	当然现在DeepseekV4 Pro模型的正式版还没有上线
333840	336380	所以你可能只能去选取这个Flash
336380	338820	就是Deep Stick V4 Flash正式版来进行运行
338820	340680	然后当你输入完成之后
340680	342720	那么接下来它会提醒你输入API Key
342720	344200	然后你再输入API Key
344200	345900	输入完API Key之后
345900	349120	那么接下来它就会显示这Completed这样的按钮
349120	350560	当你当这样的信息
350560	352920	当你如果看到Completed的信息的话
352920	354260	说明你现在配置成功了
354260	355080	就这么样的情况
355080	360600	当然我们说如果你还想继续回到你最一开始的这样的配置
360600	362160	或者你想切换底层模型的话
362160	364600	那么就再次运行这样的命令就可以了
364600	369080	比如说我现在想再切回我们原始的codex这样的环境的话
369080	370540	那么OK你再运行一下这个命令
370540	372280	它又会弹出我们最开始的三个选项
372280	376280	你是使用Deepseek v4的flash这个模型
376280	377240	还是pro这个模型
377240	380180	还是回到你最开始的codex的这样的环境配置
380180	383400	然后你选择回到最开始的codex环境配置就可以了
383400	386880	它就可以让你回到你最开始的codex的配置
386880	388760	当然我们最开始安装好了codex之后
388760	390520	其实还并没有来进行授权
390520	396080	所以其实你这里面如果是需要来进行回到你原始的Codex版本的话
396080	399200	那么其实你是需要重新围绕你Codex来进行授权的
399200	404420	就比如说你可以使用现在的订阅的这样的额度来去完成Codex的运行
404420	406020	这个其实是完全OK的
406020	409840	那么说此之外我们从下面还有一个叫做使用CCSWITCH
409840	417660	CCSWITCH实际上最早是Cloudcode的一个编码形式的这样的一个同步映射的这样的工具
417660	418560	我们之前不是说了吗
418560	419740	对你当前这个模型来说
419740	421320	你需要介入各样的不同的
421320	422560	agent里边去
422560	423800	那么你可能就需要
423800	425020	满足不同的agent
425020	426720	它本身的响应格式
426720	427040	对吧
427040	428940	那么在原来的这个情况下
428940	429720	比如很多模型
429720	431100	它响应格式本来不符合
431100	431740	比如说Anthopic
431740	432620	他们的这个要求
432620	433640	那这个时候怎么办呢
433640	434460	这个时候你就可以使用
434460	435040	这个Sysswitch
435040	436760	它是可以帮你把你的
436760	438760	输出的格式来进行转换
438760	439460	转换了之后
439460	440400	就可以介入到
440400	441080	比如Cloud Code
441080	442480	或者是Codex里边去
442480	443220	是这么一回事
443220	444840	但现在我们说DeepSeek
444840	447180	它出了兼容
447180	448380	我们当前的Codex
448380	450840	这个版本的API响应格式之后
450840	452880	现在你也是可以使用这个CCSwitch
452880	455760	因为CCSwitch它有一个goi的这样的页面
455760	458660	它其实是可以直接在我们这个前端
458660	460200	来进行这个运行
460200	462540	就可以也是一个比较简单的
462540	464060	这样的这个运行的这个方法
464060	466220	它是可以在这个goi
466220	469520	它是可以在这个goi里面来进行一个
469520	472080	直接的这个同步的这样的一个运行
472080	473020	这个也是可以的
473020	475040	但只不过呢CCSwitch现在来看
475040	478480	可能并不一定有我们上面所看到的
478480	479400	那样的一个
483000	493000	但是如果之前是使用過SYSWITCH,那確實可以在GUI的頁面裡面直接來進行一個本地的轉換,其實就可以了。
493000	499020	它其实是可以把原始的响应格式来进行转换
499020	503520	然后直接就把它导入到我们当前的Codex里边去
503520	506880	它的流程并不是去修改你Codex本身的
506880	510160	并不是修改你本身Codex这样的一个配置
510160	514160	而是让你现在本地去响应的这样的Deep Seek的
514160	515860	这样的一个模型的API跟输出结果
515860	517940	能够去适配你当前的SitSWitch
517940	519540	是怎么样的一个情况
519540	520700	OK好
520700	522180	那这个呢是我们说的啊
522180	522740	它的一个
522740	526380	基本的一个配置的这个方法
526380	527600	然后啊
527600	529780	接下来比较重要的一点啊
529780	530660	是关于我们的
530660	532120	我们的这codex啊
532120	534420	应该如何来进行一个使用
534420	536460	当然其实对于codex来说啊
536460	537960	稍等我们这给大家看一下哈
537960	539160	关于codex啊
539160	540580	如何来进行使用啊
540580	542940	因为我这边是远程啊
542940	544100	连的啊
544100	545720	连的这个codex啊
545720	547020	然后呢我们来看一下
547020	548440	我们实际上啊
548440	549400	这个codex
549400	551400	应该如何来使用呢
551400	552560	大家稍等一下
552560	553620	大家看一下
553620	557400	其实我们说像Codex
557400	558640	或者是这个
558640	559920	Cloud Code
559920	563240	它的这个使用方法
563240	565200	现在来看已经是
565200	565920	非常的
565920	569780	已经是非常的这个类似了
569780	575420	其实之前一段时间
575420	576060	这个
576060	577920	Codex
577920	580840	cloud code封号的那段时间
580840	583400	因为我们团队其实最早
583400	585000	是全部在
585000	586440	使用这个
586440	589740	我们团队
589740	591400	其实使用
591400	594000	cloud code其实使用的是比较多的
594000	594480	在这
594480	595920	大家看一下
595920	598240	然后呢在
598240	602040	codex的这个
602040	604460	在cloud code封号了之后呢
604460	606400	其实我们才全部的
606400	611660	全部的转向了
611660	612460	这个codex
612460	618620	所以在过去一段时间
618620	619720	实际上我们在
619720	622000	使用codex的场景
622000	623520	其实非常多
623520	626580	基本上从头到尾
626580	628480	都是在使用codex
628480	630240	所以在codex里边
630240	631920	我们也是积累了非常多的一些
631920	634660	使用的一些心得和一些方法
634660	636560	那么总的来说
636560	638860	我们这里可以先快速的给大家看一下
638860	641700	如果我们现在接下来要去使用这个Codex的话
641700	645580	那么你到底有哪一些需要去注意的这个事项
645580	648460	那么首先我们说对于这个Codex来说
648460	650560	它的基本的这个项目结构
650560	651720	其实和Cloud Code
651720	653380	或者和其他的一些这个项目
653380	654320	其实很大的这个区别
654320	656940	那么当我们接下来要去使用这个Codex的话
656940	659460	我们这里先给大家补充一轮这个理论基础
659460	661960	那么首先你可能基本的项目结构
661960	663920	可能就长成这个样子
663920	665040	大家现在看到的
665040	665320	对不对
665320	667700	底层它会有一个agents.md
667700	669140	然后它会有一个.cloud
669140	671060	.codex这样的文件夹
671060	673740	然后下面可能就是你的一系列的
673740	676260	对应的这样的一些项目文件
676260	678500	那么codex实际上我们在进行开发的时候
678500	682040	仍然是围绕一个又一个独立的完整的项目
682040	685940	去构建对应的项目文件这样的形式来进行开发
685940	688800	那么底层会有一个agents.md这样的文档
688800	691680	那么这个文档实际上是一个非常关键
691680	693740	非常重要的一个全局
693740	696160	涉及到全局的影响
696160	697240	这样的文档
697240	698480	那么这个文档
698480	699940	它在实际的定义的过程当中
699940	701660	就是我们整个项目运行的过程
701660	703440	它需要遵循的最低层的
703440	704760	核心的这样的指令
704760	706200	比如说我们现在如果要去
706200	707280	开发一些项目的话
707280	708920	那么实际上开发的项目的
708920	711520	目标核心功能底层规则
711520	714160	都需要写到agent.md里面去
714160	715300	好那么紧接着
715300	716500	它还有一个.codex
716500	717800	这样的文件夹
717800	719480	那么.codex的文件夹
719480	721080	它的非常核心的功能
721080	722360	是去保存我们现在
722360	724420	在进行整个agent项目运行
724420	725820	你可能免不了
725820	727820	需要去额外定义一些子agent
727820	728280	对不对
728280	730480	那么所有的这些子agent
730480	731840	那么对于Codex来说
731840	732680	它的子agent
732680	735200	是TML这样的格式来进行定义的
735200	736880	那么它全部都是保存在
736880	738240	.Codex的文件夹里面
738240	740060	就一个叫做agents的文件夹里面
740060	741600	它里面有非常非常多的
741600	743820	一些关于你子agent这样的定义
743820	745760	那么什么叫做子agent
745760	748980	那么为什么我们需要单独定义系列的子agent
748980	750800	那么大家现在看到这样的项目录
750800	751940	其实也就是我们之后
751940	753800	去搭建AI数据分析智能体的
753800	755160	完整的项目的目录
755160	756220	所以我们这里现在可以
756220	757120	大概给大家看一下
757120	758580	它是一个什么样的基本结构
758580	760740	那么所谓的agents里面
760740	762560	我们需要定义很多的子agents
762560	764520	原因也是因为你在实际开发过程当中
764520	768060	可能免不了需要去有一些
768060	769860	特定的开发类型的这样的任务
769860	773340	比如说我需要来进行PRD的审查
773340	773980	对不对
773980	776800	或者是我现在需要去围绕一些
776800	779280	项目的功能来编写一些测试脚本
779280	781500	那对应的这不同类型的工作
781500	784220	它实际上是需要有一套自己独立的生下文的
784220	784560	对不对
784560	788360	那这个时候我们就需要给它去创建一系列的agents
788360	789400	一系列的子agents
789400	791020	那到时候遇到这样的问题
791020	793860	我们就可以直接分派给对应的subagents来进行完成
793860	794720	就可以了
794720	799500	是这么样的一个基本功能的定位
799500	802160	然后这个文件夹里面当然就是现在的
802160	804220	我们所有的sqs保存的地方
804220	804740	对不对
804740	807240	然后各式各样sqs都在里边
807240	809120	那么在网上下还有一些profile
809120	813120	和这个skeema 它实际上是我们当前特定的某些项目文件
813120	816720	里面的一些内容 当然还有test 还有readme
816720	822320	当然如果你现在所有的项目文件里面
822320	827520	如果还有紫项目的话 每个紫项目里面可能他也是需要有对应的一些readme
827520	830320	这样的文档 这个是它的一个基本项目结构
830320	833520	那么比较重要的是我们初学者上手来进行使用的时候
833520	839960	你是需要编辑好每一个agents.md这样的文档的
839960	842240	那么agents.md这个文档
842240	844280	稍等我们刷新一下
844280	845960	agents.md这个文档
845960	851700	它实际上不会随着你未来上下文的变化
851700	852200	而变化
852200	856560	它实际上是会始终都会加载到你当前的项目文件里面去
856560	858560	所以它实际上是最为核心
858560	860440	最为永久的项目的记忆
860440	863380	这点你实际上是需要首先给它讲清楚的
863380	864560	那么同时呢
864560	866620	我们实际上每次在进行运行的时候呢
866620	867620	刚刚其实我们看到啊
867620	869480	有一个叫profile这样的这个参数啊
869480	870780	那么profile这个参数呢
870780	873780	它啊核心的这个用途是我们接下来呢
873780	876140	在运行每个不同的这个项目的这个时候啊
876140	878800	那其实你可以导入对应的一些这个profile啊
878800	880740	给他特定的一段提示词啊
880740	881280	是这么一回事
881280	883480	然后呢对于这个codex来说呢
883480	885740	它呢实际上是有上下文的这个啊
885740	887660	它呢是有这个全局的这个记忆啊
887660	889920	并且是有这跨文档的拥有记忆的啊
889920	891400	但是呢我们现在的啊
891400	893360	这个codex的实际上也是可能啊
893360	895584	需要在你的memory参数里
901444	904004	那么除了我们对于Codex来说
904004	907564	它有天然的一些记忆功能之外
907564	909284	其实有的时候我们还需要
909284	910564	接着它的钩子系统
910564	913724	给它人工的设定一些记忆的功能
913724	915284	当然这点会比较复杂
915284	916884	这个我们稍后再说
916884	918844	然后同时对于Codex来说
918844	919844	我们实际上进行运行的时候
919844	921484	它还有很多斜杠命令
921484	923964	那么这些斜杠命令里边用的比较多的
923964	925124	比如说Compact对不对
925124	925944	去亚洲藏小文
925944	928824	然后Model去切换你当前这样的模型
928824	931084	然后Permissions去设置
931084	933544	你当前的对话当中的这样的一个权限
933544	937524	然后这个states是去看你当前绘画运行的这样的基本状态
937524	941724	这里面大家其实都是可以通过一些命令来进行测试的
941724	945044	那么实际上我们在进行复杂任务开发的这个时候
945044	948244	我们往往需要比如说组件多agent这样的系统
948244	948564	对不对
948564	950664	这个时候比较重要的就是我们的profile
950664	951444	我们的agent
951444	954004	我们的skill和我们的subagent这四个对象
954004	956064	当然这里面我们先给大家快速的过一下
956064	957864	大家理解一下是什么样的概念
957864	959384	稍后我们会有具体的操作
959384	961044	那profile实际上指的是
961044	963504	我们每次在开启codex的时候
963504	965324	你其实可以给他输入一个profile
965324	967464	相当于是给他输入一段文本信息
967464	969424	让他接下来是执行什么样的任务
969424	971704	给他临时的人工
971704	973164	给他灌入输入一个上下文
973164	974744	然后同时我们刚刚说了
974744	976464	你的自定义的agent
976464	978784	可以灵活的派发各式各样不同类型的任务
978784	980624	然后我们的skills
980624	982704	他可以灵活的加载对应的
982704	984564	skills加载对应的上下文
984564	984944	对不对
984944	986744	然后我们的subagent
986744	989084	实际上是我们子agent派发的一种方式
989084	992764	我们可以灵活的把你工作拍拍给你自定的agent
992764	994024	是怎么样的一个情况
994024	998264	然后同时我们这里其实接下来是定义了多个的profile
998264	999044	这样的文档
999044	1001044	多个profile文档实际上
1001044	1004544	它是用于不同的agent去执行不同类型的任务
1004544	1008044	这点我们稍后会看到完整的profile这样的文档
1008044	1012684	然后如果你现在是要创建一些agent的话
1012684	1015484	那么每一个agent实际上它都需要有一个名字
1015484	1016404	需要有个description
1016404	1019084	需要有一个sendbox的这样的权限设置
1019084	1021404	和我们的developer instructions
1021404	1024124	这点其实这个developer instructions非常重要的
1024124	1027044	它实际上就是我们每次当前对应的agent
1027044	1029524	对应的特殊的定义好的agent
1029524	1030324	每次运行的时候
1030324	1031164	它所加载进去
1031164	1032164	进去它上下文
1032164	1032964	是这么一回事
1032964	1034244	当然我们说对应的
1034244	1035124	对于codex来说
1035124	1037124	它的skill创建也是类似的
1037124	1038404	需要有一个name
1038404	1039724	需要有一个description
1039724	1040044	对不对
1040044	1043884	然后需要有一个当前的skills的这样的证文
1043884	1046204	用于去描述我们所有的skills
1046204	1047644	这样的内容差不多
1047644	1050564	我们说是这样的一些基本的设置
1050564	1051404	当然除此之外
1051404	1053244	我们有的时候同学可能还会用到
1053244	1055044	像exec这样的功能
1055044	1057084	所谓exec这样的功能就指的是
1057084	1058784	我们给当前cogex
1058784	1060224	给他输入一条完整的指令
1060224	1063204	让他一次性的完成整个完整指令
1063204	1063844	中途不间断
1063844	1066424	它实际上是一个一次性的
1066424	1069344	任务的执行的这样的方法等等
1069344	1071924	这些实际上是一个基本的
1071924	1072664	我们说cogex
1072664	1075544	它的一个使用的过程
