0:00.000–0:07.140
zh接下来我们来讲一下Codex AGENTS.md配置与架构设计。
0:07.140–0:18.080
zh那这个AGENTS.md的话其实是Codex在这个规范化编程这一块做的一些整个架构的一个设计。
0:18.080–0:29.380
zh它系统这个里面定义了一个规范,我们可以在这个AGENTS.md里面可以把项目的一些实际的一些开发规范,包括我们整个项目的一些结构,
0:29.380–0:31.160
zh放到这个文件里面
0:31.160–0:33.640
zh那么在Codex加载的时候
0:33.640–0:36.140
zh我们去分析整个项目结构的时候
0:36.140–0:40.740
zh他会优先去读取这个agents.md文件
0:40.740–0:41.700
zh这样的话
0:41.700–0:46.040
zh他就相当于了解了我们项目的全局的一些
0:46.040–0:47.380
zh这个大致的一些情况
0:47.380–0:51.440
zh所以说这个agents.md的话
0:51.440–0:54.440
zh其实就是作为一个规范
0:54.440–0:56.320
zh这个驱动开发的一种方式
0:56.320–0:59.020
zh通过整个全局的一个说明
0:59.020–1:01.760
zh包括我们整个目录层级
1:01.760–1:05.140
zh它的一些关键的一些文件在哪里
1:05.140–1:06.280
zh比如说像一些文档
1:06.280–1:08.280
zh我们整个项目的一个架构文档
1:08.280–1:09.900
zh设计文档 API文档
1:09.900–1:12.740
zh通过这个agents.md文件
1:12.740–1:16.480
zh把我们相当于这个代码地图描述了非常清楚
1:16.480–1:19.980
zh那这个AI就可以快速了解到
1:19.980–1:22.440
zh我们项目里面的一些重点信息
1:22.440–1:23.340
zh这样的话
1:23.340–1:25.580
zh那你让它去生成代码的时候
1:25.580–1:27.500
zh相当于它已经把你整个项目
1:27.500–1:29.180
zh大致做了一个了解了
1:29.180–1:31.100
zh这样他去找文件的时候
1:31.100–1:32.780
zh他的一个效率就会非常高
1:32.780–1:33.800
zh速度也非常快
1:33.800–1:37.900
zh那么Codex他是如何发现
1:37.900–1:39.720
zh这些个文件的呢
1:39.720–1:40.820
zh首先的话
1:40.820–1:42.640
zh他会启动的时候
1:42.640–1:44.820
zh他会整理出一条本次运行
1:44.820–1:46.340
zh需要使用的一个指令链
1:46.340–1:50.060
zh那么他首先会做一个检查
1:50.060–1:51.340
zh他这个检查的话
1:51.340–1:53.340
zh是有一个顺序层级的
1:53.340–1:55.820
zh首先第一层的话叫做全局层
1:55.820–1:57.580
zh那这个的话
1:57.580–2:00.060
zh就是在我们的这个Codex主目录里面
2:00.060–2:02.060
zh有个叫.codex目录
2:02.060–2:04.560
zh就是在当前登录用户的这个目录里面
2:04.560–2:06.820
zh有一个叫点Codex的一个目录
2:06.820–2:09.500
zh当然我们也可以在环境变量里面
2:09.500–2:12.060
zh去指定这个Codex Home
2:12.060–2:15.300
zh通过这个环境变量去指定指定的一个目录
2:15.300–2:17.580
zh那我们指定之后的话
2:17.580–2:19.240
zhCodex在运行的时候
2:19.240–2:22.180
zh它就会把它的一些文件
2:22.180–2:24.560
zh就是系统的一些文件
2:24.560–2:26.660
zh默认的会去存放到这个目录里面去
2:26.660–2:28.440
zh如果大家没有设定的话
2:28.440–2:31.180
zh它就是在当前登录用户的这个
2:31.180–2:33.540
zh一个目录下面
2:33.540–2:35.580
zh有一个叫.codex这么一个目录
2:35.580–2:38.180
zh那么在这个目录下面的话
2:38.180–2:40.460
zh我们可以去指定一个叫
2:40.460–2:43.000
enagents.override.md
2:43.000–2:44.480
zh那么这个的话
2:44.480–2:48.100
zh就是一个全局的一个agents.md
2:48.100–2:50.120
zh那么在这个里面的话
2:50.120–2:52.160
zh我们写的内容
2:52.160–2:53.620
zh它会优先去读取
2:53.620–2:55.080
zh要是没有的话
2:55.080–2:58.460
zh他再会去读取这个agents.md文件
2:58.460–3:01.380
zh所以说他这个里面就是一个规范啊
3:01.380–3:04.020
zh首先从最外层去开始去找找这个文件
3:04.020–3:06.080
zh如果能找到的话就优先使用它
3:06.080–3:09.900
zh找不到的话再往下一层级去找agents.md
3:09.900–3:13.080
zh好然后第二个层级叫项目级
3:13.080–3:14.260
zh比如说啊
3:14.260–3:16.080
zh我们这个项目里面
3:16.080–3:19.920
zh我们在项目里面也可以去写这个agents.md
3:19.920–3:21.820
zh比如说我们整个项目啊
3:21.820–3:23.720
zh它是什么一个结构
3:23.720–3:25.040
zh规范是怎么样的
3:25.040–3:26.780
zh包括它的一些构建命令
3:26.780–3:28.020
zh有哪些数据库配置
3:28.020–3:29.040
zh有哪些等等的
3:29.040–3:29.860
zh这些个内容
3:29.860–3:30.820
zh我们都可以写到
3:30.820–3:32.100
zhagents.md里面去
3:32.100–3:33.620
zh然后的话就是
3:33.620–3:35.480
zh我们如果在项目层
3:35.480–3:36.900
zh写了agents.md
3:36.900–3:37.920
zh但是呢
3:37.920–3:39.200
zh全局层又没有写的话
3:39.200–3:40.880
zh它会优先使用
3:40.880–3:42.920
zh项目层里面的agents.md
3:42.920–3:45.560
zh去做一个读取
3:45.560–3:46.360
zh那这里面
3:46.360–3:47.740
zh它也会去优先去找
3:47.740–3:49.980
enagents.override.md
3:49.980–3:50.980
zh如果找不到的话
3:50.980–3:51.860
zh他就会找这个
3:51.860–3:54.380
zh所以说我们在项目里面写agents.md
3:54.380–3:56.980
zh如果又没有配置其他的这个md文件的话
3:56.980–3:58.880
zh他的优先级这个就是最高
3:58.880–4:01.440
zh所以这个就是项目层
4:01.440–4:04.280
zh全局层的话就是比如说啊
4:04.280–4:07.320
zh大家在本地我开发多个项目啊
4:07.320–4:08.740
zh我有python的这个项目
4:08.740–4:09.800
zh有java的项目
4:09.800–4:12.400
zh如果说你需要所有的这个规范啊
4:12.400–4:13.340
zh做一个对齐的话
4:13.340–4:16.480
zh那这里面大家就可以去全局层里面
4:16.480–4:19.040
zh去把这个agents.md做一个定义啊
4:19.040–4:21.800
zh比如说我是作为一个个人开发者
4:21.800–4:24.460
zh然后他的一个规范是怎么样的
4:24.460–4:26.980
zh就是所有的项目都是按这个规范来的
4:26.980–4:28.560
zh按照我个人的一个编码风格来
4:28.560–4:30.200
zh不管你是什么语言的项目
4:30.200–4:31.640
zh都得按我这个风格来
4:31.640–4:33.280
zh这个就比较适合放全局
4:33.280–4:34.920
zh放项目的话
4:34.920–4:37.580
zh就是每个项目的一些特定的一些配置
4:37.580–4:39.340
zh比如说后端项目
4:39.340–4:41.280
zh那后端项目肯定有一些接口啊
4:41.280–4:42.360
zh架构设计啊
4:42.360–4:44.660
zh包括一些数据库脚本啊等等的
4:44.660–4:46.980
zh那如果是你是个前端项目的话啊
4:46.980–4:48.120
zh那比如说有这个
4:48.120–4:49.840
zhnpm 包的一个设置
4:49.840–4:50.140
zh是吧
4:50.140–4:51.500
zh有 package 点 json
4:51.500–4:53.020
zh还有一些这个像
4:53.020–4:54.220
zhvue 的一些库啊
4:54.220–4:55.660
zhreact 的一些库啊
4:55.660–4:55.920
zh是吧
4:55.920–4:59.380
zh这个就是前端的一些这个层级
4:59.380–5:01.340
zh包括一些路由配置啊等等啊
5:01.340–5:02.300
zh那每个项目的话
5:02.300–5:04.440
zh它的规范也不一样啊
5:04.440–5:05.620
zh我们用前端跟后端
5:05.620–5:07.740
zh所以这个项目层里面
5:07.740–5:09.900
zh肯定是要区分这个agents.md的
5:09.900–5:12.100
zh这个就比较适用于放到这一层
5:12.100–5:13.100
zh呃
5:13.100–5:13.760
zh然后的话
5:13.760–5:14.660
zh最后啊
5:14.660–5:16.280
zh如果两个都写了怎么办呢
5:16.280–5:17.160
zh都写的话
5:17.160–5:19.180
zh都是他就是都会去读取
5:19.180–5:23.380
zh然后越靠近当前目录的文件越靠后
5:23.380–5:27.980
zh所以说他会覆盖前面更通用的一些说明
5:27.980–5:30.260
zh他就是按照这么一个层级去做覆盖
5:30.260–5:32.880
zh那空文件的话就会被跳过
5:32.880–5:36.380
zh合并总大小一旦达到他设定的一个上限的话
5:36.380–5:40.000
zh这个Codex就不会加入更多的一些文件了
5:40.000–5:42.620
zh所以说他是有一个上限的
5:42.620–5:44.300
zh当然这个参数也可以去调
5:44.300–5:48.080
zh也就是我们整个文档
5:48.080–5:49.300
zh你也不能放太大了
5:49.300–5:50.920
zh因为这个的话是Codex
5:50.920–5:54.920
zh它工作的时候默认会加载的一个文档
5:54.920–5:57.040
zh如果大家把这个文档做的很大
5:57.040–5:58.300
zh比如说做一兆是吧
5:58.300–5:58.740
zh非常大
5:58.740–6:00.440
zh直接就超过这个上下文了
6:00.440–6:02.760
zh那这个显然是不太合适的
6:02.760–6:04.880
zh就是对于首先成本消耗
6:04.880–6:06.240
zh包括上下文窗口的话
6:06.240–6:07.560
zh一下子可能就超出去了
6:07.560–6:10.840
zh所以agents.md里面要写的内容
6:10.840–6:13.540
zh比如说你是项目层的这个agents.md
6:13.540–6:16.200
zh一定要写跟项目相关的一些
6:16.200–6:18.340
zh比如说这个命令啊
6:18.340–6:18.620
zh是吧
6:18.620–6:20.440
zh然后工程规范啊
6:20.440–6:21.720
zh项目结构啊
6:21.720–6:24.260
zh这是一些非常核心的内容
6:24.260–6:26.140
zh那么我们就写到这个里面
6:26.140–6:28.500
zh基本上大概就是100行左右啊
6:28.500–6:29.200
zh不能太多
6:29.200–6:31.840
zh太多的话就很容易超过这个上下文线
6:31.840–6:34.320
zh所以这个是一个细节点啊
6:34.320–6:37.240
zh那么大家就可以在这个
6:37.240–6:38.640
zh按照上面我们
6:38.640–6:41.560
zh就是确认好的一个这个层级啊
6:41.560–6:43.200
zh你可以在全局层里面啊
6:43.200–6:44.900
zh就在这个里面去加agents.md
6:44.900–6:46.200
zh那我们这里的话
6:46.200–6:48.740
zh主要是带大家在项目里面去讲啊
6:48.740–6:50.420
zh在项目里我们用了最多的方案
6:50.420–6:53.260
zh还是在项目里面去加agents.md
6:53.260–6:56.100
zh所以最外层的这个用户目录下
6:56.100–6:57.220
zh那个agents.md的话
6:57.220–6:58.920
zh我们一般来说不会去改
6:58.920–7:02.380
zh因为我们一般是按项目来去做一个驱动啊
7:02.380–7:03.960
zh这是实际啊
7:03.960–7:04.960
zh实践的这个场景
7:04.960–7:07.460
zh就是在项目里面加agents.md比较多啊
7:07.460–7:09.080
zh当然大家如果确实有需要的话
7:09.080–7:10.540
zh你可以去那个里面改啊
7:10.540–7:13.780
zh那我们改完之后的话
7:13.780–7:14.680
zh就是在这个里面
7:14.680–7:15.820
zh我们会写哪些东西呢
7:15.820–7:18.340
zh比如说你是做一个前端项目
7:18.340–7:20.460
zh那你肯定要去写一些这个
7:20.460–7:22.480
zhNPM的一些命令啊
7:22.480–7:23.440
zh一些描述是吧
7:23.440–7:25.640
zh那整个这个项目
7:25.640–7:28.040
zh他就是去比如说添加一些依赖的时候
7:28.040–7:29.100
zh需要做一个确认
7:29.100–7:33.100
zh那这个就是我们针对前端这种项目啊
7:33.100–7:34.720
zh可以写的一个agents.md
7:34.720–7:36.280
zh但肯定不会这么简单
7:36.280–7:37.920
zh我们还可以可以写很多内容
7:37.920–7:40.540
zh所以说啊
7:40.540–7:41.740
zh这个里面啊
7:41.740–7:44.700
zh就大家首先要搞清楚这么一个场景啊
7:44.700–7:48.560
zh如果说你确实要去写一些全局的这个agents.md的话
7:48.560–7:50.300
zh那你就写到用户目录里面去
7:50.300–7:55.700
zh如果说你只是做一个这个项目的一个场景的话
7:55.700–7:58.851
zh你就放到项目的这个agents.md里面去
7:58.851–8:02.151
zh那么这个agents.md的话
8:02.151–8:04.691
zh它这个里面的话
8:04.691–8:07.311
zh我们可以首先在根目录里面去加
8:07.311–8:08.331
zh然后的话
8:08.331–8:11.091
zh比如说你还需要做这个覆盖
8:11.091–8:11.451
zh是吧
8:11.451–8:12.411
zh你要做覆盖的话
8:12.411–8:14.551
zh你就可以去创建agents.md
8:14.551–8:18.211
zh那它就会去覆盖当前的agents.md
8:18.211–8:20.811
zh那这个就比较适用于
8:20.811–8:24.251
zh那比如说根目录啊
8:24.251–8:26.371
zh我加了这个agents.md了
8:26.371–8:27.191
zh但是呢
8:27.191–8:29.211
zh在某一些模块下啊
8:29.211–8:29.891
zh不同因为我们
8:29.891–8:31.891
zh我们就做项目开发的
8:31.891–8:33.571
zh大家知道是分模块开发的是吧
8:33.571–8:36.151
zh那有的模块它是别的小组
8:36.151–8:38.631
zh那人家别的小组有自己的一套规范
8:38.631–8:41.451
zh他不想说跟着你规范一起调了
8:41.451–8:42.911
zh我们有自己的一套规范
8:42.911–8:44.051
zh所以的话
8:44.051–8:46.571
zh我们可能在某个模块下面
8:46.571–8:48.691
zh加一个agents.md
8:48.691–8:49.711
zh这样的话
8:49.711–8:52.051
zh我们就直接可以去覆盖之前的一个配置
8:52.051–8:56.371
zh所以这个是比较适合于做一些覆盖的场景
8:56.371–8:58.931
zh就相当于每一个团队都有自己的一个特色
8:58.931–9:00.551
zh那并且的话
9:00.551–9:03.471
zh我们也可以在某个模块去启用这个Codex
9:03.471–9:04.911
zh然后去做一个执行
9:04.911–9:05.791
enOK
9:05.791–9:09.091
zh这个就是我们可以在不同的模块下面啊
9:09.091–9:10.631
zh去加这个agents.md
9:10.631–9:11.931
zh好
9:11.931–9:13.511
zh然后的话
9:13.511–9:15.451
zh就是这里面一个逻辑就是Codex
9:15.451–9:17.831
zh首先会去读取全局文件
9:17.831–9:20.071
zh然后再去读取仓库的根目录
9:20.071–9:21.511
zh最后再去读取
9:21.511–9:22.891
zh某个模块
9:22.891–9:24.411
zh比如说像这个支付模块
9:24.411–9:25.691
zh下面的一些覆盖文件
9:25.691–9:26.231
zh是吧
9:26.231–9:28.491
zh那么Codex在搜索的时候
9:28.491–9:31.331
zh会到达这个当前目录的话
9:31.331–9:32.091
zh就会停止
9:32.091–9:34.371
zh所以说尽量应该把覆盖文件
9:34.371–9:35.631
zh靠在专门
9:35.631–9:38.231
zh就是按照规范去做一个存储
9:38.231–9:39.971
zh所以说我们
9:39.971–9:42.231
zh加了这个模块之后
9:42.231–9:43.311
zh你就在这个模块下面
9:43.311–9:45.491
zh直接就放这个MD文件就可以了
9:45.491–9:47.551
zh所以它是相当于
9:47.551–9:49.451
zh我们可以在不同的模块下面
9:49.451–9:51.191
zh就不只是根目录可以放
9:51.191–9:53.171
zh不同的服务下面都可以去放
9:53.171–9:55.111
zh然后并且的话
9:55.111–9:57.471
zh我们还可以去自定义一些备用文件名
9:57.471–10:02.211
zh比如说像仓库里面已经在使用其他名字
10:02.211–10:02.491
zh是吧
10:02.491–10:05.831
zh那你可以把它加入到这个备用列表里面去
10:05.831–10:07.911
zh让Codex把它当作说明
10:07.911–10:09.411
zh什么意思呢
10:09.411–10:10.051
zh就比如说
10:10.051–10:14.131
zh你现在有一个团队的这个手册是吧
10:14.131–10:17.191
zh就是我们所有的项目都按这个手册来操作的
10:17.191–10:20.371
zh那这个就比较适合于布置全局的这么一个
10:20.371–10:22.351
zh叫做config.toml文件
10:22.351–10:23.671
zh这个是Codex
10:23.671–10:28.251
zh它整个应用的一个配置文件
10:28.251–10:30.451
zh这个配置文件下是全局的
10:30.451–10:31.691
zh也就是说你在这个里面
10:31.691–10:32.711
zh加这个规范之后
10:32.711–10:33.831
zh整个团队啊
10:33.831–10:35.851
zh都是按照这个规范去执行
10:35.851–10:37.751
zh所以这个是一个全局的
10:37.751–10:38.591
zh一个配置文件
10:38.591–10:40.331
zh我们可以把它加到这个里面去
10:40.331–10:44.151
zh也就是大家除了这个agents.md以外
10:44.151–10:44.471
zh是吧
10:44.471–10:45.611
zh那你比如说
10:45.611–10:47.451
zh我不想用agents.md这个文件
10:47.451–10:48.611
zh这个名称
10:48.611–10:49.611
zh我想换一个
10:49.611–10:51.171
zh比如说叫teamgather
10:51.171–10:53.751
zh那我就放到这个里面去
10:53.751–10:55.471
zh这个也是OK的
10:55.471–10:59.131
zh所以说整个一个文件命名的话
10:59.131–11:01.091
zh就是大家可以很个性化
11:01.091–11:03.491
zh但只是说你要去做一个配置
11:03.491–11:05.531
zh多花一个配置
11:05.531–11:07.271
zh你如果不想配置的话
11:07.271–11:09.831
zh你就用agents.md会方便很多
11:09.831–11:14.631
zh所以说大家有备用的一些文件需要加载
11:14.631–11:18.011
zh还是说你就用agents.md里面加载
11:18.011–11:19.271
zh它都是支持的
11:19.271–11:20.511
zh它都有这么一个规范
11:20.511–11:24.291
zh然后如果说你不希望使用不同的配置档的话
11:24.291–11:27.591
zh比如说某个项目专用的这个自动化账号
11:27.591–11:30.551
zh可以设置这个codex.home环境变量
11:30.551–11:34.191
zh那这个里面的话就是
11:34.191–11:37.251
zh我们可以单独去做一个search
11:37.251–11:40.031
zh就单独去做一个page
11:40.031–11:45.471
zh某些场景下面我们就用不同的这个codex.home环境变量就可以了
11:45.471–11:48.091
zh这个也可以做不同的这个page
11:48.091–11:50.591
zh然后配置完之后的话
11:50.591–11:52.331
zh我们怎么样去验证呢
11:52.331–11:52.611
zh是吧
11:52.611–11:54.611
zh验证这个到底有没有效果呢
11:54.611–11:57.451
zh那我们可以去看一下
11:57.451–11:59.931
zh比如说我现在就在
11:59.931–12:02.791
zh全局的这个agents.md里面
12:02.791–12:03.911
zh给大家来看一下
12:03.911–12:05.931
zh比如说我们在当前用户
12:05.931–12:08.391
zh这个.codex目录
12:08.391–12:12.031
zh.codex目录
12:12.031–12:14.731
zh.codex目录下面有一个agency.md
12:14.731–12:18.211
zh你看现在我们是什么都没写
12:18.211–12:18.551
zh是吧
12:18.551–12:21.091
zh那我们就比如说可以写一下
12:21.091–12:22.431
zh这是
12:22.431–12:25.931
zh全局的
12:25.931–12:29.151
zh配置文件
12:29.151–12:32.271
zh那就是说比如说
12:32.271–12:41.311
zh我个人的开发规范
12:41.311–12:42.771
zh比如说是采用
12:42.771–12:46.911
enDDD
12:46.911–12:50.471
zh就是这种领域驱动的方式
12:50.471–12:51.251
zh进行
12:51.251–12:53.111
zh编程
12:53.111–12:55.391
zh进行这个
12:55.391–13:06.731
zh功能开发
13:06.731–13:08.551
zh就是我个人的一个规范
13:08.551–13:11.251
zh我们写在这个根目录的这个agents.md里面
13:11.251–13:12.771
zh然后我
13:12.771–13:16.471
zh是现在我就切换到这个Codex目录里面
13:16.471–13:19.671
zh然后我们去这个打开啊
13:19.671–13:21.431
zh这个我一般建议是用
13:21.431–13:23.651
zh终端的管理员的方式打开
13:23.651–13:25.771
zh不然的话他可能会有权限的一些问题
13:25.771–13:27.871
zh然后切换到底盘
13:27.871–13:29.651
zh切换到Codex目录啊
13:29.651–13:32.391
zh然后这里我们就进去啊
13:32.391–13:33.331
zh说这个Codex
13:33.331–13:36.251
zh然后你就随便问他啊
13:36.251–13:37.651
zh就是我们在这个里面加的东西
13:37.651–13:39.211
zh然后你就问
13:39.211–13:43.891
zh我个人的开发规范有哪些啊
13:43.891–13:45.011
zh你就这么来问
13:45.011–13:47.771
zh然后我们看一下它能不能加载啊
13:47.771–13:49.011
zh你看
13:49.011–13:52.111
zh功能开发采用DDD领域驱动啊
13:52.111–13:53.251
zh所以这个就是
13:53.251–13:55.851
zh我们放这个应用层是吧
13:55.851–13:58.251
zh就是所有的项目都会采这个规范啊
13:58.251–14:01.011
zh就不管你是哪个项目的是吧
14:01.011–14:04.071
zh那你都要按照我DDD的这个领域驱动的方式
14:04.071–14:05.311
zh做一些功能开发啊
14:05.311–14:06.471
zh这是我个人一个小习惯
14:06.471–14:08.151
zh然后比如说啊
14:08.151–14:10.151
zh我们现在单独的
14:10.151–14:11.911
zh我们再建一个项目
14:11.911–14:14.391
zh比如说这个里面
14:14.391–14:16.111
zh这个叫什么呢
14:16.111–14:17.991
zh叫做
14:17.991–14:20.811
entest
14:20.811–14:23.811
zh或者怎么叫project
14:23.811–14:25.191
enproject2
14:25.191–14:29.611
zh那我们在这个里面建一个文件
14:29.611–14:35.491
zh叫做agents
14:35.491–14:37.691
enagents.md
14:37.691–14:39.131
zh是吧
14:39.131–14:39.331
zh好
14:39.331–14:42.451
zh然后这个里面啊
14:42.451–14:47.091
zh我们就给他改一下是吧
14:47.091–14:48.691
zh加一些特定的一些规范
14:48.691–14:52.691
zh比如说我们用这个里面的一些规范来定一下啊
14:52.691–14:56.251
zh我就随便找一个吧
14:56.251–14:58.691
zh比如说我就
14:58.691–15:00.691
zh就把这个规范加进去
15:00.691–15:07.531
zh放到这个规范里面去
15:07.531–15:10.911
zh然后
15:10.911–15:12.571
zh就这样
15:12.571–15:15.731
zh然后我们现在切换到那个目录里面去
15:15.731–15:20.291
zhCD到这个project2
15:20.291–15:20.811
zh是吧
15:20.811–15:22.471
zh然后注入codex
15:22.471–15:26.371
zh然后你就问他
15:26.371–15:29.391
zh当前项目
15:29.391–15:32.531
zh开发规范
15:32.531–15:34.251
zh由
15:34.251–15:36.511
zh哪些
15:36.511–15:42.251
zh大家看啊
15:42.251–15:42.491
zh你看
15:42.491–15:45.511
zh这个是我自己的项目规范是吧
15:45.511–15:46.691
zh什么pr
15:46.691–15:49.151
zhpr前先运行npm run
15:49.151–15:49.771
enlint
15:49.771–15:51.251
zh这是我个人的一个习惯
15:51.251–15:54.131
zh然后你看我们刚刚写的那个全局的应用规范
15:54.131–15:55.351
zh是不是也在啊
15:55.351–15:56.991
zh这个优先级非常高啊
15:56.991–15:58.671
zh就是这你不管进哪个项目
15:58.671–16:13.064
zh它都会有这么一个规范
16:13.064–16:16.304
zh这个就是我们实际的规范
16:16.304–16:18.144
zh好
16:18.144–16:21.804
zh这个就是大家可以自己的去写不同的这个规范
16:21.804–16:22.164
zh是吧
16:22.164–16:27.404
zh然后你还可以去创建这个agent.override的这么一个MD文件
16:27.404–16:28.884
zh然后我们来做一个覆盖
16:28.884–16:33.124
zh比如说我们就在这个里面
16:33.124–16:43.384
zh修改行为时
16:43.384–16:47.164
zh试一下把这个给覆盖一下
16:47.164–16:49.404
zh比如说现在是有这么一个
16:49.404–16:53.924
zh修改的时候需要在docs里面记录是吧
16:53.924–16:56.884
zh那我现在比如说我现在想做一个覆盖
16:56.884–17:00.044
zh在override里面再加一个东西
17:00.044–17:01.324
zh把这句话
17:01.324–17:04.764
zh我的copy过来
17:04.764–17:06.764
zh我现在同样的也是call这个
17:06.764–17:07.844
zh然后在这个里面
17:07.844–17:10.604
zh然后我现在把这个覆盖一下
17:10.604–17:13.924
zh在比如说在logs里面
17:13.924–17:16.584
zh在logs里面去记录工具的一个变化
17:16.584–17:17.784
zh记到日志里面去
17:17.784–17:20.444
zh我们看一下它加载策略是什么
17:20.444–17:21.844
zh先退出去
17:21.844–17:23.224
zh然后codex
17:23.224–17:29.044
zh当前项目开发规范有哪些
17:29.044–17:47.164
zh嗯他说这个有编码问题
17:47.164–17:50.864
zh看一下他能不能会帮我们解决这个问题啊
17:50.864–17:53.084
zh你看是不是覆盖了
17:53.084–17:55.924
zh我现在这个优先级更高是吧
17:55.924–17:58.064
zh不管你这里写的是DOC什么的
17:58.064–17:59.124
zh因为我这个下面
17:59.124–18:02.184
zh然后这里写了这个重载了
18:02.184–18:02.504
zh是吧
18:02.504–18:06.364
zh所以他还是会用这个logs去写
18:06.364–18:10.904
zh这个就是叫agents.overload.md
18:10.904–18:12.244
zh他的一个作用
18:12.244–18:16.484
zh就是我们想在同一套规范下面
18:16.484–18:17.544
zh不同团队
18:17.544–18:19.244
zh不同小组
18:19.244–18:22.104
zh要单独写一些自己的小规范
18:22.104–18:23.124
zh要覆盖一些
18:23.124–18:25.704
zh就是在公司的这个规范基础之上
18:25.704–18:28.104
zh或者在大团队的规范基础之上
18:28.104–18:29.704
zh然后再加我们这个
18:29.704–18:31.904
zh小团队的这么一个规范
18:31.904–18:33.004
zh那么啊
18:33.004–18:34.864
zh比如说这个是公司有很多业务线
18:34.864–18:36.204
zh我支付这个线里面
18:36.204–18:37.744
zh我有自己的一些规范
18:37.744–18:42.004
zh这个就比较适合用这个agents.overload.md
18:42.004–18:44.184
zh所以这个大家根据自己的情况
18:44.184–18:46.824
zh去选择不同的这个MD文件啊
18:46.824–18:49.104
zh好
18:49.104–18:51.284
zh这个就是我们效果的一个验证
18:51.284–18:54.364
zh然后包括我们其实也可以去配置一些
18:54.364–18:56.884
zh这个团队的一些文档啊
18:56.884–18:58.424
zh这个就根据实际需求去了
18:58.424–18:59.824
zh调整了啊
18:59.824–19:02.004
zh基本上我们用在根目录里面
19:02.004–19:03.244
zh配这两个的话
19:03.244–19:04.424
zh基本上够用啊
19:04.424–19:05.384
zh就这两个场景
19:05.384–19:08.004
zh基本上按项目去配差不多了
19:08.004–19:10.724
zh除非你确实有公司的这个
19:10.724–19:12.564
zh级别的一些规范是吧
19:12.564–19:14.264
zh那你可以加到这个里面去啊
19:14.264–19:17.544
zh这个就是他的一个层级啊
19:17.544–19:19.064
zh大家首先要搞清楚这个点
19:19.064–19:21.944
zh呃
19:21.944–19:22.724
zh然后验证的话
19:22.724–19:24.404
zh我们刚刚其实也带大家去验证了
19:24.404–19:26.864
zh当然你也可以去执行一些命令啊
19:26.864–19:29.304
zh然后去看一下它到底有没有覆盖啊
19:29.304–19:30.324
zh这个都是OK的
19:30.324–19:35.404
zh那比如说我们经常可能会出现的一个问题是什么呢
19:35.404–19:37.464
zh就是大家可以去排查啊
19:37.464–19:38.904
zh就是哎
19:38.904–19:42.284
zh有时候会发现它这个到底有没有加载是吧
19:42.284–19:44.624
zh这个文件里面有没有一些
19:44.624–19:47.024
zh就什么都没加载啊
19:47.024–19:48.384
zh就看一下到底什么问题
19:48.384–19:50.024
zh大家可以执行这个Codex
19:50.024–19:51.364
zhStatus啊
19:51.364–19:52.204
zh去分析一下
19:52.204–19:54.064
zh比如说我们在这个里面先退出去
19:54.064–19:56.144
zh执行Codex status
19:56.144–20:00.544
zh那它这个里面的话就会进入了
20:00.544–20:02.404
zh去分析它的一个status
20:02.404–20:03.864
zh然后我们在这个里面
20:03.864–20:07.904
zh它可以去分析整个工作区的一个状态
20:07.904–20:10.124
zh就是比如说它没有加载
20:10.124–20:11.684
zh那你可以去检查一下
20:11.684–20:14.984
zh看一下这个里面到底有没有问题
20:14.984–20:15.324
zh是吧
20:15.324–20:16.584
zh你看它这里分析出来
20:16.584–20:19.164
zh就是它不是一个Git仓库啊
20:19.164–20:23.204
zh所以他在分析有一些这个信息的时候
20:23.204–20:24.624
zh他可能就会少一些内容
20:24.624–20:27.684
zh所以他可以得出来
20:27.684–20:29.904
zh这个到底有没有是不是空目录是吧
20:29.904–20:30.924
zh是不是空仓库
20:30.924–20:32.144
zh他可以给你分析出来
20:32.144–20:34.944
zh然后的话大家会发现啊
20:34.944–20:37.304
zh就是你有时候那个配置啊
20:37.304–20:38.464
zh就是你写了
20:38.464–20:39.344
zh但是他没有生效
20:39.344–20:41.344
zh这时候大家就要去检查一下
20:41.344–20:45.084
zh我的上级到底有没有这个啊
20:45.084–20:48.044
zh更高层级的一些目录是吧
20:48.044–20:49.364
zh有一些MD文件
20:49.364–20:50.844
zh是不是也给它覆盖掉了
20:50.844–20:52.164
zh那这个里面的话
20:52.164–20:55.424
zh就是我们要去检查一下
20:55.424–20:56.444
zh就是你会发现
20:56.444–20:57.284
zh你加了一个配置之后
20:57.284–20:57.884
zh它没有生效
20:57.884–20:59.244
zh但是的话
20:59.244–21:00.604
zh你的配置加上去了
21:00.604–21:01.104
zh没问题
21:01.104–21:02.644
zh但是你一执行
21:02.644–21:03.724
zh就发现这没生效
21:03.724–21:04.484
zh那你就可以看一下
21:04.484–21:06.084
zh上级有没有更高的一些
21:06.084–21:08.944
zh这个规范
21:08.944–21:10.444
zh是不是把它给覆盖掉了
21:10.444–21:11.884
zh这个大家可以去检查一下
21:11.884–21:13.584
zh就我刚刚提到那几个层级
21:13.584–21:14.464
zh一个是全局的
21:14.464–21:16.404
zh还有一个是用户级别的
21:16.404–21:17.804
zh用户级别就是项目级别的
21:17.804–21:19.344
zh项目级别的你要看是
21:19.344–21:22.324
zh有没有agents.overall.md文件啊
21:22.324–21:25.184
zh所以这个要特别的去检查一下
21:25.184–21:27.164
zh然后包括一些这个
21:27.164–21:29.124
zh你加了一些备用文件名了
21:29.124–21:30.724
zh你会发现他也没有加载
21:30.724–21:32.144
zh那你就要检查一下
21:32.144–21:34.164
zh哎路径对不对啊是吧
21:34.164–21:37.504
zh然后这个配置有没有生效啊
21:37.504–21:39.264
zh其实大家遇到这个问题之后啊
21:39.264–21:41.104
zh如果说你确实排查不出来的话
21:41.104–21:43.664
zh你可以把你的一个配置丢给codex
21:43.664–21:44.984
zh让他自己去分析
21:44.984–21:46.524
zh排查到底是哪里出错了
21:46.524–21:48.704
zh它的分析能力很强的
21:48.704–21:50.224
zh它一看可能你就知道
21:50.224–21:52.124
zh你这个确实哪里参数拼的有问题
21:52.124–21:53.564
zh比如说路径写的有问题
21:53.564–21:53.944
zh是吧
21:53.944–21:55.704
zh或者一些其他的参数写的有问题
21:55.704–21:57.424
zh它马上就可以给你分析出来
21:57.424–21:59.144
zh这个里面的话
21:59.144–22:02.304
zh我们可以利用Codex这个分析能力
22:02.304–22:03.404
zh帮我们去做很多事情
22:03.404–22:06.804
zh然后包括一些指令被截断了
22:06.804–22:07.784
zh也就是说大家
22:07.784–22:09.444
zh你写了一堆东西是吧
22:09.444–22:10.204
zh写了很多
22:10.204–22:11.944
zh写了几百行几千行
22:11.944–22:13.584
zh你发现最后执行的话
22:13.584–22:15.144
zh可能就识别到了几百行
22:15.144–22:18.004
zh那这个的话就大家要把这个
22:18.004–22:19.224
zh有一个参数啊
22:19.224–22:20.524
zh叫 project bookmarks
22:20.524–22:23.984
zh但是这个参数不是越大越好啊
22:23.984–22:25.044
zh你改的越大的话
22:25.044–22:27.924
zh对于token的这个成本消耗也是比较大的
22:27.924–22:30.424
zh就相当于我们对话都没开始呢
22:30.424–22:32.044
zh一开始就给你加了一堆内容去了
22:32.044–22:33.144
zh下到上下往里面去了
22:33.144–22:36.284
zh这样就会导致我们整个每次对话的时候
22:36.284–22:38.384
zh成本就会上升
22:38.384–22:42.524
zh所以 agents.md 里面绝对不是内容越多越好啊
22:42.524–22:44.524
zh而是越精简越好
22:44.524–22:46.124
zh越核心越好
22:46.124–22:46.804
zh这样的话
22:46.804–22:48.384
zh因为它的目标
22:48.384–22:50.084
zh它就是去用来定规范的
22:50.084–22:51.104
zh你不要把一些
22:51.104–22:52.384
zh无关紧要的内容
22:52.384–22:53.804
zh写到agents.md里面去
22:53.804–22:55.164
zh这样反而可能会
22:55.164–22:58.404
zh导致这个上下文超长
22:58.404–22:58.704
zh是吧
22:58.704–23:00.744
zh或者是它出现截断的这个问题
23:00.744–23:02.244
zh就明明你写这个指令
23:02.244–23:03.544
zh你发现它就是没有执行
23:03.544–23:05.044
zh那是因为它被截断了
23:05.044–23:05.844
zh都没加载进来
23:05.844–23:07.044
zh肯定就没法执行
23:07.044–23:09.884
zh然后包括这个配置
23:09.884–23:10.364
zh是吧
23:10.364–23:10.744
zh配置档
23:10.744–23:11.964
zh就是我们当前
23:11.964–23:13.404
zh大家会发现
23:13.404–23:15.704
zh就是你我们已经在这个当前的
23:15.704–23:16.924
zh用户目录下
23:16.924–23:20.244
zh这个.codex目录里面改了这个agents.md了
23:20.244–23:22.084
zh你发现他就是不生效
23:22.084–23:23.864
zh那这时候你可以去看一下
23:23.864–23:25.604
zh当前你有没有设置过环境变量
23:25.604–23:28.164
zh把codex这个目录是吧
23:28.164–23:29.984
zh你给他设置到其他地方去了
23:29.984–23:33.064
zh所以导致他整个逻辑的方法
23:33.064–23:34.144
zh就是没有被执行到
23:34.144–23:36.324
zh这个也是大家需要去确认的
23:36.324–23:39.564
zh我们要把整个逻辑给他去确认一下
23:39.564–23:42.684
zh所以这个里面是一个非常关键的点
23:42.684–23:44.604
zh就是你这些目录你最基本的
23:44.604–23:46.084
zh你要做一个确认
23:46.084–23:46.844
zh是吧
23:46.844–23:49.224
zh那这样就不会出现一些
23:49.224–23:50.524
zh细节的一些问题
23:50.524–23:54.364
zh然后是agents.md到底应该怎么来写呢
23:54.364–23:54.964
zh是吧
23:54.964–23:57.104
zh那大家可以写哪些内容呢
23:57.104–24:14.039
zh我这里给他看一个例子
24:14.039–24:14.999
zh前端项目啊
24:14.999–24:16.799
zh你看前端项目就是这套规范
24:16.799–24:18.739
zh大家如果不知道怎么去写的话
24:18.739–24:19.879
zh其实很简单啊
24:19.879–24:21.439
zh很简单怎么来干呢
24:21.439–24:23.039
zh你可以打开这个codex啊
24:23.039–24:27.499
zh我这个是一个这个插件版的codex啊
24:27.499–24:30.279
zh你就直接这么跟他说啊
24:30.279–24:36.079
zh请帮我分析一下当前项目结构
24:36.079–24:43.439
zh然后输出一份agents.md
24:43.439–24:49.439
zh当前项目结构和代码规范
24:49.439–24:51.839
zh然后输出一份agents.md就完了
24:51.839–24:52.879
zh就很简单啊
24:52.879–24:56.539
zh就大家你直接让AI来帮你分析输出一份
24:56.539–24:58.139
zh然后看他怎么写的
24:58.139–25:01.939
zh然后你再去参考再去调整是吧
25:01.939–25:04.339
zh这也是一种学习方式啊
25:04.339–25:07.339
zh就让AI他肯定比你写的好啊
25:07.339–25:08.639
zh写的更加的完善
25:08.639–25:10.339
zh所以你看他怎么写就完事了
25:10.339–25:13.699
zh但是我这里面已经有了
25:13.699–25:14.899
zh我就不重新生成了
25:14.899–25:16.479
zh我只是给大家讲一下这个方法
25:16.479–25:17.939
zh因为生成这个东西的话
25:17.939–25:19.379
zh他也要去做各种分析
25:19.379–25:21.279
zh也比较时间比较久
25:21.279–25:23.539
zh所以这个大家可以自己去生成
25:23.539–25:25.819
zh我这个就是用AI生成的
25:25.819–25:28.699
zh你看他这个里面就帮我分析出来了
25:28.699–25:30.759
zh我这个用了这个Codex
25:30.759–25:32.419
zhHarness Engineering的一些
25:32.419–25:34.059
zh这个实现是吧
25:34.059–25:35.739
zh然后我的项目结构
25:35.739–25:36.479
zh有POM
25:36.479–25:37.759
zh有Admin模块
25:37.759–25:38.779
zh有Framework
25:38.779–25:39.819
zh有System
25:39.819–25:40.959
zh有UI
25:40.959–25:42.259
zh这个UI是个前端项目
25:42.259–25:43.859
zh然后它的一个工程规范
25:43.859–25:45.959
zh就是一些插件包
25:45.959–25:46.419
zh是吧
25:46.419–25:47.819
zh然后还有一些白名单
25:47.819–25:50.779
zh等等的一些细节是怎么样的
25:50.779–25:53.239
zh包括我们这个 Harness Engineer
25:53.239–25:55.359
zh它的一个工作流应该是怎么样的
25:55.359–25:56.559
zh这个就是我之前
25:56.559–25:59.239
zh落地的一套Harness Engineer
25:59.239–26:02.699
zh包括它的一些核心的后端命令
26:02.699–26:03.799
zh这个打包的是吧
26:03.799–26:04.459
zh编译的
26:04.459–26:06.019
zh这都是非常核心的一个命令
26:06.019–26:07.919
zh然后数据库与配置
26:07.919–26:09.819
zh质量门槛
26:09.819–26:12.859
zh就是这个就是做一些执行啊
26:12.859–26:14.739
zh要去确认的一些点
26:14.739–26:16.759
zh这个是后端的
26:16.759–26:18.799
zh那前端的话其实也是一样的
26:18.799–26:20.799
zh前端他特殊的规范的话
26:20.799–26:22.959
zh就是无非也就是结构啊
26:22.959–26:23.239
zh是吧
26:23.239–26:24.459
zh比如技术栈是什么
26:24.459–26:25.919
zh是 Vue 还是 React
26:25.919–26:27.999
zh然后一些啊
26:27.999–26:29.139
zh包是吧
26:29.139–26:30.019
zh一些文件夹
26:30.019–26:31.539
zh他应该放什么组件
26:31.539–26:33.199
zh他的编码规范啊
26:33.199–26:33.599
zh是什么
26:33.599–26:35.779
zh然后JavaScript的
26:35.779–26:37.799
zh他的编码风格应该是什么样的
26:37.799–26:39.439
zh包括一些前端命令
26:39.439–26:40.599
zhNPM 的一些命令
26:40.599–26:42.219
zh包括 Lint 的一些约束
26:42.219–26:44.519
zh这个就是前端
26:44.519–26:48.399
zh这个agents.md需要关注一点
26:48.399–26:50.859
zh所以大家你说怎么写呢
26:50.859–26:52.219
zh如果你也不知道怎么去写
26:52.219–26:52.719
zh很简单
26:52.719–26:54.099
zh你就让 AI 帮你去生成
26:54.099–26:55.559
zh让他去分析
26:55.559–26:57.599
zh大家一定要加这个分析这两个字
26:57.599–26:58.559
zh就是你不要说
26:58.559–27:00.519
zh你就直接帮我写一份agents.md
27:00.519–27:01.839
zh但是你没有提到
27:01.839–27:03.519
zh让他分析当前项目
27:03.519–27:05.799
zh但他还是会分析当前项目的
27:05.799–27:08.119
zh所以你最好写清楚一点
27:08.119–27:10.999
zh就分析当前项目结构跟代码规范
27:10.999–27:12.039
zh这样的话
27:12.039–27:15.099
zh他肯定会把那些目录给他扫一遍
27:15.099–27:15.419
zh是吧
27:15.419–27:17.399
zh所以这个就是一个
27:17.399–27:20.179
zh使用习惯的这个提示词
27:20.179–27:21.739
zh大家可以做一些优化
27:21.739–27:23.319
zh所以
27:23.319–27:25.759
zhagents.md里面大家就可以看到
27:25.759–27:27.519
zh你看基本上是100行以内
27:27.519–27:28.359
zh是吧
27:28.359–27:30.779
zh并且的话写的都是一些关键内容
27:30.779–27:33.039
zh就是一些非常核心的模块
27:33.039–27:34.259
zh命令啊
27:34.259–27:37.559
zh然后配置啊等等的是吧
27:37.559–27:38.639
zh包括结构
27:38.639–27:40.199
zh但是非常核心的内容
27:40.199–27:41.819
zh就大家后段项目
27:41.819–27:43.839
zh你就可以参考这个去做啊
27:43.839–27:44.459
zh就这个规范
27:44.459–27:45.279
zh你可以参考一下
27:45.279–27:46.559
zh如果是前端的话
27:46.559–27:48.839
zh你也可以去看一下啊
27:48.839–27:51.779
zh包括其实我们之前啊
27:51.779–27:54.359
zh这里写了一个小游戏是吧
27:54.359–27:57.619
zh这个是我之前写的一个小游戏的这么一个
27:57.619–28:00.019
zhagents.md是吧
28:00.019–28:00.799
zh就是让他分析
28:00.799–28:02.659
zh我这个里面用python写的啊
28:02.659–28:04.119
zh你看这个就是python的一套
28:04.119–28:06.319
zhagent.md的描述是吧
28:06.319–28:09.299
zh所以怎么来写啊
28:09.299–28:10.799
zh规范是怎么样的
28:10.799–28:12.779
zh这里我也给大家说一下技巧
28:12.779–28:13.939
zh首先啊
28:13.939–28:14.739
zh大家不知道怎么写
28:14.739–28:17.039
zh你可以参考一下我这个规范是吧
28:17.039–28:18.799
zh我这个的话也是用Codex分析
28:18.799–28:19.419
zh让它写出来
28:19.419–28:22.559
zh然后大家也可以自己用Codex去分析出来
28:22.559–28:24.119
zh然后在此基础之上啊
28:24.119–28:25.639
zh这个是可以改的啊
28:25.639–28:26.719
zh就比如说AI
28:26.719–28:29.279
zh它有可能也没有分析出来啊
28:29.279–28:32.699
zh这个真实的一个情况啊
28:32.699–28:34.199
zh它有可能是分析错了
28:34.199–28:35.599
zh所以这个就需要我们
28:35.599–28:37.659
zh作为开发人员你要去纠正嘛
28:37.659–28:40.939
zh就是AI他也不能百分百说就没有问题了
28:40.939–28:44.559
zh所以这里面大家需要自己去看一下啊
28:44.559–28:46.119
zh就是有问题你就调一下
28:46.119–28:50.079
zh因为有一些规范的话
28:50.079–28:51.479
zhAI他分析出来的话
28:51.479–28:53.859
zh他的描述会有点怪怪的啊
28:53.859–28:57.839
zh就是没有我们自己作为开发人员那种理解能力啊
28:57.839–29:00.179
zh就是他可能还不够强啊
29:00.179–29:02.219
zh当然基本上啊
29:02.219–29:03.379
zh这个很准啊
29:03.379–29:04.099
zh大家可以去试一下
29:04.099–29:05.079
zh看你用什么模型
29:05.079–29:06.379
zh比如说你用 Claude 的模型
29:06.379–29:07.959
zh或者用Codex 5.3
29:07.959–29:08.819
zh它的效果很好
29:08.819–29:10.279
zh但是你用其他模型的话
29:10.279–29:11.719
zh这个就不敢保证了
29:11.719–29:13.879
zh所以这个回头大家可以去试一下
0:00.000–0:07.140
接下来我们来讲一下Codex AGENTS.md配置与架构设计。
0:07.140–0:18.080
那这个AGENTS.md的话其实是Codex在这个规范化编程这一块做的一些整个架构的一个设计。
0:18.080–0:29.380
它系统这个里面定义了一个规范,我们可以在这个AGENTS.md里面可以把项目的一些实际的一些开发规范,包括我们整个项目的一些结构,
0:29.380–0:31.160
放到这个文件里面
0:31.160–0:33.640
那么在Codex加载的时候
0:33.640–0:36.140
我们去分析整个项目结构的时候
0:36.140–0:40.740
他会优先去读取这个agents.md文件
0:40.740–0:41.700
这样的话
0:41.700–0:46.040
他就相当于了解了我们项目的全局的一些
0:46.040–0:47.380
这个大致的一些情况
0:47.380–0:51.440
所以说这个agents.md的话
0:51.440–0:54.440
其实就是作为一个规范
0:54.440–0:56.320
这个驱动开发的一种方式
0:56.320–0:59.020
通过整个全局的一个说明
0:59.020–1:01.760
包括我们整个目录层级
1:01.760–1:05.140
它的一些关键的一些文件在哪里
1:05.140–1:06.280
比如说像一些文档
1:06.280–1:08.280
我们整个项目的一个架构文档
1:08.280–1:09.900
设计文档 API文档
1:09.900–1:12.740
通过这个agents.md文件
1:12.740–1:16.480
把我们相当于这个代码地图描述了非常清楚
1:16.480–1:19.980
那这个AI就可以快速了解到
1:19.980–1:22.440
我们项目里面的一些重点信息
1:22.440–1:23.340
这样的话
1:23.340–1:25.580
那你让它去生成代码的时候
1:25.580–1:27.500
相当于它已经把你整个项目
1:27.500–1:29.180
大致做了一个了解了
1:29.180–1:31.100
这样他去找文件的时候
1:31.100–1:32.780
他的一个效率就会非常高
1:32.780–1:33.800
速度也非常快
1:33.800–1:37.900
那么Codex他是如何发现
1:37.900–1:39.720
这些个文件的呢
1:39.720–1:40.820
首先的话
1:40.820–1:42.640
他会启动的时候
1:42.640–1:44.820
他会整理出一条本次运行
1:44.820–1:46.340
需要使用的一个指令链
1:46.340–1:50.060
那么他首先会做一个检查
1:50.060–1:51.340
他这个检查的话
1:51.340–1:53.340
是有一个顺序层级的
1:53.340–1:55.820
首先第一层的话叫做全局层
1:55.820–1:57.580
那这个的话
1:57.580–2:00.060
就是在我们的这个Codex主目录里面
2:00.060–2:02.060
有个叫.codex目录
2:02.060–2:04.560
就是在当前登录用户的这个目录里面
2:04.560–2:06.820
有一个叫点Codex的一个目录
2:06.820–2:09.500
当然我们也可以在环境变量里面
2:09.500–2:12.060
去指定这个Codex Home
2:12.060–2:15.300
通过这个环境变量去指定指定的一个目录
2:15.300–2:17.580
那我们指定之后的话
2:17.580–2:19.240
Codex在运行的时候
2:19.240–2:22.180
它就会把它的一些文件
2:22.180–2:24.560
就是系统的一些文件
2:24.560–2:26.660
默认的会去存放到这个目录里面去
2:26.660–2:28.440
如果大家没有设定的话
2:28.440–2:31.180
它就是在当前登录用户的这个
2:31.180–2:33.540
一个目录下面
2:33.540–2:35.580
有一个叫.codex这么一个目录
2:35.580–2:38.180
那么在这个目录下面的话
2:38.180–2:40.460
我们可以去指定一个叫
2:40.460–2:43.000
agents.override.md
2:43.000–2:44.480
那么这个的话
2:44.480–2:48.100
就是一个全局的一个agents.md
2:48.100–2:50.120
那么在这个里面的话
2:50.120–2:52.160
我们写的内容
2:52.160–2:53.620
它会优先去读取
2:53.620–2:55.080
要是没有的话
2:55.080–2:58.460
他再会去读取这个agents.md文件
2:58.460–3:01.380
所以说他这个里面就是一个规范啊
3:01.380–3:04.020
首先从最外层去开始去找找这个文件
3:04.020–3:06.080
如果能找到的话就优先使用它
3:06.080–3:09.900
找不到的话再往下一层级去找agents.md
3:09.900–3:13.080
好然后第二个层级叫项目级
3:13.080–3:14.260
比如说啊
3:14.260–3:16.080
我们这个项目里面
3:16.080–3:19.920
我们在项目里面也可以去写这个agents.md
3:19.920–3:21.820
比如说我们整个项目啊
3:21.820–3:23.720
它是什么一个结构
3:23.720–3:25.040
规范是怎么样的
3:25.040–3:26.780
包括它的一些构建命令
3:26.780–3:28.020
有哪些数据库配置
3:28.020–3:29.040
有哪些等等的
3:29.040–3:29.860
这些个内容
3:29.860–3:30.820
我们都可以写到
3:30.820–3:32.100
agents.md里面去
3:32.100–3:33.620
然后的话就是
3:33.620–3:35.480
我们如果在项目层
3:35.480–3:36.900
写了agents.md
3:36.900–3:37.920
但是呢
3:37.920–3:39.200
全局层又没有写的话
3:39.200–3:40.880
它会优先使用
3:40.880–3:42.920
项目层里面的agents.md
3:42.920–3:45.560
去做一个读取
3:45.560–3:46.360
那这里面
3:46.360–3:47.740
它也会去优先去找
3:47.740–3:49.980
agents.override.md
3:49.980–3:50.980
如果找不到的话
3:50.980–3:51.860
他就会找这个
3:51.860–3:54.380
所以说我们在项目里面写agents.md
3:54.380–3:56.980
如果又没有配置其他的这个md文件的话
3:56.980–3:58.880
他的优先级这个就是最高
3:58.880–4:01.440
所以这个就是项目层
4:01.440–4:04.280
全局层的话就是比如说啊
4:04.280–4:07.320
大家在本地我开发多个项目啊
4:07.320–4:08.740
我有python的这个项目
4:08.740–4:09.800
有java的项目
4:09.800–4:12.400
如果说你需要所有的这个规范啊
4:12.400–4:13.340
做一个对齐的话
4:13.340–4:16.480
那这里面大家就可以去全局层里面
4:16.480–4:19.040
去把这个agents.md做一个定义啊
4:19.040–4:21.800
比如说我是作为一个个人开发者
4:21.800–4:24.460
然后他的一个规范是怎么样的
4:24.460–4:26.980
就是所有的项目都是按这个规范来的
4:26.980–4:28.560
按照我个人的一个编码风格来
4:28.560–4:30.200
不管你是什么语言的项目
4:30.200–4:31.640
都得按我这个风格来
4:31.640–4:33.280
这个就比较适合放全局
4:33.280–4:34.920
放项目的话
4:34.920–4:37.580
就是每个项目的一些特定的一些配置
4:37.580–4:39.340
比如说后端项目
4:39.340–4:41.280
那后端项目肯定有一些接口啊
4:41.280–4:42.360
架构设计啊
4:42.360–4:44.660
包括一些数据库脚本啊等等的
4:44.660–4:46.980
那如果是你是个前端项目的话啊
4:46.980–4:48.120
那比如说有这个
4:48.120–4:49.840
npm 包的一个设置
4:49.840–4:50.140
是吧
4:50.140–4:51.500
有 package 点 json
4:51.500–4:53.020
还有一些这个像
4:53.020–4:54.220
vue 的一些库啊
4:54.220–4:55.660
react 的一些库啊
4:55.660–4:55.920
是吧
4:55.920–4:59.380
这个就是前端的一些这个层级
4:59.380–5:01.340
包括一些路由配置啊等等啊
5:01.340–5:02.300
那每个项目的话
5:02.300–5:04.440
它的规范也不一样啊
5:04.440–5:05.620
我们用前端跟后端
5:05.620–5:07.740
所以这个项目层里面
5:07.740–5:09.900
肯定是要区分这个agents.md的
5:09.900–5:12.100
这个就比较适用于放到这一层
5:12.100–5:13.100
呃
5:13.100–5:13.760
然后的话
5:13.760–5:14.660
最后啊
5:14.660–5:16.280
如果两个都写了怎么办呢
5:16.280–5:17.160
都写的话
5:17.160–5:19.180
都是他就是都会去读取
5:19.180–5:23.380
然后越靠近当前目录的文件越靠后
5:23.380–5:27.980
所以说他会覆盖前面更通用的一些说明
5:27.980–5:30.260
他就是按照这么一个层级去做覆盖
5:30.260–5:32.880
那空文件的话就会被跳过
5:32.880–5:36.380
合并总大小一旦达到他设定的一个上限的话
5:36.380–5:40.000
这个Codex就不会加入更多的一些文件了
5:40.000–5:42.620
所以说他是有一个上限的
5:42.620–5:44.300
当然这个参数也可以去调
5:44.300–5:48.080
也就是我们整个文档
5:48.080–5:49.300
你也不能放太大了
5:49.300–5:50.920
因为这个的话是Codex
5:50.920–5:54.920
它工作的时候默认会加载的一个文档
5:54.920–5:57.040
如果大家把这个文档做的很大
5:57.040–5:58.300
比如说做一兆是吧
5:58.300–5:58.740
非常大
5:58.740–6:00.440
直接就超过这个上下文了
6:00.440–6:02.760
那这个显然是不太合适的
6:02.760–6:04.880
就是对于首先成本消耗
6:04.880–6:06.240
包括上下文窗口的话
6:06.240–6:07.560
一下子可能就超出去了
6:07.560–6:10.840
所以agents.md里面要写的内容
6:10.840–6:13.540
比如说你是项目层的这个agents.md
6:13.540–6:16.200
一定要写跟项目相关的一些
6:16.200–6:18.340
比如说这个命令啊
6:18.340–6:18.620
是吧
6:18.620–6:20.440
然后工程规范啊
6:20.440–6:21.720
项目结构啊
6:21.720–6:24.260
这是一些非常核心的内容
6:24.260–6:26.140
那么我们就写到这个里面
6:26.140–6:28.500
基本上大概就是100行左右啊
6:28.500–6:29.200
不能太多
6:29.200–6:31.840
太多的话就很容易超过这个上下文线
6:31.840–6:34.320
所以这个是一个细节点啊
6:34.320–6:37.240
那么大家就可以在这个
6:37.240–6:38.640
按照上面我们
6:38.640–6:41.560
就是确认好的一个这个层级啊
6:41.560–6:43.200
你可以在全局层里面啊
6:43.200–6:44.900
就在这个里面去加agents.md
6:44.900–6:46.200
那我们这里的话
6:46.200–6:48.740
主要是带大家在项目里面去讲啊
6:48.740–6:50.420
在项目里我们用了最多的方案
6:50.420–6:53.260
还是在项目里面去加agents.md
6:53.260–6:56.100
所以最外层的这个用户目录下
6:56.100–6:57.220
那个agents.md的话
6:57.220–6:58.920
我们一般来说不会去改
6:58.920–7:02.380
因为我们一般是按项目来去做一个驱动啊
7:02.380–7:03.960
这是实际啊
7:03.960–7:04.960
实践的这个场景
7:04.960–7:07.460
就是在项目里面加agents.md比较多啊
7:07.460–7:09.080
当然大家如果确实有需要的话
7:09.080–7:10.540
你可以去那个里面改啊
7:10.540–7:13.780
那我们改完之后的话
7:13.780–7:14.680
就是在这个里面
7:14.680–7:15.820
我们会写哪些东西呢
7:15.820–7:18.340
比如说你是做一个前端项目
7:18.340–7:20.460
那你肯定要去写一些这个
7:20.460–7:22.480
NPM的一些命令啊
7:22.480–7:23.440
一些描述是吧
7:23.440–7:25.640
那整个这个项目
7:25.640–7:28.040
他就是去比如说添加一些依赖的时候
7:28.040–7:29.100
需要做一个确认
7:29.100–7:33.100
那这个就是我们针对前端这种项目啊
7:33.100–7:34.720
可以写的一个agents.md
7:34.720–7:36.280
但肯定不会这么简单
7:36.280–7:37.920
我们还可以可以写很多内容
7:37.920–7:40.540
所以说啊
7:40.540–7:41.740
这个里面啊
7:41.740–7:44.700
就大家首先要搞清楚这么一个场景啊
7:44.700–7:48.560
如果说你确实要去写一些全局的这个agents.md的话
7:48.560–7:50.300
那你就写到用户目录里面去
7:50.300–7:55.700
如果说你只是做一个这个项目的一个场景的话
7:55.700–7:58.851
你就放到项目的这个agents.md里面去
7:58.851–8:02.151
那么这个agents.md的话
8:02.151–8:04.691
它这个里面的话
8:04.691–8:07.311
我们可以首先在根目录里面去加
8:07.311–8:08.331
然后的话
8:08.331–8:11.091
比如说你还需要做这个覆盖
8:11.091–8:11.451
是吧
8:11.451–8:12.411
你要做覆盖的话
8:12.411–8:14.551
你就可以去创建agents.md
8:14.551–8:18.211
那它就会去覆盖当前的agents.md
8:18.211–8:20.811
那这个就比较适用于
8:20.811–8:24.251
那比如说根目录啊
8:24.251–8:26.371
我加了这个agents.md了
8:26.371–8:27.191
但是呢
8:27.191–8:29.211
在某一些模块下啊
8:29.211–8:29.891
不同因为我们
8:29.891–8:31.891
我们就做项目开发的
8:31.891–8:33.571
大家知道是分模块开发的是吧
8:33.571–8:36.151
那有的模块它是别的小组
8:36.151–8:38.631
那人家别的小组有自己的一套规范
8:38.631–8:41.451
他不想说跟着你规范一起调了
8:41.451–8:42.911
我们有自己的一套规范
8:42.911–8:44.051
所以的话
8:44.051–8:46.571
我们可能在某个模块下面
8:46.571–8:48.691
加一个agents.md
8:48.691–8:49.711
这样的话
8:49.711–8:52.051
我们就直接可以去覆盖之前的一个配置
8:52.051–8:56.371
所以这个是比较适合于做一些覆盖的场景
8:56.371–8:58.931
就相当于每一个团队都有自己的一个特色
8:58.931–9:00.551
那并且的话
9:00.551–9:03.471
我们也可以在某个模块去启用这个Codex
9:03.471–9:04.911
然后去做一个执行
9:04.911–9:05.791
OK
9:05.791–9:09.091
这个就是我们可以在不同的模块下面啊
9:09.091–9:10.631
去加这个agents.md
9:10.631–9:11.931
好
9:11.931–9:13.511
然后的话
9:13.511–9:15.451
就是这里面一个逻辑就是Codex
9:15.451–9:17.831
首先会去读取全局文件
9:17.831–9:20.071
然后再去读取仓库的根目录
9:20.071–9:21.511
最后再去读取
9:21.511–9:22.891
某个模块
9:22.891–9:24.411
比如说像这个支付模块
9:24.411–9:25.691
下面的一些覆盖文件
9:25.691–9:26.231
是吧
9:26.231–9:28.491
那么Codex在搜索的时候
9:28.491–9:31.331
会到达这个当前目录的话
9:31.331–9:32.091
就会停止
9:32.091–9:34.371
所以说尽量应该把覆盖文件
9:34.371–9:35.631
靠在专门
9:35.631–9:38.231
就是按照规范去做一个存储
9:38.231–9:39.971
所以说我们
9:39.971–9:42.231
加了这个模块之后
9:42.231–9:43.311
你就在这个模块下面
9:43.311–9:45.491
直接就放这个MD文件就可以了
9:45.491–9:47.551
所以它是相当于
9:47.551–9:49.451
我们可以在不同的模块下面
9:49.451–9:51.191
就不只是根目录可以放
9:51.191–9:53.171
不同的服务下面都可以去放
9:53.171–9:55.111
然后并且的话
9:55.111–9:57.471
我们还可以去自定义一些备用文件名
9:57.471–10:02.211
比如说像仓库里面已经在使用其他名字
10:02.211–10:02.491
是吧
10:02.491–10:05.831
那你可以把它加入到这个备用列表里面去
10:05.831–10:07.911
让Codex把它当作说明
10:07.911–10:09.411
什么意思呢
10:09.411–10:10.051
就比如说
10:10.051–10:14.131
你现在有一个团队的这个手册是吧
10:14.131–10:17.191
就是我们所有的项目都按这个手册来操作的
10:17.191–10:20.371
那这个就比较适合于布置全局的这么一个
10:20.371–10:22.351
叫做config.toml文件
10:22.351–10:23.671
这个是Codex
10:23.671–10:28.251
它整个应用的一个配置文件
10:28.251–10:30.451
这个配置文件下是全局的
10:30.451–10:31.691
也就是说你在这个里面
10:31.691–10:32.711
加这个规范之后
10:32.711–10:33.831
整个团队啊
10:33.831–10:35.851
都是按照这个规范去执行
10:35.851–10:37.751
所以这个是一个全局的
10:37.751–10:38.591
一个配置文件
10:38.591–10:40.331
我们可以把它加到这个里面去
10:40.331–10:44.151
也就是大家除了这个agents.md以外
10:44.151–10:44.471
是吧
10:44.471–10:45.611
那你比如说
10:45.611–10:47.451
我不想用agents.md这个文件
10:47.451–10:48.611
这个名称
10:48.611–10:49.611
我想换一个
10:49.611–10:51.171
比如说叫teamgather
10:51.171–10:53.751
那我就放到这个里面去
10:53.751–10:55.471
这个也是OK的
10:55.471–10:59.131
所以说整个一个文件命名的话
10:59.131–11:01.091
就是大家可以很个性化
11:01.091–11:03.491
但只是说你要去做一个配置
11:03.491–11:05.531
多花一个配置
11:05.531–11:07.271
你如果不想配置的话
11:07.271–11:09.831
你就用agents.md会方便很多
11:09.831–11:14.631
所以说大家有备用的一些文件需要加载
11:14.631–11:18.011
还是说你就用agents.md里面加载
11:18.011–11:19.271
它都是支持的
11:19.271–11:20.511
它都有这么一个规范
11:20.511–11:24.291
然后如果说你不希望使用不同的配置档的话
11:24.291–11:27.591
比如说某个项目专用的这个自动化账号
11:27.591–11:30.551
可以设置这个codex.home环境变量
11:30.551–11:34.191
那这个里面的话就是
11:34.191–11:37.251
我们可以单独去做一个search
11:37.251–11:40.031
就单独去做一个page
11:40.031–11:45.471
某些场景下面我们就用不同的这个codex.home环境变量就可以了
11:45.471–11:48.091
这个也可以做不同的这个page
11:48.091–11:50.591
然后配置完之后的话
11:50.591–11:52.331
我们怎么样去验证呢
11:52.331–11:52.611
是吧
11:52.611–11:54.611
验证这个到底有没有效果呢
11:54.611–11:57.451
那我们可以去看一下
11:57.451–11:59.931
比如说我现在就在
11:59.931–12:02.791
全局的这个agents.md里面
12:02.791–12:03.911
给大家来看一下
12:03.911–12:05.931
比如说我们在当前用户
12:05.931–12:08.391
这个.codex目录
12:08.391–12:12.031
.codex目录
12:12.031–12:14.731
.codex目录下面有一个agency.md
12:14.731–12:18.211
你看现在我们是什么都没写
12:18.211–12:18.551
是吧
12:18.551–12:21.091
那我们就比如说可以写一下
12:21.091–12:22.431
这是
12:22.431–12:25.931
全局的
12:25.931–12:29.151
配置文件
12:29.151–12:32.271
那就是说比如说
12:32.271–12:41.311
我个人的开发规范
12:41.311–12:42.771
比如说是采用
12:42.771–12:46.911
DDD
12:46.911–12:50.471
就是这种领域驱动的方式
12:50.471–12:51.251
进行
12:51.251–12:53.111
编程
12:53.111–12:55.391
进行这个
12:55.391–13:06.731
功能开发
13:06.731–13:08.551
就是我个人的一个规范
13:08.551–13:11.251
我们写在这个根目录的这个agents.md里面
13:11.251–13:12.771
然后我
13:12.771–13:16.471
是现在我就切换到这个Codex目录里面
13:16.471–13:19.671
然后我们去这个打开啊
13:19.671–13:21.431
这个我一般建议是用
13:21.431–13:23.651
终端的管理员的方式打开
13:23.651–13:25.771
不然的话他可能会有权限的一些问题
13:25.771–13:27.871
然后切换到底盘
13:27.871–13:29.651
切换到Codex目录啊
13:29.651–13:32.391
然后这里我们就进去啊
13:32.391–13:33.331
说这个Codex
13:33.331–13:36.251
然后你就随便问他啊
13:36.251–13:37.651
就是我们在这个里面加的东西
13:37.651–13:39.211
然后你就问
13:39.211–13:43.891
我个人的开发规范有哪些啊
13:43.891–13:45.011
你就这么来问
13:45.011–13:47.771
然后我们看一下它能不能加载啊
13:47.771–13:49.011
你看
13:49.011–13:52.111
功能开发采用DDD领域驱动啊
13:52.111–13:53.251
所以这个就是
13:53.251–13:55.851
我们放这个应用层是吧
13:55.851–13:58.251
就是所有的项目都会采这个规范啊
13:58.251–14:01.011
就不管你是哪个项目的是吧
14:01.011–14:04.071
那你都要按照我DDD的这个领域驱动的方式
14:04.071–14:05.311
做一些功能开发啊
14:05.311–14:06.471
这是我个人一个小习惯
14:06.471–14:08.151
然后比如说啊
14:08.151–14:10.151
我们现在单独的
14:10.151–14:11.911
我们再建一个项目
14:11.911–14:14.391
比如说这个里面
14:14.391–14:16.111
这个叫什么呢
14:16.111–14:17.991
叫做
14:17.991–14:20.811
test
14:20.811–14:23.811
或者怎么叫project
14:23.811–14:25.191
project2
14:25.191–14:29.611
那我们在这个里面建一个文件
14:29.611–14:35.491
叫做agents
14:35.491–14:37.691
agents.md
14:37.691–14:39.131
是吧
14:39.131–14:39.331
好
14:39.331–14:42.451
然后这个里面啊
14:42.451–14:47.091
我们就给他改一下是吧
14:47.091–14:48.691
加一些特定的一些规范
14:48.691–14:52.691
比如说我们用这个里面的一些规范来定一下啊
14:52.691–14:56.251
我就随便找一个吧
14:56.251–14:58.691
比如说我就
14:58.691–15:00.691
就把这个规范加进去
15:00.691–15:07.531
放到这个规范里面去
15:07.531–15:10.911
然后
15:10.911–15:12.571
就这样
15:12.571–15:15.731
然后我们现在切换到那个目录里面去
15:15.731–15:20.291
CD到这个project2
15:20.291–15:20.811
是吧
15:20.811–15:22.471
然后注入codex
15:22.471–15:26.371
然后你就问他
15:26.371–15:29.391
当前项目
15:29.391–15:32.531
开发规范
15:32.531–15:34.251
由
15:34.251–15:36.511
哪些
15:36.511–15:42.251
大家看啊
15:42.251–15:42.491
你看
15:42.491–15:45.511
这个是我自己的项目规范是吧
15:45.511–15:46.691
什么pr
15:46.691–15:49.151
pr前先运行npm run
15:49.151–15:49.771
lint
15:49.771–15:51.251
这是我个人的一个习惯
15:51.251–15:54.131
然后你看我们刚刚写的那个全局的应用规范
15:54.131–15:55.351
是不是也在啊
15:55.351–15:56.991
这个优先级非常高啊
15:56.991–15:58.671
就是这你不管进哪个项目
15:58.671–16:13.064
它都会有这么一个规范
16:13.064–16:16.304
这个就是我们实际的规范
16:16.304–16:18.144
好
16:18.144–16:21.804
这个就是大家可以自己的去写不同的这个规范
16:21.804–16:22.164
是吧
16:22.164–16:27.404
然后你还可以去创建这个agent.override的这么一个MD文件
16:27.404–16:28.884
然后我们来做一个覆盖
16:28.884–16:33.124
比如说我们就在这个里面
16:33.124–16:43.384
修改行为时
16:43.384–16:47.164
试一下把这个给覆盖一下
16:47.164–16:49.404
比如说现在是有这么一个
16:49.404–16:53.924
修改的时候需要在docs里面记录是吧
16:53.924–16:56.884
那我现在比如说我现在想做一个覆盖
16:56.884–17:00.044
在override里面再加一个东西
17:00.044–17:01.324
把这句话
17:01.324–17:04.764
我的copy过来
17:04.764–17:06.764
我现在同样的也是call这个
17:06.764–17:07.844
然后在这个里面
17:07.844–17:10.604
然后我现在把这个覆盖一下
17:10.604–17:13.924
在比如说在logs里面
17:13.924–17:16.584
在logs里面去记录工具的一个变化
17:16.584–17:17.784
记到日志里面去
17:17.784–17:20.444
我们看一下它加载策略是什么
17:20.444–17:21.844
先退出去
17:21.844–17:23.224
然后codex
17:23.224–17:29.044
当前项目开发规范有哪些
17:29.044–17:47.164
嗯他说这个有编码问题
17:47.164–17:50.864
看一下他能不能会帮我们解决这个问题啊
17:50.864–17:53.084
你看是不是覆盖了
17:53.084–17:55.924
我现在这个优先级更高是吧
17:55.924–17:58.064
不管你这里写的是DOC什么的
17:58.064–17:59.124
因为我这个下面
17:59.124–18:02.184
然后这里写了这个重载了
18:02.184–18:02.504
是吧
18:02.504–18:06.364
所以他还是会用这个logs去写
18:06.364–18:10.904
这个就是叫agents.overload.md
18:10.904–18:12.244
他的一个作用
18:12.244–18:16.484
就是我们想在同一套规范下面
18:16.484–18:17.544
不同团队
18:17.544–18:19.244
不同小组
18:19.244–18:22.104
要单独写一些自己的小规范
18:22.104–18:23.124
要覆盖一些
18:23.124–18:25.704
就是在公司的这个规范基础之上
18:25.704–18:28.104
或者在大团队的规范基础之上
18:28.104–18:29.704
然后再加我们这个
18:29.704–18:31.904
小团队的这么一个规范
18:31.904–18:33.004
那么啊
18:33.004–18:34.864
比如说这个是公司有很多业务线
18:34.864–18:36.204
我支付这个线里面
18:36.204–18:37.744
我有自己的一些规范
18:37.744–18:42.004
这个就比较适合用这个agents.overload.md
18:42.004–18:44.184
所以这个大家根据自己的情况
18:44.184–18:46.824
去选择不同的这个MD文件啊
18:46.824–18:49.104
好
18:49.104–18:51.284
这个就是我们效果的一个验证
18:51.284–18:54.364
然后包括我们其实也可以去配置一些
18:54.364–18:56.884
这个团队的一些文档啊
18:56.884–18:58.424
这个就根据实际需求去了
18:58.424–18:59.824
调整了啊
18:59.824–19:02.004
基本上我们用在根目录里面
19:02.004–19:03.244
配这两个的话
19:03.244–19:04.424
基本上够用啊
19:04.424–19:05.384
就这两个场景
19:05.384–19:08.004
基本上按项目去配差不多了
19:08.004–19:10.724
除非你确实有公司的这个
19:10.724–19:12.564
级别的一些规范是吧
19:12.564–19:14.264
那你可以加到这个里面去啊
19:14.264–19:17.544
这个就是他的一个层级啊
19:17.544–19:19.064
大家首先要搞清楚这个点
19:19.064–19:21.944
呃
19:21.944–19:22.724
然后验证的话
19:22.724–19:24.404
我们刚刚其实也带大家去验证了
19:24.404–19:26.864
当然你也可以去执行一些命令啊
19:26.864–19:29.304
然后去看一下它到底有没有覆盖啊
19:29.304–19:30.324
这个都是OK的
19:30.324–19:35.404
那比如说我们经常可能会出现的一个问题是什么呢
19:35.404–19:37.464
就是大家可以去排查啊
19:37.464–19:38.904
就是哎
19:38.904–19:42.284
有时候会发现它这个到底有没有加载是吧
19:42.284–19:44.624
这个文件里面有没有一些
19:44.624–19:47.024
就什么都没加载啊
19:47.024–19:48.384
就看一下到底什么问题
19:48.384–19:50.024
大家可以执行这个Codex
19:50.024–19:51.364
Status啊
19:51.364–19:52.204
去分析一下
19:52.204–19:54.064
比如说我们在这个里面先退出去
19:54.064–19:56.144
执行Codex status
19:56.144–20:00.544
那它这个里面的话就会进入了
20:00.544–20:02.404
去分析它的一个status
20:02.404–20:03.864
然后我们在这个里面
20:03.864–20:07.904
它可以去分析整个工作区的一个状态
20:07.904–20:10.124
就是比如说它没有加载
20:10.124–20:11.684
那你可以去检查一下
20:11.684–20:14.984
看一下这个里面到底有没有问题
20:14.984–20:15.324
是吧
20:15.324–20:16.584
你看它这里分析出来
20:16.584–20:19.164
就是它不是一个Git仓库啊
20:19.164–20:23.204
所以他在分析有一些这个信息的时候
20:23.204–20:24.624
他可能就会少一些内容
20:24.624–20:27.684
所以他可以得出来
20:27.684–20:29.904
这个到底有没有是不是空目录是吧
20:29.904–20:30.924
是不是空仓库
20:30.924–20:32.144
他可以给你分析出来
20:32.144–20:34.944
然后的话大家会发现啊
20:34.944–20:37.304
就是你有时候那个配置啊
20:37.304–20:38.464
就是你写了
20:38.464–20:39.344
但是他没有生效
20:39.344–20:41.344
这时候大家就要去检查一下
20:41.344–20:45.084
我的上级到底有没有这个啊
20:45.084–20:48.044
更高层级的一些目录是吧
20:48.044–20:49.364
有一些MD文件
20:49.364–20:50.844
是不是也给它覆盖掉了
20:50.844–20:52.164
那这个里面的话
20:52.164–20:55.424
就是我们要去检查一下
20:55.424–20:56.444
就是你会发现
20:56.444–20:57.284
你加了一个配置之后
20:57.284–20:57.884
它没有生效
20:57.884–20:59.244
但是的话
20:59.244–21:00.604
你的配置加上去了
21:00.604–21:01.104
没问题
21:01.104–21:02.644
但是你一执行
21:02.644–21:03.724
就发现这没生效
21:03.724–21:04.484
那你就可以看一下
21:04.484–21:06.084
上级有没有更高的一些
21:06.084–21:08.944
这个规范
21:08.944–21:10.444
是不是把它给覆盖掉了
21:10.444–21:11.884
这个大家可以去检查一下
21:11.884–21:13.584
就我刚刚提到那几个层级
21:13.584–21:14.464
一个是全局的
21:14.464–21:16.404
还有一个是用户级别的
21:16.404–21:17.804
用户级别就是项目级别的
21:17.804–21:19.344
项目级别的你要看是
21:19.344–21:22.324
有没有agents.overall.md文件啊
21:22.324–21:25.184
所以这个要特别的去检查一下
21:25.184–21:27.164
然后包括一些这个
21:27.164–21:29.124
你加了一些备用文件名了
21:29.124–21:30.724
你会发现他也没有加载
21:30.724–21:32.144
那你就要检查一下
21:32.144–21:34.164
哎路径对不对啊是吧
21:34.164–21:37.504
然后这个配置有没有生效啊
21:37.504–21:39.264
其实大家遇到这个问题之后啊
21:39.264–21:41.104
如果说你确实排查不出来的话
21:41.104–21:43.664
你可以把你的一个配置丢给codex
21:43.664–21:44.984
让他自己去分析
21:44.984–21:46.524
排查到底是哪里出错了
21:46.524–21:48.704
它的分析能力很强的
21:48.704–21:50.224
它一看可能你就知道
21:50.224–21:52.124
你这个确实哪里参数拼的有问题
21:52.124–21:53.564
比如说路径写的有问题
21:53.564–21:53.944
是吧
21:53.944–21:55.704
或者一些其他的参数写的有问题
21:55.704–21:57.424
它马上就可以给你分析出来
21:57.424–21:59.144
这个里面的话
21:59.144–22:02.304
我们可以利用Codex这个分析能力
22:02.304–22:03.404
帮我们去做很多事情
22:03.404–22:06.804
然后包括一些指令被截断了
22:06.804–22:07.784
也就是说大家
22:07.784–22:09.444
你写了一堆东西是吧
22:09.444–22:10.204
写了很多
22:10.204–22:11.944
写了几百行几千行
22:11.944–22:13.584
你发现最后执行的话
22:13.584–22:15.144
可能就识别到了几百行
22:15.144–22:18.004
那这个的话就大家要把这个
22:18.004–22:19.224
有一个参数啊
22:19.224–22:20.524
叫 project bookmarks
22:20.524–22:23.984
但是这个参数不是越大越好啊
22:23.984–22:25.044
你改的越大的话
22:25.044–22:27.924
对于token的这个成本消耗也是比较大的
22:27.924–22:30.424
就相当于我们对话都没开始呢
22:30.424–22:32.044
一开始就给你加了一堆内容去了
22:32.044–22:33.144
下到上下往里面去了
22:33.144–22:36.284
这样就会导致我们整个每次对话的时候
22:36.284–22:38.384
成本就会上升
22:38.384–22:42.524
所以 agents.md 里面绝对不是内容越多越好啊
22:42.524–22:44.524
而是越精简越好
22:44.524–22:46.124
越核心越好
22:46.124–22:46.804
这样的话
22:46.804–22:48.384
因为它的目标
22:48.384–22:50.084
它就是去用来定规范的
22:50.084–22:51.104
你不要把一些
22:51.104–22:52.384
无关紧要的内容
22:52.384–22:53.804
写到agents.md里面去
22:53.804–22:55.164
这样反而可能会
22:55.164–22:58.404
导致这个上下文超长
22:58.404–22:58.704
是吧
22:58.704–23:00.744
或者是它出现截断的这个问题
23:00.744–23:02.244
就明明你写这个指令
23:02.244–23:03.544
你发现它就是没有执行
23:03.544–23:05.044
那是因为它被截断了
23:05.044–23:05.844
都没加载进来
23:05.844–23:07.044
肯定就没法执行
23:07.044–23:09.884
然后包括这个配置
23:09.884–23:10.364
是吧
23:10.364–23:10.744
配置档
23:10.744–23:11.964
就是我们当前
23:11.964–23:13.404
大家会发现
23:13.404–23:15.704
就是你我们已经在这个当前的
23:15.704–23:16.924
用户目录下
23:16.924–23:20.244
这个.codex目录里面改了这个agents.md了
23:20.244–23:22.084
你发现他就是不生效
23:22.084–23:23.864
那这时候你可以去看一下
23:23.864–23:25.604
当前你有没有设置过环境变量
23:25.604–23:28.164
把codex这个目录是吧
23:28.164–23:29.984
你给他设置到其他地方去了
23:29.984–23:33.064
所以导致他整个逻辑的方法
23:33.064–23:34.144
就是没有被执行到
23:34.144–23:36.324
这个也是大家需要去确认的
23:36.324–23:39.564
我们要把整个逻辑给他去确认一下
23:39.564–23:42.684
所以这个里面是一个非常关键的点
23:42.684–23:44.604
就是你这些目录你最基本的
23:44.604–23:46.084
你要做一个确认
23:46.084–23:46.844
是吧
23:46.844–23:49.224
那这样就不会出现一些
23:49.224–23:50.524
细节的一些问题
23:50.524–23:54.364
然后是agents.md到底应该怎么来写呢
23:54.364–23:54.964
是吧
23:54.964–23:57.104
那大家可以写哪些内容呢
23:57.104–24:14.039
我这里给他看一个例子
24:14.039–24:14.999
前端项目啊
24:14.999–24:16.799
你看前端项目就是这套规范
24:16.799–24:18.739
大家如果不知道怎么去写的话
24:18.739–24:19.879
其实很简单啊
24:19.879–24:21.439
很简单怎么来干呢
24:21.439–24:23.039
你可以打开这个codex啊
24:23.039–24:27.499
我这个是一个这个插件版的codex啊
24:27.499–24:30.279
你就直接这么跟他说啊
24:30.279–24:36.079
请帮我分析一下当前项目结构
24:36.079–24:43.439
然后输出一份agents.md
24:43.439–24:49.439
当前项目结构和代码规范
24:49.439–24:51.839
然后输出一份agents.md就完了
24:51.839–24:52.879
就很简单啊
24:52.879–24:56.539
就大家你直接让AI来帮你分析输出一份
24:56.539–24:58.139
然后看他怎么写的
24:58.139–25:01.939
然后你再去参考再去调整是吧
25:01.939–25:04.339
这也是一种学习方式啊
25:04.339–25:07.339
就让AI他肯定比你写的好啊
25:07.339–25:08.639
写的更加的完善
25:08.639–25:10.339
所以你看他怎么写就完事了
25:10.339–25:13.699
但是我这里面已经有了
25:13.699–25:14.899
我就不重新生成了
25:14.899–25:16.479
我只是给大家讲一下这个方法
25:16.479–25:17.939
因为生成这个东西的话
25:17.939–25:19.379
他也要去做各种分析
25:19.379–25:21.279
也比较时间比较久
25:21.279–25:23.539
所以这个大家可以自己去生成
25:23.539–25:25.819
我这个就是用AI生成的
25:25.819–25:28.699
你看他这个里面就帮我分析出来了
25:28.699–25:30.759
我这个用了这个Codex
25:30.759–25:32.419
Harness Engineering的一些
25:32.419–25:34.059
这个实现是吧
25:34.059–25:35.739
然后我的项目结构
25:35.739–25:36.479
有POM
25:36.479–25:37.759
有Admin模块
25:37.759–25:38.779
有Framework
25:38.779–25:39.819
有System
25:39.819–25:40.959
有UI
25:40.959–25:42.259
这个UI是个前端项目
25:42.259–25:43.859
然后它的一个工程规范
25:43.859–25:45.959
就是一些插件包
25:45.959–25:46.419
是吧
25:46.419–25:47.819
然后还有一些白名单
25:47.819–25:50.779
等等的一些细节是怎么样的
25:50.779–25:53.239
包括我们这个 Harness Engineer
25:53.239–25:55.359
它的一个工作流应该是怎么样的
25:55.359–25:56.559
这个就是我之前
25:56.559–25:59.239
落地的一套Harness Engineer
25:59.239–26:02.699
包括它的一些核心的后端命令
26:02.699–26:03.799
这个打包的是吧
26:03.799–26:04.459
编译的
26:04.459–26:06.019
这都是非常核心的一个命令
26:06.019–26:07.919
然后数据库与配置
26:07.919–26:09.819
质量门槛
26:09.819–26:12.859
就是这个就是做一些执行啊
26:12.859–26:14.739
要去确认的一些点
26:14.739–26:16.759
这个是后端的
26:16.759–26:18.799
那前端的话其实也是一样的
26:18.799–26:20.799
前端他特殊的规范的话
26:20.799–26:22.959
就是无非也就是结构啊
26:22.959–26:23.239
是吧
26:23.239–26:24.459
比如技术栈是什么
26:24.459–26:25.919
是 Vue 还是 React
26:25.919–26:27.999
然后一些啊
26:27.999–26:29.139
包是吧
26:29.139–26:30.019
一些文件夹
26:30.019–26:31.539
他应该放什么组件
26:31.539–26:33.199
他的编码规范啊
26:33.199–26:33.599
是什么
26:33.599–26:35.779
然后JavaScript的
26:35.779–26:37.799
他的编码风格应该是什么样的
26:37.799–26:39.439
包括一些前端命令
26:39.439–26:40.599
NPM 的一些命令
26:40.599–26:42.219
包括 Lint 的一些约束
26:42.219–26:44.519
这个就是前端
26:44.519–26:48.399
这个agents.md需要关注一点
26:48.399–26:50.859
所以大家你说怎么写呢
26:50.859–26:52.219
如果你也不知道怎么去写
26:52.219–26:52.719
很简单
26:52.719–26:54.099
你就让 AI 帮你去生成
26:54.099–26:55.559
让他去分析
26:55.559–26:57.599
大家一定要加这个分析这两个字
26:57.599–26:58.559
就是你不要说
26:58.559–27:00.519
你就直接帮我写一份agents.md
27:00.519–27:01.839
但是你没有提到
27:01.839–27:03.519
让他分析当前项目
27:03.519–27:05.799
但他还是会分析当前项目的
27:05.799–27:08.119
所以你最好写清楚一点
27:08.119–27:10.999
就分析当前项目结构跟代码规范
27:10.999–27:12.039
这样的话
27:12.039–27:15.099
他肯定会把那些目录给他扫一遍
27:15.099–27:15.419
是吧
27:15.419–27:17.399
所以这个就是一个
27:17.399–27:20.179
使用习惯的这个提示词
27:20.179–27:21.739
大家可以做一些优化
27:21.739–27:23.319
所以
27:23.319–27:25.759
agents.md里面大家就可以看到
27:25.759–27:27.519
你看基本上是100行以内
27:27.519–27:28.359
是吧
27:28.359–27:30.779
并且的话写的都是一些关键内容
27:30.779–27:33.039
就是一些非常核心的模块
27:33.039–27:34.259
命令啊
27:34.259–27:37.559
然后配置啊等等的是吧
27:37.559–27:38.639
包括结构
27:38.639–27:40.199
但是非常核心的内容
27:40.199–27:41.819
就大家后段项目
27:41.819–27:43.839
你就可以参考这个去做啊
27:43.839–27:44.459
就这个规范
27:44.459–27:45.279
你可以参考一下
27:45.279–27:46.559
如果是前端的话
27:46.559–27:48.839
你也可以去看一下啊
27:48.839–27:51.779
包括其实我们之前啊
27:51.779–27:54.359
这里写了一个小游戏是吧
27:54.359–27:57.619
这个是我之前写的一个小游戏的这么一个
27:57.619–28:00.019
agents.md是吧
28:00.019–28:00.799
就是让他分析
28:00.799–28:02.659
我这个里面用python写的啊
28:02.659–28:04.119
你看这个就是python的一套
28:04.119–28:06.319
agent.md的描述是吧
28:06.319–28:09.299
所以怎么来写啊
28:09.299–28:10.799
规范是怎么样的
28:10.799–28:12.779
这里我也给大家说一下技巧
28:12.779–28:13.939
首先啊
28:13.939–28:14.739
大家不知道怎么写
28:14.739–28:17.039
你可以参考一下我这个规范是吧
28:17.039–28:18.799
我这个的话也是用Codex分析
28:18.799–28:19.419
让它写出来
28:19.419–28:22.559
然后大家也可以自己用Codex去分析出来
28:22.559–28:24.119
然后在此基础之上啊
28:24.119–28:25.639
这个是可以改的啊
28:25.639–28:26.719
就比如说AI
28:26.719–28:29.279
它有可能也没有分析出来啊
28:29.279–28:32.699
这个真实的一个情况啊
28:32.699–28:34.199
它有可能是分析错了
28:34.199–28:35.599
所以这个就需要我们
28:35.599–28:37.659
作为开发人员你要去纠正嘛
28:37.659–28:40.939
就是AI他也不能百分百说就没有问题了
28:40.939–28:44.559
所以这里面大家需要自己去看一下啊
28:44.559–28:46.119
就是有问题你就调一下
28:46.119–28:50.079
因为有一些规范的话
28:50.079–28:51.479
AI他分析出来的话
28:51.479–28:53.859
他的描述会有点怪怪的啊
28:53.859–28:57.839
就是没有我们自己作为开发人员那种理解能力啊
28:57.839–29:00.179
就是他可能还不够强啊
29:00.179–29:02.219
当然基本上啊
29:02.219–29:03.379
这个很准啊
29:03.379–29:04.099
大家可以去试一下
29:04.099–29:05.079
看你用什么模型
29:05.079–29:06.379
比如说你用 Claude 的模型
29:06.379–29:07.959
或者用Codex 5.3
29:07.959–29:08.819
它的效果很好
29:08.819–29:10.279
但是你用其他模型的话
29:10.279–29:11.719
这个就不敢保证了
29:11.719–29:13.879
所以这个回头大家可以去试一下
0:00.000–0:07.140
zh接下来我们来讲一下Codex AGENTS.md配置与架构设计。
接下来我们来讲一下Codex AGENTS.md配置与架构设计。
0:07.140–0:18.080
zh那这个AGENTS.md的话其实是Codex在这个规范化编程这一块做的一些整个架构的一个设计。
那这个AGENTS.md的话其实是Codex在这个规范化编程这一块做的一些整个架构的一个设计。
0:18.080–0:29.380
zh它系统这个里面定义了一个规范,我们可以在这个AGENTS.md里面可以把项目的一些实际的一些开发规范,包括我们整个项目的一些结构,
它系统这个里面定义了一个规范,我们可以在这个AGENTS.md里面可以把项目的一些实际的一些开发规范,包括我们整个项目的一些结构,
0:29.380–0:31.160
zh放到这个文件里面
放到这个文件里面
0:31.160–0:33.640
zh那么在Codex加载的时候
那么在Codex加载的时候
0:33.640–0:36.140
zh我们去分析整个项目结构的时候
我们去分析整个项目结构的时候
0:36.140–0:40.740
zh他会优先去读取这个agents.md文件
他会优先去读取这个agents.md文件
0:40.740–0:41.700
zh这样的话
这样的话
0:41.700–0:46.040
zh他就相当于了解了我们项目的全局的一些
他就相当于了解了我们项目的全局的一些
0:46.040–0:47.380
zh这个大致的一些情况
这个大致的一些情况
0:47.380–0:51.440
zh所以说这个agents.md的话
所以说这个agents.md的话
0:51.440–0:54.440
zh其实就是作为一个规范
其实就是作为一个规范
0:54.440–0:56.320
zh这个驱动开发的一种方式
这个驱动开发的一种方式
0:56.320–0:59.020
zh通过整个全局的一个说明
通过整个全局的一个说明
0:59.020–1:01.760
zh包括我们整个目录层级
包括我们整个目录层级
1:01.760–1:05.140
zh它的一些关键的一些文件在哪里
它的一些关键的一些文件在哪里
1:05.140–1:06.280
zh比如说像一些文档
比如说像一些文档
1:06.280–1:08.280
zh我们整个项目的一个架构文档
我们整个项目的一个架构文档
1:08.280–1:09.900
zh设计文档 API文档
设计文档 API文档
1:09.900–1:12.740
zh通过这个agents.md文件
通过这个agents.md文件
1:12.740–1:16.480
zh把我们相当于这个代码地图描述了非常清楚
把我们相当于这个代码地图描述了非常清楚
1:16.480–1:19.980
zh那这个AI就可以快速了解到
那这个AI就可以快速了解到
1:19.980–1:22.440
zh我们项目里面的一些重点信息
我们项目里面的一些重点信息
1:22.440–1:23.340
zh这样的话
这样的话
1:23.340–1:25.580
zh那你让它去生成代码的时候
那你让它去生成代码的时候
1:25.580–1:27.500
zh相当于它已经把你整个项目
相当于它已经把你整个项目
1:27.500–1:29.180
zh大致做了一个了解了
大致做了一个了解了
1:29.180–1:31.100
zh这样他去找文件的时候
这样他去找文件的时候
1:31.100–1:32.780
zh他的一个效率就会非常高
他的一个效率就会非常高
1:32.780–1:33.800
zh速度也非常快
速度也非常快
1:33.800–1:37.900
zh那么Codex他是如何发现
那么Codex他是如何发现
1:37.900–1:39.720
zh这些个文件的呢
这些个文件的呢
1:39.720–1:40.820
zh首先的话
首先的话
1:40.820–1:42.640
zh他会启动的时候
他会启动的时候
1:42.640–1:44.820
zh他会整理出一条本次运行
他会整理出一条本次运行
1:44.820–1:46.340
zh需要使用的一个指令链
需要使用的一个指令链
1:46.340–1:50.060
zh那么他首先会做一个检查
那么他首先会做一个检查
1:50.060–1:51.340
zh他这个检查的话
他这个检查的话
1:51.340–1:53.340
zh是有一个顺序层级的
是有一个顺序层级的
1:53.340–1:55.820
zh首先第一层的话叫做全局层
首先第一层的话叫做全局层
1:55.820–1:57.580
zh那这个的话
那这个的话
1:57.580–2:00.060
zh就是在我们的这个Codex主目录里面
就是在我们的这个Codex主目录里面
2:00.060–2:02.060
zh有个叫.codex目录
有个叫.codex目录
2:02.060–2:04.560
zh就是在当前登录用户的这个目录里面
就是在当前登录用户的这个目录里面
2:04.560–2:06.820
zh有一个叫点Codex的一个目录
有一个叫点Codex的一个目录
2:06.820–2:09.500
zh当然我们也可以在环境变量里面
当然我们也可以在环境变量里面
2:09.500–2:12.060
zh去指定这个Codex Home
去指定这个Codex Home
2:12.060–2:15.300
zh通过这个环境变量去指定指定的一个目录
通过这个环境变量去指定指定的一个目录
2:15.300–2:17.580
zh那我们指定之后的话
那我们指定之后的话
2:17.580–2:19.240
zhCodex在运行的时候
Codex在运行的时候
2:19.240–2:22.180
zh它就会把它的一些文件
它就会把它的一些文件
2:22.180–2:24.560
zh就是系统的一些文件
就是系统的一些文件
2:24.560–2:26.660
zh默认的会去存放到这个目录里面去
默认的会去存放到这个目录里面去
2:26.660–2:28.440
zh如果大家没有设定的话
如果大家没有设定的话
2:28.440–2:31.180
zh它就是在当前登录用户的这个
它就是在当前登录用户的这个
2:31.180–2:33.540
zh一个目录下面
一个目录下面
2:33.540–2:35.580
zh有一个叫.codex这么一个目录
有一个叫.codex这么一个目录
2:35.580–2:38.180
zh那么在这个目录下面的话
那么在这个目录下面的话
2:38.180–2:40.460
zh我们可以去指定一个叫
我们可以去指定一个叫
2:40.460–2:43.000
enagents.override.md
agents.override.md
2:43.000–2:44.480
zh那么这个的话
那么这个的话
2:44.480–2:48.100
zh就是一个全局的一个agents.md
就是一个全局的一个agents.md
2:48.100–2:50.120
zh那么在这个里面的话
那么在这个里面的话
2:50.120–2:52.160
zh我们写的内容
我们写的内容
2:52.160–2:53.620
zh它会优先去读取
它会优先去读取
2:53.620–2:55.080
zh要是没有的话
要是没有的话
2:55.080–2:58.460
zh他再会去读取这个agents.md文件
他再会去读取这个agents.md文件
2:58.460–3:01.380
zh所以说他这个里面就是一个规范啊
所以说他这个里面就是一个规范啊
3:01.380–3:04.020
zh首先从最外层去开始去找找这个文件
首先从最外层去开始去找找这个文件
3:04.020–3:06.080
zh如果能找到的话就优先使用它
如果能找到的话就优先使用它
3:06.080–3:09.900
zh找不到的话再往下一层级去找agents.md
找不到的话再往下一层级去找agents.md
3:09.900–3:13.080
zh好然后第二个层级叫项目级
好然后第二个层级叫项目级
3:13.080–3:14.260
zh比如说啊
比如说啊
3:14.260–3:16.080
zh我们这个项目里面
我们这个项目里面
3:16.080–3:19.920
zh我们在项目里面也可以去写这个agents.md
我们在项目里面也可以去写这个agents.md
3:19.920–3:21.820
zh比如说我们整个项目啊
比如说我们整个项目啊
3:21.820–3:23.720
zh它是什么一个结构
它是什么一个结构
3:23.720–3:25.040
zh规范是怎么样的
规范是怎么样的
3:25.040–3:26.780
zh包括它的一些构建命令
包括它的一些构建命令
3:26.780–3:28.020
zh有哪些数据库配置
有哪些数据库配置
3:28.020–3:29.040
zh有哪些等等的
有哪些等等的
3:29.040–3:29.860
zh这些个内容
这些个内容
3:29.860–3:30.820
zh我们都可以写到
我们都可以写到
3:30.820–3:32.100
zhagents.md里面去
agents.md里面去
3:32.100–3:33.620
zh然后的话就是
然后的话就是
3:33.620–3:35.480
zh我们如果在项目层
我们如果在项目层
3:35.480–3:36.900
zh写了agents.md
写了agents.md
3:36.900–3:37.920
zh但是呢
但是呢
3:37.920–3:39.200
zh全局层又没有写的话
全局层又没有写的话
3:39.200–3:40.880
zh它会优先使用
它会优先使用
3:40.880–3:42.920
zh项目层里面的agents.md
项目层里面的agents.md
3:42.920–3:45.560
zh去做一个读取
去做一个读取
3:45.560–3:46.360
zh那这里面
那这里面
3:46.360–3:47.740
zh它也会去优先去找
它也会去优先去找
3:47.740–3:49.980
enagents.override.md
agents.override.md
3:49.980–3:50.980
zh如果找不到的话
如果找不到的话
3:50.980–3:51.860
zh他就会找这个
他就会找这个
3:51.860–3:54.380
zh所以说我们在项目里面写agents.md
所以说我们在项目里面写agents.md
3:54.380–3:56.980
zh如果又没有配置其他的这个md文件的话
如果又没有配置其他的这个md文件的话
3:56.980–3:58.880
zh他的优先级这个就是最高
他的优先级这个就是最高
3:58.880–4:01.440
zh所以这个就是项目层
所以这个就是项目层
4:01.440–4:04.280
zh全局层的话就是比如说啊
全局层的话就是比如说啊
4:04.280–4:07.320
zh大家在本地我开发多个项目啊
大家在本地我开发多个项目啊
4:07.320–4:08.740
zh我有python的这个项目
我有python的这个项目
4:08.740–4:09.800
zh有java的项目
有java的项目
4:09.800–4:12.400
zh如果说你需要所有的这个规范啊
如果说你需要所有的这个规范啊
4:12.400–4:13.340
zh做一个对齐的话
做一个对齐的话
4:13.340–4:16.480
zh那这里面大家就可以去全局层里面
那这里面大家就可以去全局层里面
4:16.480–4:19.040
zh去把这个agents.md做一个定义啊
去把这个agents.md做一个定义啊
4:19.040–4:21.800
zh比如说我是作为一个个人开发者
比如说我是作为一个个人开发者
4:21.800–4:24.460
zh然后他的一个规范是怎么样的
然后他的一个规范是怎么样的
4:24.460–4:26.980
zh就是所有的项目都是按这个规范来的
就是所有的项目都是按这个规范来的
4:26.980–4:28.560
zh按照我个人的一个编码风格来
按照我个人的一个编码风格来
4:28.560–4:30.200
zh不管你是什么语言的项目
不管你是什么语言的项目
4:30.200–4:31.640
zh都得按我这个风格来
都得按我这个风格来
4:31.640–4:33.280
zh这个就比较适合放全局
这个就比较适合放全局
4:33.280–4:34.920
zh放项目的话
放项目的话
4:34.920–4:37.580
zh就是每个项目的一些特定的一些配置
就是每个项目的一些特定的一些配置
4:37.580–4:39.340
zh比如说后端项目
比如说后端项目
4:39.340–4:41.280
zh那后端项目肯定有一些接口啊
那后端项目肯定有一些接口啊
4:41.280–4:42.360
zh架构设计啊
架构设计啊
4:42.360–4:44.660
zh包括一些数据库脚本啊等等的
包括一些数据库脚本啊等等的
4:44.660–4:46.980
zh那如果是你是个前端项目的话啊
那如果是你是个前端项目的话啊
4:46.980–4:48.120
zh那比如说有这个
那比如说有这个
4:48.120–4:49.840
zhnpm 包的一个设置
npm 包的一个设置
4:49.840–4:50.140
zh是吧
是吧
4:50.140–4:51.500
zh有 package 点 json
有 package 点 json
4:51.500–4:53.020
zh还有一些这个像
还有一些这个像
4:53.020–4:54.220
zhvue 的一些库啊
vue 的一些库啊
4:54.220–4:55.660
zhreact 的一些库啊
react 的一些库啊
4:55.660–4:55.920
zh是吧
是吧
4:55.920–4:59.380
zh这个就是前端的一些这个层级
这个就是前端的一些这个层级
4:59.380–5:01.340
zh包括一些路由配置啊等等啊
包括一些路由配置啊等等啊
5:01.340–5:02.300
zh那每个项目的话
那每个项目的话
5:02.300–5:04.440
zh它的规范也不一样啊
它的规范也不一样啊
5:04.440–5:05.620
zh我们用前端跟后端
我们用前端跟后端
5:05.620–5:07.740
zh所以这个项目层里面
所以这个项目层里面
5:07.740–5:09.900
zh肯定是要区分这个agents.md的
肯定是要区分这个agents.md的
5:09.900–5:12.100
zh这个就比较适用于放到这一层
这个就比较适用于放到这一层
5:12.100–5:13.100
zh呃
呃
5:13.100–5:13.760
zh然后的话
然后的话
5:13.760–5:14.660
zh最后啊
最后啊
5:14.660–5:16.280
zh如果两个都写了怎么办呢
如果两个都写了怎么办呢
5:16.280–5:17.160
zh都写的话
都写的话
5:17.160–5:19.180
zh都是他就是都会去读取
都是他就是都会去读取
5:19.180–5:23.380
zh然后越靠近当前目录的文件越靠后
然后越靠近当前目录的文件越靠后
5:23.380–5:27.980
zh所以说他会覆盖前面更通用的一些说明
所以说他会覆盖前面更通用的一些说明
5:27.980–5:30.260
zh他就是按照这么一个层级去做覆盖
他就是按照这么一个层级去做覆盖
5:30.260–5:32.880
zh那空文件的话就会被跳过
那空文件的话就会被跳过
5:32.880–5:36.380
zh合并总大小一旦达到他设定的一个上限的话
合并总大小一旦达到他设定的一个上限的话
5:36.380–5:40.000
zh这个Codex就不会加入更多的一些文件了
这个Codex就不会加入更多的一些文件了
5:40.000–5:42.620
zh所以说他是有一个上限的
所以说他是有一个上限的
5:42.620–5:44.300
zh当然这个参数也可以去调
当然这个参数也可以去调
5:44.300–5:48.080
zh也就是我们整个文档
也就是我们整个文档
5:48.080–5:49.300
zh你也不能放太大了
你也不能放太大了
5:49.300–5:50.920
zh因为这个的话是Codex
因为这个的话是Codex
5:50.920–5:54.920
zh它工作的时候默认会加载的一个文档
它工作的时候默认会加载的一个文档
5:54.920–5:57.040
zh如果大家把这个文档做的很大
如果大家把这个文档做的很大
5:57.040–5:58.300
zh比如说做一兆是吧
比如说做一兆是吧
5:58.300–5:58.740
zh非常大
非常大
5:58.740–6:00.440
zh直接就超过这个上下文了
直接就超过这个上下文了
6:00.440–6:02.760
zh那这个显然是不太合适的
那这个显然是不太合适的
6:02.760–6:04.880
zh就是对于首先成本消耗
就是对于首先成本消耗
6:04.880–6:06.240
zh包括上下文窗口的话
包括上下文窗口的话
6:06.240–6:07.560
zh一下子可能就超出去了
一下子可能就超出去了
6:07.560–6:10.840
zh所以agents.md里面要写的内容
所以agents.md里面要写的内容
6:10.840–6:13.540
zh比如说你是项目层的这个agents.md
比如说你是项目层的这个agents.md
6:13.540–6:16.200
zh一定要写跟项目相关的一些
一定要写跟项目相关的一些
6:16.200–6:18.340
zh比如说这个命令啊
比如说这个命令啊
6:18.340–6:18.620
zh是吧
是吧
6:18.620–6:20.440
zh然后工程规范啊
然后工程规范啊
6:20.440–6:21.720
zh项目结构啊
项目结构啊
6:21.720–6:24.260
zh这是一些非常核心的内容
这是一些非常核心的内容
6:24.260–6:26.140
zh那么我们就写到这个里面
那么我们就写到这个里面
6:26.140–6:28.500
zh基本上大概就是100行左右啊
基本上大概就是100行左右啊
6:28.500–6:29.200
zh不能太多
不能太多
6:29.200–6:31.840
zh太多的话就很容易超过这个上下文线
太多的话就很容易超过这个上下文线
6:31.840–6:34.320
zh所以这个是一个细节点啊
所以这个是一个细节点啊
6:34.320–6:37.240
zh那么大家就可以在这个
那么大家就可以在这个
6:37.240–6:38.640
zh按照上面我们
按照上面我们
6:38.640–6:41.560
zh就是确认好的一个这个层级啊
就是确认好的一个这个层级啊
6:41.560–6:43.200
zh你可以在全局层里面啊
你可以在全局层里面啊
6:43.200–6:44.900
zh就在这个里面去加agents.md
就在这个里面去加agents.md
6:44.900–6:46.200
zh那我们这里的话
那我们这里的话
6:46.200–6:48.740
zh主要是带大家在项目里面去讲啊
主要是带大家在项目里面去讲啊
6:48.740–6:50.420
zh在项目里我们用了最多的方案
在项目里我们用了最多的方案
6:50.420–6:53.260
zh还是在项目里面去加agents.md
还是在项目里面去加agents.md
6:53.260–6:56.100
zh所以最外层的这个用户目录下
所以最外层的这个用户目录下
6:56.100–6:57.220
zh那个agents.md的话
那个agents.md的话
6:57.220–6:58.920
zh我们一般来说不会去改
我们一般来说不会去改
6:58.920–7:02.380
zh因为我们一般是按项目来去做一个驱动啊
因为我们一般是按项目来去做一个驱动啊
7:02.380–7:03.960
zh这是实际啊
这是实际啊
7:03.960–7:04.960
zh实践的这个场景
实践的这个场景
7:04.960–7:07.460
zh就是在项目里面加agents.md比较多啊
就是在项目里面加agents.md比较多啊
7:07.460–7:09.080
zh当然大家如果确实有需要的话
当然大家如果确实有需要的话
7:09.080–7:10.540
zh你可以去那个里面改啊
你可以去那个里面改啊
7:10.540–7:13.780
zh那我们改完之后的话
那我们改完之后的话
7:13.780–7:14.680
zh就是在这个里面
就是在这个里面
7:14.680–7:15.820
zh我们会写哪些东西呢
我们会写哪些东西呢
7:15.820–7:18.340
zh比如说你是做一个前端项目
比如说你是做一个前端项目
7:18.340–7:20.460
zh那你肯定要去写一些这个
那你肯定要去写一些这个
7:20.460–7:22.480
zhNPM的一些命令啊
NPM的一些命令啊
7:22.480–7:23.440
zh一些描述是吧
一些描述是吧
7:23.440–7:25.640
zh那整个这个项目
那整个这个项目
7:25.640–7:28.040
zh他就是去比如说添加一些依赖的时候
他就是去比如说添加一些依赖的时候
7:28.040–7:29.100
zh需要做一个确认
需要做一个确认
7:29.100–7:33.100
zh那这个就是我们针对前端这种项目啊
那这个就是我们针对前端这种项目啊
7:33.100–7:34.720
zh可以写的一个agents.md
可以写的一个agents.md
7:34.720–7:36.280
zh但肯定不会这么简单
但肯定不会这么简单
7:36.280–7:37.920
zh我们还可以可以写很多内容
我们还可以可以写很多内容
7:37.920–7:40.540
zh所以说啊
所以说啊
7:40.540–7:41.740
zh这个里面啊
这个里面啊
7:41.740–7:44.700
zh就大家首先要搞清楚这么一个场景啊
就大家首先要搞清楚这么一个场景啊
7:44.700–7:48.560
zh如果说你确实要去写一些全局的这个agents.md的话
如果说你确实要去写一些全局的这个agents.md的话
7:48.560–7:50.300
zh那你就写到用户目录里面去
那你就写到用户目录里面去
7:50.300–7:55.700
zh如果说你只是做一个这个项目的一个场景的话
如果说你只是做一个这个项目的一个场景的话
7:55.700–7:58.851
zh你就放到项目的这个agents.md里面去
你就放到项目的这个agents.md里面去
7:58.851–8:02.151
zh那么这个agents.md的话
那么这个agents.md的话
8:02.151–8:04.691
zh它这个里面的话
它这个里面的话
8:04.691–8:07.311
zh我们可以首先在根目录里面去加
我们可以首先在根目录里面去加
8:07.311–8:08.331
zh然后的话
然后的话
8:08.331–8:11.091
zh比如说你还需要做这个覆盖
比如说你还需要做这个覆盖
8:11.091–8:11.451
zh是吧
是吧
8:11.451–8:12.411
zh你要做覆盖的话
你要做覆盖的话
8:12.411–8:14.551
zh你就可以去创建agents.md
你就可以去创建agents.md
8:14.551–8:18.211
zh那它就会去覆盖当前的agents.md
那它就会去覆盖当前的agents.md
8:18.211–8:20.811
zh那这个就比较适用于
那这个就比较适用于
8:20.811–8:24.251
zh那比如说根目录啊
那比如说根目录啊
8:24.251–8:26.371
zh我加了这个agents.md了
我加了这个agents.md了
8:26.371–8:27.191
zh但是呢
但是呢
8:27.191–8:29.211
zh在某一些模块下啊
在某一些模块下啊
8:29.211–8:29.891
zh不同因为我们
不同因为我们
8:29.891–8:31.891
zh我们就做项目开发的
我们就做项目开发的
8:31.891–8:33.571
zh大家知道是分模块开发的是吧
大家知道是分模块开发的是吧
8:33.571–8:36.151
zh那有的模块它是别的小组
那有的模块它是别的小组
8:36.151–8:38.631
zh那人家别的小组有自己的一套规范
那人家别的小组有自己的一套规范
8:38.631–8:41.451
zh他不想说跟着你规范一起调了
他不想说跟着你规范一起调了
8:41.451–8:42.911
zh我们有自己的一套规范
我们有自己的一套规范
8:42.911–8:44.051
zh所以的话
所以的话
8:44.051–8:46.571
zh我们可能在某个模块下面
我们可能在某个模块下面
8:46.571–8:48.691
zh加一个agents.md
加一个agents.md
8:48.691–8:49.711
zh这样的话
这样的话
8:49.711–8:52.051
zh我们就直接可以去覆盖之前的一个配置
我们就直接可以去覆盖之前的一个配置
8:52.051–8:56.371
zh所以这个是比较适合于做一些覆盖的场景
所以这个是比较适合于做一些覆盖的场景
8:56.371–8:58.931
zh就相当于每一个团队都有自己的一个特色
就相当于每一个团队都有自己的一个特色
8:58.931–9:00.551
zh那并且的话
那并且的话
9:00.551–9:03.471
zh我们也可以在某个模块去启用这个Codex
我们也可以在某个模块去启用这个Codex
9:03.471–9:04.911
zh然后去做一个执行
然后去做一个执行
9:04.911–9:05.791
enOK
OK
9:05.791–9:09.091
zh这个就是我们可以在不同的模块下面啊
这个就是我们可以在不同的模块下面啊
9:09.091–9:10.631
zh去加这个agents.md
去加这个agents.md
9:10.631–9:11.931
zh好
好
9:11.931–9:13.511
zh然后的话
然后的话
9:13.511–9:15.451
zh就是这里面一个逻辑就是Codex
就是这里面一个逻辑就是Codex
9:15.451–9:17.831
zh首先会去读取全局文件
首先会去读取全局文件
9:17.831–9:20.071
zh然后再去读取仓库的根目录
然后再去读取仓库的根目录
9:20.071–9:21.511
zh最后再去读取
最后再去读取
9:21.511–9:22.891
zh某个模块
某个模块
9:22.891–9:24.411
zh比如说像这个支付模块
比如说像这个支付模块
9:24.411–9:25.691
zh下面的一些覆盖文件
下面的一些覆盖文件
9:25.691–9:26.231
zh是吧
是吧
9:26.231–9:28.491
zh那么Codex在搜索的时候
那么Codex在搜索的时候
9:28.491–9:31.331
zh会到达这个当前目录的话
会到达这个当前目录的话
9:31.331–9:32.091
zh就会停止
就会停止
9:32.091–9:34.371
zh所以说尽量应该把覆盖文件
所以说尽量应该把覆盖文件
9:34.371–9:35.631
zh靠在专门
靠在专门
9:35.631–9:38.231
zh就是按照规范去做一个存储
就是按照规范去做一个存储
9:38.231–9:39.971
zh所以说我们
所以说我们
9:39.971–9:42.231
zh加了这个模块之后
加了这个模块之后
9:42.231–9:43.311
zh你就在这个模块下面
你就在这个模块下面
9:43.311–9:45.491
zh直接就放这个MD文件就可以了
直接就放这个MD文件就可以了
9:45.491–9:47.551
zh所以它是相当于
所以它是相当于
9:47.551–9:49.451
zh我们可以在不同的模块下面
我们可以在不同的模块下面
9:49.451–9:51.191
zh就不只是根目录可以放
就不只是根目录可以放
9:51.191–9:53.171
zh不同的服务下面都可以去放
不同的服务下面都可以去放
9:53.171–9:55.111
zh然后并且的话
然后并且的话
9:55.111–9:57.471
zh我们还可以去自定义一些备用文件名
我们还可以去自定义一些备用文件名
9:57.471–10:02.211
zh比如说像仓库里面已经在使用其他名字
比如说像仓库里面已经在使用其他名字
10:02.211–10:02.491
zh是吧
是吧
10:02.491–10:05.831
zh那你可以把它加入到这个备用列表里面去
那你可以把它加入到这个备用列表里面去
10:05.831–10:07.911
zh让Codex把它当作说明
让Codex把它当作说明
10:07.911–10:09.411
zh什么意思呢
什么意思呢
10:09.411–10:10.051
zh就比如说
就比如说
10:10.051–10:14.131
zh你现在有一个团队的这个手册是吧
你现在有一个团队的这个手册是吧
10:14.131–10:17.191
zh就是我们所有的项目都按这个手册来操作的
就是我们所有的项目都按这个手册来操作的
10:17.191–10:20.371
zh那这个就比较适合于布置全局的这么一个
那这个就比较适合于布置全局的这么一个
10:20.371–10:22.351
zh叫做config.toml文件
叫做config.toml文件
10:22.351–10:23.671
zh这个是Codex
这个是Codex
10:23.671–10:28.251
zh它整个应用的一个配置文件
它整个应用的一个配置文件
10:28.251–10:30.451
zh这个配置文件下是全局的
这个配置文件下是全局的
10:30.451–10:31.691
zh也就是说你在这个里面
也就是说你在这个里面
10:31.691–10:32.711
zh加这个规范之后
加这个规范之后
10:32.711–10:33.831
zh整个团队啊
整个团队啊
10:33.831–10:35.851
zh都是按照这个规范去执行
都是按照这个规范去执行
10:35.851–10:37.751
zh所以这个是一个全局的
所以这个是一个全局的
10:37.751–10:38.591
zh一个配置文件
一个配置文件
10:38.591–10:40.331
zh我们可以把它加到这个里面去
我们可以把它加到这个里面去
10:40.331–10:44.151
zh也就是大家除了这个agents.md以外
也就是大家除了这个agents.md以外
10:44.151–10:44.471
zh是吧
是吧
10:44.471–10:45.611
zh那你比如说
那你比如说
10:45.611–10:47.451
zh我不想用agents.md这个文件
我不想用agents.md这个文件
10:47.451–10:48.611
zh这个名称
这个名称
10:48.611–10:49.611
zh我想换一个
我想换一个
10:49.611–10:51.171
zh比如说叫teamgather
比如说叫teamgather
10:51.171–10:53.751
zh那我就放到这个里面去
那我就放到这个里面去
10:53.751–10:55.471
zh这个也是OK的
这个也是OK的
10:55.471–10:59.131
zh所以说整个一个文件命名的话
所以说整个一个文件命名的话
10:59.131–11:01.091
zh就是大家可以很个性化
就是大家可以很个性化
11:01.091–11:03.491
zh但只是说你要去做一个配置
但只是说你要去做一个配置
11:03.491–11:05.531
zh多花一个配置
多花一个配置
11:05.531–11:07.271
zh你如果不想配置的话
你如果不想配置的话
11:07.271–11:09.831
zh你就用agents.md会方便很多
你就用agents.md会方便很多
11:09.831–11:14.631
zh所以说大家有备用的一些文件需要加载
所以说大家有备用的一些文件需要加载
11:14.631–11:18.011
zh还是说你就用agents.md里面加载
还是说你就用agents.md里面加载
11:18.011–11:19.271
zh它都是支持的
它都是支持的
11:19.271–11:20.511
zh它都有这么一个规范
它都有这么一个规范
11:20.511–11:24.291
zh然后如果说你不希望使用不同的配置档的话
然后如果说你不希望使用不同的配置档的话
11:24.291–11:27.591
zh比如说某个项目专用的这个自动化账号
比如说某个项目专用的这个自动化账号
11:27.591–11:30.551
zh可以设置这个codex.home环境变量
可以设置这个codex.home环境变量
11:30.551–11:34.191
zh那这个里面的话就是
那这个里面的话就是
11:34.191–11:37.251
zh我们可以单独去做一个search
我们可以单独去做一个search
11:37.251–11:40.031
zh就单独去做一个page
就单独去做一个page
11:40.031–11:45.471
zh某些场景下面我们就用不同的这个codex.home环境变量就可以了
某些场景下面我们就用不同的这个codex.home环境变量就可以了
11:45.471–11:48.091
zh这个也可以做不同的这个page
这个也可以做不同的这个page
11:48.091–11:50.591
zh然后配置完之后的话
然后配置完之后的话
11:50.591–11:52.331
zh我们怎么样去验证呢
我们怎么样去验证呢
11:52.331–11:52.611
zh是吧
是吧
11:52.611–11:54.611
zh验证这个到底有没有效果呢
验证这个到底有没有效果呢
11:54.611–11:57.451
zh那我们可以去看一下
那我们可以去看一下
11:57.451–11:59.931
zh比如说我现在就在
比如说我现在就在
11:59.931–12:02.791
zh全局的这个agents.md里面
全局的这个agents.md里面
12:02.791–12:03.911
zh给大家来看一下
给大家来看一下
12:03.911–12:05.931
zh比如说我们在当前用户
比如说我们在当前用户
12:05.931–12:08.391
zh这个.codex目录
这个.codex目录
12:08.391–12:12.031
zh.codex目录
.codex目录
12:12.031–12:14.731
zh.codex目录下面有一个agency.md
.codex目录下面有一个agency.md
12:14.731–12:18.211
zh你看现在我们是什么都没写
你看现在我们是什么都没写
12:18.211–12:18.551
zh是吧
是吧
12:18.551–12:21.091
zh那我们就比如说可以写一下
那我们就比如说可以写一下
12:21.091–12:22.431
zh这是
这是
12:22.431–12:25.931
zh全局的
全局的
12:25.931–12:29.151
zh配置文件
配置文件
12:29.151–12:32.271
zh那就是说比如说
那就是说比如说
12:32.271–12:41.311
zh我个人的开发规范
我个人的开发规范
12:41.311–12:42.771
zh比如说是采用
比如说是采用
12:42.771–12:46.911
enDDD
DDD
12:46.911–12:50.471
zh就是这种领域驱动的方式
就是这种领域驱动的方式
12:50.471–12:51.251
zh进行
进行
12:51.251–12:53.111
zh编程
编程
12:53.111–12:55.391
zh进行这个
进行这个
12:55.391–13:06.731
zh功能开发
功能开发
13:06.731–13:08.551
zh就是我个人的一个规范
就是我个人的一个规范
13:08.551–13:11.251
zh我们写在这个根目录的这个agents.md里面
我们写在这个根目录的这个agents.md里面
13:11.251–13:12.771
zh然后我
然后我
13:12.771–13:16.471
zh是现在我就切换到这个Codex目录里面
是现在我就切换到这个Codex目录里面
13:16.471–13:19.671
zh然后我们去这个打开啊
然后我们去这个打开啊
13:19.671–13:21.431
zh这个我一般建议是用
这个我一般建议是用
13:21.431–13:23.651
zh终端的管理员的方式打开
终端的管理员的方式打开
13:23.651–13:25.771
zh不然的话他可能会有权限的一些问题
不然的话他可能会有权限的一些问题
13:25.771–13:27.871
zh然后切换到底盘
然后切换到底盘
13:27.871–13:29.651
zh切换到Codex目录啊
切换到Codex目录啊
13:29.651–13:32.391
zh然后这里我们就进去啊
然后这里我们就进去啊
13:32.391–13:33.331
zh说这个Codex
说这个Codex
13:33.331–13:36.251
zh然后你就随便问他啊
然后你就随便问他啊
13:36.251–13:37.651
zh就是我们在这个里面加的东西
就是我们在这个里面加的东西
13:37.651–13:39.211
zh然后你就问
然后你就问
13:39.211–13:43.891
zh我个人的开发规范有哪些啊
我个人的开发规范有哪些啊
13:43.891–13:45.011
zh你就这么来问
你就这么来问
13:45.011–13:47.771
zh然后我们看一下它能不能加载啊
然后我们看一下它能不能加载啊
13:47.771–13:49.011
zh你看
你看
13:49.011–13:52.111
zh功能开发采用DDD领域驱动啊
功能开发采用DDD领域驱动啊
13:52.111–13:53.251
zh所以这个就是
所以这个就是
13:53.251–13:55.851
zh我们放这个应用层是吧
我们放这个应用层是吧
13:55.851–13:58.251
zh就是所有的项目都会采这个规范啊
就是所有的项目都会采这个规范啊
13:58.251–14:01.011
zh就不管你是哪个项目的是吧
就不管你是哪个项目的是吧
14:01.011–14:04.071
zh那你都要按照我DDD的这个领域驱动的方式
那你都要按照我DDD的这个领域驱动的方式
14:04.071–14:05.311
zh做一些功能开发啊
做一些功能开发啊
14:05.311–14:06.471
zh这是我个人一个小习惯
这是我个人一个小习惯
14:06.471–14:08.151
zh然后比如说啊
然后比如说啊
14:08.151–14:10.151
zh我们现在单独的
我们现在单独的
14:10.151–14:11.911
zh我们再建一个项目
我们再建一个项目
14:11.911–14:14.391
zh比如说这个里面
比如说这个里面
14:14.391–14:16.111
zh这个叫什么呢
这个叫什么呢
14:16.111–14:17.991
zh叫做
叫做
14:17.991–14:20.811
entest
test
14:20.811–14:23.811
zh或者怎么叫project
或者怎么叫project
14:23.811–14:25.191
enproject2
project2
14:25.191–14:29.611
zh那我们在这个里面建一个文件
那我们在这个里面建一个文件
14:29.611–14:35.491
zh叫做agents
叫做agents
14:35.491–14:37.691
enagents.md
agents.md
14:37.691–14:39.131
zh是吧
是吧
14:39.131–14:39.331
zh好
好
14:39.331–14:42.451
zh然后这个里面啊
然后这个里面啊
14:42.451–14:47.091
zh我们就给他改一下是吧
我们就给他改一下是吧
14:47.091–14:48.691
zh加一些特定的一些规范
加一些特定的一些规范
14:48.691–14:52.691
zh比如说我们用这个里面的一些规范来定一下啊
比如说我们用这个里面的一些规范来定一下啊
14:52.691–14:56.251
zh我就随便找一个吧
我就随便找一个吧
14:56.251–14:58.691
zh比如说我就
比如说我就
14:58.691–15:00.691
zh就把这个规范加进去
就把这个规范加进去
15:00.691–15:07.531
zh放到这个规范里面去
放到这个规范里面去
15:07.531–15:10.911
zh然后
然后
15:10.911–15:12.571
zh就这样
就这样
15:12.571–15:15.731
zh然后我们现在切换到那个目录里面去
然后我们现在切换到那个目录里面去
15:15.731–15:20.291
zhCD到这个project2
CD到这个project2
15:20.291–15:20.811
zh是吧
是吧
15:20.811–15:22.471
zh然后注入codex
然后注入codex
15:22.471–15:26.371
zh然后你就问他
然后你就问他
15:26.371–15:29.391
zh当前项目
当前项目
15:29.391–15:32.531
zh开发规范
开发规范
15:32.531–15:34.251
zh由
由
15:34.251–15:36.511
zh哪些
哪些
15:36.511–15:42.251
zh大家看啊
大家看啊
15:42.251–15:42.491
zh你看
你看
15:42.491–15:45.511
zh这个是我自己的项目规范是吧
这个是我自己的项目规范是吧
15:45.511–15:46.691
zh什么pr
什么pr
15:46.691–15:49.151
zhpr前先运行npm run
pr前先运行npm run
15:49.151–15:49.771
enlint
lint
15:49.771–15:51.251
zh这是我个人的一个习惯
这是我个人的一个习惯
15:51.251–15:54.131
zh然后你看我们刚刚写的那个全局的应用规范
然后你看我们刚刚写的那个全局的应用规范
15:54.131–15:55.351
zh是不是也在啊
是不是也在啊
15:55.351–15:56.991
zh这个优先级非常高啊
这个优先级非常高啊
15:56.991–15:58.671
zh就是这你不管进哪个项目
就是这你不管进哪个项目
15:58.671–16:13.064
zh它都会有这么一个规范
它都会有这么一个规范
16:13.064–16:16.304
zh这个就是我们实际的规范
这个就是我们实际的规范
16:16.304–16:18.144
zh好
好
16:18.144–16:21.804
zh这个就是大家可以自己的去写不同的这个规范
这个就是大家可以自己的去写不同的这个规范
16:21.804–16:22.164
zh是吧
是吧
16:22.164–16:27.404
zh然后你还可以去创建这个agent.override的这么一个MD文件
然后你还可以去创建这个agent.override的这么一个MD文件
16:27.404–16:28.884
zh然后我们来做一个覆盖
然后我们来做一个覆盖
16:28.884–16:33.124
zh比如说我们就在这个里面
比如说我们就在这个里面
16:33.124–16:43.384
zh修改行为时
修改行为时
16:43.384–16:47.164
zh试一下把这个给覆盖一下
试一下把这个给覆盖一下
16:47.164–16:49.404
zh比如说现在是有这么一个
比如说现在是有这么一个
16:49.404–16:53.924
zh修改的时候需要在docs里面记录是吧
修改的时候需要在docs里面记录是吧
16:53.924–16:56.884
zh那我现在比如说我现在想做一个覆盖
那我现在比如说我现在想做一个覆盖
16:56.884–17:00.044
zh在override里面再加一个东西
在override里面再加一个东西
17:00.044–17:01.324
zh把这句话
把这句话
17:01.324–17:04.764
zh我的copy过来
我的copy过来
17:04.764–17:06.764
zh我现在同样的也是call这个
我现在同样的也是call这个
17:06.764–17:07.844
zh然后在这个里面
然后在这个里面
17:07.844–17:10.604
zh然后我现在把这个覆盖一下
然后我现在把这个覆盖一下
17:10.604–17:13.924
zh在比如说在logs里面
在比如说在logs里面
17:13.924–17:16.584
zh在logs里面去记录工具的一个变化
在logs里面去记录工具的一个变化
17:16.584–17:17.784
zh记到日志里面去
记到日志里面去
17:17.784–17:20.444
zh我们看一下它加载策略是什么
我们看一下它加载策略是什么
17:20.444–17:21.844
zh先退出去
先退出去
17:21.844–17:23.224
zh然后codex
然后codex
17:23.224–17:29.044
zh当前项目开发规范有哪些
当前项目开发规范有哪些
17:29.044–17:47.164
zh嗯他说这个有编码问题
嗯他说这个有编码问题
17:47.164–17:50.864
zh看一下他能不能会帮我们解决这个问题啊
看一下他能不能会帮我们解决这个问题啊
17:50.864–17:53.084
zh你看是不是覆盖了
你看是不是覆盖了
17:53.084–17:55.924
zh我现在这个优先级更高是吧
我现在这个优先级更高是吧
17:55.924–17:58.064
zh不管你这里写的是DOC什么的
不管你这里写的是DOC什么的
17:58.064–17:59.124
zh因为我这个下面
因为我这个下面
17:59.124–18:02.184
zh然后这里写了这个重载了
然后这里写了这个重载了
18:02.184–18:02.504
zh是吧
是吧
18:02.504–18:06.364
zh所以他还是会用这个logs去写
所以他还是会用这个logs去写
18:06.364–18:10.904
zh这个就是叫agents.overload.md
这个就是叫agents.overload.md
18:10.904–18:12.244
zh他的一个作用
他的一个作用
18:12.244–18:16.484
zh就是我们想在同一套规范下面
就是我们想在同一套规范下面
18:16.484–18:17.544
zh不同团队
不同团队
18:17.544–18:19.244
zh不同小组
不同小组
18:19.244–18:22.104
zh要单独写一些自己的小规范
要单独写一些自己的小规范
18:22.104–18:23.124
zh要覆盖一些
要覆盖一些
18:23.124–18:25.704
zh就是在公司的这个规范基础之上
就是在公司的这个规范基础之上
18:25.704–18:28.104
zh或者在大团队的规范基础之上
或者在大团队的规范基础之上
18:28.104–18:29.704
zh然后再加我们这个
然后再加我们这个
18:29.704–18:31.904
zh小团队的这么一个规范
小团队的这么一个规范
18:31.904–18:33.004
zh那么啊
那么啊
18:33.004–18:34.864
zh比如说这个是公司有很多业务线
比如说这个是公司有很多业务线
18:34.864–18:36.204
zh我支付这个线里面
我支付这个线里面
18:36.204–18:37.744
zh我有自己的一些规范
我有自己的一些规范
18:37.744–18:42.004
zh这个就比较适合用这个agents.overload.md
这个就比较适合用这个agents.overload.md
18:42.004–18:44.184
zh所以这个大家根据自己的情况
所以这个大家根据自己的情况
18:44.184–18:46.824
zh去选择不同的这个MD文件啊
去选择不同的这个MD文件啊
18:46.824–18:49.104
zh好
好
18:49.104–18:51.284
zh这个就是我们效果的一个验证
这个就是我们效果的一个验证
18:51.284–18:54.364
zh然后包括我们其实也可以去配置一些
然后包括我们其实也可以去配置一些
18:54.364–18:56.884
zh这个团队的一些文档啊
这个团队的一些文档啊
18:56.884–18:58.424
zh这个就根据实际需求去了
这个就根据实际需求去了
18:58.424–18:59.824
zh调整了啊
调整了啊
18:59.824–19:02.004
zh基本上我们用在根目录里面
基本上我们用在根目录里面
19:02.004–19:03.244
zh配这两个的话
配这两个的话
19:03.244–19:04.424
zh基本上够用啊
基本上够用啊
19:04.424–19:05.384
zh就这两个场景
就这两个场景
19:05.384–19:08.004
zh基本上按项目去配差不多了
基本上按项目去配差不多了
19:08.004–19:10.724
zh除非你确实有公司的这个
除非你确实有公司的这个
19:10.724–19:12.564
zh级别的一些规范是吧
级别的一些规范是吧
19:12.564–19:14.264
zh那你可以加到这个里面去啊
那你可以加到这个里面去啊
19:14.264–19:17.544
zh这个就是他的一个层级啊
这个就是他的一个层级啊
19:17.544–19:19.064
zh大家首先要搞清楚这个点
大家首先要搞清楚这个点
19:19.064–19:21.944
zh呃
呃
19:21.944–19:22.724
zh然后验证的话
然后验证的话
19:22.724–19:24.404
zh我们刚刚其实也带大家去验证了
我们刚刚其实也带大家去验证了
19:24.404–19:26.864
zh当然你也可以去执行一些命令啊
当然你也可以去执行一些命令啊
19:26.864–19:29.304
zh然后去看一下它到底有没有覆盖啊
然后去看一下它到底有没有覆盖啊
19:29.304–19:30.324
zh这个都是OK的
这个都是OK的
19:30.324–19:35.404
zh那比如说我们经常可能会出现的一个问题是什么呢
那比如说我们经常可能会出现的一个问题是什么呢
19:35.404–19:37.464
zh就是大家可以去排查啊
就是大家可以去排查啊
19:37.464–19:38.904
zh就是哎
就是哎
19:38.904–19:42.284
zh有时候会发现它这个到底有没有加载是吧
有时候会发现它这个到底有没有加载是吧
19:42.284–19:44.624
zh这个文件里面有没有一些
这个文件里面有没有一些
19:44.624–19:47.024
zh就什么都没加载啊
就什么都没加载啊
19:47.024–19:48.384
zh就看一下到底什么问题
就看一下到底什么问题
19:48.384–19:50.024
zh大家可以执行这个Codex
大家可以执行这个Codex
19:50.024–19:51.364
zhStatus啊
Status啊
19:51.364–19:52.204
zh去分析一下
去分析一下
19:52.204–19:54.064
zh比如说我们在这个里面先退出去
比如说我们在这个里面先退出去
19:54.064–19:56.144
zh执行Codex status
执行Codex status
19:56.144–20:00.544
zh那它这个里面的话就会进入了
那它这个里面的话就会进入了
20:00.544–20:02.404
zh去分析它的一个status
去分析它的一个status
20:02.404–20:03.864
zh然后我们在这个里面
然后我们在这个里面
20:03.864–20:07.904
zh它可以去分析整个工作区的一个状态
它可以去分析整个工作区的一个状态
20:07.904–20:10.124
zh就是比如说它没有加载
就是比如说它没有加载
20:10.124–20:11.684
zh那你可以去检查一下
那你可以去检查一下
20:11.684–20:14.984
zh看一下这个里面到底有没有问题
看一下这个里面到底有没有问题
20:14.984–20:15.324
zh是吧
是吧
20:15.324–20:16.584
zh你看它这里分析出来
你看它这里分析出来
20:16.584–20:19.164
zh就是它不是一个Git仓库啊
就是它不是一个Git仓库啊
20:19.164–20:23.204
zh所以他在分析有一些这个信息的时候
所以他在分析有一些这个信息的时候
20:23.204–20:24.624
zh他可能就会少一些内容
他可能就会少一些内容
20:24.624–20:27.684
zh所以他可以得出来
所以他可以得出来
20:27.684–20:29.904
zh这个到底有没有是不是空目录是吧
这个到底有没有是不是空目录是吧
20:29.904–20:30.924
zh是不是空仓库
是不是空仓库
20:30.924–20:32.144
zh他可以给你分析出来
他可以给你分析出来
20:32.144–20:34.944
zh然后的话大家会发现啊
然后的话大家会发现啊
20:34.944–20:37.304
zh就是你有时候那个配置啊
就是你有时候那个配置啊
20:37.304–20:38.464
zh就是你写了
就是你写了
20:38.464–20:39.344
zh但是他没有生效
但是他没有生效
20:39.344–20:41.344
zh这时候大家就要去检查一下
这时候大家就要去检查一下
20:41.344–20:45.084
zh我的上级到底有没有这个啊
我的上级到底有没有这个啊
20:45.084–20:48.044
zh更高层级的一些目录是吧
更高层级的一些目录是吧
20:48.044–20:49.364
zh有一些MD文件
有一些MD文件
20:49.364–20:50.844
zh是不是也给它覆盖掉了
是不是也给它覆盖掉了
20:50.844–20:52.164
zh那这个里面的话
那这个里面的话
20:52.164–20:55.424
zh就是我们要去检查一下
就是我们要去检查一下
20:55.424–20:56.444
zh就是你会发现
就是你会发现
20:56.444–20:57.284
zh你加了一个配置之后
你加了一个配置之后
20:57.284–20:57.884
zh它没有生效
它没有生效
20:57.884–20:59.244
zh但是的话
但是的话
20:59.244–21:00.604
zh你的配置加上去了
你的配置加上去了
21:00.604–21:01.104
zh没问题
没问题
21:01.104–21:02.644
zh但是你一执行
但是你一执行
21:02.644–21:03.724
zh就发现这没生效
就发现这没生效
21:03.724–21:04.484
zh那你就可以看一下
那你就可以看一下
21:04.484–21:06.084
zh上级有没有更高的一些
上级有没有更高的一些
21:06.084–21:08.944
zh这个规范
这个规范
21:08.944–21:10.444
zh是不是把它给覆盖掉了
是不是把它给覆盖掉了
21:10.444–21:11.884
zh这个大家可以去检查一下
这个大家可以去检查一下
21:11.884–21:13.584
zh就我刚刚提到那几个层级
就我刚刚提到那几个层级
21:13.584–21:14.464
zh一个是全局的
一个是全局的
21:14.464–21:16.404
zh还有一个是用户级别的
还有一个是用户级别的
21:16.404–21:17.804
zh用户级别就是项目级别的
用户级别就是项目级别的
21:17.804–21:19.344
zh项目级别的你要看是
项目级别的你要看是
21:19.344–21:22.324
zh有没有agents.overall.md文件啊
有没有agents.overall.md文件啊
21:22.324–21:25.184
zh所以这个要特别的去检查一下
所以这个要特别的去检查一下
21:25.184–21:27.164
zh然后包括一些这个
然后包括一些这个
21:27.164–21:29.124
zh你加了一些备用文件名了
你加了一些备用文件名了
21:29.124–21:30.724
zh你会发现他也没有加载
你会发现他也没有加载
21:30.724–21:32.144
zh那你就要检查一下
那你就要检查一下
21:32.144–21:34.164
zh哎路径对不对啊是吧
哎路径对不对啊是吧
21:34.164–21:37.504
zh然后这个配置有没有生效啊
然后这个配置有没有生效啊
21:37.504–21:39.264
zh其实大家遇到这个问题之后啊
其实大家遇到这个问题之后啊
21:39.264–21:41.104
zh如果说你确实排查不出来的话
如果说你确实排查不出来的话
21:41.104–21:43.664
zh你可以把你的一个配置丢给codex
你可以把你的一个配置丢给codex
21:43.664–21:44.984
zh让他自己去分析
让他自己去分析
21:44.984–21:46.524
zh排查到底是哪里出错了
排查到底是哪里出错了
21:46.524–21:48.704
zh它的分析能力很强的
它的分析能力很强的
21:48.704–21:50.224
zh它一看可能你就知道
它一看可能你就知道
21:50.224–21:52.124
zh你这个确实哪里参数拼的有问题
你这个确实哪里参数拼的有问题
21:52.124–21:53.564
zh比如说路径写的有问题
比如说路径写的有问题
21:53.564–21:53.944
zh是吧
是吧
21:53.944–21:55.704
zh或者一些其他的参数写的有问题
或者一些其他的参数写的有问题
21:55.704–21:57.424
zh它马上就可以给你分析出来
它马上就可以给你分析出来
21:57.424–21:59.144
zh这个里面的话
这个里面的话
21:59.144–22:02.304
zh我们可以利用Codex这个分析能力
我们可以利用Codex这个分析能力
22:02.304–22:03.404
zh帮我们去做很多事情
帮我们去做很多事情
22:03.404–22:06.804
zh然后包括一些指令被截断了
然后包括一些指令被截断了
22:06.804–22:07.784
zh也就是说大家
也就是说大家
22:07.784–22:09.444
zh你写了一堆东西是吧
你写了一堆东西是吧
22:09.444–22:10.204
zh写了很多
写了很多
22:10.204–22:11.944
zh写了几百行几千行
写了几百行几千行
22:11.944–22:13.584
zh你发现最后执行的话
你发现最后执行的话
22:13.584–22:15.144
zh可能就识别到了几百行
可能就识别到了几百行
22:15.144–22:18.004
zh那这个的话就大家要把这个
那这个的话就大家要把这个
22:18.004–22:19.224
zh有一个参数啊
有一个参数啊
22:19.224–22:20.524
zh叫 project bookmarks
叫 project bookmarks
22:20.524–22:23.984
zh但是这个参数不是越大越好啊
但是这个参数不是越大越好啊
22:23.984–22:25.044
zh你改的越大的话
你改的越大的话
22:25.044–22:27.924
zh对于token的这个成本消耗也是比较大的
对于token的这个成本消耗也是比较大的
22:27.924–22:30.424
zh就相当于我们对话都没开始呢
就相当于我们对话都没开始呢
22:30.424–22:32.044
zh一开始就给你加了一堆内容去了
一开始就给你加了一堆内容去了
22:32.044–22:33.144
zh下到上下往里面去了
下到上下往里面去了
22:33.144–22:36.284
zh这样就会导致我们整个每次对话的时候
这样就会导致我们整个每次对话的时候
22:36.284–22:38.384
zh成本就会上升
成本就会上升
22:38.384–22:42.524
zh所以 agents.md 里面绝对不是内容越多越好啊
所以 agents.md 里面绝对不是内容越多越好啊
22:42.524–22:44.524
zh而是越精简越好
而是越精简越好
22:44.524–22:46.124
zh越核心越好
越核心越好
22:46.124–22:46.804
zh这样的话
这样的话
22:46.804–22:48.384
zh因为它的目标
因为它的目标
22:48.384–22:50.084
zh它就是去用来定规范的
它就是去用来定规范的
22:50.084–22:51.104
zh你不要把一些
你不要把一些
22:51.104–22:52.384
zh无关紧要的内容
无关紧要的内容
22:52.384–22:53.804
zh写到agents.md里面去
写到agents.md里面去
22:53.804–22:55.164
zh这样反而可能会
这样反而可能会
22:55.164–22:58.404
zh导致这个上下文超长
导致这个上下文超长
22:58.404–22:58.704
zh是吧
是吧
22:58.704–23:00.744
zh或者是它出现截断的这个问题
或者是它出现截断的这个问题
23:00.744–23:02.244
zh就明明你写这个指令
就明明你写这个指令
23:02.244–23:03.544
zh你发现它就是没有执行
你发现它就是没有执行
23:03.544–23:05.044
zh那是因为它被截断了
那是因为它被截断了
23:05.044–23:05.844
zh都没加载进来
都没加载进来
23:05.844–23:07.044
zh肯定就没法执行
肯定就没法执行
23:07.044–23:09.884
zh然后包括这个配置
然后包括这个配置
23:09.884–23:10.364
zh是吧
是吧
23:10.364–23:10.744
zh配置档
配置档
23:10.744–23:11.964
zh就是我们当前
就是我们当前
23:11.964–23:13.404
zh大家会发现
大家会发现
23:13.404–23:15.704
zh就是你我们已经在这个当前的
就是你我们已经在这个当前的
23:15.704–23:16.924
zh用户目录下
用户目录下
23:16.924–23:20.244
zh这个.codex目录里面改了这个agents.md了
这个.codex目录里面改了这个agents.md了
23:20.244–23:22.084
zh你发现他就是不生效
你发现他就是不生效
23:22.084–23:23.864
zh那这时候你可以去看一下
那这时候你可以去看一下
23:23.864–23:25.604
zh当前你有没有设置过环境变量
当前你有没有设置过环境变量
23:25.604–23:28.164
zh把codex这个目录是吧
把codex这个目录是吧
23:28.164–23:29.984
zh你给他设置到其他地方去了
你给他设置到其他地方去了
23:29.984–23:33.064
zh所以导致他整个逻辑的方法
所以导致他整个逻辑的方法
23:33.064–23:34.144
zh就是没有被执行到
就是没有被执行到
23:34.144–23:36.324
zh这个也是大家需要去确认的
这个也是大家需要去确认的
23:36.324–23:39.564
zh我们要把整个逻辑给他去确认一下
我们要把整个逻辑给他去确认一下
23:39.564–23:42.684
zh所以这个里面是一个非常关键的点
所以这个里面是一个非常关键的点
23:42.684–23:44.604
zh就是你这些目录你最基本的
就是你这些目录你最基本的
23:44.604–23:46.084
zh你要做一个确认
你要做一个确认
23:46.084–23:46.844
zh是吧
是吧
23:46.844–23:49.224
zh那这样就不会出现一些
那这样就不会出现一些
23:49.224–23:50.524
zh细节的一些问题
细节的一些问题
23:50.524–23:54.364
zh然后是agents.md到底应该怎么来写呢
然后是agents.md到底应该怎么来写呢
23:54.364–23:54.964
zh是吧
是吧
23:54.964–23:57.104
zh那大家可以写哪些内容呢
那大家可以写哪些内容呢
23:57.104–24:14.039
zh我这里给他看一个例子
我这里给他看一个例子
24:14.039–24:14.999
zh前端项目啊
前端项目啊
24:14.999–24:16.799
zh你看前端项目就是这套规范
你看前端项目就是这套规范
24:16.799–24:18.739
zh大家如果不知道怎么去写的话
大家如果不知道怎么去写的话
24:18.739–24:19.879
zh其实很简单啊
其实很简单啊
24:19.879–24:21.439
zh很简单怎么来干呢
很简单怎么来干呢
24:21.439–24:23.039
zh你可以打开这个codex啊
你可以打开这个codex啊
24:23.039–24:27.499
zh我这个是一个这个插件版的codex啊
我这个是一个这个插件版的codex啊
24:27.499–24:30.279
zh你就直接这么跟他说啊
你就直接这么跟他说啊
24:30.279–24:36.079
zh请帮我分析一下当前项目结构
请帮我分析一下当前项目结构
24:36.079–24:43.439
zh然后输出一份agents.md
然后输出一份agents.md
24:43.439–24:49.439
zh当前项目结构和代码规范
当前项目结构和代码规范
24:49.439–24:51.839
zh然后输出一份agents.md就完了
然后输出一份agents.md就完了
24:51.839–24:52.879
zh就很简单啊
就很简单啊
24:52.879–24:56.539
zh就大家你直接让AI来帮你分析输出一份
就大家你直接让AI来帮你分析输出一份
24:56.539–24:58.139
zh然后看他怎么写的
然后看他怎么写的
24:58.139–25:01.939
zh然后你再去参考再去调整是吧
然后你再去参考再去调整是吧
25:01.939–25:04.339
zh这也是一种学习方式啊
这也是一种学习方式啊
25:04.339–25:07.339
zh就让AI他肯定比你写的好啊
就让AI他肯定比你写的好啊
25:07.339–25:08.639
zh写的更加的完善
写的更加的完善
25:08.639–25:10.339
zh所以你看他怎么写就完事了
所以你看他怎么写就完事了
25:10.339–25:13.699
zh但是我这里面已经有了
但是我这里面已经有了
25:13.699–25:14.899
zh我就不重新生成了
我就不重新生成了
25:14.899–25:16.479
zh我只是给大家讲一下这个方法
我只是给大家讲一下这个方法
25:16.479–25:17.939
zh因为生成这个东西的话
因为生成这个东西的话
25:17.939–25:19.379
zh他也要去做各种分析
他也要去做各种分析
25:19.379–25:21.279
zh也比较时间比较久
也比较时间比较久
25:21.279–25:23.539
zh所以这个大家可以自己去生成
所以这个大家可以自己去生成
25:23.539–25:25.819
zh我这个就是用AI生成的
我这个就是用AI生成的
25:25.819–25:28.699
zh你看他这个里面就帮我分析出来了
你看他这个里面就帮我分析出来了
25:28.699–25:30.759
zh我这个用了这个Codex
我这个用了这个Codex
25:30.759–25:32.419
zhHarness Engineering的一些
Harness Engineering的一些
25:32.419–25:34.059
zh这个实现是吧
这个实现是吧
25:34.059–25:35.739
zh然后我的项目结构
然后我的项目结构
25:35.739–25:36.479
zh有POM
有POM
25:36.479–25:37.759
zh有Admin模块
有Admin模块
25:37.759–25:38.779
zh有Framework
有Framework
25:38.779–25:39.819
zh有System
有System
25:39.819–25:40.959
zh有UI
有UI
25:40.959–25:42.259
zh这个UI是个前端项目
这个UI是个前端项目
25:42.259–25:43.859
zh然后它的一个工程规范
然后它的一个工程规范
25:43.859–25:45.959
zh就是一些插件包
就是一些插件包
25:45.959–25:46.419
zh是吧
是吧
25:46.419–25:47.819
zh然后还有一些白名单
然后还有一些白名单
25:47.819–25:50.779
zh等等的一些细节是怎么样的
等等的一些细节是怎么样的
25:50.779–25:53.239
zh包括我们这个 Harness Engineer
包括我们这个 Harness Engineer
25:53.239–25:55.359
zh它的一个工作流应该是怎么样的
它的一个工作流应该是怎么样的
25:55.359–25:56.559
zh这个就是我之前
这个就是我之前
25:56.559–25:59.239
zh落地的一套Harness Engineer
落地的一套Harness Engineer
25:59.239–26:02.699
zh包括它的一些核心的后端命令
包括它的一些核心的后端命令
26:02.699–26:03.799
zh这个打包的是吧
这个打包的是吧
26:03.799–26:04.459
zh编译的
编译的
26:04.459–26:06.019
zh这都是非常核心的一个命令
这都是非常核心的一个命令
26:06.019–26:07.919
zh然后数据库与配置
然后数据库与配置
26:07.919–26:09.819
zh质量门槛
质量门槛
26:09.819–26:12.859
zh就是这个就是做一些执行啊
就是这个就是做一些执行啊
26:12.859–26:14.739
zh要去确认的一些点
要去确认的一些点
26:14.739–26:16.759
zh这个是后端的
这个是后端的
26:16.759–26:18.799
zh那前端的话其实也是一样的
那前端的话其实也是一样的
26:18.799–26:20.799
zh前端他特殊的规范的话
前端他特殊的规范的话
26:20.799–26:22.959
zh就是无非也就是结构啊
就是无非也就是结构啊
26:22.959–26:23.239
zh是吧
是吧
26:23.239–26:24.459
zh比如技术栈是什么
比如技术栈是什么
26:24.459–26:25.919
zh是 Vue 还是 React
是 Vue 还是 React
26:25.919–26:27.999
zh然后一些啊
然后一些啊
26:27.999–26:29.139
zh包是吧
包是吧
26:29.139–26:30.019
zh一些文件夹
一些文件夹
26:30.019–26:31.539
zh他应该放什么组件
他应该放什么组件
26:31.539–26:33.199
zh他的编码规范啊
他的编码规范啊
26:33.199–26:33.599
zh是什么
是什么
26:33.599–26:35.779
zh然后JavaScript的
然后JavaScript的
26:35.779–26:37.799
zh他的编码风格应该是什么样的
他的编码风格应该是什么样的
26:37.799–26:39.439
zh包括一些前端命令
包括一些前端命令
26:39.439–26:40.599
zhNPM 的一些命令
NPM 的一些命令
26:40.599–26:42.219
zh包括 Lint 的一些约束
包括 Lint 的一些约束
26:42.219–26:44.519
zh这个就是前端
这个就是前端
26:44.519–26:48.399
zh这个agents.md需要关注一点
这个agents.md需要关注一点
26:48.399–26:50.859
zh所以大家你说怎么写呢
所以大家你说怎么写呢
26:50.859–26:52.219
zh如果你也不知道怎么去写
如果你也不知道怎么去写
26:52.219–26:52.719
zh很简单
很简单
26:52.719–26:54.099
zh你就让 AI 帮你去生成
你就让 AI 帮你去生成
26:54.099–26:55.559
zh让他去分析
让他去分析
26:55.559–26:57.599
zh大家一定要加这个分析这两个字
大家一定要加这个分析这两个字
26:57.599–26:58.559
zh就是你不要说
就是你不要说
26:58.559–27:00.519
zh你就直接帮我写一份agents.md
你就直接帮我写一份agents.md
27:00.519–27:01.839
zh但是你没有提到
但是你没有提到
27:01.839–27:03.519
zh让他分析当前项目
让他分析当前项目
27:03.519–27:05.799
zh但他还是会分析当前项目的
但他还是会分析当前项目的
27:05.799–27:08.119
zh所以你最好写清楚一点
所以你最好写清楚一点
27:08.119–27:10.999
zh就分析当前项目结构跟代码规范
就分析当前项目结构跟代码规范
27:10.999–27:12.039
zh这样的话
这样的话
27:12.039–27:15.099
zh他肯定会把那些目录给他扫一遍
他肯定会把那些目录给他扫一遍
27:15.099–27:15.419
zh是吧
是吧
27:15.419–27:17.399
zh所以这个就是一个
所以这个就是一个
27:17.399–27:20.179
zh使用习惯的这个提示词
使用习惯的这个提示词
27:20.179–27:21.739
zh大家可以做一些优化
大家可以做一些优化
27:21.739–27:23.319
zh所以
所以
27:23.319–27:25.759
zhagents.md里面大家就可以看到
agents.md里面大家就可以看到
27:25.759–27:27.519
zh你看基本上是100行以内
你看基本上是100行以内
27:27.519–27:28.359
zh是吧
是吧
27:28.359–27:30.779
zh并且的话写的都是一些关键内容
并且的话写的都是一些关键内容
27:30.779–27:33.039
zh就是一些非常核心的模块
就是一些非常核心的模块
27:33.039–27:34.259
zh命令啊
命令啊
27:34.259–27:37.559
zh然后配置啊等等的是吧
然后配置啊等等的是吧
27:37.559–27:38.639
zh包括结构
包括结构
27:38.639–27:40.199
zh但是非常核心的内容
但是非常核心的内容
27:40.199–27:41.819
zh就大家后段项目
就大家后段项目
27:41.819–27:43.839
zh你就可以参考这个去做啊
你就可以参考这个去做啊
27:43.839–27:44.459
zh就这个规范
就这个规范
27:44.459–27:45.279
zh你可以参考一下
你可以参考一下
27:45.279–27:46.559
zh如果是前端的话
如果是前端的话
27:46.559–27:48.839
zh你也可以去看一下啊
你也可以去看一下啊
27:48.839–27:51.779
zh包括其实我们之前啊
包括其实我们之前啊
27:51.779–27:54.359
zh这里写了一个小游戏是吧
这里写了一个小游戏是吧
27:54.359–27:57.619
zh这个是我之前写的一个小游戏的这么一个
这个是我之前写的一个小游戏的这么一个
27:57.619–28:00.019
zhagents.md是吧
agents.md是吧
28:00.019–28:00.799
zh就是让他分析
就是让他分析
28:00.799–28:02.659
zh我这个里面用python写的啊
我这个里面用python写的啊
28:02.659–28:04.119
zh你看这个就是python的一套
你看这个就是python的一套
28:04.119–28:06.319
zhagent.md的描述是吧
agent.md的描述是吧
28:06.319–28:09.299
zh所以怎么来写啊
所以怎么来写啊
28:09.299–28:10.799
zh规范是怎么样的
规范是怎么样的
28:10.799–28:12.779
zh这里我也给大家说一下技巧
这里我也给大家说一下技巧
28:12.779–28:13.939
zh首先啊
首先啊
28:13.939–28:14.739
zh大家不知道怎么写
大家不知道怎么写
28:14.739–28:17.039
zh你可以参考一下我这个规范是吧
你可以参考一下我这个规范是吧
28:17.039–28:18.799
zh我这个的话也是用Codex分析
我这个的话也是用Codex分析
28:18.799–28:19.419
zh让它写出来
让它写出来
28:19.419–28:22.559
zh然后大家也可以自己用Codex去分析出来
然后大家也可以自己用Codex去分析出来
28:22.559–28:24.119
zh然后在此基础之上啊
然后在此基础之上啊
28:24.119–28:25.639
zh这个是可以改的啊
这个是可以改的啊
28:25.639–28:26.719
zh就比如说AI
就比如说AI
28:26.719–28:29.279
zh它有可能也没有分析出来啊
它有可能也没有分析出来啊
28:29.279–28:32.699
zh这个真实的一个情况啊
这个真实的一个情况啊
28:32.699–28:34.199
zh它有可能是分析错了
它有可能是分析错了
28:34.199–28:35.599
zh所以这个就需要我们
所以这个就需要我们
28:35.599–28:37.659
zh作为开发人员你要去纠正嘛
作为开发人员你要去纠正嘛
28:37.659–28:40.939
zh就是AI他也不能百分百说就没有问题了
就是AI他也不能百分百说就没有问题了
28:40.939–28:44.559
zh所以这里面大家需要自己去看一下啊
所以这里面大家需要自己去看一下啊
28:44.559–28:46.119
zh就是有问题你就调一下
就是有问题你就调一下
28:46.119–28:50.079
zh因为有一些规范的话
因为有一些规范的话
28:50.079–28:51.479
zhAI他分析出来的话
AI他分析出来的话
28:51.479–28:53.859
zh他的描述会有点怪怪的啊
他的描述会有点怪怪的啊
28:53.859–28:57.839
zh就是没有我们自己作为开发人员那种理解能力啊
就是没有我们自己作为开发人员那种理解能力啊
28:57.839–29:00.179
zh就是他可能还不够强啊
就是他可能还不够强啊
29:00.179–29:02.219
zh当然基本上啊
当然基本上啊
29:02.219–29:03.379
zh这个很准啊
这个很准啊
29:03.379–29:04.099
zh大家可以去试一下
大家可以去试一下
29:04.099–29:05.079
zh看你用什么模型
看你用什么模型
29:05.079–29:06.379
zh比如说你用 Claude 的模型
比如说你用 Claude 的模型
29:06.379–29:07.959
zh或者用Codex 5.3
或者用Codex 5.3
29:07.959–29:08.819
zh它的效果很好
它的效果很好
29:08.819–29:10.279
zh但是你用其他模型的话
但是你用其他模型的话
29:10.279–29:11.719
zh这个就不敢保证了
这个就不敢保证了
29:11.719–29:13.879
zh所以这个回头大家可以去试一下
所以这个回头大家可以去试一下
尚未產生學習筆記
請在 Telegram 指令最後加上「學習」,例如:videonote 網址 英文 雙語 學習