實際影片長度:1:00:59.000。原文、繁中、雙語可點擊句子跳轉影片。
0:00.000–0:02.407
So, Codex is an absolutely incredible super app.
0:02.407–0:03.862
I've been using it a lot more lately,
0:03.862–0:05.851
and I'm not saying that I'm ditching Claude Code.
0:05.851–0:07.240
I still use them both regularly
0:07.240–0:09.378
because they're both good at different things.
0:09.378–0:13.460
So, today's video, I'm going to break down every single important thing that you need to know about Codex
0:13.460–0:15.619
to be able to, you know, open up the app for the first time
0:15.619–0:18.960
and then actually have finished automations and websites and whatever you want to do
0:18.960–0:21.080
in Codex done by the end of this video.
0:21.080–0:23.249
So, whether you've never opened up a tool like this before
0:23.249–0:25.283
or if you're already kind of used to using Claude Code,
0:25.283–0:27.271
I'm going to break down everything as simple as I can.
0:27.271–0:32.126
So, first of all, if you fit in this bucket of someone that uses ChatGPT just on the web or uses Claude,
0:32.126–0:33.939
you are going to get this really quick
0:33.939–0:36.513
because what we're looking at right here is ChatGPT.
0:36.513–0:38.098
We have the ability to make new chats,
0:38.098–0:39.325
we can search through chats,
0:39.325–0:40.705
we can have different projects,
0:40.705–0:42.750
we can have all of our different chats over here,
0:42.750–0:44.232
and then we talk to chat right here.
0:44.232–0:48.163
And if I open up the Codex app, which is what we're going to be using today for the entire video,
0:48.163–0:49.695
it looks pretty much the exact same.
0:49.695–0:51.130
We have projects on the left,
0:51.130–0:52.387
we have chats on the left,
0:52.387–0:54.480
and then we can talk to ChatGPT right here.
0:54.480–0:56.654
We use this toggle to change the model
0:56.654–0:59.670
whether we want to use GPT 5.5, 5.4, or other models.
0:59.670–1:00.787
We can change the speed,
1:00.787–1:02.910
and then we can also change the intelligence.
1:02.910–1:04.911
So, low, medium, high, or extra high.
1:04.911–1:08.054
And I'll get into this stuff a little bit later in more depth.
1:08.054–1:10.576
And this is also very similar to the Claude Code desktop app
1:10.576–1:12.995
where we have the ability to chat with Claude right here,
1:12.995–1:15.877
and then on the left-hand side we can see our chats and our projects.
1:15.877–1:17.187
So, that is the interface.
1:17.187–1:18.320
Don't get overwhelmed.
1:18.320–1:20.563
So, I'm going to get you guys all familiar with the interface
1:20.563–1:22.403
and go over all the settings that you need to know,
1:22.403–1:25.499
and then I'm going to show you a full project from beginning to end building skills,
1:25.499–1:26.351
connecting to things,
1:26.351–1:27.505
building automations,
1:27.505–1:29.859
and then deploying on some sort of website.
1:29.859–1:30.571
So, buckle up.
1:30.571–1:32.440
All right, so what actually is Codex?
1:32.440–1:35.270
Codex is basically a massive super app.
1:35.270–1:37.788
We can use ChatGPT same way you talk to it on the web,
1:37.788–1:39.166
but now we work in projects,
1:39.166–1:40.905
and Codex can create Excel sheets,
1:40.905–1:41.864
read Excel sheets,
1:41.864–1:43.602
look through all your local files.
1:43.602–1:45.594
It can do basically anything on your computer
1:45.594–1:47.324
including using the mouse and keyboard
1:47.324–1:48.216
and clicking around
1:48.216–1:49.369
and automating a browser.
1:49.369–1:51.632
It also lets us build these reusable skills.
1:51.632–1:52.679
We can build websites,
1:52.679–1:53.506
we can build apps,
1:53.506–1:54.664
we can build video games,
1:54.664–1:55.766
and then we can automate
1:55.766–1:56.813
and push all that stuff
1:56.813–1:57.916
so that it actually runs
1:57.916–1:59.514
while we're sleeping every night.
1:59.514–2:01.398
So, the main difference here between web chat
2:01.398–2:03.035
is that you're basically just talking.
2:03.035–2:04.693
And you have these connectors in chat GPT now,
2:04.693–2:06.395
so you can get a little bit more functionality.
2:06.395–2:10.080
You can give that AI brain a bit more of like hands.
2:10.080–2:13.040
But, in Codex, it can do everything.
2:13.040–2:14.088
It's one of those things
2:14.088–2:16.132
where Codex can do everything that chat can do,
2:16.132–2:18.438
but chat cannot do nearly as much as what Codex can do.
2:18.438–2:21.022
So, you might as well just switch over to something like Codex.
2:21.022–2:23.950
And if you are curious about the Claude code versus Codex difference,
2:23.950–2:25.565
they're different harnesses, right?
2:25.565–2:28.012
So, they fundamentally work a little bit different,
2:28.012–2:28.958
but very similarly.
2:28.958–2:30.588
They also use different models.
2:30.588–2:33.041
So, Claude code natively under the hood uses Opus
2:33.041–2:33.580
and Sonnet
2:33.580–2:34.118
and Haiku,
2:34.118–2:37.120
and Codex under the hood uses the different chat GPT models.
2:37.120–2:38.438
Now, I did do a full breakdown
2:38.438–2:40.689
where I actually tested Opus 4.7 against GPT 5.5,
2:40.689–2:42.666
and I got some really interesting results.
2:42.666–2:44.513
So, if you guys want to check out this video next,
2:44.513–2:45.575
I'll tag that right up here.
2:45.575–2:47.901
I definitely think it's worth just at least skimming through.
2:47.901–2:50.683
Because ultimately, these models have very different strengths
2:50.683–2:53.009
is what I've noticed after playing with them non-stop.
2:53.009–2:55.728
I really like Claude for being sort of like exploratory
2:55.728–2:56.674
and brainstorming
2:56.674–2:58.033
and helping me get creative
2:58.033–2:59.274
and think through things
2:59.274–2:59.747
and plan.
2:59.747–3:02.440
But then, I really like Codex for being pragmatic.
3:02.440–3:05.093
And it feels like it does better at following my plan
3:05.093–3:06.944
if the plan grows longer and longer.
3:06.944–3:08.528
And it's really good at executing,
3:08.528–3:10.275
and it's really good at finding issues
3:10.275–3:11.586
and troubleshooting things
3:11.586–3:14.098
that sometimes Claude, for some reason, can't handle.
3:14.098–3:14.251
So,
3:14.251–3:16.850
I'm not in here saying that I love Codex more than Claude code.
3:16.850–3:18.550
I'm saying that I'm using them both,
3:18.550–3:20.589
and I'm learning more about both every day.
3:20.589–3:23.706
And one other thing I really like about Codex is you can see my little pet down here,
3:23.706–3:25.494
which I'll tell you guys how you get this later.
3:25.494–3:26.096
But this pet,
3:26.096–3:27.135
while you're working,
3:27.135–3:28.830
it stays in the bottom of your screen,
3:28.830–3:30.526
and it tells you what it's working on.
3:30.526–3:30.691
So,
3:30.691–3:32.505
it's really nice to be able to multitask
3:32.505–3:34.440
and see what's happening inside of Codex.
3:34.440–3:35.770
And the pet's kind of funny.
3:35.770–3:37.117
And it's more than just having chats.
3:37.117–3:39.959
It's the ability to have everything organized on your workspace.
3:39.959–3:43.428
So, if you guys watch my recent video about Claude code operating system,
3:43.428–3:45.588
or you've seen my executive assistant video,
3:45.588–3:46.953
this is my heart two project,
3:46.953–3:49.512
which is basically where I live inside of Claude code.
3:49.512–3:52.029
And all of this is is a bunch of folders and files.
3:52.029–3:53.388
I've got a bunch of files here.
3:53.388–3:54.727
I've got a bunch of different folders.
3:54.727–3:55.401
I've got settings.
3:55.401–3:56.114
I've got skills.
3:56.114–3:56.849
I've got agents.
3:56.849–3:57.798
I've got projects.
3:57.798–3:58.959
I've got all these things
3:58.959–3:59.898
that I'm working on.
3:59.898–4:00.819
And all this is
4:00.819–4:02.440
is a bunch of local files.
4:02.440–4:04.176
Which means I can have Codex work
4:04.176–4:05.527
inside of this directory
4:05.527–4:06.942
and do everything as well.
4:06.942–4:07.856
All that we're doing
4:07.856–4:09.685
when we're using these different models
4:09.685–4:11.729
is we're organizing things into a structure.
4:11.729–4:13.803
A structure that different agent harnesses can understand.
4:13.803–4:15.425
And whether you want to use Codex
4:15.425–4:16.145
or Claude Code
4:16.145–4:16.626
or Cursor
4:16.626–4:17.827
or, you know, Open Claw,
4:17.827–4:18.608
whatever it is,
4:18.608–4:20.600
they can all work out of that directory.
4:20.600–4:22.796
As long as you have some sort of instructions
4:22.796–4:25.170
and guidelines over what actually lives where.
4:25.170–4:28.348
Okay, so basically what I'm going to be building with you guys today
4:28.348–4:30.732
is a bit of a YouTube comment intelligence system.
4:30.732–4:34.179
So we want to be able to pull in YouTube comments from my channel.
4:34.179–4:35.986
We want to be able to have those be analyzed.
4:35.986–4:37.241
We want a workbook in Excel.
4:37.241–4:39.184
We want like some data visualization.
4:39.184–4:41.833
And we want a dashboard that lives somewhere on the web
4:41.833–4:44.306
so I could go check it on my phone if I'm out on a walk.
4:44.306–4:46.701
And I'm going to show you how we ship and deploy all of that.
4:46.701–4:50.356
So basically from zero to a working project is what I'm going to show you guys today.
4:50.356–4:50.529
So,
4:50.529–4:51.219
let me go ahead
4:51.219–4:52.370
and open up the Codex app
4:52.370–4:53.923
and show you guys how this works.
4:53.923–4:54.765
Now real quick,
4:54.765–4:55.736
what you have to do
4:55.736–4:57.560
is have some sort of ChatGPT plan.
4:57.560–4:58.264
The good news is
4:58.264–4:59.076
if you're on free,
4:59.076–5:00.322
you can still try out Codex.
5:00.322–5:01.907
You have limited Codex access.
5:01.907–5:02.961
But I would recommend
5:02.961–5:04.659
just hopping on the $20 a month plan
5:04.659–5:05.420
to get started.
5:05.420–5:07.959
And if you're running into your limits pretty quickly,
5:07.959–5:09.670
then maybe you want to upgrade to Pro.
5:09.680–5:12.631
Now what else is really nice about ChatGPT subscription is
5:12.631–5:14.919
you can plug it into Open Claw or Hermes Agent,
5:14.919–5:16.364
which is really really nice.
5:16.364–5:19.096
Because obviously it's so much more expensive to pay per token
5:19.096–5:21.197
rather than being on some sort of subscription.
5:21.197–5:23.307
And then you're just going to go ahead and go to Codex
5:23.307–5:25.663
and then just download the app for your operating system.
5:25.663–5:27.908
That's the way that we're going to be using it today.
5:27.908–5:31.170
Ultimately, you will be getting more full functionality
5:31.170–5:33.548
if you're using Codex in VS Code extension
5:33.548–5:34.635
or in the terminal.
5:34.635–5:36.214
But for the sake of the video,
5:36.214–5:39.120
using the app is going to get you super far either way.
5:39.120–5:40.996
There's just a few little things you want to keep in mind,
5:40.996–5:42.433
which is why I'm making this YouTube video.
5:42.433–5:44.707
All right, so let's go ahead and get started.
5:44.707–5:46.224
So, on the left-hand side you can see
5:46.224–5:47.337
I've got one project open,
5:47.337–5:51.028
and this project is actually how I built the slide deck that you were looking at earlier.
5:51.028–5:53.624
So, this slide deck I built right here in this project,
5:53.624–5:55.412
and you can see because I'm in the app,
5:55.412–5:59.449
Codex lets us basically navigate this right here in this little localhost browser.
5:59.449–6:00.967
And this is also where if I said,
6:00.967–6:05.403
"Hey, can you use browser use and test out this slide deck to make sure everything looks good
6:05.403–6:08.040
and make sure it functionally like clicks and moves?"
6:08.040–6:09.693
Then it would bring up a mouse over here,
6:09.693–6:10.995
and we would see it move around,
6:10.995–6:12.046
and we would see it click,
6:12.046–6:13.849
which I'll show you guys later in the video.
6:13.849–6:15.533
But anyways, what we're going to do is
6:15.533–6:17.054
we're going to start a new project
6:17.054–6:19.771
because over here you can see we have a bunch of random chats,
6:19.771–6:23.791
which can still do things like building games and building automations and simulators.
6:23.791–6:26.523
But what we want to do is we want to work inside of an actual project
6:26.523–6:29.914
because these chats, any deliverable that we create doesn't really have a home,
6:29.914–6:32.393
you know, it just lives somewhere random in our documents.
6:32.393–6:34.625
But when we're working in a certain project,
6:34.625–6:37.098
I can actually grab the local working directory,
6:37.098–6:37.821
so I copy that,
6:37.821–6:40.294
and if I go into my file explorer and paste that in,
6:40.294–6:43.320
now I'm inside of the actual project that we're working on in
6:43.320–6:43.638
Codex.
6:43.638–6:46.265
So, now I can see different assets that live in this project,
6:46.265–6:47.053
all these images.
6:47.053–6:48.602
I can see different guides,
6:48.602–6:53.315
and I can have a little bit more organization to this ongoing project in my business.
6:53.315–6:55.315
All right, so we're going to start a new project.
6:55.315–6:57.360
I'm going to click on new chat in the top,
6:57.360–7:00.770
and then right here you can see I'm inside of the Codex 95% project,
7:00.770–7:03.249
but we're going to go ahead and add a new project.
7:03.249–7:06.394
So, that's going to open up a little um file explorer over here,
7:06.394–7:08.752
and then you choose where you want this to live.
7:08.752–7:11.824
So, for this example, I'm going to go to my desktop,
7:11.824–7:14.896
I'm going to go into a folder called Codex YouTube,
7:14.896–7:20.747
and I'm going to create a new folder inside of this folder just called um YouTube analytics demo.
7:20.747–7:23.477
And we're going to go ahead and open up this folder and select that,
7:23.477–7:27.697
and now you can see it's a new project over here on this left-hand side that we're going to be working in.
7:27.697–7:29.744
Now, right here you can see I have something called full access.
7:29.744–7:31.181
By default, you won't see this,
7:31.181–7:32.960
it'll just be on default permissions.
7:32.960–7:34.771
So, I'm going to kick off some sort of chat here,
7:34.771–7:36.814
and then I'll show you how we actually get that set up.
7:36.814–7:37.638
Real quick, guys,
7:37.638–7:40.276
I know we're going over a ton of information in this video,
7:40.276–7:45.058
so what I did is I threw all of this into a complete PDF resource guide that you can use and reference later.
7:45.058–7:47.423
All you have to do to get that is join my free school community.
7:47.423–7:48.897
The link for that is down in the description.
7:48.897–7:49.992
And once you get in here,
7:49.992–7:52.510
go to the classroom and click on all YouTube resources,
7:52.510–7:54.372
and you'll be able to find all of my repos,
7:54.372–7:55.138
all of my skills,
7:55.138–7:55.960
resource guides,
7:55.960–7:59.135
everything that I've ever dropped inside of here is completely free,
7:59.135–8:00.240
and anything I've shown
8:00.240–8:01.910
on YouTube is usually dropped in here.
8:01.920–8:02.749
So, join the community,
8:02.749–8:03.620
link in the description,
8:03.620–8:04.698
and let's get back to the video.
8:04.698–8:05.171
Thanks, guys.
8:05.171–8:08.288
All right, so the first thing that I want to do in this project is
8:08.288–8:11.944
I want it to be able to just kind of familiarize with self with my workspace
8:11.944–8:12.783
and with who I am.
8:12.783–8:15.050
And the way that I'm going to do that is
8:15.050–8:16.586
I have a project locally.
8:16.586–8:17.413
If I go to my um
8:17.413–8:18.616
if I go to my desktop
8:18.616–8:21.473
and I go into a project here called YouTube OS,
8:21.473–8:25.834
I have like all of my transcripts right here from some YouTube videos.
8:25.834–8:26.814
So, what I'm going to do is
8:26.814–8:28.308
I'm not going to give it that file path.
8:28.308–8:30.621
I'm just going to say, "Hey, in my desktop,
8:30.621–8:32.471
look inside my YouTube OS folder,
8:32.471–8:34.652
and just pull in 10 of my raw transcripts
8:34.652–8:35.719
and analyze them."
8:35.719–8:39.481
This is just to show you guys how good it's going to be at finding different files locally
8:39.481–8:40.872
and being able to organize them,
8:40.872–8:41.336
move them,
8:41.336–8:41.903
delete them,
8:41.903–8:42.727
whatever you want.
8:42.727–8:44.702
In this case, I'm just telling it to read them.
8:44.702–8:47.131
All right, so I want you to go onto my desktop,
8:47.131–8:49.889
and I want you to look at a folder called YouTube OS,
8:49.889–8:52.712
and I just want you to familiarize yourself with me.
8:52.712–8:55.299
I make YouTube videos on AI automation,
8:55.299–8:57.023
and inside of this folder,
8:57.023–8:59.375
I have a bunch of my raw transcripts.
8:59.375–9:01.586
So, I just want you to read through like 5 to 10 of those
9:01.586–9:04.350
just to familiarize yourself with the type of content that I make.
9:04.350–9:05.655
You shouldn't do any organization.
9:05.655–9:07.432
I just want you to read those for context.
9:07.432–9:09.048
Now, what's cool about this is
9:09.048–9:11.762
Codex, once again, is an agent that lives locally.
9:11.762–9:14.683
So, just because it's working inside of one project,
9:14.683–9:17.670
which is our, you know, um YouTube sort of demo folder,
9:17.670–9:22.251
that doesn't mean that it can't navigate anywhere else inside of your local files.
9:22.251–9:23.874
And because we're telling it to do so,
9:23.874–9:24.816
it's going to search.
9:24.816–9:27.318
Right here, you can see it's searching inside of my desktop.
9:27.318–9:29.037
And then it's going to find the YouTube OS,
9:29.037–9:30.903
and it's going to drill down into that folder.
9:30.903–9:33.960
And it's going to keep searching until it finds what it wants.
9:33.960–9:35.028
Now, a quick warning.
9:35.028–9:37.543
This is not the most effective use of Codex
9:37.543–9:38.621
or of your tokens.
9:38.621–9:44.200
The more effective use would be to say, "Hey, this is the folder right here with all my raw transcripts.
9:44.200–9:45.570
I'm going to copy this path,
9:45.570–9:48.132
and I'm now just going to give Codex this exact path,
9:48.132–9:51.706
so it can just look in there instead of having to search for it on its own."
9:51.706–9:54.268
But I just wanted to show you how it's able to do this.
9:54.268–9:55.478
Because you can see right here,
9:55.478–9:56.780
inside of my transcripts folder,
9:56.780–9:57.618
I have one called raw,
9:57.618–9:59.339
and that's the one that I wanted it to look at.
9:59.339–10:01.597
And right here it says there are two files,
10:01.597–10:02.888
raw and then processed.
10:02.888–10:05.091
So it doesn't know which one to look through.
10:05.091–10:05.589
So anyways,
10:05.589–10:07.583
the more specific you can be with your prompting
10:07.583–10:08.580
and with your pointing,
10:08.580–10:09.078
the better.
10:09.078–10:09.798
Now let's also,
10:09.798–10:10.851
while this is running,
10:10.851–10:12.569
talk about the model stuff over here.
10:12.569–10:14.829
So right now you've noticed that we're on extra high.
10:14.829–10:18.560
And I would say that extra high is probably overkill for that sort of job.
10:18.560–10:19.495
For the most part,
10:19.495–10:21.553
I'm using medium to do all of my planning
10:21.553–10:22.738
and my brainstorming.
10:22.738–10:24.096
And then every once in a while,
10:24.096–10:25.182
if I'm doing a huge build
10:25.182–10:26.215
or some massive scale,
10:26.215–10:27.138
I'll switch to high.
10:27.138–10:29.333
I'm honestly hardly using extra high
10:29.333–10:31.386
unless I'm hitting some sort of bug
10:31.386–10:33.520
or issue that it's not able to solve.
10:33.520–10:33.968
Anyways,
10:33.968–10:35.369
it has read nine transcripts,
10:35.369–10:38.226
so it has a little bit of a better of an idea now about who we are.
10:38.226–10:39.290
But just to show you guys,
10:39.290–10:41.267
this is still the folder that we're working in,
10:41.267–10:42.483
the YouTube Analytics Demo,
10:42.483–10:44.105
and there's nothing that exists here.
10:44.105–10:45.712
So even though it knows this,
10:45.712–10:49.327
this knowledge only really lives in our overall ChatGPT memory,
10:49.327–10:51.202
and in this specific chat window.
10:51.202–10:52.406
If I opened up a new chat,
10:52.406–10:55.357
it probably wouldn't still have the knowledge about this.
10:55.357–10:57.348
So what I'd probably want to do is say,
10:57.348–10:59.916
"What I want you to do is set up an agents.md file.
10:59.916–11:01.676
This should have context about me
11:01.676–11:03.876
and about what the goal of this project is.
11:03.876–11:04.416
Ultimately,
11:04.416–11:05.596
what we're going to do here is
11:05.596–11:06.922
we're going to build a dashboard
11:06.922–11:08.495
that's going to be pushed to dashboard
11:08.495–11:09.969
that's going to be pushed to Vercel,
11:09.969–11:12.082
and it's going to have information about my channel
11:12.082–11:13.320
and some analytics around the
11:13.320–11:14.717
comments and stuff like that.
11:14.717–11:15.661
So that's the end goal.
11:15.661–11:17.192
We're going to have to connect to YouTube,
11:17.192–11:18.461
we're going to have to pull in data,
11:18.461–11:19.643
we're going to set up some skills
11:19.643–11:20.474
and some automations.
11:20.474–11:22.804
But I just want you to get us started here
11:22.804–11:24.498
with a quick agents.md file.
11:24.498–11:26.000
And now I'm going to go ahead
11:26.000–11:27.120
and shoot that off."
11:27.120–11:29.114
Now, why do we need to create an agents.md file?
11:29.114–11:31.249
Well, if you're coming over from Cloud Code,
11:31.249–11:33.441
you know that we always want to start a project
11:33.441–11:34.537
with a Claude.md file.
11:34.537–11:36.297
And this is just agents.md,
11:36.297–11:37.598
it's the same thing,
11:37.598–11:40.440
but Codex expects a different terminology.
11:40.440–11:41.916
And what this agents file does is
11:41.916–11:42.846
it's basically like
11:42.846–11:43.840
it's onboarding doc.
11:43.840–11:45.573
Every time you open up a new chat,
11:45.573–11:48.206
it's first of all going to read the agents.md file
11:48.206–11:49.875
and it's going to get organized
11:49.875–11:50.967
with what is my goal,
11:50.967–11:52.251
what is this user doing,
11:52.251–11:54.883
and how do I help them as effectively as possible.
11:54.883–11:56.433
So, this document has been created.
11:56.433–11:58.649
If I click on open, we're going to be able to read it right here.
11:58.649–12:00.460
And it's just a very simple markdown file.
12:00.460–12:02.013
This is the project right here.
12:02.013–12:04.443
This is about Nate's, Nate Herc does this.
12:04.443–12:05.960
This is the project goal.
12:05.960–12:07.183
This is the product direction.
12:07.183–12:09.866
So, we're just giving it really important information
12:09.866–12:11.800
that it needs to know about our project.
12:11.800–12:14.198
And you can see now if I pull the file explorer over,
12:14.198–12:16.310
it has created this agents markdown folder,
12:16.310–12:17.852
which is exactly what we wanted.
12:17.852–12:19.160
Sorry, not folder, file.
12:19.160–12:20.595
Okay, so now that that's out of the way,
12:20.595–12:22.344
I'm going to go ahead and close back out of that,
12:22.344–12:23.520
and we're going to get started.
12:23.520–12:24.400
So, what I'm going to do is
12:24.400–12:25.532
I'm going to click on this button
12:25.532–12:26.705
and I'm going to turn on plan mode.
12:26.705–12:28.888
Plan mode is what I like to start with
12:28.888–12:31.071
when I am creating some sort of plan.
12:31.071–12:33.817
That basically means that Codex won't actually execute anything,
12:33.817–12:35.043
it's just going to brainstorm
12:35.043–12:37.102
and help you guys get clear on what you want to build
12:37.102–12:38.328
before you actually build it.
12:38.328–12:40.240
So, I always start with plan mode.
12:40.240–12:41.400
Now, I'm just going to start yapping.
12:41.400–12:44.126
And by the way, if you guys are curious about the tool I use for voice-to-text,
12:44.126–12:45.276
check it out in the description,
12:45.276–12:45.957
it's called Glido.
12:45.957–12:47.727
I'm now an official member of the Glido team,
12:47.727–12:48.732
which is super exciting.
12:48.732–12:51.090
I've fully switched over from Whisper to Glido
12:51.090–12:52.178
because it's faster,
12:52.178–12:53.145
it's more private,
12:53.145–12:54.777
and it is a way more agentic tool,
12:54.777–12:56.530
and we've got a really cool vision.
12:56.530–12:57.913
So, check it out in the description.
12:57.913–13:00.323
Okay, so now that you understand that context,
13:00.323–13:02.238
the first hurdle for us to overcome is
13:02.238–13:04.338
how do you actually connect to my YouTube
13:04.338–13:06.192
in order to be able to pull in my data.
13:06.192–13:07.796
I want you to be able to specifically
13:07.796–13:09.987
at this point be able to pull in a bunch of comments
13:09.987–13:11.280
so that you can analyze them.
13:11.280–13:12.894
So, help me figure out how we do that,
13:12.894–13:14.680
and then explain it to me step-by-step.
13:14.680–13:16.255
And that's really the mindset shift
13:16.255–13:17.831
with tools like Codex or Claude Code
13:17.831–13:19.721
is if you don't know something's possible,
13:19.721–13:20.982
instead of defaulting to oh,
13:20.982–13:21.927
I need to go to YouTube
13:21.927–13:24.342
or oh, I want to book in a consulting call with an expert,
13:24.342–13:26.266
just ask Codex or Claude Code.
13:26.266–13:28.514
Ask it to do research and explain things to you.
13:28.514–13:31.360
And that's basically how I learned everything that I know.
13:31.360–13:32.611
So while this is running,
13:32.611–13:34.696
I wanted to explain something real quick,
13:34.696–13:35.947
which is called plugins.
13:35.947–13:38.060
Plugins, MCP servers, skills, connectors,
13:38.060–13:39.544
whatever you want to call them.
13:39.544–13:42.210
We kind of have this interface inside of Codex
13:42.210–13:43.473
to do stuff like this.
13:43.473–13:44.414
And what you'll notice is
13:44.414–13:46.028
there's a bunch of different plugins here.
13:46.028–13:47.200
We've got hugging face,
13:47.200–13:48.079
we've got Vercel,
13:48.079–13:48.958
we've got GitHub,
13:48.958–13:50.072
we've got Game Studio.
13:50.072–13:52.121
We've got a bunch down here for design,
13:52.121–13:54.235
Remotion, Figma, Hyperframes, Canva.
13:54.235–13:55.655
We've got stuff for lifestyle,
13:55.655–13:56.366
productivity,
13:56.366–13:58.059
and this lets us basically connect to
13:58.059–14:00.200
a lot of the tools that we already know and love.
14:00.200–14:02.355
Google Drive, Slack, SharePoint, Teams,
14:02.355–14:03.524
whatever you may need,
14:03.524–14:05.433
a lot of that stuff is available here.
14:05.433–14:06.146
And if you can't find it,
14:06.146–14:06.966
you can go ahead and search.
14:06.966–14:07.605
So like Slack,
14:07.605–14:08.618
we have it right there.
14:08.618–14:09.260
But look,
14:09.260–14:10.623
if I search YouTube,
14:10.623–14:13.200
there is no default plugin right here.
14:13.200–14:14.905
And that's why I had to ask Codex,
14:14.905–14:16.357
okay, so there's no plugin,
14:16.357–14:18.377
how do I actually access YouTube data?
14:18.377–14:19.787
And so it comes back here
14:19.787–14:21.560
and it asks us some questions.
14:21.560–14:24.311
It says for the first comment analysis milestone,
14:24.311–14:26.800
which connection path should we plan around,
14:26.800–14:28.120
API key, OAuth, or both?
14:28.120–14:30.078
Um I'm just going to go with his recommendation
14:30.078–14:31.835
cuz let's say I don't know what I need to do,
14:31.835–14:33.200
and I'm going to click on API key.
14:33.200–14:34.870
What should the first comment pull focus on?
14:34.870–14:36.680
I'm just going to say recent videos.
14:36.680–14:38.575
And now if it has any other questions,
14:38.575–14:40.470
it'll go ahead and ask us those first.
14:40.480–14:41.701
Now one thing you'll notice is
14:41.701–14:44.680
because it already was searching through my other folders and projects,
14:44.680–14:46.487
it did find an API key in a different project,
14:46.487–14:49.026
but I'm still going to show you guys how you would get this set up
14:49.026–14:49.720
because it comes
14:49.720–14:51.005
back here with a plan,
14:51.005–14:52.800
which we can go ahead and read.
14:52.800–14:54.162
So what it wants to use is
14:54.162–14:55.388
it it found an API key,
14:55.388–14:56.410
so not full OAuth,
14:56.410–14:59.280
and then it needs to actually convert everything.
14:59.280–15:00.776
So what I'm just going to say is
15:00.776–15:02.092
instead of implementing,
15:02.092–15:02.930
I'm going to say,
15:02.930–15:04.784
"I'm glad that you found that API key,
15:04.784–15:06.100
but let's set up a fresh one
15:06.100–15:07.477
because in my Google Cloud,
15:07.477–15:09.511
I want to have a separate API key for Codex
15:09.511–15:09.760
and a
15:09.760–15:11.069
separate one for Claude code.
15:11.069–15:14.693
So let's just go ahead and assume that we're going to create a complete new one from scratch."
15:14.693–15:16.388
And now I'm able to shoot off those changes.
15:16.388–15:18.165
Codex is going to review the plan
15:18.165–15:19.087
and then edit it.
15:19.087–15:20.794
And then once we're aligned on the plan,
15:20.794–15:22.345
we'll go ahead and start executing.
15:22.345–15:23.275
So now it's come back
15:23.275–15:23.987
and it has okay,
15:23.987–15:26.240
we're going to do a brand new Google Cloud API key.
15:26.240–15:28.700
If you wanted to read through all of this step-by-step,
15:28.700–15:29.182
you could,
15:29.182–15:31.161
but I'm just going to go ahead and say submit,
15:31.161–15:32.080
implement the plan.
15:32.080–15:32.190
So,
15:32.190–15:33.835
there's some stuff that we're going to have to do here.
15:33.835–15:36.498
We're going to have to go into Google Cloud Console,
15:36.498–15:39.099
and we're going to have to create this new project,
15:39.099–15:40.089
um enable this API,
15:40.089–15:41.390
and then grab the API key,
15:41.390–15:43.619
and then get it configured inside of Codex.
15:43.619–15:43.756
So,
15:43.756–15:46.002
if this part of the tutorial isn't very interesting to you,
15:46.002–15:47.468
you don't want to watch me get it set up,
15:47.468–15:49.805
maybe you want to do some stuff first with the native plugins,
15:49.805–15:50.640
which is much easier.
15:50.640–15:51.165
Typically,
15:51.165–15:53.002
these plugins you just basically sign in,
15:53.002–15:55.311
the same way where you would open up Slack and sign in,
15:55.311–15:57.463
or the same way you would open up Gmail and sign in,
15:57.463–15:58.680
and that's a lot lot easier.
15:58.680–15:58.964
Okay,
15:58.964–16:00.330
so I have to go to Google Cloud
16:00.330–16:02.160
and get everything set up in a project.
16:02.160–16:03.674
If I didn't know exactly how to do this,
16:03.674–16:05.898
it would tell me step-by-step as you guys saw on the plan,
16:05.898–16:06.939
but what it's going to do is
16:06.939–16:08.169
it created another file for us.
16:08.169–16:08.348
So,
16:08.348–16:10.016
it created this one called for us.
16:10.016–16:10.144
So,
16:10.144–16:11.560
it created this one called .env.local.
16:11.560–16:11.732
So,
16:11.732–16:12.762
what I'm going to do is
16:12.762–16:14.536
head over to my Google Cloud Console.
16:14.536–16:16.296
I'm signed in with my YouTube account,
16:16.296–16:18.560
and I'm going to go ahead and create a new project.
16:18.560–16:21.799
So, I'm going to call this one um Codex demo.
16:21.799–16:24.194
I'm just going to go ahead and create this project,
16:24.194–16:26.304
and once that's spun up, it's pretty simple.
16:26.304–16:29.220
We just have to create a connection to YouTube Data API,
16:29.220–16:31.376
and then we're going to create an API key.
16:31.376–16:32.542
So, I'm going to select this project.
16:32.542–16:35.892
The first thing I'm going to do is search up here at the top for YouTube
16:35.892–16:38.066
is search up here at the top for YouTube Data,
16:38.066–16:40.358
and we're going to grab the YouTube Data API v3,
16:40.358–16:42.650
and then I'm going to go ahead and click enable.
16:42.650–16:46.714
And once that has been enabled, it should pull up a new screen that looks like this,
16:46.714–16:49.164
and then I'm going to go down here to credentials,
16:49.164–16:51.196
and I'm going to just create a new API key.
16:51.196–16:52.295
So, create API key.
16:52.295–16:56.331
This is just going to be called Codex YouTube demo.
16:56.331–16:59.522
And then right here for the restrictions, I'm just going to once again type in YouTube.
16:59.522–17:01.365
We're going to check YouTube Data API v3,
17:01.365–17:03.858
and then we're going to go ahead and create that API key.
17:03.858–17:05.946
And it gives me this value that I'm going to go ahead and copy.
17:05.946–17:07.443
So, I'm going to copy that,
17:07.443–17:11.458
and then I'm going to pull in that file that it created, the .env.local,
17:11.458–17:15.132
and I'm just going to open this file real quick with um my notepad,
17:15.132–17:18.058
and here is where I'm going to put my YouTube API key.
17:18.058–17:19.839
I'm just going to paste that in right there.
17:19.839–17:21.932
Hit save and then I can close out of that
17:21.932–17:25.800
because what we need to get next is we need to get our YouTube channel ID.
17:25.800–17:27.476
I'm not actually going to do the uploads playlist.
17:27.476–17:28.815
I don't think it needs that,
17:28.815–17:31.085
but I am going to go find the YouTube channel ID.
17:31.085–17:32.460
Oh, but this is actually cool.
17:32.460–17:34.244
My YouTube channel ID is already in there
17:34.244–17:35.924
and the playlist ID is already in there
17:35.924–17:38.548
because it was able to just pull it from a different project.
17:38.548–17:41.679
So obviously if you didn't have that already set up, it wouldn't do that,
17:41.679–17:44.497
but it would explain to you exactly how to do that if you needed to.
17:44.497–17:48.480
So now that we have that API key put in, let's just see if it works.
17:48.480–17:52.760
Okay, so I've given you the API key in that local.env.
17:52.760–17:55.198
Can you go ahead and test it to see if that connection works?
17:55.198–17:57.317
And if not, then we'll have to make some changes.
17:57.317–17:58.977
Okay, now while this is running,
17:58.977–18:01.497
what you guys might notice when you hop into Codex
18:01.497–18:04.387
is that it might pause a lot to actually ask you questions
18:04.387–18:05.678
and like approve things.
18:05.678–18:08.355
And that's what happens when you're on default permissions.
18:08.355–18:09.746
So if you want to be able to change that,
18:09.746–18:11.320
you're going to go up here to your settings.
18:11.320–18:12.339
And then in general,
18:12.339–18:13.478
you can see right here,
18:13.478–18:14.857
auto review or full access.
18:14.857–18:16.849
And this by default will be turned off.
18:16.849–18:17.849
So if I turn this on,
18:17.849–18:19.537
then when we're back in our chat,
18:19.537–18:20.788
we now have the ability,
18:20.788–18:21.600
see right here,
18:21.600–18:22.788
this is exact example,
18:22.788–18:23.914
allow network access
18:23.914–18:25.039
and I want to say yeah,
18:25.039–18:25.539
allow it.
18:25.539–18:27.263
Or if I switch this to full access,
18:27.263–18:30.772
now it's just going to do everything without asking for permission.
18:30.772–18:32.791
So obviously it comes up as orange here
18:32.791–18:36.828
because there's sometimes where you might not want full autonomous access.
18:36.828–18:39.651
And I think it's best practice when you're first getting started
18:39.651–18:41.585
and you're first building some automations
18:41.585–18:43.049
to maybe just leave it on default.
18:43.049–18:44.948
But once you start getting a hang of your skills
18:44.948–18:46.555
and you start getting a hang of the flow,
18:46.555–18:48.892
then moving to full access is going to save you a lot of time
18:48.892–18:50.791
so that you can actually not have to baby sit it.
18:50.791–18:52.522
But I had to call that out because,
18:52.522–18:53.017
you know,
18:53.017–18:55.922
we've seen horror stories of agents deleting databases
18:55.922–18:58.333
or sending out mass emails and stuff like that.
18:58.333–18:59.832
So you just want to be safe with it.
18:59.832–19:02.395
I personally have never had any sort of problem like that.
19:02.395–19:04.283
That usually comes from context rot
19:04.283–19:05.731
or very vague instructions
19:05.731–19:08.437
or or just not being super smart with your planning.
19:08.437–19:11.013
So you can see what's happening here is it's trying it out, right?
19:11.013–19:12.303
And it's running into some issues.
19:12.303–19:15.719
But what's great about this agentic loop is that it's going to keep trying things
19:15.719–19:17.096
until it actually goes through.
19:17.096–19:17.599
There we go.
19:17.599–19:19.658
You can see nice the key works for channel data,
19:19.658–19:21.031
and I'm going to do one more test
19:21.031–19:23.512
to make sure that I can pull comments from recent videos.
19:23.512–19:26.614
So a big mindset shift when you're using any of these tools
19:26.614–19:27.712
is to just let it run,
19:27.712–19:28.682
let it try things,
19:28.682–19:30.556
help steer in the right direction,
19:30.556–19:31.396
ask questions,
19:31.396–19:32.042
be curious,
19:32.042–19:34.045
and just take a look at what it's doing
19:34.045–19:34.960
because it tells
19:34.960–19:36.880
you every single thing that it's trying.
19:36.880–19:38.830
But now we can see I've tested the key.
19:38.840–19:40.836
I can get comments from your recent videos,
19:40.836–19:42.776
and it's completely working as expected.
19:42.776–19:46.614
However, PowerShell's built-in web request had a local TLS issue,
19:46.614–19:49.160
but Node and Python both connected cleanly.
19:49.160–19:50.618
For the project, that's fine.
19:50.618–19:54.120
We'll use Node and server-side code for the dashboard anyway.
19:54.120–19:56.400
Now, here's something to think about.
19:56.400–19:58.440
I don't really know what that means.
19:58.440–20:01.762
But what I want to make sure is that that doesn't happen again,
20:01.762–20:05.411
or I want to make sure that this project doesn't lose this knowledge
20:05.411–20:07.430
because it it it it ran into a failure.
20:07.430–20:09.014
And whenever you run into a failure,
20:09.014–20:10.862
you want to treat that as golden knowledge
20:10.862–20:14.136
because it means you have more data to make sure that it doesn't do it again.
20:14.136–20:17.934
So all I'm going to say is, "Okay, thanks for testing that.
20:17.934–20:20.655
I want to make sure that you don't ever run into that issue again,
20:20.655–20:23.529
and I want to make sure that that knowledge is saved in this project.
20:23.529–20:26.655
So can you just throw together a quick file somewhere in your memory,
20:26.655–20:29.616
somewhere in this project to make sure that you already know that
20:29.616–20:31.600
so that next time it doesn't happen again."
20:31.600–20:32.728
And doing stuff like this,
20:32.728–20:33.855
having this sort of habit,
20:33.855–20:36.418
is how you actually make these systems get smarter over time
20:36.418–20:39.186
rather than just feeling like you're always repeating yourself
20:39.186–20:41.400
or that you're always running into the same issues.
20:41.400–20:43.105
Another mindset shift for you right there.
20:43.105–20:45.643
So here it decided to add this into the agents.md.
20:45.643–20:47.659
Right now, I have no objections to that,
20:47.659–20:49.002
but as your projects grow,
20:49.002–20:51.506
you don't want to put everything in the agents.md
20:51.506–20:54.011
because if that agents.md file gets really huge,
20:54.011–20:55.904
it's going to use more of your tokens.
20:55.904–20:56.160
Okay.
20:56.160–20:57.303
So before we keep going,
20:57.303–20:59.590
I did want to point out one other thing down here,
20:59.590–21:00.800
which is this little bar.
21:00.800–21:04.500
This shows you how much of your context window is currently filled up.
21:04.500–21:07.140
Now, if If were using Claude Code and you're using Opus,
21:07.140–21:08.058
you have a million.
21:08.058–21:11.491
So, it's, you know, about four times as much as this in Codex.
21:11.491–21:15.056
However, Codex automatically compacts just like Opus does
21:15.056–21:16.838
and just like Cloud Code does.
21:16.838–21:17.595
So, it's really nice.
21:17.595–21:19.480
You don't have to worry about it too much,
21:19.480–21:23.085
but you still want to be thinking about some general context management tips.
21:23.085–21:25.099
I've got some videos on my channel about that
21:25.099–21:27.386
that are agnostic to whatever tool you want to use.
21:27.386–21:30.898
I'm not going to dive super deep into context window management in this video,
21:30.898–21:32.735
but just wanted to point that out as well.
21:32.735–21:33.929
Okay, so what's next?
21:33.929–21:37.447
What I want to do is I want to show you guys that it's able to pull comments
21:37.447–21:40.429
and that we're able to create an actual deliverable from it.
21:40.429–21:42.803
So, let me just once again go back to plan mode.
21:42.803–21:47.662
All right, so what I want you to do is pull in, you know, about 100 or 200 of my most recent comments
21:47.662–21:49.200
and I want you to analyze them.
21:49.200–21:50.908
I want you to find patterns
21:50.908–21:54.247
and I want you to display all of this in a Excel sheet.
21:54.247–21:56.967
And I want it to be a visual representation of this data
21:56.967–21:59.868
that has interesting insights for me as a content creator
21:59.868–22:02.346
so that I can keep making content that people want
22:02.346–22:05.680
and I can keep answering questions that are coming up frequently.
22:05.680–22:07.352
So, go ahead and do a plan for this
22:07.352–22:10.633
and structure what the Excel sheet deliverable will look like.
22:10.633–22:11.342
So, I shot that off.
22:11.342–22:13.575
I'm going to let you guys know when we have a plan
22:13.575–22:15.006
or if it asks me any questions.
22:15.006–22:17.607
A couple questions here to make sure that it understands what we want.
22:17.607–22:19.328
It's asking about the recent comments.
22:19.328–22:21.078
I'm just going to say across recent videos.
22:21.078–22:22.320
How many should we pull?
22:22.320–22:23.078
Let's say 200.
22:23.078–22:25.476
How should we classify and summarize the comments?
22:25.476–22:27.040
I'm just going with all of its recommendations.
22:27.040–22:27.796
Those were pretty good.
22:27.796–22:29.470
And so, if I switch over to a different tab,
22:29.470–22:30.857
let's say we're back on our slides,
22:30.857–22:32.962
you can see my pet down here has a little one next to it.
22:32.962–22:35.458
Well, the one's gone because I switched back into Codex,
22:35.458–22:36.361
but that little one,
22:36.361–22:37.742
if I would have hovered over it,
22:37.742–22:39.388
it would show me what it's working on.
22:39.388–22:43.400
So, now I can keep tabs on my workflow while I'm doing other things.
22:43.400–22:45.622
And Codex makes multitasking really easy.
22:45.622–22:48.049
Because of the fact that I could open up a new chat in this project
22:48.049–22:49.102
and work on something else.
22:49.102–22:50.679
Then I could open up a new chat in this project
22:50.679–22:51.660
and work on something else.
22:51.660–22:52.678
And it will color code
22:52.678–22:55.618
and give you like a little blue dot or yellow dot on the side here
22:55.618–22:57.597
if one of these sessions needs attention.
22:57.597–22:58.822
So, anyways, here is the plan.
22:58.822–23:01.593
What I would recommend is at this point you read through it.
23:01.593–23:03.842
You make any changes to specific sections if you want,
23:03.842–23:06.941
but for the sake of the video I'm just going to go ahead and submit that plan.
23:06.941–23:08.604
But while this is running real quick,
23:08.604–23:11.125
I wanted to show you a few other things that we can look at.
23:11.125–23:13.082
So, if you do {slash} inside of this chat,
23:13.082–23:15.280
there's things that you can actually look at.
23:15.280–23:22.440
So, we've got auto review, code review, feedback, MCP, memories, model, personality, pet, plan mode, reasoning.
23:22.440–23:29.120
There's all of these different skills that we can use like browser use, GitHub, Higgs Field, PDF, skill creator.
23:29.120–23:31.799
The {slash} is going to open up a lot of different things for you.
23:31.799–23:34.174
And of course, what you can do is you can also tag things.
23:34.174–23:35.086
So, if I do an {at},
23:35.086–23:40.433
this is going to let us tag either specific plugins or specific files that live somewhere in this project.
23:40.433–23:44.556
So, if you're ever trying to reference a specific plugin or something specific,
23:44.556–23:49.603
then it's probably best to try using the {slash} or using the {at} to actually tag that in your chat.
23:49.603–23:51.688
Now, the reason I wanted to bring up the {slash}
23:51.688–23:54.627
is because you'll see one right here called {slash} personality,
23:54.627–23:55.696
which if I shot that off,
23:55.696–23:57.888
it would actually let it, you know, do something.
23:57.888–23:58.731
So, what I can show you is
23:58.731–24:01.480
I don't want to interrupt this main don't want to interrupt this main session.
24:01.480–24:04.164
I could come up here and I could click on open side chat.
24:04.164–24:06.737
And that opens up a different little conversation here
24:06.737–24:08.136
that still lives in this chat,
24:08.136–24:09.478
still lives in this project.
24:09.478–24:11.594
So, if you're coming over from Cloud Code,
24:11.594–24:13.840
this is pretty similar to {slash} by the way.
24:13.840–24:16.209
So, what I can do over here is I can do {slash} personality.
24:16.209–24:19.755
And now I can set if I want the personality to be friendly or pragmatic.
24:19.755–24:22.548
And I guess I didn't actually need to switch over here
24:22.548–24:24.261
because it just opens like this,
24:24.261–24:25.975
but right now we're on friendly.
24:25.975–24:27.633
I'm actually going to switch this to pragmatic.
24:27.633–24:31.174
You can see this says concise, task-focused, and direct.
24:31.174–24:34.774
And honestly, most of the time I'd probably prefer pragmatic.
24:34.774–24:37.400
So, I'm usually working on pragmatic by default.
24:37.400–24:38.885
But now that we've opened the side chat,
24:38.885–24:40.414
let me just show you guys something else.
24:40.414–24:43.211
Um, give me a quick update about my YouTube channel and,
24:43.211–24:46.008
you know, the type of videos I've been making recently.
24:46.008–24:47.291
Just to show you guys that, okay,
24:47.291–24:49.430
if you have your agent working right here on something
24:49.430–24:50.809
and you don't want to interrupt it,
24:50.809–24:52.330
but you have some sort of side question
24:52.330–24:53.613
that is relevant to this project
24:53.613–24:56.000
or maybe relevant to something that you guys were working on
24:56.000–24:57.852
earlier, you can ask over here.
24:57.852–25:00.418
Because right here you can see it has the context
25:00.418–25:02.160
of what we talked about already.
25:02.160–25:03.630
And I could go back and forth a little bit,
25:03.630–25:05.272
and then I could just close out of the side chat
25:05.272–25:05.964
whenever I'm done.
25:05.964–25:07.464
Okay, so that has been created.
25:07.464–25:10.810
It pulled in 200 recent comments across three recent videos,
25:10.810–25:14.155
and I could open it up right here in this dashboard sort of view
25:14.155–25:15.992
right in CodaX, which is awesome.
25:15.992–25:17.715
And I could actually make some follow-ups
25:17.715–25:18.847
and chat with it right here,
25:18.847–25:20.570
but it's a little bit finicky to be honest.
25:20.570–25:22.322
So what I'm going to do is close out of that,
25:22.322–25:24.223
and I'm just going to open up our folder again,
25:24.223–25:25.124
which was right here.
25:25.124–25:26.936
And you can see there's a lot more that lives in here now.
25:26.936–25:29.075
Not only do we have our agents and our .env,
25:29.075–25:30.114
but we have scripts,
25:30.114–25:31.153
and we have outputs,
25:31.153–25:33.232
and we have different nodes and modules,
25:33.232–25:34.454
which has a lot of stuff.
25:34.454–25:36.759
So if at any point this starts to feel a little bit unorganized
25:36.759–25:38.295
and you don't understand the structure,
25:38.295–25:39.922
all you have to do is come into CodaX and say,
25:39.922–25:41.278
have to do is come into CodaX and say,
25:41.278–25:42.634
"Hey, help me like reorganize this,
25:42.634–25:45.520
or maybe give me a document that helps me navigate it a little bit better."
25:45.520–25:48.359
Because of course this lives in a local directory,
25:48.359–25:49.644
and CodaX can touch it,
25:49.644–25:50.117
read it,
25:50.117–25:50.861
organize it,
25:50.861–25:51.334
edit it.
25:51.334–25:52.373
So if I go to the outputs
25:52.373–25:54.233
and I go to the YouTube comment insights,
25:54.233–25:56.367
we see all of these different stuff that it did.
25:56.367–25:58.461
So it took some screenshots as you can see,
25:58.461–26:00.855
but then it also created the actual Excel sheet.
26:00.855–26:02.611
So I'll open this up right here,
26:02.611–26:03.826
and we can take a look.
26:03.826–26:05.485
All right, so we and we can take a look.
26:05.485–26:07.958
All right, so we have YouTube comment insights,
26:07.958–26:11.049
200 newest public comments across recent Nate Hurt videos,
26:11.049–26:12.595
generated May 5th, 11:00 a.m.
26:12.595–26:14.378
So we can see the question rate,
26:14.378–26:16.024
the content requested rate,
26:16.024–26:17.670
top mention tools CodaCode.
26:17.670–26:18.066
Uh-oh.
26:18.066–26:19.801
We've got high priority stuff,
26:19.801–26:20.602
top patterns,
26:20.602–26:21.269
skip video,
26:21.269–26:22.203
stuff like that.
26:22.203–26:23.916
It even started to create some visuals here,
26:23.916–26:24.611
which is awesome.
26:24.611–26:27.124
So this is content category mix over here.
26:27.124–26:31.596
It shows the mix between general feedback or questions with um actual values.
26:31.596–26:33.451
So 55 were general feedback,
26:33.451–26:34.688
53 were questions.
26:34.688–26:36.240
Some of these were access,
26:36.240–26:37.440
positive feedback,
26:37.440–26:38.498
tool comparison,
26:38.498–26:39.415
pricing stuff.
26:39.415–26:41.055
Over here we have different tools.
26:41.055–26:41.844
So CodaCode,
26:41.844–26:42.633
Higgs Field,
26:42.633–26:43.278
CodaX API.
26:43.278–26:45.501
And then over here we have some other stats as you can see.
26:45.501–26:47.254
Now we have a bunch of different tabs as well.
26:47.254–26:48.635
So we have creator insights.
26:48.635–26:51.496
So ranked comment patterns and recommended creator actions.
26:51.496–26:55.470
So I'm able to see the percentage breakdown of different types of comments
26:55.470–26:58.867
and it also gives me recommended actions with priority scores.
26:58.867–27:00.138
So, that's pretty cool.
27:00.138–27:01.640
I also can see frequent questions.
27:01.640–27:03.913
So, things that are coming up as patterns.
27:03.913–27:08.200
It's giving me content ideas now as well because it's analyzing those comments.
27:08.200–27:10.204
It's giving me nice reply opportunities
27:10.204–27:12.444
and then it's giving me just the raw comments.
27:12.444–27:16.696
So, this should be 200 rows of our actual comments that it pulled.
27:16.696–27:21.273
204 as you can see because the first three or four were just nonsense.
27:21.273–27:22.487
So, that is awesome.
27:22.487–27:25.628
And what you guys might be thinking is okay, is this actually useful?
27:25.628–27:29.916
Maybe not because we just said, "Hey, give me analytics." Right?
27:29.916–27:32.567
If you guys remember my actual prompt, it was very, very vague.
27:32.567–27:35.202
So, if we would have spent more time in the planning phase
27:35.202–27:38.062
or if we had certain analytics that we're tracking very heavy
27:38.062–27:40.641
or certain comments that we're really looking out for,
27:40.641–27:42.492
we would give that to Codex as knowledge
27:42.492–27:44.240
and it would make this actual, um, you
27:44.240–27:44.895
know, insights,
27:44.895–27:46.346
it would make it much know, insights,
27:46.346–27:48.359
it would make it much more customized and tailored.
27:48.359–27:50.696
So, now let's talk about how do we turn this into a skill?
27:50.696–27:52.200
So, first of all, what is a skill?
27:52.200–27:53.120
So, first of all, what is a skill?
27:53.120–27:55.405
Well, a skill is basically a repeatable recipe.
27:55.405–27:57.499
So, if I come back in here and I click on plugins,
27:57.499–27:58.949
we saw all these plugins, right?
27:58.949–28:00.691
These are actual like connections
28:00.691–28:02.133
and potentially MCP servers
28:02.133–28:03.995
and kind of like some other, you know,
28:03.995–28:06.698
it's a package that people are able to install and use.
28:06.698–28:09.969
But, skills are more of just like instructions.
28:09.969–28:11.850
So, there's an image gen skill.
28:11.850–28:13.950
There is a OpenAI doc skill.
28:13.960–28:16.294
There's a GitHub review follow-up skill,
28:16.294–28:17.295
a document skill.
28:17.295–28:20.798
And these are all basically just markdown file instructions
28:20.798–28:23.271
that tell Codex how to do something better.
28:23.271–28:25.091
So, how to design a website better
28:25.091–28:27.497
or how to, you know, give you a morning brief.
28:27.497–28:30.455
And so, what we want to do is we want to turn this,
28:30.455–28:32.882
exactly what we just did, into a skill.
28:32.882–28:35.863
So, that anytime I say, "Hey, go give me more YouTube insights."
28:35.863–28:37.325
It knows what endpoints to hit,
28:37.325–28:38.619
it knows how to pull them in,
28:38.619–28:40.307
it knows how to make the Excel sheet,
28:40.307–28:41.544
it knows how to do all this.
28:41.544–28:43.656
And the best way that I like to make skills is
28:43.656–28:46.588
I just basically brainstorm with with Codex to do something
28:46.588–28:48.348
and then after I get an output I like,
28:48.348–28:50.166
I say, "Okay, turn that into a skill."
28:50.166–28:52.454
So, this was the ultimate deliverable, right?
28:52.454–28:55.641
So, what you just did is you helped me pull in data from my YouTube.
28:55.641–28:56.512
You got comments,
28:56.512–28:57.499
you ran an analysis,
28:57.499–29:00.169
and you created me an awesome Excel sheet deliverable.
29:00.169–29:02.113
I want you to turn that into a skill
29:02.113–29:05.029
so that every time I say to grab my YouTube comments
29:05.029–29:06.556
and give me some insights,
29:06.556–29:07.876
you do this exact flow,
29:07.876–29:09.889
and that makes it more consistent.
29:09.889–29:11.593
So, I'm going to shoot off that message,
29:11.593–29:14.021
and while it's doing that, just think about it like this.
29:14.021–29:15.861
If someone asked you to create or not create
29:15.861–29:18.365
If someone asked you to make them chocolate chip pancakes,
29:18.365–29:19.950
you're going to open up your cookbook
29:19.950–29:20.870
or pull up your phone,
29:20.870–29:22.301
and you're going to read a recipe,
29:22.301–29:23.640
and you're going to follow it to
29:23.640–29:23.788
a T.
29:23.788–29:25.165
You're going to follow the measurements,
29:25.165–29:25.756
the ingredients,
29:25.756–29:26.464
and the temperature,
29:26.464–29:26.976
and the timing,
29:26.976–29:27.566
and temperature,
29:27.566–29:28.078
and the timing,
29:28.078–29:28.560
and whatever.
29:28.560–29:31.318
And then next time someone asked you to make chocolate chip cookies
29:31.318–29:31.859
or pancakes,
29:31.859–29:33.337
you would just use that same recipe,
29:33.337–29:35.405
and they'd come out pretty much the exact same way.
29:35.405–29:37.062
Because if you didn't use the recipe,
29:37.062–29:38.292
you would just be guessing,
29:38.292–29:40.057
and you'd be you'd be sort of measuring,
29:40.057–29:41.019
and you'd be feeling,
29:41.019–29:42.623
and it just wouldn't be consistent.
29:42.623–29:43.564
And the cool thing is,
29:43.564–29:45.133
now that you have this recipe to use,
29:45.133–29:46.440
every time you use the recipe,
29:46.440–29:47.957
you might be able to make it better.
29:47.957–29:49.210
If one time you experiment,
29:49.210–29:50.952
and you add some more chocolate chips,
29:50.952–29:51.878
you either like that
29:51.878–29:52.477
or you don't,
29:52.477–29:53.512
you update the recipe.
29:53.512–29:56.820
Maybe one time you realize that you're actually leaving too much raw batter inside.
29:56.820–29:57.744
So, what do you do?
29:57.744–30:03.609
You update the recipe to say, "Okay, you leave it on 4 minutes on each side rather than 3 and 1/2 minutes on each side."
30:03.609–30:09.240
You're able to, each time you use the recipe, have it be updated, and that is the power of building these skills.
30:09.240–30:13.914
And you can see that it's able to work backwards and reverse engineer a skill from our output.
30:13.914–30:17.389
And what it does is it puts them in a file called the dot Codex,
30:17.389–30:19.126
which kind of lives globally,
30:19.126–30:22.949
which means whenever you're working inside of any Codex project,
30:22.949–30:25.312
you're going to be able to use that skill.
30:25.312–30:27.508
And all you have to do to call it is you'll do a slash command,
30:27.508–30:28.897
and then you will just name the skill.
30:28.897–30:31.372
So, if you guys remember, down here we have all these other ones.
30:31.372–30:34.848
I could do slash browser use slash image gen slash PDF,
30:34.848–30:37.551
and that's how I could be able to call them.
30:37.551–30:40.867
The other way you can call them is you can actually just have them be natural language.
30:40.867–30:42.942
So, just to show you guys another example,
30:42.942–30:44.246
if I go to my Herc 2 project,
30:44.246–30:46.617
and I know this is more optimized for cloud code,
30:46.617–30:48.099
but we have a dot cloud folder,
30:48.099–30:48.880
which is local.
30:48.880–30:50.042
So, if I click into here,
30:50.042–30:51.901
I can see I have a folder called skills,
30:51.901–30:53.818
and all of these are my different skills
30:53.818–30:55.677
that currently live inside of my AI OS.
30:55.677–30:57.671
So, let's say here I have a morning coffee skill,
30:57.671–31:00.711
and I'm going to open this up real quick in my notepad just to show you guys.
31:00.711–31:02.192
All this is is a markdown file.
31:02.192–31:03.519
We have the name of the skill,
31:03.519–31:04.680
we have the description.
31:04.680–31:09.128
So, here it says, "Use when someone asks for morning coffee to prep or plan their day."
31:09.128–31:12.511
So, anytime in cloud code I say, "Hey, can you help me plan my day?"
31:12.511–31:15.017
cloud code will grab this morning coffee skill,
31:15.017–31:15.456
read it,
31:15.456–31:16.521
and then execute it.
31:16.521–31:18.186
And it says, "Okay, here's the context,
31:18.186–31:19.548
here's the recurring meetings,
31:19.548–31:20.607
here is the meeting prep,
31:20.607–31:22.322
here are these different reference IDs,
31:22.322–31:23.836
here's everything you need to know,
31:23.836–31:24.441
and the order.
31:24.441–31:25.305
So, step one,
31:25.305–31:25.933
step two,
31:25.933–31:26.719
step three.
31:26.719–31:29.987
Here is what you do whenever Nate asks for a morning coffee skill."
31:29.987–31:32.186
So, that is all that is happening right here.
31:32.186–31:35.435
You can see it created this skill called YouTube comment insights,
31:35.435–31:37.117
and it did this at the global level.
31:37.117–31:39.954
What I mean by that is this lives locally in our directory
31:39.954–31:42.549
directory that sits across any Codex project ever.
31:42.549–31:45.717
So, if I open up this other project, I could use the skill,
31:45.717–31:48.009
or we could put it locally in our project,
31:48.009–31:53.199
which would mean I could only use the skill in this specific YouTube analytics demo project.
31:53.199–31:55.615
And all you have to do to change that differentiation is say,
31:55.615–31:58.562
"Hey, instead of putting that global, put that locally in this project."
31:58.562–32:01.364
Or, instead of having that locally in this project, make that global.
32:01.364–32:06.040
So, now if I do a slash and I do YouTube comment insights, we have this right here.
32:06.040–32:10.670
YouTube comment insights analyze comments into an Excel report.
32:10.680–32:12.396
Which is the skill that we just built together,
32:12.396–32:13.100
so that is awesome.
32:13.100–32:13.570
All right,
32:13.570–32:15.449
so before we move on to the next step of this,
32:15.449–32:17.067
I wanted to talk about pets real quick
32:17.067–32:20.199
just because I know you guys are dying to understand how you can get this.
32:20.199–32:20.932
It's really simple,
32:20.932–32:21.795
you go to your settings,
32:21.795–32:23.433
and then you're going to go to your appearance
32:23.433–32:24.425
and scroll all the way down,
32:24.425–32:25.805
and you can see right here we have pets.
32:25.805–32:27.755
And we can choose between different ones.
32:27.755–32:27.996
So,
32:27.996–32:30.567
right now I'm just using the Codex pet,
32:30.567–32:32.255
but I could choose Dewey,
32:32.255–32:32.657
or CD,
32:32.657–32:33.380
or Beasod,
32:33.380–32:34.103
or Stacky.
32:34.103–32:36.653
So, I'm just going to go ahead and switch this to Fireball for fun,
32:36.653–32:38.069
and you can see down here it changes.
32:38.069–32:40.286
And yes, it's kind of a fun little UI thing,
32:40.286–32:44.214
but remember if I'm not inside of Codex and I'm in this dashboard over here,
32:44.214–32:49.473
we can still see the pet and it will tell us when it's working on things and when it's done with things.
32:49.473–32:51.578
So, it is a little bit practical as well.
32:51.578–32:52.160
All right.
32:52.160–32:54.422
So, now we have a deliverable.
32:54.422–32:58.738
We have an Excel sheet and we're going to use that as the back end that basically powers this next section.
32:58.738–33:03.726
So, I'm going to open up a new project because we're kind of starting a new goal, a new a new deliverable.
33:03.726–33:09.680
So, I want to open up a new chat and this will still be able to access everything that's in this folder.
33:09.680–33:11.562
So, I'm going to go ahead and switch over to plan mode here.
33:11.562–33:13.209
Okay, so here's the idea I have.
33:13.209–33:19.189
You have access to a file inside of this project and what I'm going to do is actually reference the exact file.
33:19.189–33:23.169
So, I'm going to look for the YouTube comment insights right here
33:23.169–33:25.307
and I'm going to tag that right here
33:25.307–33:27.160
and I'm going to tag that file.
33:27.160–33:29.756
So, what I want you to do is create me a dashboard,
33:29.756–33:31.248
spin this up on a local host,
33:31.248–33:33.584
and I want it to have really nice UI elements
33:33.584–33:36.114
and, you know, charts and graphics and things,
33:36.114–33:37.347
so visualizing my data
33:37.347–33:38.720
and I want to be able to see
33:38.720–33:41.680
different insights about my YouTube different insights about my YouTube comments.
33:41.680–33:44.383
What I want you to do here is I want you to use GPT image 2
33:44.383–33:48.068
and create some really nice concepts of how this dashboard should look.
33:48.068–33:51.851
And also, if you want to use it for maybe like a nice logo in the top
33:51.851–33:53.707
or any of the other UI elements,
33:53.707–33:57.490
utilize GPT image 2 to make this thing just look really polished
33:57.490–33:58.775
and really aesthetic
33:58.775–34:00.631
and really fun at the same time.
34:00.631–34:02.520
So, that is the idea I have.
34:02.520–34:04.094
I want you to help plan this out,
34:04.094–34:06.152
ask me any questions you have about this,
34:06.152–34:07.968
and then we'll go ahead and execute.
34:07.968–34:09.988
And so also, this default switch to extra high again,
34:09.988–34:12.101
I'm just going to go ahead and switch that back to medium
34:12.101–34:13.019
and then shoot that off.
34:13.019–34:16.021
And you can see down here the pet has started to think
34:16.021–34:17.766
and it's talking a little bit.
34:17.766–34:20.744
But, the reason why you want to be careful about which models you're using,
34:20.744–34:21.608
there's two reasons.
34:21.608–34:26.317
The first one is because sometimes if you chuck extra high at a task that's really simple,
34:26.317–34:27.600
like over engineers it.
34:27.600–34:31.992
And the second piece is because each of these cost you different amounts of your tokens or your session.
34:31.992–34:33.318
Obviously, low cost the least
34:33.318–34:34.591
and extra high cost the most.
34:34.591–34:36.347
If you go over here to your settings
34:36.347–34:38.346
and you click on rate limits remaining,
34:38.346–34:40.829
it shows you how much of your session you have left
34:40.829–34:41.859
and when it expires.
34:41.859–34:43.743
So, every 5 hours it resets
34:43.743–34:46.142
and right now I have 97% remaining
34:46.142–34:48.198
and then every week it resets
34:48.198–34:51.120
and right now I have 99% remaining there.
34:51.120–34:54.545
And so, it's really nice to be able to keep tabs on that right here,
34:54.545–34:57.335
but that's why you want to be careful about, you know,
34:57.335–34:59.048
your context window management
34:59.048–34:59.999
and your planning
34:59.999–35:01.014
and your prompting
35:01.014–35:02.663
and your model usage down here.
35:02.663–35:07.844
In general though, I have seen that my session is lasting way longer in Codex
35:07.844–35:09.571
than it is in Claude Code.
35:09.571–35:15.511
And a big part of that is because ChatGPT 5.5 is really, really efficient with tokens,
35:15.511–35:18.105
with output tokens and input tokens.
35:18.105–35:20.610
And if you guys go watch that video that I was talking about,
35:20.610–35:24.445
you will see that exact experiment and it's really interesting to understand and look at,
35:24.445–35:27.257
but I've generally found that it's really efficient with tokens.
35:27.257–35:28.625
Now, we have some feedback here.
35:28.625–35:34.400
It says, "Which visual direction should guide the GPT image two concepts and the final dashboard UI?"
35:34.400–35:37.270
Creator Ops, Playful Studio or Executive Clean.
35:37.270–35:39.001
I'm just going to go with the recommendation.
35:39.001–35:42.112
For this first version, how should the dashboard get its YouTube comment data?
35:42.112–35:46.340
I'm going to say to use the existing output, which was the um Excel file.
35:46.340–35:49.356
And then what should the first screen prioritize most?
35:49.356–35:51.431
Reply and ideas, analytics overview.
35:51.431–35:54.257
I'm actually going to go with analytics overview for this one.
35:54.257–35:54.911
And by the way,
35:54.911–35:55.784
if you're in the app
35:55.784–35:57.856
and you want to get rid of the pet really quick,
35:57.856–35:59.055
you can just do {slash} pet
35:59.055–36:00.691
and then that will just tuck it away.
36:00.691–36:01.042
Okay,
36:01.042–36:03.356
so it came up with a plan pretty quickly.
36:03.356–36:05.112
You can see here that I can expand this
36:05.112–36:05.962
and read about it.
36:05.962–36:06.116
So,
36:06.116–36:07.191
we've got like a summary,
36:07.191–36:08.164
we've got key changes,
36:08.164–36:09.445
we've got all this other stuff
36:09.445–36:11.801
and this is where we would once again iterate with Codex
36:11.801–36:14.004
before we say, "Yep, go ahead and build that for me."
36:14.004–36:15.960
But I'm just going to go ahead and say, "Yep, go
36:15.960–36:17.125
ahead and build that for me."
36:17.125–36:19.795
You can see that it's using the image generation for GPT image two,
36:19.795–36:21.057
which is really, really solid.
36:21.057–36:24.280
And here is one of the kind of versions that it came up with.
36:24.280–36:28.334
And I've just found if If using Codex to build games or websites or whatever it is,
36:28.334–36:30.997
it just helps to give it the ability to test things out
36:30.997–36:32.691
and generate some concepts first
36:32.691–36:35.112
before it actually designs the rest of the site.
36:35.112–36:36.868
You can see this is the little logo that it came up with,
36:36.868–36:37.571
which is kind of cool.
36:37.571–36:39.496
It's got like a YouTube play button
36:39.496–36:40.360
with some noise
36:40.360–36:41.953
and some comments coming in.
36:41.953–36:43.040
And what it's going to do is
36:43.040–36:46.102
it's going to store all of these assets locally somewhere in this project,
36:46.102–36:49.066
so that later if we wanted to spin up different versions of the dashboard
36:49.066–36:50.251
or a different landing page,
36:50.251–36:51.200
it would have access to
36:51.200–36:52.629
all of these assets already.
36:52.629–36:53.978
And this is super cool, guys.
36:53.978–36:56.276
It has like this built-in verification loop
36:56.276–36:58.016
where it's going to check its work
36:58.016–37:00.066
before it actually gives you an output,
37:00.066–37:01.184
which is pretty cool.
37:01.184–37:04.008
So, it said the automated browser verification passed.
37:04.008–37:05.599
I'm now doing one visual pass
37:05.599–37:07.323
to see what else there might be,
37:07.323–37:08.384
what other issues.
37:08.384–37:09.726
And it found three issues
37:09.726–37:11.515
when it did an actual visual scan.
37:11.515–37:12.772
So, now it's fixing those.
37:12.772–37:14.341
It says, "Okay, those UI fixes are in.
37:14.341–37:15.600
I'm going to stop the server.
37:15.600–37:16.457
I'm going to rebuild,
37:16.457–37:18.981
and then I'm going to verify it one more time with screenshots."
37:18.981–37:20.219
And then it comes back and says,
37:20.219–37:22.172
"Okay, the second visual pass looks a lot better.
37:22.172–37:25.090
Here is your dashboard to actually go ahead and test out."
37:25.090–37:28.798
So, let's just real quick open this up right here locally in the explorer.
37:28.798–37:30.805
And now we have our creator ops signal desk.
37:30.805–37:32.635
So, I'm going to expand this a little bit.
37:32.635–37:34.895
We see the logo up here that it made.
37:34.895–37:36.796
We see 83% creator replies,
37:36.796–37:37.870
78 total likes.
37:37.870–37:40.041
We can switch between overview,
37:40.041–37:40.685
replies,
37:40.685–37:41.167
ideas,
37:41.167–37:41.972
questions,
37:41.972–37:43.178
and the explorer.
37:43.178–37:44.317
And this is really cool.
37:44.317–37:46.284
It looks like every single comment has a link.
37:46.284–37:47.452
So, if I click on this,
37:47.452–37:48.751
does it actually take us
37:48.751–37:49.280
Okay, no.
37:49.280–37:51.820
It didn't actually sync up every single comment to a link.
37:51.820–37:53.254
But it's cool that it showed us that
37:53.254–37:54.886
because that gave us a nice idea of like,
37:54.886–37:55.430
"Okay, cool.
37:55.430–37:56.675
I do actually want a link."
37:56.675–37:59.729
Now, you can actually go ahead and work that into the back end code
37:59.729–38:02.558
where every single comment should be associated with a link
38:02.558–38:04.538
so that I could open it up and respond to it.
38:04.538–38:06.281
Or we could take it one step further
38:06.281–38:06.701
and say,
38:06.701–38:10.848
"Okay, what would it look like for me to be able to respond right in this dashboard?"
38:10.848–38:14.934
And you actually fire off that API call to YouTube to respond on the right comment.
38:14.934–38:16.405
Because that is 100% doable.
38:16.405–38:19.227
You guys have seen how I've automated my comment section a little bit.
38:19.227–38:19.805
Anyways, let's
38:19.805–38:21.051
Let's take a look at the overview.
38:21.051–38:23.216
We can see we have this really nice chart.
38:23.216–38:24.957
We have some AI insights over here
38:24.957–38:26.822
where I can click on work reply queue
38:26.822–38:28.563
and that goes over to the replies.
38:28.563–38:30.491
I could also click on more content ideas
38:30.491–38:31.952
and that takes us to the ideas.
38:31.952–38:33.678
We can look at top tool mentions,
38:33.678–38:34.574
reply priority,
38:34.574–38:35.405
common themes.
38:35.405–38:37.752
We can also see the videos that are driving comments
38:37.752–38:40.535
and this would obviously grow as we pull in more and more data.
38:40.535–38:42.637
So let's say at this point we like this output
38:42.637–38:44.285
and we want to actually deploy this
38:44.285–38:47.760
because what you'll notice is this says that it's running on a localhost.
38:47.760–38:49.342
So if I copy this link right here
38:49.342–38:50.194
and I go to Chrome
38:50.194–38:51.167
and I paste that in,
38:51.167–38:53.601
it's going to pull up exactly what we saw, right?
38:53.601–38:54.429
And it works
38:54.429–38:55.680
and it looks fine.
38:55.680–38:57.444
But if I gave you this localhost
38:57.444–39:00.294
and you copy and pasted that into your own browser,
39:00.294–39:01.515
you would get nothing
39:01.515–39:03.144
because this lives locally.
39:03.144–39:06.041
It's being served on a server from our codebase.
39:06.041–39:08.284
So what I'm going to show you how to do now
39:08.284–39:11.546
is how do you actually get this from a localhost to the web?
39:11.546–39:12.518
And what we're going to do
39:12.518–39:13.722
is we're going to use two tools.
39:13.722–39:16.000
We're going to use The first tool is called GitHub
39:16.000–39:17.723
and the second tool is called Vercel.
39:17.723–39:19.004
So the first thing you're going to do
39:19.004–39:20.156
is you're going to type in GitHub
39:20.156–39:21.266
and you're going to go over here
39:21.266–39:22.504
and you're going to make a profile.
39:22.504–39:23.838
It's completely free to set up,
39:23.838–39:25.634
pretty much completely free to maintain.
39:25.634–39:27.320
Once you've created your GitHub,
39:27.320–39:29.367
all you have to do is connect this to Codex
39:29.367–39:33.039
and we're going to have Codex help us set up something called a repository
39:33.039–39:36.240
which is basically just a collection of your files and folders.
39:36.240–39:38.455
Remember how if we open up my file explorer
39:38.455–39:40.606
and we look inside of our YouTube comment
39:40.606–39:42.821
or sorry, YouTube analytics demo folder,
39:42.821–39:45.163
all of these files and folders are important
39:45.163–39:48.074
and all we have to do is get these off of our local machine
39:48.074–39:48.400
or not
39:48.400–39:50.320
off, they'll still live here locally.
39:50.320–39:52.710
But we're going to get them into some sort of repository
39:52.710–39:54.113
where I can access them publicly
39:54.113–39:56.243
or if you wanted to share these with other people,
39:56.243–39:57.594
they could access them as well.
39:57.594–39:59.473
So it's kind of like having a Word doc locally
39:59.473–40:02.368
but instead you're putting it on into Microsoft's cloud on OneDrive
40:02.368–40:03.333
or something like that
40:03.333–40:04.602
so that other people can use it
40:04.602–40:06.532
and you could use it from a different machine.
40:06.532–40:07.771
So that's the first step.
40:07.771–40:09.425
So let's go back into Codex
40:09.425–40:13.561
and what do you do when you don't exactly know how something works?
40:13.561–40:14.320
You just ask.
40:14.320–40:15.039
know how something works?
40:15.039–40:15.412
You just ask.
40:15.412–40:16.493
So this looks really good.
40:16.493–40:17.552
What I want to do is
40:17.552–40:19.175
I want to sync this code base
40:19.175–40:20.869
for this specific dashboard
40:20.869–40:22.280
to a GitHub repository.
40:22.280–40:24.105
So, help me get that signed up.
40:24.105–40:26.177
Help me get connected here to GitHub,
40:26.177–40:29.052
and then I want you to help me create that actual repo
40:29.052–40:31.057
and push everything into that repo.
40:31.057–40:32.924
And it even mentioned that right here.
40:32.924–40:34.954
Note, this folder is not currently a Git repo,
40:34.954–40:36.877
so there is no diff and status to summarize.
40:36.877–40:38.755
So, I'm going to shoot off that message,
40:38.755–40:41.372
and now it's going to help us actually sync up to GitHub.
40:41.372–40:43.683
Now, there is a difference between Git and GitHub.
40:43.683–40:47.031
Really the same thing of version control and all this stuff,
40:47.031–40:47.901
but Git is local
40:47.901–40:49.374
and GitHub is on the cloud.
40:49.374–40:51.449
And what's important here is that it says,
40:51.449–40:54.590
"I'll avoid committing secrets, especially the .env.local."
40:54.590–40:57.850
And so, that's why I told you to always paste your keys in that .env,
40:57.850–40:59.925
not into some random file called secrets.
40:59.925–41:01.306
It has to be in the .env
41:01.306–41:03.839
because that dot in front of the word env
41:03.839–41:07.830
basically tells Codex or Cloud Code or whatever you're using,
41:07.830–41:11.821
it tells it to exclude this from any, you know, public commits.
41:11.821–41:14.102
So, this point I've already set up the GitHub CLI.
41:14.102–41:15.311
If you haven't, it would just say,
41:15.311–41:16.477
"Hey, do you want to set this up?"
41:16.477–41:17.772
And you'll say, "Yes." Very simple.
41:17.772–41:19.425
And then you'll authenticate,
41:19.425–41:22.223
which means it'll basically just pop up a browser tab
41:22.223–41:25.465
and you'll sign in with the account you used to create GitHub,
41:25.465–41:28.400
and then boom, you will be connected to GitHub in Codex.
41:28.400–41:29.455
And while this is syncing up,
41:29.455–41:31.345
let me show you guys the next tool we're going to use.
41:31.345–41:33.221
This one is called Vercel.
41:33.221–41:35.320
Now, Vercel has a pretty generous free tier.
41:35.320–41:36.713
You can see I've got a few products on here.
41:36.713–41:41.049
You're going to be able to get working on Vercel for free just to get started.
41:41.049–41:44.281
And what Vercel does is it basically takes that code,
41:44.281–41:46.705
it takes, you know, this exact website,
41:46.705–41:49.496
which is on the back end, all this is it's code,
41:49.496–41:52.434
and it takes this and it serves it on a actual URL,
41:52.434–41:55.078
on an actual domain that anyone can access.
41:55.078–41:59.880
And what's really cool about this is Vercel and GitHub have a really nice partnership.
41:59.880–42:01.534
They actually like talk to each other.
42:01.534–42:03.868
So, anytime I make a change to our GitHub repo,
42:03.868–42:06.510
Vercel automatically picks that up and deploys it.
42:06.510–42:08.342
So, I know there's three tools here,
42:08.342–42:09.747
Codex, GitHub, and Vercel,
42:09.747–42:12.434
but that doesn't mean we have to manage three places.
42:12.434–42:14.374
All we have to do is manage Codex.
42:14.374–42:17.168
So it said that it's created a private repo for us.
42:17.168–42:17.812
If I open this up,
42:17.812–42:19.053
I don't want to open this up here.
42:19.053–42:20.671
And the reason why it doesn't show up here
42:20.671–42:21.955
is because this is a private repo
42:21.955–42:23.573
and over here I'm not signed in to GitHub.
42:23.573–42:25.459
So if I open this up in a browser
42:25.459–42:27.346
where I am signed in to GitHub,
42:27.346–42:29.534
we can see YouTube Analytics Demo.
42:29.534–42:30.667
This is a private repo
42:30.667–42:33.751
and what's in here is all of the different folders and files
42:33.751–42:36.646
that we've actually created to spin up this dashboard.
42:36.646–42:38.211
And now what's really cool is
42:38.211–42:39.189
if I go into Vercel
42:39.189–42:41.472
and I go ahead and click on add new project,
42:41.472–42:42.972
I can connect this to GitHub
42:42.972–42:44.537
and it already is connected.
42:44.537–42:45.929
So you would then just sign in
42:45.929–42:48.074
and you would connect your Vercel to GitHub.
42:48.074–42:50.432
And now you can import any of your repos.
42:50.432–42:53.720
So right here you can see YouTube Analytics Demo 1 minute ago.
42:53.720–42:55.111
I'm going to click on import.
42:55.111–42:56.370
And that's literally that simple.
42:56.370–42:57.921
I'm going to click on deploy
42:57.921–42:59.473
and then in maybe 30 seconds
42:59.473–43:02.103
we will have our YouTube Analytics Dashboard,
43:02.103–43:03.924
but we'll have it up on a live URL.
43:03.924–43:04.416
Awesome.
43:04.416–43:05.724
So it says congratulations,
43:05.724–43:07.142
you have deployed a new project
43:07.142–43:09.486
and I'm going to go ahead and continue to dashboard.
43:09.486–43:12.347
And this gives us a youtube-analytics-demo.vercel.app
43:12.347–43:14.800
a youtube-analytics-demo.vercel.app domain.
43:14.800–43:17.107
And if you wanted to switch this off to your own domain,
43:17.107–43:18.040
you certainly could.
43:18.040–43:21.100
You would just basically have to move the DNS records over here.
43:21.100–43:22.333
But I'm going to click on this
43:22.333–43:25.519
so you guys can see that this is the exact same thing we were just looking at.
43:25.519–43:26.108
Our replies,
43:26.108–43:26.589
our ideas,
43:26.589–43:27.285
our questions,
43:27.285–43:27.927
our explorer,
43:27.927–43:29.212
everything here is the same.
43:29.212–43:30.578
Except for now I could take this URL
43:30.578–43:31.850
and I could open it up on my phone.
43:31.850–43:33.279
Or I could open it up on my laptop.
43:33.279–43:34.522
Or you guys could open it up.
43:34.522–43:35.232
And like I said,
43:35.232–43:36.380
what's cool about that is
43:36.380–43:38.347
we basically are able to then test in Codex.
43:38.347–43:39.775
We can iterate right here.
43:39.775–43:40.957
We can make changes.
43:40.957–43:42.057
But just because we make changes
43:42.057–43:43.727
doesn't mean that it's actually going to go live.
43:43.727–43:48.079
So if I said, "Hey, I want you to change the entire background instead of blue to be red."
43:48.079–43:49.600
And it would say, "Okay, cool.
43:49.600–43:50.488
Here's the red background.
43:50.488–43:53.075
Here's the localhost to test it out on."
43:53.075–43:57.240
And if we like it, we say, "Okay, push those changes to our repo."
43:57.240–44:01.475
And then as soon as we push those changes, Vercel would automatically deploy those onto the real URL.
44:01.475–44:02.633
But if we said, "You know what?
44:02.633–44:03.300
I don't like that.
44:03.300–44:04.344
Just keep it as is."
44:04.344–44:07.019
then our main production site never got touched.
44:07.019–44:11.175
And that's how we keep a clean separation to test and to have something in production.
44:11.175–44:12.415
Okay, awesome.
44:12.415–44:14.092
So, what do we have now?
44:14.092–44:15.311
We have a working project,
44:15.311–44:16.696
and I'm opening up this folder
44:16.696–44:18.746
just to show you how much we've actually done
44:18.746–44:19.300
in the past,
44:19.300–44:19.909
I don't know,
44:19.909–44:21.128
30 to 40 minutes together.
44:21.128–44:23.474
And we've set up a bunch of different stuff.
44:23.474–44:25.499
Now, what do I want to talk about next
44:25.499–44:26.444
is automations.
44:26.444–44:27.367
So, already over here
44:27.367–44:29.110
you can see this tab called automations.
44:29.120–44:31.314
Automate work by setting up scheduled chats.
44:31.314–44:33.576
You can set up things like a status report,
44:33.576–44:34.352
release prep.
44:34.352–44:35.982
There's bunch of different things here
44:35.982–44:37.612
that give you sort of some inspiration.
44:37.612–44:38.951
But, what's really cool is
44:38.951–44:40.472
you can turn all of your skills
44:40.472–44:42.298
or any of your repeatable workflows
44:42.298–44:43.272
into an automation
44:43.272–44:44.246
that Codex will run
44:44.246–44:45.960
without needing your oversight.
44:45.960–44:47.281
So, I'm going to open up a new chat
44:47.281–44:48.896
in our YouTube Analytics Demo project,
44:48.896–44:49.875
and I'm going to go ahead
44:49.875–44:51.245
and start chatting to Codex here.
44:51.245–44:53.793
Okay, so we've just done a lot of stuff together.
44:53.793–44:57.617
We built a skill that grabs YouTube comments from my YouTube,
44:57.617–45:01.600
and it puts them into an Excel sheet after it does some analysis.
45:01.600–45:03.098
And that's coming out really nice.
45:03.098–45:07.344
And then we built a dashboard served on then we built a dashboard served on Vercel
45:07.344–45:12.360
that actually displays visually all of those analytics and statistics from that Excel sheet.
45:12.360–45:16.869
Now, what I want to do is I want to set up an automation that just refreshes this every week.
45:16.869–45:19.824
So, let's just say every Sunday at 5:00 p.m.,
45:19.824–45:23.498
I want you to run the YouTube comments analytics skill.
45:23.498–45:28.130
And then what I want you to do with that is update that data on that Excel sheet,
45:28.130–45:29.578
you know, add more rows,
45:29.578–45:31.025
update the statistics,
45:31.025–45:34.210
and that will automatically sync to the GitHub repo.
45:34.210–45:35.797
So, after you make those changes,
45:35.797–45:38.971
you'll have to also reflect those changes onto the actual code base
45:38.971–45:40.274
where the dashboard lives,
45:40.274–45:42.371
and then you'll push those changes to GitHub
45:42.371–45:44.865
so that they automatically get reflected in Vercel.
45:44.865–45:46.769
So, a lot of moving pieces here,
45:46.769–45:48.454
but basically high-level,
45:48.454–45:50.285
you need to get more comments,
45:50.285–45:51.457
redo the analysis,
45:51.457–45:53.216
refresh the data into Excel,
45:53.216–45:56.072
and that way I'm always getting a weekly report
45:56.072–45:59.222
of what's going on with my YouTube comment replies.
45:59.222–46:01.993
Okay, so honestly felt like a little bit of a messy prompt,
46:01.993–46:03.840
but Codex should be able to do a good job
46:03.840–46:05.398
of asking us any questions it has
46:05.398–46:08.804
and making sure that it's able to actually set up this automation for us
46:08.804–46:09.680
the way we want it.
46:09.680–46:12.114
Now, something I want you guys to think about here
46:12.114–46:16.093
is the way that I approach building AI automations and skills and stuff like this
46:16.093–46:18.052
is remember when we talked about skills
46:18.052–46:19.596
and I said every time you use it,
46:19.596–46:20.783
it's going to get better
46:20.783–46:22.040
cuz you can get feedback?
46:22.040–46:24.391
You should honestly think of these automations in a similar way.
46:24.391–46:27.035
You should think about it like you're teaching a kid to ride a bike.
46:27.035–46:28.796
You're not going to just chuck a kid on a bike
46:28.796–46:29.970
and say, "Okay, go have fun."
46:29.970–46:31.926
You're going to start off by holding the handles
46:31.926–46:33.149
and walking alongside the kid
46:33.149–46:35.448
and saying, "Okay, you're leaning too much to the right.
46:35.448–46:36.565
You need to lean more to the left
46:36.565–46:37.769
and you need to center your weight
46:37.769–46:39.230
and you need to make sure you're pedaling
46:39.230–46:40.219
and you need to do all this."
46:40.219–46:42.110
And slowly over time you'll start getting more trust
46:42.110–46:43.280
and you'll take your hand off the
46:43.280–46:43.758
handlebars
46:43.758–46:45.863
and you'll start to walk a little bit farther behind.
46:45.863–46:48.662
And eventually maybe you'll take off the training wheels and stuff like that.
46:48.662–46:49.817
The point I'm making here
46:49.817–46:53.228
is don't expect your automations or skills to be perfect on the first shot.
46:53.228–46:54.375
That's just unrealistic.
46:54.375–46:56.214
You should be expecting them to get better
46:56.214–46:57.108
the more you use them
46:57.108–46:59.262
because every time you use them you get more data.
46:59.262–47:00.939
But look how quickly it set that up.
47:00.939–47:02.520
It set up a weekly automation.
47:02.520–47:04.219
It'll run every Sunday at 5:00 p.m.
47:04.219–47:06.798
and it will just basically run inside of this project
47:06.798–47:09.493
and it will run the YouTube comment insights workflow.
47:09.493–47:11.324
It will regenerate the Excel workbook.
47:11.324–47:13.575
It will preserve and merge comment rows.
47:13.575–47:14.921
It will refresh the workbook.
47:14.921–47:16.599
It will verify the dashboard
47:16.599–47:19.396
and it will commit only those changes to our repo
47:19.396–47:21.563
and it will push it to the right branch
47:21.563–47:24.160
so that Vercel actually deploys all of that.
47:24.160–47:25.934
And what you want to do is you come into the automations.
47:25.934–47:27.523
You can see that we have this one
47:27.523–47:28.929
which is Sunday at 5:00 p.m.
47:28.929–47:31.183
We can click into it to see the actual prompt
47:31.183–47:32.685
that it will submit to Codex.
47:32.685–47:34.501
We could add some stuff here if we wanted,
47:34.501–47:35.409
but we don't want to.
47:35.409–47:37.769
This will get injected into a new Codex chat
47:37.769–47:39.014
inside of our project.
47:39.014–47:40.160
So, just as a test,
47:40.160–47:41.458
if I click on run now,
47:41.458–47:44.600
you can see that this starts a new chat right here.
47:44.600–47:46.403
This injected that exact prompt
47:46.403–47:48.540
that we looked at with the automation,
47:48.540–47:48.940
the ID,
47:48.940–47:49.608
the memory,
47:49.608–47:50.342
the last run,
47:50.342–47:51.611
and the actual prompt.
47:51.611–47:53.808
And then it starts up this little progress sheet
47:53.808–47:55.291
which is kind of like a to-do list
47:55.291–47:57.048
and it's going to go down in this order.
47:57.048–47:59.939
And we have the full Codex Agentic loop going on here.
47:59.939–48:01.524
So, if you're used to Cloud Code,
48:01.524–48:03.108
this is basically the same thing
48:03.108–48:05.573
as running a local scheduled routine in Cloud Code
48:05.573–48:06.571
or in Cloud Co-work.
48:06.571–48:09.644
Now, the one thing you're going to have to think about here
48:09.644–48:11.693
is because this is kind of a local cron,
48:11.693–48:13.357
if you close out of the Codex app
48:13.357–48:15.470
or if you turn off your PC or your laptop,
48:15.470–48:16.760
this will stop running.
48:16.760–48:19.639
In order for this to be truly 24/7 all the time,
48:19.639–48:23.957
you would have to get this sort of Codex routine on the cloud somehow.
48:23.957–48:26.830
And that's what Cloud Code just added with their cloud routines.
48:26.830–48:28.553
Okay, so while this automation is running,
48:28.553–48:31.185
and we know we're going to make sure that it's working as expected,
48:31.185–48:32.812
and if not, we'll correct it a little bit.
48:32.812–48:35.518
But, I realized that I wanted to show you guys a little bit more
48:35.518–48:36.738
of that kind of computer use
48:36.738–48:38.330
and and browser use functionality.
48:38.330–48:41.796
So, if I go back into the actual um dashboard
48:41.796–48:43.240
where it built it,
48:43.240–48:45.560
which I believe was this one.
48:45.560–48:46.350
Yep, it was this one.
48:46.350–48:50.498
What I'm going to say here is before we kind of keep making changes,
48:50.498–48:52.308
I want you to test the UI here.
48:52.308–48:54.821
I want you to open up this um dashboard,
48:54.821–48:57.178
and I want you to open it up in this app
48:57.178–48:58.680
so I can watch you do it.
48:58.680–49:00.975
I want you to use your browser use skill
49:00.975–49:02.051
and click around.
49:02.051–49:03.289
I want you to click on the buttons.
49:03.289–49:04.842
I want you to try to break this thing.
49:04.842–49:06.248
I want you to stress test it
49:06.248–49:06.759
and QA it.
49:06.759–49:08.401
And let me know what you find,
49:08.401–49:09.495
what bugs you find,
49:09.495–49:11.410
and what we might need to improve.
49:11.410–49:14.665
And so, all I did here is I explained in natural language what I wanted,
49:14.665–49:17.246
and we're going to be able to see it use the right skills.
49:17.246–49:19.002
So, browser use is great for a lot of things.
49:19.002–49:21.370
It's great for um QA-ing, like you just saw here,
49:21.370–49:25.880
because it can find bugs and click around on things that typically it wouldn't be able to do.
49:25.880–49:27.862
It's also really great for certain automations.
49:27.862–49:29.981
So, maybe you don't have an API for something,
49:29.981–49:33.885
and you want to be able to go in and download reports or go in and change some settings.
49:33.885–49:36.167
I've done a few of those automations on my channel as well,
49:36.167–49:38.212
and browser use can be really, really good for that.
49:38.212–49:40.608
And you can even use it to just search the web,
49:40.608–49:44.104
because you can use browser use in a way where it has like cookies,
49:44.104–49:46.370
and it's able to remember your login info.
49:46.370–49:48.315
So, you could log into something like school,
49:48.315–49:50.413
where you'd have to get past the authentication,
49:50.413–49:52.716
and then the browser can automate and control things.
49:52.716–49:56.057
But anyways, what you see right here is the in-app browser open.
49:56.057–50:00.398
And this little mouse right here, which kind of looks like the ChatGPT Alice logo,
50:00.398–50:01.739
is going to click around.
50:01.739–50:02.811
You guys already saw it
50:02.811–50:04.390
switch from overview to replies.
50:04.390–50:07.080
You can see it's moving around even more now.
50:07.080–50:09.367
And as it's clicking these different links
50:09.367–50:10.384
and moving around,
50:10.384–50:12.036
it's going to start to document
50:12.036–50:13.815
what might be wrong with this app.
50:13.815–50:15.314
And then we can obviously say,
50:15.314–50:15.974
"Okay, cool.
50:15.974–50:17.486
Go make all of those changes for us."
50:17.486–50:17.990
Right here,
50:17.990–50:19.703
it found the thing with the YouTube link.
50:19.703–50:21.751
So, it said they have the correct URLs,
50:21.751–50:25.526
but the in-app browser did not visibly open the new tab after clicking.
50:25.526–50:28.361
So, that's one of the things that we actually did notice ourselves.
50:28.361–50:29.585
Now, browser use is pretty,
50:29.585–50:30.170
I don't know,
50:30.170–50:32.680
it can feel kind of subjective when you're looking at it.
50:32.680–50:34.409
I mean, this is pretty cool to watch it move live.
50:34.409–50:39.129
But that also happens in Cloud Code when I use like the Playwright CLI or something.
50:39.129–50:40.378
But from my testing,
50:40.378–50:43.024
Codex browser use has been much more smooth
50:43.024–50:44.641
and much more intelligent
50:44.641–50:49.419
than any other sort of browser use automations that I've built or used before.
50:49.419–50:55.650
So, that is something that is really cool about Codex in this app here is that the browser use is really good.
50:55.650–50:59.614
Now, you could obviously use it still from a CLI or whatever, but it is pretty good.
50:59.614–51:03.325
And like I said, there's just so many really cool use cases with browser automation.
51:03.325–51:07.971
If you want to check out a few more, even though this video was Cloud Code, you would set it up the exact same way in Codex.
51:07.971–51:09.888
I'll tag a video right up here.
51:09.888–51:10.922
I mean, I love this.
51:10.922–51:12.672
It's literally going through the filters.
51:12.672–51:14.336
You guys saw it had something else up here.
51:14.336–51:15.717
It's changing these check boxes.
51:15.717–51:16.809
It's changing the stuff.
51:16.809–51:18.024
It did another search here,
51:18.024–51:20.402
and it's really going to actually stress test this app
51:20.402–51:22.252
to make sure that it didn't miss anything.
51:22.252–51:24.341
And what else is really cool is
51:24.341–51:27.683
you can build in this sort of QA check into skills
51:27.683–51:29.271
or into the knowledge.
51:29.271–51:31.641
So, next time when you're building another dashboard
51:31.641–51:33.221
or next time you're building a game,
51:33.221–51:34.644
before it ever comes back to you,
51:34.644–51:36.276
it already does a few passes visually
51:36.276–51:38.225
and, you know, from like a code perspective,
51:38.225–51:38.910
but you can make
51:38.920–51:43.635
sure that, "Hey, don't ever ever ever come back to me until you've stress tested with your own browser use."
51:43.635–51:47.185
And that's how you can really just make this stuff smarter and smarter every day.
51:47.185–51:49.384
All right, so it decided that it's done testing now.
51:49.384–51:53.798
You can see that we have a bunch of things that passed, but it found a ton of improvements.
51:53.798–51:55.345
It ended up finding six things.
51:55.345–51:58.489
The external links for YouTube aren't really working.
51:58.489–52:00.533
The empty explorer state is too bare.
52:00.533–52:01.776
Search is too literal.
52:01.776–52:03.538
Active tab state is mostly visual.
52:03.538–52:06.116
And there's some other things that are just coming through awkward
52:06.116–52:07.958
and little changes that we need to make to the UI.
52:07.958–52:09.316
So, what's really cool now is
52:09.316–52:11.465
I can say, "Okay, take all of these six changes
52:11.465–52:14.519
and build a plan around exactly how you're going to solve those."
52:14.519–52:16.782
And then once it comes back with its proper plan,
52:16.782–52:18.196
we would go ahead and execute.
52:18.196–52:19.619
But now that I showed you guys that,
52:19.619–52:22.122
let's check back in on our actual automation that's running.
52:22.122–52:24.244
You can see that it is still going through the checks.
52:24.244–52:25.491
It's been about 10 minutes.
52:25.491–52:27.417
So, I will just check back in with you guys
52:27.417–52:29.060
once this has been fully committed
52:29.060–52:32.063
and we'll see what changes we have on our actual live dashboard.
52:32.063–52:32.880
Oh my goodness.
52:32.880–52:34.708
So, this was pushing like 20 minutes,
52:34.708–52:37.184
so I stopped it and said, "Why is it taking so long?"
52:37.184–52:40.191
And it's because it couldn't overwrite a file that I had open.
52:40.191–52:41.284
So, don't do that.
52:41.284–52:44.505
But now we're going to go ahead and just keep this going.
52:44.505–52:46.210
But honestly, there is a lesson there,
52:46.210–52:48.448
which is sometimes it is nice to be able to watch it,
52:48.448–52:52.338
especially before, like I said, before we know that this automation is really refined,
52:52.338–52:54.480
because if it is going down the wrong path or it's
52:54.480–53:00.217
hitting some sort of roadblock that you the human should be able to just be able to solve in like a quick 20 seconds,
53:00.217–53:03.696
then stop it and ask a question or stop it and steer it in the right way,
53:03.696–53:05.720
because it's going to help not only save
53:05.720–53:07.331
you time, but it's also going to save you session limit.
53:07.331–53:09.794
Because if it was just burning tokens trying things,
53:09.794–53:12.089
when the fix was for me to just close out of the app,
53:12.089–53:16.792
then, you know, you'd rather have stopped that earlier before it's going down multiple wrong paths.
53:16.792–53:18.761
And another thing that I just noticed,
53:18.761–53:20.976
which is really important to call out here,
53:20.976–53:23.007
is that when you look at the automation,
53:23.007–53:25.837
this automation is set up by default to run with GPT 5.2,
53:25.837–53:27.437
which obviously we don't want.
53:27.437–53:30.706
So, you're going to want to make sure that your model is set up correctly,
53:30.706–53:32.504
that the reasoning is set up correctly,
53:32.504–53:34.629
and all of this other stuff is set up correctly,
53:34.629–53:37.789
because that is also a reason why that run was probably taking so long.
53:37.789–53:41.120
So, I just went ahead and retriggered a new run using GPT 5.5,
53:41.120–53:43.519
and I decided to try this one out using high.
53:43.519–53:46.112
Now, you also might be curious about the speed thing,
53:46.112–53:48.233
the difference between standard and fast.
53:48.233–53:51.226
And honestly, I never really ever touch fast.
53:51.226–53:55.180
I'm never working in something that's super time-sensitive where I need to go fast,
53:55.180–53:57.553
because that also eats up your usage a lot quicker.
53:57.553–53:58.917
But this is much more like it.
53:58.917–54:00.304
We can actually see it thinking
54:00.304–54:02.918
and now we're going to be able to get this back much quicker.
54:02.918–54:04.751
Okay, so finally that has finished up.
54:04.751–54:09.308
You can see that it was able to make changes to that Excel sheet.
54:09.308–54:11.428
And it says that it analyzed 208 comments.
54:11.428–54:12.934
Now, because we just did this,
54:12.934–54:14.199
you know, earlier today,
54:14.199–54:16.729
I'm curious if it actually analyzed 200 of the same
54:16.729–54:18.235
or if it knew not to duplicate.
54:18.235–54:19.748
And that's something that we'll want to take a look at.
54:19.748–54:22.285
But let's actually head over to my GitHub real quick.
54:22.285–54:24.087
This is the repo that we just set up, right?
54:24.087–54:25.832
And if I go ahead and give this a refresh,
54:25.832–54:27.683
we should now see that we have two commits.
54:27.683–54:29.155
So, in the second commit,
54:29.155–54:31.397
this shows we refreshed the comments.
54:31.397–54:33.746
So, every single time that you make a change to this repo,
54:33.746–54:34.645
it'll show that here.
54:34.645–54:36.291
So, you can check at the version control
54:36.291–54:37.588
and you can see what's going on.
54:37.588–54:41.662
But what that means is because our GitHub repo here got a new commit,
54:41.662–54:42.899
if we go to Vercel now
54:42.899–54:45.009
and we look at this actual project,
54:45.009–54:46.391
if I go to deployments,
54:46.391–54:50.029
we should be able to see that this just picked up a new change.
54:50.029–54:50.791
1 minute ago,
54:50.791–54:52.729
it picked up this new deployment.
54:52.729–54:54.531
So, now if we go to the dashboard
54:54.531–54:55.987
and I give this a refresh,
54:55.987–54:57.027
this has new data.
54:57.027–54:58.875
So, this used to say 200 videos,
54:58.875–55:00.297
or sorry, 200 comments,
55:00.297–55:01.434
and now it says 208.
55:01.434–55:05.407
So, that is just proof that we were able to actually get some fresh insights.
55:05.407–55:10.413
Now, what's really nice is that it looks like it just basically added on eight new ones.
55:10.413–55:11.763
It didn't like add on 200
55:11.763–55:12.708
and then 200 more
55:12.708–55:13.855
and then eight more,
55:13.855–55:16.555
because it realized that they were duplicated.
55:16.555–55:19.804
And if we actually go and open up the actual source of truth,
55:19.804–55:20.931
if I go into our repo,
55:20.931–55:21.793
I go to outputs,
55:21.793–55:23.583
I go to YouTube comment insights
55:23.583–55:27.362
and I click on the Excel sheet that we accidentally had open earlier,
55:27.362–55:29.560
we see that the dashboard is exactly the
55:29.560–55:29.866
same,
55:29.866–55:32.497
except for now we've analyzed eight extra comments
55:32.497–55:33.965
instead of the original 200.
55:33.965–55:37.080
But I wanted to show you guys what happened inside of this run.
55:37.080–55:38.048
So, as you guys know,
55:38.048–55:40.952
we ran into that issue where I had the Excel sheet open, right?
55:40.952–55:42.174
That was the first mistake.
55:42.174–55:44.593
The second mistake was that this was running with 5.2.
55:44.593–55:46.251
So, we reset the automation,
55:46.251–55:48.254
and now it's running with 5.5 high.
55:48.254–55:50.537
But then what happened is this was running for quite a while again.
55:50.537–55:51.083
So, I stopped it
55:51.083–55:52.891
and said, "Hey, you've been running for a long time.
55:52.891–55:54.218
Why is it taking so long?
55:54.218–55:55.447
This is a very simple task."
55:55.447–55:56.142
So, basically,
55:56.142–55:57.852
I knew that something went wrong here.
55:57.852–56:00.570
Because when we built this dashboard from scratch,
56:00.570–56:02.160
it only took about 20 minutes.
56:02.160–56:04.031
But updating it took 40 minutes
56:04.031–56:05.542
or probably even longer.
56:05.542–56:06.847
So, I knew something was going wrong.
56:06.847–56:07.521
So, I stopped it,
56:07.521–56:09.352
and I wanted to dig into it a little bit better.
56:09.352–56:10.841
And it And I was able to find out
56:10.841–56:12.509
that it was stuck on some process.
56:12.509–56:13.857
So, I said, "What do you need from me
56:13.857–56:15.903
in order to make sure that this doesn't happen again,
56:15.903–56:18.042
and that you're able to just basically actually give us
56:18.042–56:19.715
this deliverable that we're looking for?"
56:19.715–56:21.203
And it had me make some confirmations.
56:21.203–56:22.450
And then as soon as I did that,
56:22.450–56:23.488
it took about 7 minutes,
56:23.488–56:25.566
and then it was able to make all of those changes.
56:25.566–56:27.316
So, the reason why I wanted to show you this
56:27.316–56:29.265
is because once again, this stuff is not magic.
56:29.265–56:30.370
You don't deploy something,
56:30.370–56:31.935
and you just expect it to work perfectly.
56:31.935–56:35.237
But what's really cool is I could say, "Awesome.
56:35.237–56:37.607
So, everything worked as expected on the dashboard.
56:37.607–56:39.195
The analytics have been updated.
56:39.195–56:41.064
Now, I want you to dig into what you just did
56:41.064–56:42.079
with this automation,
56:42.079–56:43.147
and help me understand,
56:43.147–56:45.870
are there any opportunities to streamline this automation?
56:45.870–56:48.228
Are there any opportunities to make this better
56:48.228–56:49.053
and more robust?
56:49.053–56:50.805
Do you have any recommendations here?"
56:50.805–56:52.292
And I'll go ahead and fire that off
56:52.292–56:55.213
and see if there's any way that we can make this automation better.
56:55.213–56:56.255
It's really important
56:56.255–56:58.448
because there's this concept called dark code,
56:58.448–57:00.860
which basically means you're writing a bunch of code
57:00.860–57:02.176
when you do your vibe coding,
57:02.176–57:04.150
but you don't actually know what's going on
57:04.150–57:05.640
in the Python script or whatever
57:05.640–57:07.195
language you're using there.
57:07.195–57:09.520
And not to say that you need to understand every line
57:09.520–57:10.115
of your code,
57:10.115–57:12.008
but you need to understand fundamentally
57:12.008–57:13.089
what it's doing and why.
57:13.089–57:16.194
And if there are any opportunities to get rid of some code,
57:16.194–57:17.617
or if you have to, you know,
57:17.617–57:20.204
bake in some more guardrails in a certain place,
57:20.204–57:21.433
or anything like that.
57:21.433–57:22.869
So, it's basically looking at this
57:22.869–57:24.108
to see if we can make it faster,
57:24.108–57:25.148
or if we can make it safer.
57:25.148–57:27.091
Now, ultimately, as long as it's working,
57:27.091–57:28.646
I don't really care how fast it is.
57:28.646–57:30.623
Because if this is running once a week,
57:30.623–57:32.538
I don't care if it happens at 6:00 p.m.
57:32.538–57:33.156
or 6:30 p.m.
57:33.156–57:34.021
or even 7:00 p.m.
57:34.021–57:35.460
As long as it's actually working.
57:35.460–57:38.689
But sometimes speed is a big deal in your automations.
57:38.689–57:38.867
So,
57:38.867–57:39.993
it comes back and says,
57:39.993–57:40.289
"Yes,
57:40.289–57:40.882
this works,
57:40.882–57:41.060
but
57:41.060–57:42.779
it is still too agent orchestrated
57:42.779–57:42.957
and
57:42.957–57:44.794
too heavy for a weekly data refresh."
57:44.794–57:44.972
So,
57:44.972–57:46.335
we could add one repo script
57:46.335–57:47.817
to basically run the builder.
57:47.817–57:51.230
We could stop running the full next build for these sorts of updates.
57:51.240–57:53.439
And it's giving us all these different insights
57:53.439–57:55.033
that we could then go ahead and push
57:55.033–57:57.341
to make our automation and our system better here.
57:57.341–57:59.851
So, that's how you can kind of keep iterating upon it.
57:59.851–58:04.436
Even if you yourself don't really know exactly how you would make this better,
58:04.436–58:07.187
you can use the AI to figure out and brainstorm.
58:07.187–58:07.472
Okay.
58:07.472–58:10.854
So, what you guys saw here is we created this product from scratch, right?
58:10.854–58:12.335
It was our YouTube analytics demo.
58:12.335–58:13.687
We connected to YouTube,
58:13.687–58:14.588
we set up a skill,
58:14.588–58:15.875
we set up an automation,
58:15.875–58:17.033
we set up a dashboard,
58:17.033–58:18.385
we used some browser use,
58:18.385–58:22.569
and now we have an actual system where every week it will pull in more comments,
58:22.569–58:23.856
it will update our data,
58:23.856–58:24.757
our Excel sheet,
58:24.757–58:24.960
and
58:24.960–58:28.888
then it pushes all of those changes to our actual live dashboard completely automatically.
58:28.888–58:32.027
So, I hope you guys enjoyed seeing that flow from basically idea,
58:32.027–58:33.073
setting up a project,
58:33.073–58:34.119
all the way to the end.
58:34.119–58:35.062
And just remember,
58:35.062–58:37.713
what's really important is that this entire project,
58:37.713–58:39.128
everything that we just did,
58:39.128–58:41.308
is literally just a folder on your computer.
58:41.308–58:46.259
And what that means is you can customize this folder to be used by OpenClaw or CloudCode or whatever you want.
58:46.259–58:48.883
Any agent can work inside of this directory now.
58:48.883–58:51.786
And if I wanted to explicitly do this inside of Codex,
58:51.786–58:53.963
well, I could go ahead and click on view.
58:53.963–58:55.836
I could open up the terminal.
58:55.836–58:58.360
And now, because we're in this directory,
58:58.360–58:59.730
I could call on Claude.
58:59.730–59:00.764
And so, right here,
59:00.764–59:02.637
I could be working with ClaudeCode
59:02.637–59:04.511
inside of this actual repository.
59:04.511–59:05.385
So, maybe right here
59:05.385–59:06.979
I'm using Claude to help brainstorm,
59:06.979–59:08.624
and it creates me a brainstorming file
59:08.624–59:10.115
inside of this project somewhere.
59:10.115–59:11.517
And then what I could do is
59:11.517–59:13.520
I could just go back up here to Codex,
59:13.520–59:15.589
and I could go ahead and tag that file.
59:15.589–59:17.666
So, say, "Hey, here is a planning file,
59:17.666–59:20.523
a brainstorm file that I just generated with Claude.
59:20.523–59:21.492
I want you to be the one
59:21.492–59:22.785
who actually takes this file
59:22.785–59:23.862
and executes it for me."
59:23.862–59:26.178
So, you can really start to play with these together
59:26.178–59:26.986
and mix and match.
59:26.986–59:28.546
Just like I've shown you before
59:28.546–59:30.887
where we would build something with Cloud Code
59:30.887–59:32.867
and then we would actually loop in Codex
59:32.867–59:33.887
to do the review on it
59:33.887–59:35.387
and to find like security bugs
59:35.387–59:37.788
or any just like code-based functionality bugs
59:37.788–59:38.448
inside of it.
59:38.448–59:43.185
So, in my mind it's always about which tool is best for this specific use case,
59:43.185–59:44.591
not which tool is best.
59:44.591–59:46.819
All right, so I really hope that you guys enjoyed that.
59:46.819–59:49.193
You should have a really good understanding of the interface of Codex.
59:49.193–59:51.861
You should have a really good understanding of how you come in here,
59:51.861–59:52.957
you connect to other tools,
59:52.957–59:53.624
you use plugins,
59:53.624–59:54.720
you start building skills.
59:54.720–59:57.864
And really the next unlock is start building more and more skills.
59:57.864–1:00:00.695
So, try to think about what are you doing on a daily basis?
1:00:00.695–1:00:02.587
What are you doing on a weekly basis?
1:00:02.587–1:00:05.350
And write down some of those things that are boring and repetitive
1:00:05.350–1:00:07.309
and that you just wish happened when you slept.
1:00:07.309–1:00:09.154
And then start to bring those into Codex
1:00:09.154–1:00:10.552
and start to just brainstorm.
1:00:10.552–1:00:12.178
And as you're going through this process,
1:00:12.178–1:00:14.733
you're going to want to set up kind of your own AI operating system.
1:00:14.733–1:00:14.889
So,
1:00:14.889–1:00:16.448
I'm going to tag a video right up here
1:00:16.448–1:00:18.163
that you guys should 100% go watch next.
1:00:18.163–1:00:20.398
This one was kind of based on Cloud Code,
1:00:20.398–1:00:23.320
but remember everything is just files and folders.
1:00:23.320–1:00:23.497
So,
1:00:23.497–1:00:25.326
if you follow the steps in this video,
1:00:25.326–1:00:27.450
you will be able to replicate this in Codex,
1:00:27.450–1:00:28.640
absolutely no problem.
1:00:28.640–1:00:29.773
And what's really cool is
1:00:29.773–1:00:32.470
every project that I've moved over from Cloud Code to Codex,
1:00:32.470–1:00:35.113
I've said, "Hey, this is something I built with Cloud Code.
1:00:35.113–1:00:36.301
Go ahead and analyze it
1:00:36.301–1:00:38.927
and help me figure out what files you need to create
1:00:38.927–1:00:41.303
in order to make this compatible with Codex."
1:00:41.303–1:00:42.616
And all it's going to do is
1:00:42.616–1:00:43.866
maybe change a few names
1:00:43.866–1:00:46.440
and maybe change the cloud.md to the agent.md and
1:00:46.440–1:00:47.425
it's really, really simple.
1:00:47.425–1:00:48.642
It'll take like 30 seconds
1:00:48.642–1:00:50.468
and then you have your project in Codex.
1:00:50.468–1:00:50.625
So,
1:00:50.625–1:00:51.045
anyways,
1:00:51.045–1:00:53.773
I'll see you guys over there at that AI operating system video.
1:00:53.773–1:00:55.317
Please give it a like if you enjoyed.
1:00:55.317–1:00:56.191
It helps me out a ton.
1:00:56.191–1:00:57.111
And as always,
1:00:57.111–1:00:59.000
I appreciate you guys making it to the end of the video.
0:00.000–0:02.407
所以,Codex 是一個絕對令人驚嘆的超級應用程式。
0:02.407–0:03.862
我最近使用它的頻率更高了,
0:03.862–0:05.851
但我並不是說我要拋棄 Claude Code。
0:05.851–0:07.240
我仍然定期同時使用這兩者,
0:07.240–0:09.378
因為它們各自擅長不同的領域。
0:09.378–0:13.460
所以,今天的影片,我將詳細拆解關於 Codex 你需要知道的所有重要事項,
0:13.460–0:15.619
以便你能夠,你知道的,第一次打開這個應用程式,
0:15.619–0:18.960
然後實際完成自動化、網站以及你想做的任何事情
0:18.960–0:21.080
Codex 中做的任何事項,到本影片結束時。
0:21.080–0:23.249
所以,無論你以前從未打開過這類工具,
0:23.249–0:25.283
還是你已經有點習慣使用 Claude Code,
0:25.283–0:27.271
我都會盡可能簡單地拆解所有內容。
0:27.271–0:32.126
所以,首先,如果你屬於那種只在網頁上使用 ChatGPT 或使用 Claude 的人,
0:32.126–0:33.939
你會很快掌握這些
0:33.939–0:36.513
因為我們現在看到的是 ChatGPT。
0:36.513–0:38.098
我們有能力建立新的對話,
0:38.098–0:39.325
我們可以搜尋對話,
0:39.325–0:40.705
我們可以擁有不同的專案,
0:40.705–0:42.750
我們可以在此處擁有我們所有的不同對話,
0:42.750–0:44.232
然後我們在此處與聊天機器人對話。
0:44.232–0:48.163
如果我打開 Codex 應用程式,也就是今天整部影片都會使用的工具,
0:48.163–0:49.695
它的外觀幾乎完全一樣。
0:49.695–0:51.130
我們在左側有專案,
0:51.130–0:52.387
左側有聊天記錄,
0:52.387–0:54.480
然後我們可以在這裡與 ChatGPT 對話。
0:54.480–0:56.654
我們使用這個切換按鈕來變更模型,
0:56.654–0:59.670
無論是使用 GPT 5.5、5.4 還是其他模型。
0:59.670–1:00.787
我們可以變更速度,
1:00.787–1:02.910
然後也可以變更智慧程度。
1:02.910–1:04.911
也就是低、中、高或超高。
1:04.911–1:08.054
我會在稍後更深入地探討這些內容。
1:08.054–1:10.576
這與 Claude Code 桌面應用程式也非常相似,
1:10.576–1:12.995
我們可以在這裡與 Claude 對話,
1:12.995–1:15.877
然後在左側可以看到我們的聊天記錄和專案。
1:15.877–1:17.187
這就是介面。
1:17.187–1:18.320
別被搞混了。
1:18.320–1:20.563
所以,我會讓大家熟悉這個介面,
1:20.563–1:22.403
並介紹所有您需要知道的設定,
1:22.403–1:25.499
接著我會展示一個完整的專案,從頭到尾建立技能,
1:25.499–1:26.351
連接各種服務,
1:26.351–1:27.505
建立自動化流程,
1:27.505–1:29.859
然後部署到某種網站上。
1:29.859–1:30.571
所以,請坐穩了。
1:30.571–1:32.440
好的,那麼 Codex 到底是什麼呢?
1:32.440–1:35.270
Codex 基本上是一個龐大的超級應用程式。
1:35.270–1:37.788
我們可以像使用網頁版 ChatGPT 那樣與它對話,
1:37.788–1:39.166
但現在我們是在專案中工作,
1:39.166–1:40.905
Codex 可以建立 Excel 試算表,
1:40.905–1:41.864
讀取 Excel 試算表,
1:41.864–1:43.602
瀏覽你所有的本機檔案。
1:43.602–1:45.594
它基本上可以在你的電腦上執行任何操作,
1:45.594–1:47.324
包括使用滑鼠和鍵盤,
1:47.324–1:48.216
點擊各個項目,
1:48.216–1:49.369
以及自動化瀏覽器操作。
1:49.369–1:51.632
它還讓我們能夠建立這些可重複使用的技能。
1:51.632–1:52.679
我們可以建立網站,
1:52.679–1:53.506
我們可以建立應用程式,
1:53.506–1:54.664
我們可以建立電子遊戲,
1:54.664–1:55.766
然後我們可以自動化
1:55.766–1:56.813
並將所有這些內容推送
1:56.813–1:57.916
讓它真正運行起來
1:57.916–1:59.514
在我們每晚睡覺的時候。
1:59.514–2:01.398
所以這裡網頁聊天主要的差異在於
2:01.398–2:03.035
的主要區別在於,你基本上只是在說話。
2:03.035–2:04.693
而現在聊天 GPT 有這些連接器,
2:04.693–2:06.395
所以你可以獲得更多一點的功能。
2:06.395–2:10.080
你可以給那個 AI 大腦更多一點像雙手一樣的能力。
2:10.080–2:13.040
但是,在 Codex 中,它可以做所有事情。
2:13.040–2:14.088
這是其中一種情況,
2:14.088–2:16.132
其中 Codex 可以做聊天能做的所有事情,
2:16.132–2:18.438
但聊天能做的遠不及 Codex 能做的。
2:18.438–2:21.022
所以,你最好直接切換到像 Codex 這樣的東西。
2:21.022–2:23.950
如果你對 Claude code 與 Codex 的差異感到好奇,
2:23.950–2:25.565
它們是不同的框架,對吧?
2:25.565–2:28.012
所以,它們在根本上運作方式略有不同,
2:28.012–2:28.958
但非常相似。
2:28.958–2:30.588
它們也使用不同的模型。
2:30.588–2:33.041
所以,Claude code 在底層原生使用 Opus
2:33.041–2:33.580
和 Sonnet
2:33.580–2:34.118
以及 Haiku,
2:34.118–2:37.120
而 Codex 底層使用的是不同的 ChatGPT 模型。
2:37.120–2:38.438
現在,我確實做了一個完整的分析
2:38.438–2:40.689
我實際測試了 Opus 4.7 與 GPT 5.5,
2:40.689–2:42.666
並得到了一些非常有趣的結果。
2:42.666–2:44.513
所以,如果你們接下來想看這部影片,
2:44.513–2:45.575
我會直接在這裡標註出來。
2:45.575–2:47.901
我絕對認為至少瀏覽一下是值得的。
2:47.901–2:50.683
因為這些模型最終具有非常不同的優勢
2:50.683–2:53.009
這是我在不停使用它們後所觀察到的。
2:53.009–2:55.728
我真的很喜歡 Claude 那種探索性的特質
2:55.728–2:56.674
以及發想創意
2:56.674–2:58.033
幫助我發揮創意
2:58.033–2:59.274
以及思考事情
2:59.274–2:59.747
以及規劃。
2:59.747–3:02.440
但另一方面,我真的很喜歡 Codex 的務實風格。
3:02.440–3:05.093
而且當計畫變得越來越長時,
3:05.093–3:06.944
它似乎更擅長遵循我的計畫。
3:06.944–3:08.528
它非常擅長執行,
3:08.528–3:10.275
而且非常擅長發現問題
3:10.275–3:11.586
以及進行除錯
3:11.586–3:14.098
有時克勞德出於某些原因無法處理的問題。
3:14.098–3:14.251
所以,
3:14.251–3:16.850
我不是在這裡說我比克勞德程式碼更喜歡Codex。
3:16.850–3:18.550
我是說我同時使用這兩者,
3:18.550–3:20.589
而且我每天對這兩者的了解都更多。
3:20.589–3:23.706
我還很喜歡Codex的另一點是,你可以在這裡看到我的小寵物,
3:23.706–3:25.494
稍後我會告訴大家如何獲得這個。
3:25.494–3:26.096
但這隻寵物,
3:26.096–3:27.135
在你工作時,
3:27.135–3:28.830
它會停留在螢幕底部,
3:28.830–3:30.526
並告訴你它正在處理什麼。
3:30.526–3:30.691
所以,
3:30.691–3:32.505
能夠多工處理真的很棒
3:32.505–3:34.440
並查看Codex內部的狀況真的很好。
3:34.440–3:35.770
而且這隻寵物有點有趣。
3:35.770–3:37.117
而且不僅僅是聊天功能。
3:37.117–3:39.959
它能夠讓你的工作區中的所有內容都有條理。
3:39.959–3:43.428
所以,如果你們看過我最近關於克勞德程式碼作業系統的影片,
3:43.428–3:45.588
或者看過我的行政助理影片,
3:45.588–3:46.953
這就是我的Heart Two專案,
3:46.953–3:49.512
基本上,這就是我在 Claude Code 裡的生活空間。
3:49.512–3:52.029
而這裡面全都是一堆資料夾和檔案。
3:52.029–3:53.388
我這裡有很多檔案。
3:53.388–3:54.727
我有很多不同的資料夾。
3:54.727–3:55.401
我有設定檔。
3:55.401–3:56.114
我有技能設定。
3:56.114–3:56.849
我有代理程式(agents)。
3:56.849–3:57.798
我有專案。
3:57.798–3:58.959
我有這些東西
3:58.959–3:59.898
我正在處理的專案。
3:59.898–4:00.819
而這些全都是
4:00.819–4:02.440
一堆本機檔案。
4:02.440–4:04.176
這意味著我可以讓 Codex 在
4:04.176–4:05.527
這個目錄裡運作
4:05.527–4:06.942
並完成所有工作。
4:06.942–4:07.856
我們在使用這些不同模型時
4:07.856–4:09.685
當我們使用這些不同的模型時
4:09.685–4:11.729
就是將事物組織成某種結構。
4:11.729–4:13.803
一種不同的代理程式框架能夠理解的結構。
4:13.803–4:15.425
無論你想使用 Codex
4:15.425–4:16.145
或是 Claude Code
4:16.145–4:16.626
或是 Cursor
4:16.626–4:17.827
或是,你知道的,Open Claw,
4:17.827–4:18.608
無論是什麼,
4:18.608–4:20.600
它們都可以從該目錄中運作。
4:20.600–4:22.796
只要你有一些類型的指示
4:22.796–4:25.170
以及關於實際內容存放位置的指導方針。
4:25.170–4:28.348
好的,所以基本上我今天要與各位一起建構的
4:28.348–4:30.732
是一個 YouTube 留言智慧系統。
4:30.732–4:34.179
所以我們希望能夠從我的頻道擷取 YouTube 留言。
4:34.179–4:35.986
我們希望能夠對這些留言進行分析。
4:35.986–4:37.241
我們希望有一個 Excel 工作簿。
4:37.241–4:39.184
我們希望有一些資料視覺化呈現。
4:39.184–4:41.833
我們還希望有一個位於網路某處的儀表板
4:41.833–4:44.306
這樣我在散步時可以透過手機去查看。
4:44.306–4:46.701
我將展示如何部署和發布所有這些內容。
4:46.701–4:50.356
所以基本上,我今天要展示的是如何從零開始建構一個可運作的專案。
4:50.356–4:50.529
所以,
4:50.529–4:51.219
讓我繼續
4:51.219–4:52.370
打開 Codex 應用程式
4:52.370–4:53.923
並向大家展示它是如何運作的。
4:53.923–4:54.765
現在,快速說明一下,
4:54.765–4:55.736
你需要做的是
4:55.736–4:57.560
擁有一個某種形式的 ChatGPT 訂閱方案。
4:57.560–4:58.264
好消息是,
4:58.264–4:59.076
如果你使用的是免費方案,
4:59.076–5:00.322
你仍然可以試用 Codex。
5:00.322–5:01.907
你將擁有有限的 Codex 使用權限。
5:01.907–5:02.961
但我會建議
5:02.961–5:04.659
先選擇每月 20 美元的方案來開始使用。
5:04.659–5:05.420
以此作為起點。
5:05.420–5:07.959
如果你很快就會遇到使用限制,
5:07.959–5:09.670
那麼也許你應該考慮升級到 Pro 方案。
5:09.680–5:12.631
現在,ChatGPT 訂閱方案另一個非常棒的地方是,
5:12.631–5:14.919
你可以將其接入 Open Claw 或 Hermes Agent,
5:14.919–5:16.364
這真的非常棒。
5:16.364–5:19.096
因為顯然按 token 計費會貴得多
5:19.096–5:21.197
比起使用某種訂閱方案要昂貴得多。
5:21.197–5:23.307
然後,你只需前往 Codex
5:23.307–5:25.663
並下載適用於你作業系統的版本。
5:25.663–5:27.908
這就是我們今天要使用它的方式。
5:27.908–5:31.170
最終,如果您在 VS Code 擴充功能或終端機中使用 Codex,您將獲得更完整的功能。
5:31.170–5:33.548
如果您在 VS Code 擴充功能中使用 Codex,
5:33.548–5:34.635
或在終端機中使用,
5:34.635–5:36.214
但為了影片簡潔起見,
5:36.214–5:39.120
無論哪種方式,使用應用程式都能讓您獲得極大的便利。
5:39.120–5:40.996
只是有幾件小事您需要注意,
5:40.996–5:42.433
這也是我製作這部 YouTube 影片的原因。
5:42.433–5:44.707
好的,那麼我們就開始吧。
5:44.707–5:46.224
所以,在左側您可以看到
5:46.224–5:47.337
我開啟了一個專案,
5:47.337–5:51.028
而這個專案實際上就是用來建構您剛才看到的簡報投影片。
5:51.028–5:53.624
所以,這個簡報投影片是我在這個專案中建構的,
5:53.624–5:55.412
您可以看到因為我在使用應用程式,
5:55.412–5:59.449
Codex 讓我們基本上可以在這個本地主機瀏覽器中進行導航。
5:59.449–6:00.967
而且這也是如果我說
6:00.967–6:05.403
「嘿,你能使用瀏覽器操作功能來測試這個簡報投影片,確保一切看起來沒問題
6:05.403–6:08.040
並確保它在功能上像點擊和移動那樣運作嗎?」
6:08.040–6:09.693
那麼它就會在這裡顯示一個滑鼠游標,
6:09.693–6:10.995
我們會看到它移動,
6:10.995–6:12.046
我們會看到它點擊,
6:12.046–6:13.849
這部分我稍後會在影片中展示給各位看。
6:13.849–6:15.533
不過,總之我們要做的是
6:15.533–6:17.054
我們要開始一個新專案
6:17.054–6:19.771
因為在這裡你可以看到我們有很多隨意的對話,
6:19.771–6:23.791
這些對話仍然可以執行像是建立遊戲、建置自動化流程和模擬器等任務。
6:23.791–6:26.523
但我們想要做的是,我們希望在實際專案中工作
6:26.523–6:29.914
因為這些對話,我們創建的任何交付成果都沒有真正的歸屬,
6:29.914–6:32.393
你知道,它們只是隨機存在於我們的文件中的某個地方。
6:32.393–6:34.625
但當我們在特定專案中工作時,
6:34.625–6:37.098
我實際上可以取得本地的工作目錄,
6:37.098–6:37.821
所以我複製它,
6:37.821–6:40.294
如果我進入檔案總管並貼上它,
6:40.294–6:43.320
現在我進入了我們正在實際運作的專案
6:43.320–6:43.638
Codex 中實際工作的專案。
6:43.638–6:46.265
所以,現在我可以看到這個專案中存在的不同資產,
6:46.265–6:47.053
所有這些圖片。
6:47.053–6:48.602
我可以看到不同的指南,
6:48.602–6:53.315
我可以為我業務中這個持續進行的專案增加一點組織性。
6:53.315–6:55.315
好的,所以我們要開始一個新專案。
6:55.315–6:57.360
我將點擊頂部的「新增聊天」
6:57.360–7:00.770
然後在這裡你可以看到我目前位於 Codex 95% 專案中
7:00.770–7:03.249
但我們將繼續新增一個新專案
7:03.249–7:06.394
這將在這裡開啟一個小型的檔案總管
7:06.394–7:08.752
然後你選擇要將它存放在哪裡
7:08.752–7:11.824
因此,在這個範例中,我將前往我的桌面
7:11.824–7:14.896
我會進入一個名為 Codex YouTube 的資料夾
7:14.896–7:20.747
然後我將在此資料夾內建立一個新資料夾,命名為 YouTube analytics demo
7:20.747–7:23.477
我們將繼續開啟這個資料夾並選取它
7:23.477–7:27.697
現在你可以看到左側出現了一個新專案,我們將在此進行操作
7:27.697–7:29.744
現在,在這裡你可以看到我擁有「完全存取權限」
7:29.744–7:31.181
預設情況下,你不會看到這個選項
7:31.181–7:32.960
它將僅顯示為預設權限
7:32.960–7:34.771
因此,我將在此啟動某種聊天
7:34.771–7:36.814
然後我會展示如何實際設定它
7:36.814–7:37.638
快速說明一下,各位
7:37.638–7:40.276
我知道這段影片涵蓋了大量資訊
7:40.276–7:45.058
所以我將這些內容整理成一份完整的 PDF 資源指南,供你稍後使用與參考
7:45.058–7:47.423
你只需加入我的免費學校社群即可獲取該指南
7:47.423–7:48.897
相關連結位於描述欄中
7:48.897–7:49.992
一旦你進入這裡,
7:49.992–7:52.510
前往教室並點擊所有 YouTube 資源,
7:52.510–7:54.372
你就能找到我所有的程式碼倉庫,
7:54.372–7:55.138
我所有的技能,
7:55.138–7:55.960
資源指南,
7:55.960–7:59.135
我曾經放在這裡的所有內容都是完全免費的,
7:59.135–8:00.240
我在 YouTube 上展示過的任何內容
8:00.240–8:01.910
通常都會放在這裡。
8:01.920–8:02.749
所以,加入這個社群,
8:02.749–8:03.620
連結在描述中,
8:03.620–8:04.698
讓我們回到影片內容。
8:04.698–8:05.171
謝謝大家。
8:05.171–8:08.288
好的,所以這個專案中我想做的第一件事是
8:08.288–8:11.944
我希望能夠藉此熟悉我的工作環境
8:11.944–8:12.783
以及我是誰。
8:12.783–8:15.050
而我要採取的方式是
8:15.050–8:16.586
我在本地有一個專案。
8:16.586–8:17.413
如果我進入我的
8:17.413–8:18.616
如果我進入我的桌面
8:18.616–8:21.473
並進入這裡名為 YouTube OS 的專案,
8:21.473–8:25.834
我這裡有來自一些 YouTube 影片的完整轉錄稿。
8:25.834–8:26.814
所以,我要做的是
8:26.814–8:28.308
我不會提供那個檔案路徑。
8:28.308–8:30.621
我只會說,「嘿,在我的桌面裡,
8:30.621–8:32.471
查看我的 YouTube OS 資料夾,
8:32.471–8:34.652
然後直接讀取 10 份我的原始轉錄稿
8:34.652–8:35.719
並對它們進行分析。」
8:35.719–8:39.481
這只是要向你們展示它在本地尋找不同檔案方面的能力有多強
8:39.481–8:40.872
以及能夠對它們進行組織,
8:40.872–8:41.336
移動它們,
8:41.336–8:41.903
刪除它們,
8:41.903–8:42.727
隨你怎麼做。
8:42.727–8:44.702
在這種情況下,我只是告訴它去讀取這些內容。
8:44.702–8:47.131
好的,所以我要你去我的桌面,
8:47.131–8:49.889
然後查看一個名為 YouTube OS 的資料夾,
8:49.889–8:52.712
我只希望你熟悉一下我的情況。
8:52.712–8:55.299
我會製作關於 AI 自動化的 YouTube 影片,
8:55.299–8:57.023
而這個資料夾裡面,
8:57.023–8:59.375
有我大量的原始轉錄稿。
8:59.375–9:01.586
所以,我只希望你讀取大約 5 到 10 份這些內容
9:01.586–9:04.350
只是為了讓你熟悉我所製作的內容類型。
9:04.350–9:05.655
你不需要進行任何整理。
9:05.655–9:07.432
我只是希望你閱讀這些內容以作為背景參考。
9:07.432–9:09.048
現在,這部分有趣的地方在於
9:09.048–9:11.762
Codex 再次成為了一個在本地運行的代理程式。
9:11.762–9:14.683
所以,僅僅因為它是在一個專案內運作,
9:14.683–9:17.670
也就是我們的,你知道,YouTube 類型的示範資料夾,
9:17.670–9:22.251
這並不意味著它無法導航到你本地檔案中的其他任何地方。
9:22.251–9:23.874
而且因為我們指示它這麼做,
9:23.874–9:24.816
它將會進行搜尋。
9:24.816–9:27.318
就在這裡,你可以看到它正在我的桌面內搜尋。
9:27.318–9:29.037
然後它會找到 YouTube OS,
9:29.037–9:30.903
並深入進入該資料夾。
9:30.903–9:33.960
它會持續搜尋,直到找到它想要的東西為止。
9:33.960–9:35.028
現在,一個快速警告。
9:35.028–9:37.543
這並不是使用 Codex
9:37.543–9:38.621
或你的 token 最有效的方式。
9:38.621–9:44.200
更有效的方式會是說:「嘿,這個資料夾就在這裡,裡面有我所有的原始轉錄檔。
9:44.200–9:45.570
我將複製這個路徑,
9:45.570–9:48.132
然後我現在只是將這個確切的路徑提供給 Codex,
9:48.132–9:51.706
所以它可以直接查看那裡,而不必自己搜尋。
9:51.706–9:54.268
但我只是想展示它如何能做到這一點。
9:54.268–9:55.478
因為你可以看到這裡,
9:55.478–9:56.780
在我的轉錄資料夾內,
9:56.780–9:57.618
有一個名為 raw 的資料夾,
9:57.618–9:59.339
那就是我希望它查看的資料夾。
9:59.339–10:01.597
而這裡顯示有兩個檔案,
10:01.597–10:02.888
分別是 raw 和 processed。
10:02.888–10:05.091
所以它不知道該查看哪一個。
10:05.091–10:05.589
所以,
10:05.589–10:07.583
你在提示詞和指引上越具體,
10:07.583–10:08.580
效果就越好。
10:08.580–10:09.078
這樣會更好。
10:09.078–10:09.798
現在讓我們在
10:09.798–10:10.851
這個程序運行的同時,
10:10.851–10:12.569
來討論這裡的模型設定。
10:12.569–10:14.829
所以現在你應該注意到我們設定的是 extra high。
10:14.829–10:18.560
我認為對於這類工作來說,extra high 可能有點過度了。
10:18.560–10:19.495
在大多數情況下,
10:19.495–10:21.553
我使用 medium 來進行所有的規劃
10:21.553–10:22.738
以及我的腦力激盪。
10:22.738–10:24.096
然後偶爾
10:24.096–10:25.182
當我在進行大型建置
10:25.182–10:26.215
或某些大規模專案時,
10:26.215–10:27.138
我會切換到 high。
10:27.138–10:29.333
老實說,我幾乎不使用 extra high
10:29.333–10:31.386
除非我遇到某種它無法解決的錯誤
10:31.386–10:33.520
或是它無法解決的問題。
10:33.520–10:33.968
總之,
10:33.968–10:35.369
它已讀取了九份轉錄檔,
10:35.369–10:38.226
所以它現在對我們是誰有了更好的了解。
10:38.226–10:39.290
但只是要展示給各位看,
10:39.290–10:41.267
這仍然是我們正在使用的資料夾,
10:41.267–10:42.483
YouTube 分析示範,
10:42.483–10:44.105
這裡沒有任何存在的內容。
10:44.105–10:45.712
所以即使它知道這些,
10:45.712–10:49.327
這些知識實際上只存在於我們整體的 ChatGPT 記憶體中,
10:49.327–10:51.202
以及在這個特定的聊天視窗裡。
10:51.202–10:52.406
如果我開啟一個新的聊天,
10:52.406–10:55.357
它可能就不會再擁有關於這些的知識了。
10:55.357–10:57.348
所以我大概會想說,
10:57.348–10:59.916
「我希望你做的是建立一個 agents.md 檔案。
10:59.916–11:01.676
這個檔案應該包含關於我的背景資訊
11:01.676–11:03.876
以及這個專案的目標。
11:03.876–11:04.416
最終,
11:04.416–11:05.596
我們在這裡要做的是
11:05.596–11:06.922
建立一個儀表板
11:06.922–11:08.495
這個儀表板會被部署到
11:08.495–11:09.969
部署到 Vercel,
11:09.969–11:12.082
並且它會包含關於我頻道的資訊
11:12.082–11:13.320
以及相關的數據分析
11:13.320–11:14.717
評論等相關的分析數據。
11:14.717–11:15.661
這就是最終目標。
11:15.661–11:17.192
我們需要串接 YouTube,
11:17.192–11:18.461
我們需要拉取資料,
11:18.461–11:19.643
我們需要設定一些技能
11:19.643–11:20.474
和一些自動化流程。
11:20.474–11:22.804
但我只希望你先幫我們建立一個快速的 agents.md 檔案來啟動專案,
11:22.804–11:24.498
然後現在我要繼續
11:24.498–11:26.000
現在我將繼續
11:26.000–11:27.120
然後把它發送出去。
11:27.120–11:29.114
那麼,為什麼我們需要建立 agents.md 檔案呢?
11:29.114–11:31.249
嗯,如果你是從 Cloud Code 過來的,
11:31.249–11:33.441
你就知道我們總是希望從一個專案開始,
11:33.441–11:34.537
使用 Claude.md 檔案。
11:34.537–11:36.297
而這裡只是 agents.md,
11:36.297–11:37.598
這是一樣的東西,
11:37.598–11:40.440
但 Codex 期望不同的術語。
11:40.440–11:41.916
這個 agents 檔案的作用是
11:41.916–11:42.846
基本上就像
11:42.846–11:43.840
一份入職文件。
11:43.840–11:45.573
每次你開啟新的對話時,
11:45.573–11:48.206
它首先會讀取 agents.md 檔案,
11:48.206–11:49.875
然後根據以下內容進行整理:
11:49.875–11:50.967
我的目標是什麼,
11:50.967–11:52.251
這位使用者在做什麼,
11:52.251–11:54.883
以及我如何盡可能有效地幫助他們。
11:54.883–11:56.433
所以,這個文件已經建立了。
11:56.433–11:58.649
如果我點擊開啟,我們就能在這裡直接閱讀它。
11:58.649–12:00.460
這只是一個非常簡單的 Markdown 檔案。
12:00.460–12:02.013
就是這裡的專案。
12:02.013–12:04.443
這是關於 Nate 的部分,Nate Herc 負責這個。
12:04.443–12:05.960
這是專案目標。
12:05.960–12:07.183
這就是產品的方向
12:07.183–12:09.866
所以,我們只是提供它非常重要的資訊
12:09.866–12:11.800
讓它了解我們的專案。
12:11.800–12:14.198
現在你可以看到,如果我拉出檔案總管,
12:14.198–12:16.310
它建立了這個 agents markdown 資料夾,
12:16.310–12:17.852
這正是我們想要的。
12:17.852–12:19.160
抱歉,不是資料夾,是檔案。
12:19.160–12:20.595
好的,既然這部分已經完成,
12:20.595–12:22.344
我將繼續關閉這個視窗,
12:22.344–12:23.520
然後我們開始。
12:23.520–12:24.400
所以,我要做的是
12:24.400–12:25.532
我會點擊這個按鈕
12:25.532–12:26.705
並開啟計畫模式。
12:26.705–12:28.888
計畫模式是我喜歡開始的方式
12:28.888–12:31.071
當我在制定某種計畫時。
12:31.071–12:33.817
這基本上意味著 Codex 實際上不會執行任何操作,
12:33.817–12:35.043
它只會進行腦力激盪
12:35.043–12:37.102
並幫助大家釐清想要建構的內容
12:37.102–12:38.328
在實際建構之前。
12:38.328–12:40.240
所以,我總是從計畫模式開始。
12:40.240–12:41.400
現在,我開始囉嗦一下。
12:41.400–12:44.126
另外,如果你們好奇我使用的語音轉文字工具,
12:44.126–12:45.276
請在描述中查看,
12:45.276–12:45.957
它叫做 Glido。
12:45.957–12:47.727
我現在已經是 Glido 團隊的正式成員,
12:47.727–12:48.732
這非常令人興奮。
12:48.732–12:51.090
我已經完全從 Whisper 切換到 Glido
12:51.090–12:52.178
因為它速度更快,
12:52.178–12:53.145
隱私性更高,
12:53.145–12:54.777
而且它是一個更具代理能力的工具,
12:54.777–12:56.530
我們有著非常酷的願景。
12:56.530–12:57.913
所以,請在描述欄查看。
12:57.913–13:00.323
好的,現在你了解了這個背景,
13:00.323–13:02.238
我們需要克服的第一個障礙是
13:02.238–13:04.338
你實際上如何連接到我的 YouTube
13:04.338–13:06.192
以便能夠拉取我的資料。
13:06.192–13:07.796
我希望你能夠特別
13:07.796–13:09.987
在這個階段,能夠匯入大量評論
13:09.987–13:11.280
以便你進行分析。
13:11.280–13:12.894
所以,幫我弄清楚我們該如何做,
13:12.894–13:14.680
然後一步一步解釋給我聽。
13:14.680–13:16.255
這確實是一種思維模式的轉變,
13:16.255–13:17.831
對於像 Codex 或 Claude Code 這樣的工具,
13:17.831–13:19.721
如果你不知道某件事是可能的,
13:19.721–13:20.982
與其預設為「哦,
13:20.982–13:21.927
我需要去 YouTube
13:21.927–13:24.342
」或「哦,我想預約與專家進行諮詢通話,
13:24.342–13:26.266
就直接詢問 Codex 或 Claude Code。
13:26.266–13:28.514
請它幫你進行研究並解釋事情。
13:28.514–13:31.360
基本上,我就是透過這種方式學會我所知道的一切。
13:31.360–13:32.611
因此,當這段程式正在執行時,
13:32.611–13:34.696
我想快速解釋一件事,
13:34.696–13:35.947
那就是外掛程式(plugins)。
13:35.947–13:38.060
外掛程式、MCP 伺服器、技能、連接器,
13:38.060–13:39.544
無論你怎麼稱呼它們。
13:39.544–13:42.210
我們似乎在 Codex 內部擁有一個這樣的介面,
13:42.210–13:43.473
來執行這類操作。
13:43.473–13:44.414
你會注意到的是
13:44.414–13:46.028
這裡有很多不同的外掛程式。
13:46.028–13:47.200
我們有 Hugging Face,
13:47.200–13:48.079
我們有 Vercel,
13:48.079–13:48.958
我們有 GitHub,
13:48.958–13:50.072
我們有 Game Studio。
13:50.072–13:52.121
我們在這邊有很多設計相關的外掛,
13:52.121–13:54.235
[未翻譯]
13:54.235–13:55.655
我們有生活風格相關的功能,
13:55.655–13:56.366
生產力工具,
13:56.366–13:58.059
這讓我們基本上可以連接
13:58.059–14:00.200
到許多我們已經熟悉且喜愛的工具。
14:00.200–14:02.355
[未翻譯]
14:02.355–14:03.524
無論你需要什麼,
14:03.524–14:05.433
這裡都有很多相關功能可供使用。
14:05.433–14:06.146
如果你找不到,
14:06.146–14:06.966
你可以直接進行搜尋。
14:06.966–14:07.605
比如 Slack,
14:07.605–14:08.618
我們就在這裡有它。
14:08.618–14:09.260
但是你看,
14:09.260–14:10.623
如果我搜尋 YouTube,
14:10.623–14:13.200
這裡沒有預設的外掛程式。
14:13.200–14:14.905
這就是為什麼我必須詢問 Codex,
14:14.905–14:16.357
好的,既然沒有外掛程式,
14:16.357–14:18.377
我該如何實際存取 YouTube 的資料?
14:18.377–14:19.787
然後它會回到這裡
14:19.787–14:21.560
並向我們提出一些問題。
14:21.560–14:24.311
它表示針對第一個評論分析里程碑,
14:24.311–14:26.800
我們應該圍繞哪個連線路徑來規劃,
14:26.800–14:28.120
API 金鑰、OAuth,還是兩者都要?
14:28.120–14:30.078
嗯,我將直接採用他的建議
14:30.078–14:31.835
因為假設我不知道該做什麼,
14:31.835–14:33.200
然後我會點擊 API 金鑰。
14:33.200–14:34.870
第一個評論抓取應該聚焦於什麼?
14:34.870–14:36.680
我只會說最近的影片。
14:36.680–14:38.575
現在如果它還有其他問題,
14:38.575–14:40.470
它會先繼續向我們提出那些問題。
14:40.480–14:41.701
現在你會注意到一件事是
14:41.701–14:44.680
因為它已經在搜尋我的其他資料夾和專案,
14:44.680–14:46.487
它確實在另一個專案中找到了 API 金鑰,
14:46.487–14:49.026
但我還是要向大家展示如何進行設定
14:49.026–14:49.720
因為它會
14:49.720–14:51.005
回到這裡並提出計畫,
14:51.005–14:52.800
我們可以繼續閱讀該計畫。
14:52.800–14:54.162
所以它想要使用的是
14:54.162–14:55.388
它找到了一個 API 金鑰,
14:55.388–14:56.410
因此不是完整的 OAuth,
14:56.410–14:59.280
然後它需要實際轉換所有內容。
14:59.280–15:00.776
所以我只會說
15:00.776–15:02.092
與其進行實作,
15:02.092–15:02.930
我會說,
15:02.930–15:04.784
「很高興你找到了那個 API 金鑰,
15:04.784–15:06.100
但讓我們重新設定一個新的
15:06.100–15:07.477
因為在我的 Google Cloud 中,
15:07.477–15:09.511
我希望為 Codex 設定一個單獨的 API 金鑰
15:09.511–15:09.760
以及
15:09.760–15:11.069
為 Claude code 設定另一個單獨的金鑰。
15:11.069–15:14.693
所以我們就假設要從頭開始建立一個全新的金鑰。」
15:14.693–15:16.388
現在我可以送出這些變更了。
15:16.388–15:18.165
Codex 將審查該計畫
15:18.165–15:19.087
然後編輯它。
15:19.087–15:20.794
然後一旦我們對計劃達成一致,
15:20.794–15:22.345
我們就繼續開始執行。
15:22.345–15:23.275
所以現在它回來了
15:23.275–15:23.987
並且顯示「好的」,
15:23.987–15:26.240
我們將建立一個全新的 Google Cloud API 金鑰。
15:26.240–15:28.700
如果你想逐步閱讀所有內容,
15:28.700–15:29.182
你可以這麼做,
15:29.182–15:31.161
但我將直接點擊提交,
15:31.161–15:32.080
實施計劃。
15:32.080–15:32.190
所以,
15:32.190–15:33.835
這裡有一些我們必須做的事情。
15:33.835–15:36.498
我們必須進入 Google Cloud Console,
15:36.498–15:39.099
並且我們必須建立這個新專案,
15:39.099–15:40.089
嗯,啟用這個 API,
15:40.089–15:41.390
然後取得 API 金鑰,
15:41.390–15:43.619
然後在 Codex 內進行配置。
15:43.619–15:43.756
所以,
15:43.756–15:46.002
如果這個教程部分對你來說不太有趣,
15:46.002–15:47.468
你不想看我設定它,
15:47.468–15:49.805
也許你想先用原生外掛做一些事情,
15:49.805–15:50.640
這會容易得多。
15:50.640–15:51.165
通常,
15:51.165–15:53.002
這些外掛你基本上只要登入,
15:53.002–15:55.311
就像你打開 Slack 並登入的方式一樣,
15:55.311–15:57.463
或者就像你打開 Gmail 並登入的方式一樣,
15:57.463–15:58.680
這會容易得多。
15:58.680–15:58.964
好的,
15:58.964–16:00.330
所以我必須前往 Google Cloud
16:00.330–16:02.160
並在專案中設定所有東西。
16:02.160–16:03.674
如果我不完全知道該如何做,
16:03.674–16:05.898
它會像你們在計畫中看到的那樣,一步步告訴我,
16:05.898–16:06.939
但它會做的是
16:06.939–16:08.169
它為我們創建了另一個檔案。
16:08.169–16:08.348
所以,
16:08.348–16:10.016
它為我們創建了這個名為
16:10.016–16:10.144
所以,
16:10.144–16:11.560
它為我們創建了這個名為 .env.local 的檔案。
16:11.560–16:11.732
所以,
16:11.732–16:12.762
我要做的是
16:12.762–16:14.536
前往我的 Google Cloud Console。
16:14.536–16:16.296
我已使用我的 YouTube 帳戶登入,
16:16.296–16:18.560
接著我將建立一個新專案。
16:18.560–16:21.799
所以,我將這個專案命名為 Codex demo。
16:21.799–16:24.194
我將直接建立這個專案,
16:24.194–16:26.304
一旦專案建立完成,操作就相當簡單。
16:26.304–16:29.220
我們只需建立與 YouTube Data API 的連線,
16:29.220–16:31.376
然後建立一個 API 金鑰。
16:31.376–16:32.542
所以,我將選取這個專案。
16:32.542–16:35.892
我要做的第一件事是在頂部搜尋 YouTube
16:35.892–16:38.066
是在頂部搜尋 YouTube Data,
16:38.066–16:40.358
接著我們將取得 YouTube Data API v3,
16:40.358–16:42.650
接著我會點擊啟用
16:42.650–16:46.714
啟用後,應該會顯示如下畫面
16:46.714–16:49.164
接著我將往下捲動至憑證(Credentials),
16:49.164–16:51.196
並建立一個新的 API 金鑰。
16:51.196–16:52.295
所以,建立 API 金鑰。
16:52.295–16:56.331
這將命名為 Codex YouTube demo。
16:56.331–16:59.522
接著在限制(restrictions)部分,我將再次輸入 YouTube。
16:59.522–17:01.365
我們將勾選 YouTube Data API v3,
17:01.365–17:03.858
接著我們繼續建立該 API 金鑰。
17:03.858–17:05.946
它會給我這個值,我將複製它。
17:05.946–17:07.443
所以,我會複製那個,
17:07.443–17:11.458
然後我會載入它建立的檔案,也就是 .env.local,
17:11.458–17:15.132
我只會用我的記事本快速開啟這個檔案,
17:15.132–17:18.058
這裡是我放入 YouTube API 金鑰的地方。
17:18.058–17:19.839
我只會把它貼到那裡。
17:19.839–17:21.932
按下儲存,然後我可以關閉它
17:21.932–17:25.800
因為我們接下來需要取得的是我們的 YouTube 頻道 ID。
17:25.800–17:27.476
我實際上不會使用上傳播放清單。
17:27.476–17:28.815
我認為不需要那個,
17:28.815–17:31.085
但我會去尋找 YouTube 頻道 ID。
17:31.085–17:32.460
哦,但這其實很酷。
17:32.460–17:34.244
我的 YouTube 頻道 ID 已經在裡面了
17:34.244–17:35.924
播放清單 ID 也已經在裡面了
17:35.924–17:38.548
因為它能夠從另一個專案直接擷取。
17:38.548–17:41.679
所以顯然如果你沒有事先設定好,它就不會那樣做,
17:41.679–17:44.497
但如果你需要,它會詳細說明如何操作。
17:44.497–17:48.480
所以現在我們已經輸入 API 金鑰,讓我們看看它是否運作。
17:48.480–17:52.760
好的,所以我已經在 local.env 中提供了 API 金鑰。
17:52.760–17:55.198
你可以繼續測試一下,看看連線是否正常運作?
17:55.198–17:57.317
如果不行的話,我們就得做一些調整。
17:57.317–17:58.977
好的,現在當這個程式正在執行時,
17:58.977–18:01.497
你們進入 Codex 時可能會注意到
18:01.497–18:04.387
它可能會經常暫停,實際上是為了詢問你們問題
18:04.387–18:05.678
或是要求批准某些事項。
18:05.678–18:08.355
這就是使用預設權限時會發生的情況。
18:08.355–18:09.746
所以,如果你想變更這個設定,
18:09.746–18:11.320
你需要前往這裡的設定選單。
18:11.320–18:12.339
然後在一般設定中,
18:12.339–18:13.478
你可以看到這裡,
18:13.478–18:14.857
自動審查或完全存取。
18:14.857–18:16.849
預設情況下,這個選項是關閉的。
18:16.849–18:17.849
所以如果我開啟這個選項,
18:17.849–18:19.537
那麼當我們回到聊天視窗時,
18:19.537–18:20.788
我們現在就具備了這個功能,
18:20.788–18:21.600
就在這裡可以看到,
18:21.600–18:22.788
這是一個具體的例子,
18:22.788–18:23.914
允許網路存取
18:23.914–18:25.039
我想說好的,
18:25.039–18:25.539
允許它。
18:25.539–18:27.263
或者如果我將此切換為完全存取,
18:27.263–18:30.772
現在它就不會再詢問許可而直接執行所有操作。
18:30.772–18:32.791
所以很明顯,這裡會顯示為橘色,
18:32.791–18:36.828
因為有時你可能不希望擁有完全自主的存取權。
18:36.828–18:39.651
我認為在剛開始使用時,最佳做法是
18:39.651–18:41.585
並初次建構一些自動化流程時,
18:41.585–18:43.049
最好將其保留在預設值。
18:43.049–18:44.948
但一旦你開始熟悉你的技能
18:44.948–18:46.555
並開始熟悉整個流程,
18:46.555–18:48.892
那麼切換到完全存取將為你節省大量時間,
18:48.892–18:50.791
這樣你實際上就不需要一直盯著它看。
18:50.791–18:52.522
但我必須特別指出這一點,因為,
18:52.522–18:53.017
你知道,
18:53.017–18:55.922
我們看過過多的恐怖故事,例如代理程式刪除資料庫
18:55.922–18:58.333
或發送大量電子郵件等情況。
18:58.333–18:59.832
所以你要對它保持謹慎。
18:59.832–19:02.395
我個人從未遇過類似的問題。
19:02.395–19:04.283
這通常來自於情境腐敗
19:04.283–19:05.731
或非常模糊的指令
19:05.731–19:08.437
或是規劃時不夠周全
19:08.437–19:11.013
所以你可以看到這裡正在嘗試,對吧?
19:11.013–19:12.303
它遇到了一些問題。
19:12.303–19:15.719
但這個代理循環(agentic loop)很棒的地方在於,它會持續嘗試各種方法
19:15.719–19:17.096
直到成功完成為止。
19:17.096–19:17.599
成功了。
19:17.599–19:19.658
你可以看到金鑰對頻道資料運作良好,
19:19.658–19:21.031
我還要再做一次測試
19:21.031–19:23.512
以確保我能從最近的影片中擷取留言。
19:23.512–19:26.614
所以當你使用這些工具時,一個重大的心態轉變
19:26.614–19:27.712
就是讓它運行,
19:27.712–19:28.682
讓它嘗試各種方法,
19:28.682–19:30.556
在正確的方向上給予協助,
19:30.556–19:31.396
提出問題,
19:31.396–19:32.042
保持好奇心,
19:32.042–19:34.045
並查看它正在做什麼
19:34.045–19:34.960
因為它會告訴
19:34.960–19:36.880
你它嘗試的每一個步驟。
19:36.880–19:38.830
但現在我們可以看到我已經測試過金鑰。
19:38.840–19:40.836
我可以從你最近的影片中取得留言,
19:40.836–19:42.776
且運作完全符合預期。
19:42.776–19:46.614
然而,PowerShell 內建的網頁請求功能存在本地 TLS 問題,
19:46.614–19:49.160
但 Node 和 Python 都順利連線。
19:49.160–19:50.618
對這個專案來說,這樣沒問題。
19:50.618–19:54.120
反正我們會使用 Node 和伺服器端程式碼來建置儀表板。
19:54.120–19:56.400
現在,這裡有件事值得思考。
19:56.400–19:58.440
我其實不太明白那代表什麼意思。
19:58.440–20:01.762
但我想確保的是,這種情況不要再發生,
20:01.762–20:05.411
或者我想確保這個專案不會因為遇到失敗而失去這項知識
20:05.411–20:07.430
因為它遇到了失敗。
20:07.430–20:09.014
每當你遇到失敗時,
20:09.014–20:10.862
你要將它視為寶貴的知識,
20:10.862–20:14.136
因為這意味著你有更多資料可以確保它不會再次發生。
20:14.136–20:17.934
所以我只會說:「好的,謝謝你做了這個測試。
20:17.934–20:20.655
我想確保你永遠不會再遇到這個問題,
20:20.655–20:23.529
並且我想確保這項知識已保存在這個專案中。
20:23.529–20:26.655
所以你能不能在記憶體中的某個地方,
20:26.655–20:29.616
或者這個專案中的某個地方,快速建立一個檔案,以確保你已經知道
20:29.616–20:31.600
這樣下次就不會再發生了
20:31.600–20:32.728
而像這樣做
20:32.728–20:33.855
養成這種習慣,
20:33.855–20:36.418
才能真正讓這些系統隨著時間推移變得更聰明,
20:36.418–20:39.186
而不是一直覺得自己在重複同樣的工作,
20:39.186–20:41.400
或是總是遇到相同的問題。
20:41.400–20:43.105
這是另一個思維上的轉變。
20:43.105–20:45.643
所以這裡它決定將這個加入 agents.md。
20:45.643–20:47.659
目前我對這個沒有意見,
20:47.659–20:49.002
但隨著你的專案規模擴大,
20:49.002–20:51.506
你不想把所有東西都塞進 agents.md,
20:51.506–20:54.011
因為如果那個 agents.md 檔案變得非常龐大,
20:54.011–20:55.904
它會消耗你更多的 token。
20:55.904–20:56.160
好的。
20:56.160–20:57.303
所以在我們繼續之前,
20:57.303–20:59.590
我想指出這裡的另一個東西,
20:59.590–21:00.800
就是這個小條。
21:00.800–21:04.500
這會顯示你目前上下文視窗的使用情況。
21:04.500–21:07.140
現在,如果你使用的是 Claude Code 並使用 Opus,
21:07.140–21:08.058
你有一百萬的容量。
21:08.058–21:11.491
所以,你知道,這大約是 Codex 的四倍。
21:11.491–21:15.056
然而,Codex 會自動進行壓縮,就像 Opus 一樣
21:15.056–21:16.838
就像 Cloud Code 一樣。
21:16.838–21:17.595
所以,這真的很棒。
21:17.595–21:19.480
你不需要太擔心這個問題,
21:19.480–21:23.085
但你仍然需要考慮一些關於上下文管理的一般性建議。
21:23.085–21:25.099
我的頻道上有相關的影片
21:25.099–21:27.386
這些影片適用於任何你想要的工具。
21:27.386–21:30.898
我不會在這部影片中深入探討上下文視窗管理的細節,
21:30.898–21:32.735
但只是想指出這一點。
21:32.735–21:33.929
好的,那麼接下來要做什麼呢?
21:33.929–21:37.447
我想做的是,我想向你們展示它能夠抓取評論
21:37.447–21:40.429
並且我們能夠從中創建實際的交付成果。
21:40.429–21:42.803
所以,讓我再次回到計劃模式。
21:42.803–21:47.662
好的,我想讓你們做的是,抓取大約 100 到 200 條我最近期的評論
21:47.662–21:49.200
然後分析它們。
21:49.200–21:50.908
我想讓你們找出其中的模式
21:50.908–21:54.247
並將所有這些內容顯示在 Excel 表格中。
21:54.247–21:56.967
我希望這是一個數據的可視化呈現
21:56.967–21:59.868
為我作為內容創作者提供有趣的見解
21:59.868–22:02.346
這樣我就能持續製作大家想要的內容
22:02.346–22:05.680
並且持續回答那些經常出現的問題。
22:05.680–22:07.352
所以,請繼續為此制定計劃
22:07.352–22:10.633
並規劃 Excel 檔案交付成果的格式。
22:10.633–22:11.342
所以我已經發送出去了。
22:11.342–22:13.575
我會讓大家知道我們什麼時候有計畫
22:13.575–22:15.006
或如果它向我提出任何問題時,我會通知大家。
22:15.006–22:17.607
這裡有幾個問題,以確保它理解我們的需求。
22:17.607–22:19.328
它正在詢問最近的評論。
22:19.328–22:21.078
我只會說針對最近的影片。
22:21.078–22:22.320
我們應該抓取多少條?
22:22.320–22:23.078
讓我們說 200 條。
22:23.078–22:25.476
我們該如何分類和總結這些評論?
22:25.476–22:27.040
我直接採用它的所有建議。
22:27.040–22:27.796
那些建議相當不錯。
22:27.796–22:29.470
所以,如果我切換到不同的分頁,
22:29.470–22:30.857
假設我們回到了投影片頁面,
22:30.857–22:32.962
你可以看到我下方的寵物旁邊有一個小圖示。
22:32.962–22:35.458
那個小圖示不見了,因為我切換回了 Codex,
22:35.458–22:36.361
但那個小圖示,
22:36.361–22:37.742
如果我將滑鼠懸停在它上面,
22:37.742–22:39.388
它會顯示它正在處理的工作。
22:39.388–22:43.400
所以,現在我可以在做其他事情的時候,隨時掌握我的工作流程。
22:43.400–22:45.622
而 Codex 讓多工處理變得非常輕鬆。
22:45.622–22:48.049
因為我可以在這個專案中開啟新的聊天視窗,
22:48.049–22:49.102
並處理其他事情。
22:49.102–22:50.679
接著我可以在這個專案中開啟新的聊天視窗,
22:50.679–22:51.660
並處理其他事情。
22:51.660–22:52.678
它會進行顏色編碼,
22:52.678–22:55.618
並在側邊顯示藍色或黃色的小圓點,
22:55.618–22:57.597
如果其中一個工作階段需要關注的話。
22:57.597–22:58.822
所以,總之,這是計畫。
22:58.822–23:01.593
我建議你在這個階段先閱讀一遍。
23:01.593–23:03.842
如果你願意,你可以對特定章節進行任何修改,
23:03.842–23:06.941
但為了影片效果,我將直接提交這個計畫。
23:06.941–23:08.604
但當這個計畫正在快速執行時,
23:08.604–23:11.125
我想向你展示一些我們可以查看的其他內容。
23:11.125–23:13.082
所以,如果你在這個聊天中輸入 {slash},
23:13.082–23:15.280
你會看到一些你可以實際查看的功能。
23:15.280–23:22.440
我們有自動審查、程式碼審查、回饋、MCP、記憶、模型、個性、寵物、計畫模式、推理。
23:22.440–23:29.120
還有各種不同的技能,例如瀏覽器使用、GitHub、Higgs Field、PDF、技能建立器。
23:29.120–23:31.799
{slash} 將為你開啟許多不同的功能。
23:31.799–23:34.174
當然,你也可以使用標籤功能。
23:34.174–23:35.086
所以,如果我輸入@符號
23:35.086–23:40.433
這樣就能讓我們標註這個專案中特定位置的插件或檔案
23:40.433–23:44.556
所以,如果你曾經想要參考特定的外掛程式或某些特定內容,
23:44.556–23:49.603
那麼最好嘗試使用斜線指令或是 at 標記來在聊天中實際標註該項目
23:49.603–23:51.688
現在我要提到斜線指令的原因
23:51.688–23:54.627
是因為你會在這裡看到一個叫做 / personality 的指令
23:54.627–23:55.696
如果我把這個打出來
23:55.696–23:57.888
這樣它實際上就會執行某些動作
23:57.888–23:58.731
所以我可以展示給你看的是
23:58.731–24:01.480
我不想打斷這個主要會議
24:01.480–24:04.164
我可以點這裡,然後點擊開啟側邊聊天
24:04.164–24:06.737
這樣就會在這裡開啟另一個小對話視窗
24:06.737–24:08.136
它仍然存在於這個聊天中
24:08.136–24:09.478
仍然屬於這個專案
24:09.478–24:11.594
所以,如果你是從 Cloud Code 過來的
24:11.594–24:13.840
順便一提,這跟 {slash} 非常類似。
24:13.840–24:16.209
所以,我在這裡可以輸入 / personality
24:16.209–24:19.755
現在我可以設定人格是友善還是務實
24:19.755–24:22.548
我想我其實不需要切換到這裡
24:22.548–24:24.261
因為它就像這樣打開,
24:24.261–24:25.975
但現在我們設定為友善模式。
24:25.975–24:27.633
我實際上要將這個切換為務實模式。
24:27.633–24:31.174
你可以看到這裡寫著簡潔、以任務為導向且直接。
24:31.174–24:34.774
老實說,大多數時候我可能更偏好務實模式。
24:34.774–24:37.400
所以,我通常預設都是在務實模式下工作。
24:37.400–24:38.885
但現在我們已經打開了側邊聊天視窗,
24:38.885–24:40.414
讓我給你們看點別的東西。
24:40.414–24:43.211
嗯,給我一個關於我的 YouTube 頻道的快速更新,以及,
24:43.211–24:46.008
你知道,我最近製作的那種類型影片。
24:46.008–24:47.291
只是想讓你們知道,好吧,
24:47.291–24:49.430
如果你的代理程式正在這裡處理某件事,
24:49.430–24:50.809
而你不想打斷它,
24:50.809–24:52.330
但你有一些相關的側邊問題,
24:52.330–24:53.613
這個問題與這個專案有關,
24:53.613–24:56.000
或者與你們之前處理過的事情有關,
24:56.000–24:57.852
你可以在這裡詢問。
24:57.852–25:00.418
因為在這裡你可以看到它擁有
25:00.418–25:02.160
我們已經討論過的話題的上下文。
25:02.160–25:03.630
而且我可以來回稍微討論一下,
25:03.630–25:05.272
然後我就可以關閉側邊聊天視窗
25:05.272–25:05.964
在我完成操作時。
25:05.964–25:07.464
好的,所以這個已經建立完成了。
25:07.464–25:10.810
它從最近的三部影片中匯入了 200 則最新的留言,
25:10.810–25:14.155
我可以在這個儀表板類型的視圖中直接打開它
25:14.155–25:15.992
就在 CodaX 裡,這真的很棒。
25:15.992–25:17.715
我實際上可以進行一些後續操作
25:17.715–25:18.847
並在這裡與它聊天,
25:18.847–25:20.570
但老實說,它有點難用。
25:20.570–25:22.322
所以我接下來要關閉那個視窗,
25:22.322–25:24.223
然後我會重新打開我們的資料夾,
25:24.223–25:25.124
就在這裡
25:25.124–25:26.936
你可以看到現在裡面多了很多東西。
25:26.936–25:29.075
我們不僅有我們的代理程式和 .env 檔案,
25:29.075–25:30.114
還有腳本,
25:30.114–25:31.153
還有輸出結果,
25:31.153–25:33.232
還有不同的節點和模組,
25:33.232–25:34.454
裡面包含了很多內容。
25:34.454–25:36.759
所以如果任何時候這開始感覺有點雜亂無章
25:36.759–25:38.295
而你不了解其結構,
25:38.295–25:39.922
你只需要進入 CodaX 並說,
25:39.922–25:41.278
你只需要進入 CodaX 並說,
25:41.278–25:42.634
「嘿,幫我重新組織一下,
25:42.634–25:45.520
或者給我一份文件,幫助我更好地導航。」
25:45.520–25:48.359
因為這當然存在於本地目錄中,
25:48.359–25:49.644
而 CodaX 可以接觸它,
25:49.644–25:50.117
讀取它,
25:50.117–25:50.861
組織它,
25:50.861–25:51.334
編輯它。
25:51.334–25:52.373
所以如果我進入輸出資料夾
25:52.373–25:54.233
並進入 YouTube 評論洞察,
25:54.233–25:56.367
我們會看到它所做的各種不同內容。
25:56.367–25:58.461
所以它截了一些螢幕截圖,你可以看到,
25:58.461–26:00.855
但隨後它也建立了實際的 Excel 試算表。
26:00.855–26:02.611
所以我就在這裡打開它,
26:02.611–26:03.826
我們可以來看看。
26:03.826–26:05.485
好的,我們可以來看看。
26:05.485–26:07.958
好的,我們有 YouTube 評論洞察,
26:07.958–26:11.049
最近 Nate Hurt 影片中的 200 條最新公開評論,
26:11.049–26:12.595
生成於 5 月 5 日上午 11:00
26:12.595–26:14.378
所以我們可以看到提問率,
26:14.378–26:16.024
內容請求率
26:16.024–26:17.670
最常提及的工具是 CodaCode。
26:17.670–26:18.066
哎呀。
26:18.066–26:19.801
我們有高優先級的內容,
26:19.801–26:20.602
主要模式,
26:20.602–26:21.269
跳過影片,
26:21.269–26:22.203
諸如此類。
26:22.203–26:23.916
它甚至開始在這裡建立一些視覺效果,
26:23.916–26:24.611
這太棒了。
26:24.611–26:27.124
所以這裡是內容類別的組合。
26:27.124–26:31.596
它顯示了一般意見或問題與實際價值之間的混合比例。
26:31.596–26:33.451
所以有 55 條是一般意見,
26:33.451–26:34.688
53 條是問題。
26:34.688–26:36.240
其中一些是存取權限,
26:36.240–26:37.440
正面反饋,
26:37.440–26:38.498
工具比較,
26:38.498–26:39.415
定價相關內容。
26:39.415–26:41.055
這裡有不同的工具。
26:41.055–26:41.844
所以 CodaCode,
26:41.844–26:42.633
希格斯場
26:42.633–26:43.278
[未翻譯]
26:43.278–26:45.501
然後在這裡,你可以看到一些其他統計數據。
26:45.501–26:47.254
現在我們還有一堆不同的標籤頁。
26:47.254–26:48.635
所以我們有創作者洞察。
26:48.635–26:51.496
也就是排名評論模式和推薦的創作者行動。
26:51.496–26:55.470
所以我能夠看到不同類型評論的百分比分解,
26:55.470–26:58.867
它還為我提供帶有優先級分數的推薦行動。
26:58.867–27:00.138
所以,這真的很酷。
27:00.138–27:01.640
我還能看到常見問題。
27:01.640–27:03.913
也就是那些作為模式出現的事物。
27:03.913–27:08.200
因為它正在分析這些評論,現在它也為我提供內容靈感。
27:08.200–27:10.204
它為我提供很好的回覆機會,
27:10.204–27:12.444
然後它只提供原始評論。
27:12.444–27:16.696
所以,這應該是它提取的我們實際評論的 200 行。
27:16.696–27:21.273
正如你所見,是 204 行,因為前三或四行只是胡言亂語。
27:21.273–27:22.487
所以,這太棒了。
27:22.487–27:25.628
你們可能會想的是,好吧,這真的有用嗎?
27:25.628–27:29.916
也許沒有用,因為我們剛才只是說,「嘿,給我分析數據。」對吧?
27:29.916–27:32.567
如果你們記得我的實際提示詞,它非常、非常模糊。
27:32.567–27:35.202
所以,如果我們能在規劃階段多花點時間
27:35.202–27:38.062
或者我們有某些非常重點追蹤的數據分析
27:38.062–27:40.641
或者某些我們特別留意的評論,
27:40.641–27:42.492
我們會將這些資訊提供給 Codex 作為知識
27:42.492–27:44.240
這樣它就能產生這些實際的、嗯,你
27:44.240–27:44.895
知道的洞察,
27:44.895–27:46.346
它會產生這些洞察,
27:46.346–27:48.359
它會讓結果更加客製化且量身打造。
27:48.359–27:50.696
所以,現在讓我們來談談如何將這轉化為一項技能?
27:50.696–27:52.200
首先,什麼是技能?
27:52.200–27:53.120
首先,什麼是技能?
27:53.120–27:55.405
基本上,技能就是一種可重複使用的配方。
27:55.405–27:57.499
所以,如果我回到這裡並點擊外掛程式,
27:57.499–27:58.949
我們看到了所有這些外掛程式,對吧?
27:58.949–28:00.691
這些實際上是像連線
28:00.691–28:02.133
以及潛在的 MCP 伺服器
28:02.133–28:03.995
以及類似其他一些,你知道,
28:03.995–28:06.698
它是一個人們能夠安裝和使用的套件。
28:06.698–28:09.969
但是,技能更像是僅限於指示。
28:09.969–28:11.850
所以,有一個影像生成技能。
28:11.850–28:13.950
這裡有一個 OpenAI 文件技能。
28:13.960–28:16.294
有一個 GitHub 審查後續技能,
28:16.294–28:17.295
一個文件技能。
28:17.295–28:20.798
這些基本上都只是 Markdown 檔案的指令,
28:20.798–28:23.271
告訴 Codex 如何更好地完成某項任務。
28:23.271–28:25.091
例如,如何更好地設計網站,
28:25.091–28:27.497
或是如何,你知道的,為你提供晨間簡報。
28:27.497–28:30.455
所以,我們想要做的是,我們想把這個,
28:30.455–28:32.882
剛才我們所做的,轉化為一個技能。
28:32.882–28:35.863
這樣,只要我說:「嘿,給我更多 YouTube 洞察。」
28:35.863–28:37.325
它知道要連線哪些端點
28:37.325–28:38.619
它知道如何將它們拉取進來,
28:38.619–28:40.307
它知道如何建立 Excel 試算表,
28:40.307–28:41.544
它知道如何完成所有這些工作。
28:41.544–28:43.656
而我最喜歡建立技能的最佳方式是,
28:43.656–28:46.588
我基本上只是與 Codex 進行腦力激盪,以完成某項任務,
28:46.588–28:48.348
然後在我得到滿意的輸出後,
28:48.348–28:50.166
我會說:「好的,把那個轉化為一個技能。」
28:50.166–28:52.454
所以,這就是最終的交付成果,對吧?
28:52.454–28:55.641
所以,你剛才所做的,是幫助我從我的 YouTube 拉取資料。
28:55.641–28:56.512
你取得了留言,
28:56.512–28:57.499
你進行了分析,
28:57.499–29:00.169
並為我建立了一份很棒的 Excel 檔案交付成果。
29:00.169–29:02.113
我希望你將這項任務轉化為一項技能,
29:02.113–29:05.029
這樣每次我說要抓取我的 YouTube 留言
29:05.029–29:06.556
並提供某些洞察時,
29:06.556–29:07.876
你都會執行完全相同的流程,
29:07.876–29:09.889
這會讓結果更加一致。
29:09.889–29:11.593
所以,我現在要發送那則訊息,
29:11.593–29:14.021
而在它執行的同時,請這樣想。
29:14.021–29:15.861
如果有人要求你建立或不建立
29:15.861–29:18.365
如果有人要求你為他們製作巧克力碎片鬆餅,
29:18.365–29:19.950
你會打開你的食譜書
29:19.950–29:20.870
或拿起手機,
29:20.870–29:22.301
然後你會去讀食譜
29:22.301–29:23.640
並嚴格按照指示執行,
29:23.640–29:23.788
一點都不差。
29:23.788–29:25.165
你會嚴格按照份量來操作
29:25.165–29:25.756
食材
29:25.756–29:26.464
以及溫度
29:26.464–29:26.976
以及時間,
29:26.976–29:27.566
以及溫度,
29:27.566–29:28.078
以及時間,
29:28.078–29:28.560
還有其他各種細節。
29:28.560–29:31.318
然後下次有人要求你製作巧克力碎片餅乾
29:31.318–29:31.859
或鬆餅時,
29:31.859–29:33.337
你就會直接使用那同一個食譜,
29:33.337–29:35.405
做出來的成品也會幾乎完全一樣。
29:35.405–29:37.062
因為如果你沒有使用食譜,
29:37.062–29:38.292
你就只是在猜測,
29:38.292–29:40.057
你只會憑感覺去測量,
29:40.057–29:41.019
憑感覺去判斷,
29:41.019–29:42.623
結果就不會一致。
29:42.623–29:43.564
而最棒的是,
29:43.564–29:45.133
現在你有了這個可以使用的食譜,
29:45.133–29:46.440
每次使用這個食譜時,
29:46.440–29:47.957
你或許能把它做得更好。
29:47.957–29:49.210
如果有一次你做了實驗,
29:49.210–29:50.952
多加了一些巧克力碎片,
29:50.952–29:51.878
無論你喜不喜歡
29:51.878–29:52.477
或者不喜歡,
29:52.477–29:53.512
你就更新食譜。
29:53.512–29:56.820
也許有一次你發現自己其實留下了太多未熟的生麵糊。
29:56.820–29:57.744
那麼,你會怎麼做?
29:57.744–30:03.609
你會更新食譜,寫道:「好的,每邊煎4分鐘,而不是每邊3分半鐘。」
30:03.609–30:09.240
每次使用食譜時,你都能讓它更新,這就是建立這些技能的強大之處。
30:09.240–30:13.914
你可以看到,它能逆向運作,從我們的輸出中反向工程出一項技能。
30:13.914–30:17.389
它會將這些技能存入一個名為 .codex 的檔案中,
30:17.389–30:19.126
這個檔案在全球範圍內生效,
30:19.126–30:22.949
這意味著無論你在任何 Codex 專案中工作,
30:22.949–30:25.312
你都能夠使用這項技能。
30:25.312–30:27.508
要呼叫它,你只需要輸入斜線指令,
30:27.508–30:28.897
然後直接輸入技能名稱即可。
30:28.897–30:31.372
所以,如果大家還記得的話,這裡有所有其他技能。
30:31.372–30:34.848
我可以輸入 /browser、/image gen、/PDF,
30:34.848–30:37.551
這就是呼叫它們的方式。
30:37.551–30:40.867
另一種呼叫它們的方式是,你可以直接使用自然語言。
30:40.867–30:42.942
所以,為了向大家展示另一個範例,
30:42.942–30:44.246
如果我進入我的 Herc 2 專案,
30:44.246–30:46.617
我知道這更適合雲端代碼,
30:46.617–30:48.099
但我們有一個 .cloud 資料夾,
30:48.099–30:48.880
這是本機端的。
30:48.880–30:50.042
所以,如果我點擊進入這裡,
30:50.042–30:51.901
我會看到一個名為 skills 的資料夾,
30:51.901–30:53.818
這些都是我的不同技能,
30:53.818–30:55.677
目前運行在我的 AI OS 內部。
30:55.677–30:57.671
所以,假設這裡有一個「晨間咖啡」技能,
30:57.671–31:00.711
我現在要快速在記事本裡打開它,給大家看看。
31:00.711–31:02.192
這其實只是一個 Markdown 檔案。
31:02.192–31:03.519
我們有技能的名称,
31:03.519–31:04.680
我們有描述內容
31:04.680–31:09.128
所以,這裡寫著:「當有人要求準備晨間咖啡以規劃或準備他們的一天時使用。」
31:09.128–31:12.511
所以,無論何時在 Cloud Code 中我說:「嘿,你能幫我規劃我的一天嗎?」
31:12.511–31:15.017
Cloud Code 會抓取這個晨間咖啡技能,
31:15.017–31:15.456
讀取它,
31:15.456–31:16.521
然後執行它。
31:16.521–31:18.186
它會說:「好的,這是背景資訊,
31:18.186–31:19.548
這是常態性會議,
31:19.548–31:20.607
這是會議準備,
31:20.607–31:22.322
這些是不同的參考 ID,
31:22.322–31:23.836
這裡有你需要知道的一切,
31:23.836–31:24.441
以及順序。
31:24.441–31:25.305
所以,第一步,
31:25.305–31:25.933
第二步,
31:25.933–31:26.719
第三步。
31:26.719–31:29.987
當 Nate 要求建立「早安咖啡」技能時,你會這樣做:
31:29.987–31:32.186
所以,這就是這裡正在發生的所有事情。
31:32.186–31:35.435
你可以看到它建立了一個名為 YouTube 評論洞察的技能,
31:35.435–31:37.117
並且它是在全域層級執行的。
31:37.117–31:39.954
我所說的全域層級是指,這存在於我們目錄的本地,
31:39.954–31:42.549
這個目錄位於任何 Codex 專案之上。
31:42.549–31:45.717
所以,如果我開啟這個其他專案,我就可以使用這個技能,
31:45.717–31:48.009
或者我們可以將其本地化放在我們的專案中,
31:48.009–31:53.199
這意味著我只能在這個特定的 YouTube 分析示範專案中使用該技能。
31:53.199–31:55.615
而你要做的唯一改變這種差異的方法就是說,
31:55.615–31:58.562
「嘿,不要把它設為全域,而是把它本地化放在這個專案中。」
31:58.562–32:01.364
或者,不要把它本地化放在這個專案中,而是將其設為全域。
32:01.364–32:06.040
所以,現在如果我輸入斜線並輸入 YouTube 評論洞察,我們就會看到這個:
32:06.040–32:10.670
YouTube 評論洞察:將評論分析為 Excel 報告。
32:10.680–32:12.396
這就是我們剛才一起建立的技能,
32:12.396–32:13.100
所以這真的很棒。
32:13.100–32:13.570
好的,
32:13.570–32:15.449
所以在我們進入下一步之前,
32:15.449–32:17.067
我想快速談談寵物功能
32:17.067–32:20.199
只是因為我知道你們都很想知道如何取得這個功能。
32:20.199–32:20.932
這真的很簡單,
32:20.932–32:21.795
你進入你的設定,
32:21.795–32:23.433
然後前往你的外觀設定
32:23.433–32:24.425
並一直往下捲動,
32:24.425–32:25.805
你就可以在這裡看到寵物功能。
32:25.805–32:27.755
我們可以從不同的寵物中進行選擇。
32:27.755–32:27.996
所以,
32:27.996–32:30.567
目前我只是使用 Codex 寵物,
32:30.567–32:32.255
但我可以選擇 Dewey,
32:32.255–32:32.657
或是 CD,
32:32.657–32:33.380
或是 Beasod,
32:33.380–32:34.103
或是 Stacky。
32:34.103–32:36.653
所以,我打算為了好玩切換成 Fireball,
32:36.653–32:38.069
你可以在這裡看到它發生了變化。
32:38.069–32:40.286
是的,這確實是個有趣的小 UI 功能,
32:40.286–32:44.214
但請記住,如果我不在 Codex 裡面,而是在這裡的儀表板上,
32:44.214–32:49.473
我們仍然可以看到寵物,它會告訴我們它正在處理什麼,以及何時完成。
32:49.473–32:51.578
所以,它也有一點實用性。
32:51.578–32:52.160
好的。
32:52.160–32:54.422
現在我們有了交付成果。
32:54.422–32:58.738
我們有一個 Excel 試算表,我們將用它作為後端,基本上驅動下一個部分。
32:58.738–33:03.726
所以,我要開啟一個新專案,因為我們開始了一個新的目標、新的交付成果。
33:03.726–33:09.680
所以,我想開啟一個新的聊天,這仍然可以存取這個資料夾中的所有內容。
33:09.680–33:11.562
所以,我要切換到這裡的計畫模式。
33:11.562–33:13.209
好的,這就是我的想法。
33:13.209–33:19.189
你可以存取這個專案內的一個檔案,而我實際上要參考確切的檔案。
33:19.189–33:23.169
所以,我要在這裡尋找 YouTube 評論洞察,
33:23.169–33:25.307
然後在這裡標記它,
33:25.307–33:27.160
並標記該檔案。
33:27.160–33:29.756
所以,我希望你做的是為我建立一個儀表板,
33:29.756–33:31.248
在本地主機上啟動它,
33:31.248–33:33.584
我希望它擁有非常漂亮的 UI 元素,
33:33.584–33:36.114
以及圖表和圖形等內容,
33:36.114–33:37.347
以視覺化我的資料,
33:37.347–33:38.720
我希望能夠看到
33:38.720–33:41.680
關於我的 YouTube 評論,獲取不同的洞察。
33:41.680–33:44.383
我希望你使用 GPT Image 2。
33:44.383–33:48.068
並為這個儀表板的呈現方式創建一些非常棒的概念設計。
33:48.068–33:51.851
此外,如果你想在頂部使用它來製作一個漂亮的標誌。
33:51.851–33:53.707
或是其他任何 UI 元素,
33:53.707–33:57.490
請利用 GPT Image 2 讓這個專案看起來更加精緻。
33:57.490–33:58.775
並且非常具有美感。
33:58.775–34:00.631
同時還要充滿趣味。
34:00.631–34:02.520
這就是我的構想。
34:02.520–34:04.094
我希望你協助規劃這個專案,
34:04.094–34:06.152
針對此事向我提出任何疑問,
34:06.152–34:07.968
然後我們就繼續執行。
34:07.968–34:09.988
接著,這個預設切換回「額外高」模式,
34:09.988–34:12.101
我將直接把它切換回「中等」模式,
34:12.101–34:13.019
然後發送請求。
34:13.019–34:16.021
你可以在這裡看到,Pet 已經開始思考,
34:16.021–34:17.766
並且正在進行一些對話。
34:17.766–34:20.744
但是,為什麼你要謹慎選擇所使用的模型,
34:20.744–34:21.608
有兩個原因。
34:21.608–34:26.317
第一個原因是,有時如果你對非常簡單的任務使用「額外高」模式,
34:26.317–34:27.600
像是過度設計它。
34:27.600–34:31.992
第二個原因是因為這些模型會消耗你不同數量的 token 或你的 session。
34:31.992–34:33.318
顯然,低成本的消耗最少
34:33.318–34:34.591
而高成本的消耗最多。
34:34.591–34:36.347
如果你點到這裡的設定
34:36.347–34:38.346
並點擊剩餘的速率限制,
34:38.346–34:40.829
它會顯示你還剩多少 session
34:40.829–34:41.859
以及何時過期。
34:41.859–34:43.743
所以,每 5 小時它會重置
34:43.743–34:46.142
而現在我還有 97% 的剩餘額度
34:46.142–34:48.198
然後每週它會重置
34:48.198–34:51.120
而現在我在那裡還有 99% 的剩餘額度。
34:51.120–34:54.545
所以,能夠在這裡隨時掌握這些狀況真的很不錯,
34:54.545–34:57.335
但這就是為什麼你要小心,你知道的,
34:57.335–34:59.048
你的上下文視窗管理
34:59.048–34:59.999
以及你的規劃
34:59.999–35:01.014
和你的提示詞
35:01.014–35:02.663
還有你這裡的模型使用情況。
35:02.663–35:07.844
不過總體來說,我發現我的 session 在 Codex 中持續的時間遠比
35:07.844–35:09.571
在 Claude Code 中要長。
35:09.571–35:15.511
這其中很大一部分原因是,ChatGPT 5.5 在 token 使用上真的非常高效,
35:15.511–35:18.105
無論是輸出 token 還是輸入 token。
35:18.105–35:20.610
如果你們去觀看我之前提到的那個影片,
35:20.610–35:24.445
你會看到那個確切的實驗,理解並觀察它真的很有趣,
35:24.445–35:27.257
但我通常發現它在 token 使用上真的非常高效。
35:27.257–35:28.625
現在,我們這裡有一些回饋。
35:28.625–35:34.400
它說:「應該由哪種視覺方向來引導 GPT 的圖片、兩個概念以及最終的儀表板 UI?」
35:34.400–35:37.270
創作者營運、趣味工作室或專業簡潔風格。
35:37.270–35:39.001
我就直接採用這個建議
35:39.001–35:42.112
對於這個第一版,儀表板該如何獲取 YouTube 留言資料?
35:42.112–35:46.340
我會說使用現有的輸出,也就是那個 Excel 檔案。
35:46.340–35:49.356
然後,第一個畫面應該優先處理什麼?
35:49.356–35:51.431
回覆與想法、分析概覽。
35:51.431–35:54.257
對於這一項,我實際上會選擇分析概覽。
35:54.257–35:54.911
順便一提,
35:54.911–35:55.784
如果你在應用程式中
35:55.784–35:57.856
而如果你想快速移除寵物
35:57.856–35:59.055
你只需要輸入 {slash} pet
35:59.055–36:00.691
然後它就會被隱藏起來。
36:00.691–36:01.042
好的,
36:01.042–36:03.356
所以它很快就提出了一個計畫。
36:03.356–36:05.112
你可以在這裡看到我可以展開這個
36:05.112–36:05.962
並閱讀相關內容。
36:05.962–36:06.116
所以,
36:06.116–36:07.191
我們有一個摘要,
36:07.191–36:08.164
我們有關鍵變更,
36:08.164–36:09.445
我們還有其他所有這些內容
36:09.445–36:11.801
而這就是我們會再次與 Codex 進行迭代的地方
36:11.801–36:14.004
在我們說「好的,繼續為我建構那個」之前。
36:14.004–36:15.960
但我直接說「好的,繼續
36:15.960–36:17.125
為我建構那個」。
36:17.125–36:19.795
你可以看到它正在使用 GPT image two 的圖像生成功能,
36:19.795–36:21.057
這真的非常穩固。
36:21.057–36:24.280
這裡是它生成的一個版本
36:24.280–36:28.334
我發現如果使用 Codex 來建構遊戲或網站或其他東西,
36:28.334–36:30.997
這樣做能賦予它測試的功能
36:30.997–36:32.691
並先產生一些概念
36:32.691–36:35.112
在它實際設計網站其餘部分之前,會很有幫助。
36:35.112–36:36.868
你可以看到這是它提出的一個小標誌,
36:36.868–36:37.571
這還挺酷的
36:37.571–36:39.496
它看起來有個 YouTube 播放按鈕
36:39.496–36:40.360
加上一些雜訊
36:40.360–36:41.953
以及進來的評論。
36:41.953–36:43.040
接下來它會做的是
36:43.040–36:46.102
它會將這些資產全部儲存在這個專案中的某個本地位置,
36:46.102–36:49.066
以便之後如果我們想要啟動儀表板的不同版本
36:49.066–36:50.251
或不同的登陸頁面,
36:50.251–36:51.200
它就能夠存取
36:51.200–36:52.629
這些已經存在的資產。
36:52.629–36:53.978
這真的太酷了,各位。
36:53.978–36:56.276
它內建了一個驗證迴圈
36:56.276–36:58.016
它會在這裡檢查自己的工作成果
36:58.016–37:00.066
真正輸出結果之前檢查自己的工作,
37:00.066–37:01.184
這真的很酷
37:01.184–37:04.008
所以,它表示自動化瀏覽器驗證已通過。
37:04.008–37:05.599
我現在正在進行一次視覺檢查
37:05.599–37:07.323
看看還可能有什麼其他情況,
37:07.323–37:08.384
以及其他問題。
37:08.384–37:09.726
當它進行實際的視覺掃描時,
37:09.726–37:11.515
它發現了三個問題。
37:11.515–37:12.772
所以,現在它正在修復這些問題。
37:12.772–37:14.341
它說:「好的,那些 UI 修復已經完成了。
37:14.341–37:15.600
我將停止伺服器。
37:15.600–37:16.457
我將重新建構,
37:16.457–37:18.981
然後我會再用截圖驗證一次
37:18.981–37:20.219
然後它回來並說:
37:20.219–37:22.172
「好的,第二次視覺檢查看起來好多了。
37:22.172–37:25.090
這是您的儀表板,您可以繼續進行測試。」
37:25.090–37:28.798
所以,讓我們就在這裡的資源管理器中快速打開它。
37:28.798–37:30.805
現在我們有了我們的創作者運營信號檯。
37:30.805–37:32.635
所以,我會稍微擴展它。
37:32.635–37:34.895
我們看到這裡顯示它製作的標誌。
37:34.895–37:36.796
我們看到創作者回覆率為 83%,
37:36.796–37:37.870
總共有 78 個讚。
37:37.870–37:40.041
我們可以在總覽、
37:40.041–37:40.685
回覆、
37:40.685–37:41.167
想法、
37:41.167–37:41.972
問題、
37:41.972–37:43.178
和資源管理器之間切換。
37:43.178–37:44.317
這真的很酷。
37:44.317–37:46.284
看起來每個留言都附帶了一個連結。
37:46.284–37:47.452
所以,如果我點擊這裡,
37:47.452–37:48.751
它真的會帶我們
37:48.751–37:49.280
好的,不行。
37:49.280–37:51.820
它並沒有真的將每個留言同步對應到一個連結。
37:51.820–37:53.254
但顯示這個資訊很酷,
37:53.254–37:54.886
因為這給了我們一個很好的概念,
37:54.886–37:55.430
「好的,很酷。
37:55.430–37:56.675
我確實想要一個連結。」
37:56.675–37:59.729
現在,你可以繼續將這個功能整合到後端程式碼中,
37:59.729–38:02.558
讓每個留言都應該與一個連結關聯,
38:02.558–38:04.538
這樣我就可以打開它並回覆。
38:04.538–38:06.281
或者我們可以再進一步,
38:06.281–38:06.701
說,
38:06.701–38:10.848
「好的,如果我能夠在這個儀表板上直接回覆,會是什麼樣子呢?」
38:10.848–38:14.934
你實際上可以發送那個 API 呼叫到 YouTube,以回覆正確的留言。
38:14.934–38:16.405
因為這絕對是可以做到的。
38:16.405–38:19.227
你們已經看過我是如何稍微自動化我的留言區了。
38:19.227–38:19.805
總之,讓我們
38:19.805–38:21.051
讓我們來看看概覽。
38:21.051–38:23.216
我們可以看到這個非常漂亮的圖表。
38:23.216–38:24.957
這裡有一些 AI 洞察
38:24.957–38:26.822
我可以點擊「工作回覆佇列」
38:26.822–38:28.563
然後就會進入回覆頁面。
38:28.563–38:30.491
我也可以點擊「更多內容創意」
38:30.491–38:31.952
然後就會帶我們到創意頁面。
38:31.952–38:33.678
我們可以查看工具提及次數最多的內容、
38:33.678–38:34.574
回覆優先順序、
38:34.574–38:35.405
常見主題。
38:35.405–38:37.752
我們也可以看到驅動留言的影片
38:37.752–38:40.535
隨著我們匯入更多資料,這部分顯然會增長。
38:40.535–38:42.637
所以假設到目前為止我們喜歡這個輸出結果
38:42.637–38:44.285
並且我們想要實際部署這個系統
38:44.285–38:47.760
因為你會注意到這裡顯示它正在本機端(localhost)上運行。
38:47.760–38:49.342
所以如果我複製這裡的連結
38:49.342–38:50.194
然後打開 Chrome
38:50.194–38:51.167
並貼上該連結,
38:51.167–38:53.601
它就會顯示出我們剛才看到的一模一樣的內容,對吧?
38:53.601–38:54.429
它運作正常
38:54.429–38:55.680
而且看起來也沒問題。
38:55.680–38:57.444
但如果我給你這個 localhost
38:57.444–39:00.294
而你把它複製貼上到你自己的瀏覽器裡,
39:00.294–39:01.515
你什麼也看不到
39:01.515–39:03.144
因為它只存在於本地。
39:03.144–39:06.041
它是從我們的程式碼庫中的伺服器提供服務的。
39:06.041–39:08.284
所以接下來我要展示給你看的是
39:08.284–39:11.546
你如何實際將這個從 localhost 部署到網路上?
39:11.546–39:12.518
而我們要做的是
39:12.518–39:13.722
我們將使用兩個工具。
39:13.722–39:16.000
我們將使用第一個工具,叫做 GitHub
39:16.000–39:17.723
第二個工具叫做 Vercel。
39:17.723–39:19.004
所以你要做的第一件事
39:19.004–39:20.156
就是輸入 GitHub
39:20.156–39:21.266
然後你到這裡來
39:21.266–39:22.504
建立一個個人檔案。
39:22.504–39:23.838
設定完全免費,
39:23.838–39:25.634
維護也幾乎完全免費。
39:25.634–39:27.320
一旦你建立了 GitHub,
39:27.320–39:29.367
你所要做的就是將這個與 Codex 連接
39:29.367–39:33.039
我們將讓 Codex 幫助我們設定一個叫做儲存庫(repository)的東西
39:33.039–39:36.240
基本上就是您檔案和資料夾的集合。
39:36.240–39:38.455
記得我們打開檔案總管時
39:38.455–39:40.606
查看我們的 YouTube 評論
39:40.606–39:42.821
或者說,YouTube 分析示範資料夾,
39:42.821–39:45.163
這些檔案和資料夾都很重要
39:45.163–39:48.074
我們只需要將這些從本機電腦
39:48.074–39:48.400
或者說不是
39:48.400–39:50.320
移出,它們仍會保留在本機。
39:50.320–39:52.710
但我們會將它們放入某種儲存庫
39:52.710–39:54.113
讓我可以公開存取它們
39:54.113–39:56.243
或者如果您想與其他人分享這些內容,
39:56.243–39:57.594
他們也可以存取它們。
39:57.594–39:59.473
所以這有點像是在本機上擁有 Word 文件
39:59.473–40:02.368
但相反地,您將其上傳至 Microsoft 雲端上的 OneDrive
40:02.368–40:03.333
或類似的地方
40:03.333–40:04.602
以便其他人可以使用它
40:04.602–40:06.532
您也可以從不同的機器上使用它。
40:06.532–40:07.771
所以這是第一步。
40:07.771–40:09.425
所以讓我們回到 Codex
40:09.425–40:13.561
當您不完全了解某事如何運作時,該怎麼辦?
40:13.561–40:14.320
你只需要詢問。
40:14.320–40:15.039
知道某事是如何運作的?
40:15.039–40:15.412
你只需要詢問。
40:15.412–40:16.493
這看起來真的很好。
40:16.493–40:17.552
我想要做的是
40:17.552–40:19.175
我想要同步這個程式碼庫
40:19.175–40:20.869
針對這個特定的儀表板
40:20.869–40:22.280
到 GitHub 儲存庫。
40:22.280–40:24.105
所以,幫我註冊這個。
40:24.105–40:26.177
幫我在此處連線到 GitHub,
40:26.177–40:29.052
然後我想要你幫我建立那個實際的儲存庫
40:29.052–40:31.057
並將所有內容推送到該儲存庫。
40:31.057–40:32.924
這裡甚至提到了這一點。
40:32.924–40:34.954
注意,這個資料夾目前不是 Git 儲存庫,
40:34.954–40:36.877
因此沒有差異和狀態可供摘要。
40:36.877–40:38.755
所以,我將發送該訊息,
40:38.755–40:41.372
現在它將幫助我們實際同步到 GitHub。
40:41.372–40:43.683
現在,Git 和 GitHub 之間存在差異。
40:43.683–40:47.031
本質上都是關於版本控制等這些東西,
40:47.031–40:47.901
但 Git 是本地的
40:47.901–40:49.374
GitHub 則是在雲端上。
40:49.374–40:51.449
這裡重要的是它提到,
40:51.449–40:54.590
「我會避免提交機密資訊,特別是 .env.local。」
40:54.590–40:57.850
所以這就是我告訴你要把金鑰貼到那個 .env 檔案裡的原因,
40:57.850–40:59.925
而不是放到某個叫做 secrets 的隨機檔案中。
40:59.925–41:01.306
它必須在 .env 裡
41:01.306–41:03.839
因為 env 這個字前面的那個點
41:03.839–41:07.830
基本上是在告訴 Codex 或 Cloud Code 或你使用的任何工具,
41:07.830–41:11.821
它會指示該工具將此內容排除在任何公開提交之外。
41:11.821–41:14.102
所以,關於這一點,我已經設定好 GitHub CLI。
41:14.102–41:15.311
如果你還沒設定,它只會說,
41:15.311–41:16.477
「嘿,你想設定這個嗎?」
41:16.477–41:17.772
然後你會說「是」。非常簡單。
41:17.772–41:19.425
接著你會進行驗證,
41:19.425–41:22.223
這意味著它基本上只會彈出一個瀏覽器分頁
41:22.223–41:25.465
然後你用建立 GitHub 時使用的帳號登入,
41:25.465–41:28.400
然後砰!你就會連接到 Codex 裡的 GitHub。
41:28.400–41:29.455
而當這個正在同步時,
41:29.455–41:31.345
讓我向大家展示我們接下來要使用的下一個工具。
41:31.345–41:33.221
這個工具叫做 Vercel。
41:33.221–41:35.320
現在,Vercel 提供相當慷慨的免費方案。
41:35.320–41:36.713
你可以看到我這裡有一些產品。
41:36.713–41:41.049
為了起步,你將能夠免費在 Vercel 上開始操作。
41:41.049–41:44.281
而 Vercel 所做的,基本上就是將那些程式碼,
41:44.281–41:46.705
它會取得,你知道,這個確切的網站,
41:46.705–41:49.496
這在後端,所有這些都是程式碼,
41:49.496–41:52.434
然後它會將這些內容部署到一個實際的 URL,
41:52.434–41:55.078
在一個任何人都可以存取的實際網域上。
41:55.078–41:59.880
而這項功能真正酷的地方在於,Vercel 和 GitHub 之間有著非常好的合作關係。
41:59.880–42:01.534
它們實際上會互相溝通。
42:01.534–42:03.868
所以,每當我對我們的 GitHub 儲存庫進行更改時,
42:03.868–42:06.510
Vercel 就會自動偵測並部署它。
42:06.510–42:08.342
所以,我知道這裡有三個工具,
42:08.342–42:09.747
Codex、GitHub 和 Vercel,
42:09.747–42:12.434
但這並不意味著我們必須管理三個地方。
42:12.434–42:14.374
我們只需要管理 Codex。
42:14.374–42:17.168
所以它說它為我們建立了一個私人儲存庫。
42:17.168–42:17.812
如果我打開這個,
42:17.812–42:19.053
我不想在這裡打開它。
42:19.053–42:20.671
而它沒有顯示在這裡的原因是
42:20.671–42:21.955
是因為這是一個私有倉庫
42:21.955–42:23.573
而這裡我沒有登入 GitHub。
42:23.573–42:25.459
所以如果我在瀏覽器中打開它
42:25.459–42:27.346
而我已登入 GitHub,
42:27.346–42:29.534
我們可以看到 YouTube Analytics Demo。
42:29.534–42:30.667
這是一個私有倉庫
42:30.667–42:33.751
這裡面包含了所有不同的資料夾和檔案
42:33.751–42:36.646
這些是我們實際建立用來啟動這個儀表板的內容。
42:36.646–42:38.211
現在真正酷的是
42:38.211–42:39.189
如果我進入 Vercel
42:39.189–42:41.472
並繼續點擊新增專案,
42:41.472–42:42.972
我可以將它連接到 GitHub
42:42.972–42:44.537
而且它已經連接好了。
42:44.537–42:45.929
所以你只需要登入
42:45.929–42:48.074
並將你的 Vercel 連接到 GitHub。
42:48.074–42:50.432
現在你可以匯入任何你的倉庫。
42:50.432–42:53.720
所以在這裡你可以看到 YouTube Analytics Demo,一分鐘前。
42:53.720–42:55.111
我將點擊匯入。
42:55.111–42:56.370
實際上就是這麼簡單。
42:56.370–42:57.921
我將點擊部署
42:57.921–42:59.473
然後大約在 30 秒後
42:59.473–43:02.103
我們就會擁有我們的 YouTube Analytics 儀表板
43:02.103–43:03.924
但我們會透過一個實際的 URL 來呈現它
43:03.924–43:04.416
太棒了
43:04.416–43:05.724
所以它顯示恭喜
43:05.724–43:07.142
您已部署了一個新專案
43:07.142–43:09.486
接著我會繼續前往儀表板
43:09.486–43:12.347
這為我們提供了 youtube-analytics-demo.vercel.app
43:12.347–43:14.800
一個 youtube-analytics-demo.vercel.app 網域
43:14.800–43:17.107
如果您想將其切換為自己的網域
43:17.107–43:18.040
您當然可以
43:18.040–43:21.100
您基本上只需將 DNS 記錄移至這裡
43:21.100–43:22.333
但我將點擊這裡
43:22.333–43:25.519
讓你們看到這正是我們剛才所查看的內容
43:25.519–43:26.108
我們的回覆
43:26.108–43:26.589
我們的想法
43:26.589–43:27.285
我們的問題
43:27.285–43:27.927
我們的探索器
43:27.927–43:29.212
這裡的一切都是相同的
43:29.212–43:30.578
只是現在我可以複製這個 URL
43:30.578–43:31.850
我可以在手機上打開它。
43:31.850–43:33.279
或者我可以在筆記型電腦上打開它。
43:33.279–43:34.522
或者你們可以打開它。
43:34.522–43:35.232
就像我說過的,
43:35.232–43:36.380
這很酷的地方在於
43:36.380–43:38.347
我們基本上能夠在 Codex 中進行測試。
43:38.347–43:39.775
我們可以在這裡進行迭代。
43:39.775–43:40.957
我們可以進行修改。
43:40.957–43:42.057
但只是因為我們進行了修改
43:42.057–43:43.727
並不意味著它實際上會上線。
43:43.727–43:48.079
所以如果我說:「嘿,我想讓你把整個背景從藍色改成紅色。」
43:48.079–43:49.600
它會說:「好的,很棒。
43:49.600–43:50.488
這是紅色背景。
43:50.488–43:53.075
這是用於測試的本機位址。」
43:53.075–43:57.240
如果我們喜歡它,我們會說:「好的,將這些更改推送到我們的儲存庫。」
43:57.240–44:01.475
然後一旦我們推送這些更改,Vercel 就會自動將它們部署到實際的網址上。
44:01.475–44:02.633
但如果我們說:「你知道嗎?
44:02.633–44:03.300
我不喜歡那個。
44:03.300–44:04.344
就保持原樣吧。」
44:04.344–44:07.019
那麼我們的主要生產網站就完全沒有被觸動。
44:07.019–44:11.175
這就是我們如何保持測試與生產環境的清晰分離。
44:11.175–44:12.415
好的,太棒了。
44:12.415–44:14.092
那麼,我們現在有什麼呢?
44:14.092–44:15.311
我們擁有一個運作中的專案,
44:15.311–44:16.696
我現在打開這個資料夾
44:16.696–44:18.746
只是想展示我們實際上完成了多少工作
44:18.746–44:19.300
在過去,
44:19.300–44:19.909
我不確定,
44:19.909–44:21.128
大約花了 30 到 40 分鐘。
44:21.128–44:23.474
我們設置了許多不同的東西。
44:23.474–44:25.499
接下來我想談論的是
44:25.499–44:26.444
是自動化功能
44:26.444–44:27.367
所以,在這一側
44:27.367–44:29.110
你可以看到一個名為自動化的標籤頁。
44:29.120–44:31.314
透過設定排程聊天來自動化工作。
44:31.314–44:33.576
你可以設定像是狀態報告,
44:33.576–44:34.352
發布準備等事項。
44:34.352–44:35.982
這裡有許多不同的選項
44:35.982–44:37.612
可以給你一些靈感。
44:37.612–44:38.951
但真正酷的是
44:38.951–44:40.472
你可以將所有技能
44:40.472–44:42.298
或任何可重複的工作流程
44:42.298–44:43.272
轉化為自動化
44:43.272–44:44.246
讓 Codex 執行
44:44.246–44:45.960
而無需你的監督。
44:45.960–44:47.281
所以,我將開啟一個新的對話
44:47.281–44:48.896
在我們的 YouTube 分析示範專案中,
44:48.896–44:49.875
接著我將繼續
44:49.875–44:51.245
在這裡開始與 Codex 對話。
44:51.245–44:53.793
好的,我們剛才一起做了很多事情。
44:53.793–44:57.617
我們建立了一個技能,從我的 YouTube 抓取留言,
44:57.617–45:01.600
並在進行一些分析後將其放入 Excel 檔案中。
45:01.600–45:03.098
結果看起來非常不錯。
45:03.098–45:07.344
然後我們建立了一個在 Vercel 上運行的儀表板
45:07.344–45:12.360
該儀表板實際上視覺化顯示了來自該 Excel 檔案的所有分析與統計數據。
45:12.360–45:16.869
現在,我想做的是設定一個自動化流程,每週自動重新整理這個內容。
45:16.869–45:19.824
所以,讓我們假設每個週日下午五點,
45:19.824–45:23.498
我希望你執行 YouTube 留言分析技能。
45:23.498–45:28.130
然後,我希望你利用這個結果更新該 Excel 檔案中的數據,
45:28.130–45:29.578
你知道的,新增更多資料列,
45:29.578–45:31.025
更新統計數據,
45:31.025–45:34.210
這將自動同步到 GitHub 儲存庫。
45:34.210–45:35.797
所以,在你做出這些變更之後,
45:35.797–45:38.971
你也必須將這些變更反映到實際存放儀表板的程式碼庫中,
45:38.971–45:40.274
然後將這些變更推送到 GitHub,
45:40.274–45:42.371
以便它們能自動反映在 Vercel 上。
45:42.371–45:44.865
這樣它們就會自動反映在 Vercel 上
45:44.865–45:46.769
但基本上從高層面來看,
45:46.769–45:48.454
你需要獲取更多留言,
45:48.454–45:50.285
重新進行分析,
45:50.285–45:51.457
將資料更新到 Excel 中,
45:51.457–45:53.216
這樣我就能每週收到關於我的 YouTube 留言回覆狀況的報告。
45:53.216–45:56.072
好的,所以老實說,感覺這個提示有點凌亂,
45:56.072–45:59.222
但 Codex 應該能夠很好地處理它,
45:59.222–46:01.993
好吧,老實說,這個提示感覺有點雜亂
46:01.993–46:03.840
並確保它能夠按照我們希望的方式為我們設定這項自動化。
46:03.840–46:05.398
現在,我想請各位思考的一件事是,
46:05.398–46:08.804
並確保它能夠為我們實際設定這項自動化流程
46:08.804–46:09.680
我們希望它呈現的方式
46:09.680–46:12.114
現在,我想請大家思考一件事
46:12.114–46:16.093
是我建構 AI 自動化、技能等類似事物的方法
46:16.093–46:18.052
請記得我們之前談過技能
46:18.052–46:19.596
我說過每次使用它
46:19.596–46:20.783
它都會變得更好
46:20.783–46:22.040
因為你可以獲得回饋嗎?
46:22.040–46:24.391
你應該誠懇地以類似的方式看待這些自動化。
46:24.391–46:27.035
你應該把它想像成在教小孩騎腳踏車。
46:27.035–46:28.796
你不會只是把小孩丟上腳踏車
46:28.796–46:29.970
然後說:「好了,去開心騎吧。」
46:29.970–46:31.926
你會先握住把手
46:31.926–46:33.149
並陪著小孩一起走
46:33.149–46:35.448
同時說:「好了,你向右傾斜太多了。
46:35.448–46:36.565
你需要向左傾斜更多
46:36.565–46:37.769
並且你需要將重心放正
46:37.769–46:39.230
你需要確保自己在踩踏板
46:39.230–46:40.219
並且你需要做所有這些事情。」
46:40.219–46:42.110
隨著時間慢慢推移,你會開始建立更多信任
46:42.110–46:43.280
然後你會把手從
46:43.280–46:43.758
把手上拿開
46:43.758–46:45.863
然後你會開始在後面走遠一點。
46:45.863–46:48.662
最終也許你會拆掉輔助輪之類的東西。
46:48.662–46:49.817
我想強調的重點是
46:49.817–46:53.228
不要期望你的自動化或技能在第一次嘗試時就完美無缺。
46:53.228–46:54.375
那是不切實際的。
46:54.375–46:56.214
你應該期待它們會變得更好
46:56.214–46:57.108
隨著你使用它們次數的增加
46:57.108–46:59.262
因為每次使用它們你都會獲得更多數據。
46:59.262–47:00.939
但看看它設定得有多快。
47:00.939–47:02.520
它設定了一個每週自動化任務。
47:02.520–47:04.219
它會在每個週日下午 5 點執行。
47:04.219–47:06.798
它基本上會在這個專案內部執行
47:06.798–47:09.493
並執行 YouTube 留言洞察工作流程。
47:09.493–47:11.324
它會重新生成 Excel 工作簿。
47:11.324–47:13.575
它會保留並合併留言資料列。
47:13.575–47:14.921
它會重新整理工作簿。
47:14.921–47:16.599
它會驗證儀表板
47:16.599–47:19.396
並將這些變更僅提交到我們的儲存庫
47:19.396–47:21.563
並將其推送到正確的分支
47:21.563–47:24.160
以便 Vercel 實際上部署所有這些內容。
47:24.160–47:25.934
而你想做的是進入自動化設定。
47:25.934–47:27.523
你可以看到我們有這個
47:27.523–47:28.929
也就是週日下午五點
47:28.929–47:31.183
我們可以點擊進入查看實際的提示詞
47:31.183–47:32.685
它將提交給 Codex 的內容
47:32.685–47:34.501
如果我們想的話,可以在這裡添加一些內容
47:34.501–47:35.409
但我們不想這麼做
47:35.409–47:37.769
這將被注入到專案內新的 Codex 對話中
47:37.769–47:39.014
在我們的專案內部
47:39.014–47:40.160
所以,作為一個測試
47:40.160–47:41.458
如果我點擊立即執行
47:41.458–47:44.600
你可以看到這會在此處啟動一個新對話
47:44.600–47:46.403
這注入了那個確切的提示詞
47:46.403–47:48.540
我們之前在自動化中查看過的那個
47:48.540–47:48.940
識別碼
47:48.940–47:49.608
記憶體
47:49.608–47:50.342
上次執行
47:50.342–47:51.611
以及實際的提示詞
47:51.611–47:53.808
然後它會啟動這個小進度表單
47:53.808–47:55.291
這有點像待辦事項清單
47:55.291–47:57.048
它將按照這個順序進行
47:57.048–47:59.939
這裡正在進行完整的 Codex Agentic 循環。
47:59.939–48:01.524
所以,如果你熟悉 Cloud Code,
48:01.524–48:03.108
這基本上與在 Cloud Code
48:03.108–48:05.573
或 Cloud Co-work 中運行本地排程常規相同。
48:05.573–48:06.571
或者在 Cloud Co-work 中運行。
48:06.571–48:09.644
現在,這裡有一件事你需要考慮
48:09.644–48:11.693
是因為這有點像是本地排程(cron),
48:11.693–48:13.357
如果你關閉 Codex 應用程式
48:13.357–48:15.470
或者關閉你的電腦或筆記型電腦,
48:15.470–48:16.760
這就會停止運行。
48:16.760–48:19.639
為了讓這真正全天候 24/7 運行,
48:19.639–48:23.957
你必須以某種方式將這種 Codex 常規部署到雲端。
48:23.957–48:26.830
而這就是 Cloud Code 透過其雲端常規功能所新增的內容。
48:26.830–48:28.553
好的,所以當這項自動化正在運行時,
48:28.553–48:31.185
我們知道我們會確保它按預期運作,
48:31.185–48:32.812
如果沒有,我們會稍微修正它。
48:32.812–48:35.518
但是,我意識到我想要向你們展示更多
48:35.518–48:36.738
那種電腦使用
48:36.738–48:38.330
以及瀏覽器使用功能。
48:38.330–48:41.796
所以,如果我回到實際的儀表板
48:41.796–48:43.240
它是在哪裡建置的,
48:43.240–48:45.560
我相信是這個。
48:45.560–48:46.350
沒錯,就是這個。
48:46.350–48:50.498
我想在這裡說的是,在我們繼續進行各種變更之前,
48:50.498–48:52.308
我希望你先測試這裡的 UI。
48:52.308–48:54.821
我希望你開啟這個儀表板,
48:54.821–48:57.178
並希望你在這個應用程式中開啟它,
48:57.178–48:58.680
這樣我才能看著你操作。
48:58.680–49:00.975
我希望你使用你的瀏覽器操作技能,
49:00.975–49:02.051
然後隨意點擊。
49:02.051–49:03.289
我希望你點擊那些按鈕。
49:03.289–49:04.842
我希望你試著搞壞這個東西。
49:04.842–49:06.248
我希望你對它進行壓力測試,
49:06.248–49:06.759
並進行品質保證(QA)。
49:06.759–49:08.401
然後告訴我你發現了什麼,
49:08.401–49:09.495
你找到了哪些錯誤,
49:09.495–49:11.410
以及我們可能需要改進的地方。
49:11.410–49:14.665
所以,我在這裡所做的,就是用自然語言解釋我想要什麼,
49:14.665–49:17.246
我們將能夠看到它使用了正確的技能。
49:17.246–49:19.002
所以,瀏覽器操作對於很多事情來說都很棒。
49:19.002–49:21.370
它非常適合用於品質保證,就像你剛才在這裡看到的,
49:21.370–49:25.880
因為它能找出錯誤,並點擊那些通常無法操作的項目。
49:25.880–49:27.862
它也非常適合用於某些自動化任務。
49:27.862–49:29.981
所以,也許你沒有某個功能的 API,
49:29.981–49:33.885
而你希望能夠進入系統下載報告,或進入系統變更某些設定。
49:33.885–49:36.167
我也在我的頻道中執行過幾項這樣的自動化任務,
49:36.167–49:38.212
而瀏覽器使用功能對於這些任務來說真的非常有用。
49:38.212–49:40.608
你甚至可以用它來搜尋網頁,
49:40.608–49:44.104
因為你可以讓瀏覽器使用功能帶有 Cookie,
49:44.104–49:46.370
這樣它就能記住你的登入資訊。
49:46.370–49:48.315
所以,你可以登入像學校系統這樣的平台,
49:48.315–49:50.413
在需要通過身份驗證的地方
49:50.413–49:52.716
然後瀏覽器就能自動化並控制各項操作。
49:52.716–49:56.057
不過,總之,你現在在這裡看到的是應用程式內的瀏覽器已開啟。
49:56.057–50:00.398
而這裡這個小滑鼠游標,看起來有點像 ChatGPT Alice 的標誌,
50:00.398–50:01.739
將會進行點擊操作。
50:01.739–50:02.811
你們剛才已經看到它
50:02.811–50:04.390
從總覽切換到回覆頁面。
50:04.390–50:07.080
你可以看到它現在移動得更為頻繁。
50:07.080–50:09.367
當它點擊這些不同的連結時
50:09.367–50:10.384
並四處移動,
50:10.384–50:12.036
它將開始記錄
50:12.036–50:13.815
這個應用程式可能出了什麼問題。
50:13.815–50:15.314
接著我們顯然可以說,
50:15.314–50:15.974
「好的,很棒。
50:15.974–50:17.486
請為我們進行所有那些變更。」
50:17.486–50:17.990
就在這裡,
50:17.990–50:19.703
它找到了與 YouTube 連結相關的問題。
50:19.703–50:21.751
所以,它表示他們擁有正確的網址,
50:21.751–50:25.526
但應用程式內瀏覽器在點擊後並未明顯開啟新分頁。
50:25.526–50:28.361
所以,這正是我們實際觀察到的問題之一。
50:28.361–50:29.585
現在,瀏覽器使用功能相當,
50:29.585–50:30.170
我不知道,
50:30.170–50:32.680
當你觀看時,它可能會感覺有點主觀。
50:32.680–50:34.409
我的意思是,看著它即時運作相當有趣。
50:34.409–50:39.129
但當我使用 Playwright CLI 或其他工具時,Cloud Code 也會發生類似情況。
50:39.129–50:40.378
但根據我的測試,
50:40.378–50:43.024
Codex 的瀏覽器使用功能更加順暢
50:43.024–50:44.641
而且更智能
50:44.641–50:49.419
比我之前建立或使用過的任何瀏覽器自動化功能都要好。
50:49.419–50:55.650
所以,這個應用程式裡的 Codex 真的很酷的地方在於,它的瀏覽器操作功能非常出色。
50:55.650–50:59.614
當然,你仍然可以透過 CLI 或其他方式使用它,但效果相當不錯。
50:59.614–51:03.325
就像我說過的,瀏覽器自動化有非常多非常酷的應用場景。
51:03.325–51:07.971
如果你想看更多範例,雖然這段影片是關於 Cloud Code 的,但在 Codex 中設定方式完全相同。
51:07.971–51:09.888
我會在這邊標註一段影片。
51:09.888–51:10.922
我是說,我超愛這個功能。
51:10.922–51:12.672
它實際上是在篩選條件中進行操作。
51:12.672–51:14.336
你們看到這裡還有其他東西。
51:14.336–51:15.717
它正在變更這些核取方塊。
51:15.717–51:16.809
它正在變更相關內容。
51:16.809–51:18.024
它在這裡進行了另一次搜尋,
51:18.024–51:20.402
並且它實際上會對這個應用程式進行壓力測試
51:20.402–51:22.252
以確保它沒有遺漏任何項目。
51:22.252–51:24.341
而另一個非常酷的地方是
51:24.341–51:27.683
你可以將這種品質檢查機制整合到技能
51:27.683–51:29.271
或知識庫中。
51:29.271–51:31.641
所以,下次當你建立另一個儀表板時
51:31.641–51:33.221
或下次你建立遊戲時,
51:33.221–51:34.644
在結果回報給你之前,
51:34.644–51:36.276
它已經在視覺上進行了幾輪檢查
51:36.276–51:38.225
而且,從程式碼的角度來看,
51:38.225–51:38.910
但你可以確保
51:38.920–51:43.635
「嘿,在沒有用你自己的瀏覽器使用情境進行壓力測試之前,絕對不要回來找我。」
51:43.635–51:47.185
這就是讓這些功能每天變得越來越聰明的方法。
51:47.185–51:49.384
好的,所以它決定現在測試已經完成了。
51:49.384–51:53.798
你可以看到我們有一堆通過的項目,但它發現了大量的改進空間。
51:53.798–51:55.345
它最終找到了六個問題。
51:55.345–51:58.489
YouTube 的外部連結實際上無法運作。
51:58.489–52:00.533
空的瀏覽器狀態顯示得太過空蕩。
52:00.533–52:01.776
搜尋功能太過字面化。
52:01.776–52:03.538
分頁狀態主要只是視覺上的問題。
52:03.538–52:06.116
還有一些其他問題看起來很突兀,
52:06.116–52:07.958
以及我們需要對 UI 進行的一些小修改。
52:07.958–52:09.316
所以,現在真正酷的地方是
52:09.316–52:11.465
我可以說:「好的,把這六個修改項目
52:11.465–52:14.519
並據此制定一個計畫,說明你將如何解決這些問題。」
52:14.519–52:16.782
然後當它帶著適當的計畫回來時,
52:16.782–52:18.196
我們就會繼續執行。
52:18.196–52:19.619
但既然我已經向大家展示了這一點,
52:19.619–52:22.122
讓我們回頭看看我們實際正在執行的自動化程序。
52:22.122–52:24.244
你可以看到它仍在進行檢查。
52:24.244–52:25.491
已經過了大約 10 分鐘。
52:25.491–52:27.417
所以,我會稍後再回來跟各位確認
52:27.417–52:29.060
一旦這個流程完全提交
52:29.060–52:32.063
我們來看看實際線上儀表板上有哪些變更。
52:32.063–52:32.880
天啊
52:32.880–52:34.708
所以,這個推送過程大約花了 20 分鐘,
52:34.708–52:37.184
於是我把它停下來並想:「為什麼這麼久?」
52:37.184–52:40.191
這是因為它無法覆蓋我已經開啟的檔案。
52:40.191–52:41.284
所以,不要這樣做。
52:41.284–52:44.505
但現在我們會繼續讓它運行。
52:44.505–52:46.210
但老實說,這裡有個教訓,
52:46.210–52:48.448
那就是有時候能夠看著它運作是不錯的,
52:48.448–52:52.338
特別是在像我說的,在我們知道這個自動化流程已經非常完善之前,
52:52.338–52:54.480
因為如果它走錯了方向,或者
52:54.480–53:00.217
遇到了某種路障,而身為人類的你本該能在短短 20 秒內解決,
53:00.217–53:03.696
那就停下來提問,或者停下來引導它回到正確軌道,
53:03.696–53:05.720
因為這不僅能幫助你節省
53:05.720–53:07.331
時間,還能節省你的 session 額度。
53:07.331–53:09.794
因為如果它只是在浪費 token 嘗試各種方法,
53:09.794–53:12.089
當修復方法只是讓我關閉應用程式時,
53:12.089–53:16.792
那麼,你知道,你寧願在它開始走錯多個方向之前更早停止。
53:16.792–53:18.761
還有我剛剛注意到的一件事,
53:18.761–53:20.976
這在這裡非常值得提出來討論,
53:20.976–53:23.007
就是當你查看自動化流程時,
53:23.007–53:25.837
這個自動化預設設定為使用 GPT 5.2 執行,
53:25.837–53:27.437
這顯然不是我們想要的。
53:27.437–53:30.706
因此,你要確保模型設定正確
53:30.706–53:32.504
確保推理設定正確
53:32.504–53:34.629
以及所有其他相關設定都正確,
53:34.629–53:37.789
因為這也是那次執行耗時那麼久的原因。
53:37.789–53:41.120
所以,我直接重新觸發了一個使用 GPT 5.5 的新執行,
53:41.120–53:43.519
並且我決定嘗試使用 high 模式來執行這個。
53:43.519–53:46.112
現在,你可能也會對速度選項感到好奇,
53:46.112–53:48.233
也就是標準模式和快速模式之間的差異。
53:48.233–53:51.226
老實說,我從來沒有真的碰過快速模式。
53:51.226–53:55.180
我從不在需要極度快速反應的超時間敏感情境中工作,
53:55.180–53:57.553
因為那樣也會讓你的用量消耗得更快。
53:57.553–53:58.917
但這就比較像樣了。
53:58.917–54:00.304
我們實際上可以看到它在思考
54:00.304–54:02.918
現在我們就能更快地取得這個結果。
54:02.918–54:04.751
好的,所以終於完成了。
54:04.751–54:09.308
你可以看到它能夠對那個 Excel 試算表進行修改。
54:09.308–54:11.428
它表示它分析了 208 則評論。
54:11.428–54:12.934
現在,因為我們剛剛才做過這個,
54:12.934–54:14.199
你知道,就在今天早些時候,
54:14.199–54:16.729
我很好奇它是否真的分析了同樣的 200 則評論,
54:16.729–54:18.235
還是它知道不要重複分析。
54:18.235–54:19.748
而這是我們想要進一步查看的地方。
54:19.748–54:22.285
但讓我們先快速前往我的 GitHub。
54:22.285–54:24.087
這就是我們剛剛設立的儲存庫,對吧?
54:24.087–54:25.832
如果我繼續刷新這個頁面,
54:25.832–54:27.683
我們現在應該會看到有兩個提交記錄。
54:27.683–54:29.155
所以,在第二次提交中,
54:29.155–54:31.397
這顯示我們刷新了評論。
54:31.397–54:33.746
所以,每當您對這個儲存庫進行任何更改時,
54:33.746–54:34.645
它都會在這裡顯示出來。
54:34.645–54:36.291
因此,您可以檢查版本控制,
54:36.291–54:37.588
並查看發生了什麼情況。
54:37.588–54:41.662
但這意味著因為我們的 GitHub 儲存庫這裡有了新的提交,
54:41.662–54:42.899
如果我們現在前往 Vercel
54:42.899–54:45.009
並查看這個實際專案
54:45.009–54:46.391
如果我進入部署頁面
54:46.391–54:50.029
我們應該能看到它剛剛抓取了一個新的變更。
54:50.029–54:50.791
1 分鐘前,
54:50.791–54:52.729
它抓取了這個新的部署。
54:52.729–54:54.531
所以,如果我們現在前往儀表板
54:54.531–54:55.987
並重新整理這個頁面,
54:55.987–54:57.027
這裡就有了新的資料。
54:57.027–54:58.875
所以,這裡之前顯示的是 200 部影片,
54:58.875–55:00.297
或者說,200 則留言,
55:00.297–55:01.434
現在顯示的是 208。
55:01.434–55:05.407
所以,這只是證明我們確實獲得了一些新的洞察。
55:05.407–55:10.413
現在,真正令人高興的是,它看起來基本上只新增了八個。
55:10.413–55:11.763
它並沒有新增 200 個
55:11.763–55:12.708
然後再新增 200 個
55:12.708–55:13.855
然後再新增八個,
55:13.855–55:16.555
因為它意識到那些是重複的。
55:16.555–55:19.804
如果我們實際上去開啟真正的資料來源,
55:19.804–55:20.931
如果我進入我們的儲存庫,
55:20.931–55:21.793
我進入輸出資料夾
55:21.793–55:23.583
我進入 YouTube 評論洞察
55:23.583–55:27.362
然後我點擊我們之前不小心打開的 Excel 檔案
55:27.362–55:29.560
我們看到儀表板完全一樣
55:29.560–55:29.866
相同
55:29.866–55:32.497
只是現在我們分析了額外八則評論
55:32.497–55:33.965
而不是原本的 200 則。
55:33.965–55:37.080
但我想要向大家展示這次執行過程中發生了什麼事。
55:37.080–55:38.048
所以,如你們所知,
55:38.048–55:40.952
我們遇到了那個問題,就是我當時打開了 Excel 檔案,對吧?
55:40.952–55:42.174
那是第一個錯誤。
55:42.174–55:44.593
第二個錯誤是這次執行使用的是 5.2 版本。
55:44.593–55:46.251
所以,我們重設了自動化流程,
55:46.251–55:48.254
現在它使用的是 5.5 high 版本。
55:48.254–55:50.537
但接著發生的是,這次執行又花了很長一段時間。
55:50.537–55:51.083
所以,我停止了它
55:51.083–55:52.891
並說:「嘿,你都執行很長一段時間了。
55:52.891–55:54.218
為什麼這麼久?
55:54.218–55:55.447
這是非常簡單的任務。」
55:55.447–55:56.142
所以,基本上,
55:56.142–55:57.852
我知道這裡出了問題。
55:57.852–56:00.570
因為當我們從頭建立這個儀表板時,
56:00.570–56:02.160
只花了大約 20 分鐘。
56:02.160–56:04.031
但更新它卻花了 40 分鐘
56:04.031–56:05.542
甚至可能更久。
56:05.542–56:06.847
所以,我知道有問題發生。
56:06.847–56:07.521
於是我停止了它,
56:07.521–56:09.352
並想更深入地調查一下。
56:09.352–56:10.841
然後我能夠找出
56:10.841–56:12.509
它卡在某個處理程序上。
56:12.509–56:13.857
於是我說:「你需要我提供什麼
56:13.857–56:15.903
才能確保這種情況不再發生,
56:15.903–56:18.042
並且你們能夠基本上確實提供
56:18.042–56:19.715
我們所尋求的交付成果?」
56:19.715–56:21.203
它讓我進行了一些確認。
56:21.203–56:22.450
然後一旦我這麼做了,
56:22.450–56:23.488
只花了大約 7 分鐘,
56:23.488–56:25.566
然後它就能完成所有這些變更。
56:25.566–56:27.316
所以,我想向你們展示這個
56:27.316–56:29.265
原因在於,再次強調,這些東西並非魔法。
56:29.265–56:30.370
你不會部署某個東西,
56:30.370–56:31.935
然後就指望它能完美運作。
56:31.935–56:35.237
但真正酷的是,我可以說:「太棒了。
56:35.237–56:37.607
儀表板上的所有功能都如預期般運作。
56:37.607–56:39.195
分析數據也已更新。
56:39.195–56:41.064
現在,我希望你深入探討你剛才所做的
56:41.064–56:42.079
這項自動化工作,
56:42.079–56:43.147
並幫助我理解,
56:43.147–56:45.870
是否有機會簡化這項自動化流程?
56:45.870–56:48.228
是否有機會讓這項自動化
56:48.228–56:49.053
變得更好且更穩健?
56:49.053–56:50.805
你這邊有什麼建議嗎?
56:50.805–56:52.292
接著我會繼續發送這個請求,
56:52.292–56:55.213
看看是否有辦法讓這項自動化變得更好。
56:55.213–56:56.255
這真的很重要,
56:56.255–56:58.448
因為有個概念叫做「暗碼」(dark code),
56:58.448–57:00.860
基本上是指你在進行「氛圍編碼」(vibe coding)時寫了一堆程式碼,
57:00.860–57:02.176
但實際上你並不知道
57:02.176–57:04.150
在 Python 腳本或其他
57:04.150–57:05.640
你所使用的語言中到底發生了什麼事。
57:05.640–57:07.195
你正在使用的語言。
57:07.195–57:09.520
我不是說你需要理解每一行
57:09.520–57:10.115
程式碼,
57:10.115–57:12.008
但你必須從根本上理解
57:12.008–57:13.089
了解它在做什麼以及為什麼。
57:13.089–57:16.194
如果有任何機會可以移除一些程式碼,
57:16.194–57:17.617
或者如果你必須,你知道,
57:17.617–57:20.204
在某些地方加入更多防護措施,
57:20.204–57:21.433
或類似的事情。
57:21.433–57:22.869
所以,基本上是在檢視這個
57:22.869–57:24.108
看看我們能否讓它更快,
57:24.108–57:25.148
或者讓它更安全。
57:25.148–57:27.091
現在,最終來說,只要它能運作,
57:27.091–57:28.646
我真的不介意它有多快。
57:28.646–57:30.623
因為如果這個每週只執行一次,
57:30.623–57:32.538
我不介意它是在下午 6 點
57:32.538–57:33.156
還是下午 6 點 30 分
57:33.156–57:34.021
甚至是下午 7 點執行。
57:34.021–57:35.460
只要它確實能運作。
57:35.460–57:38.689
但有時速度在你的自動化中非常重要。
57:38.689–57:38.867
所以,
57:38.867–57:39.993
它會回傳並表示,
57:39.993–57:40.289
「是的,
57:40.289–57:40.882
這可行,
57:40.882–57:41.060
57:41.060–57:42.779
它仍然過於依賴 Agent 協調,
57:42.779–57:42.957
57:42.957–57:44.794
對於每週資料更新來說過於沉重。」
57:44.794–57:44.972
因此,
57:44.972–57:46.335
我們可以新增一個 repo 腳本,
57:46.335–57:47.817
基本上來執行建置器。
57:47.817–57:51.230
我們可以停止為這類更新執行完整的 Next.js 建置。
57:51.240–57:53.439
它提供了我們各種不同的洞察,
57:53.439–57:55.033
我們可以接著採取行動,
57:55.033–57:57.341
以改善我們的自動化與系統。
57:57.341–57:59.851
所以,這就是你可以持續迭代的方式。
57:59.851–58:04.436
即使你自己並不清楚該如何讓它變得更好,
58:04.436–58:07.187
你也可以利用 AI 來找出問題並進行腦力激盪。
58:07.187–58:07.472
好的。
58:07.472–58:10.854
所以,各位在這裡看到的是,我們從頭開始建立了這個產品,對吧?
58:10.854–58:12.335
這是我們的 YouTube 分析功能示範。
58:12.335–58:13.687
我們連接了 YouTube,
58:13.687–58:14.588
我們設定了一個技能,
58:14.588–58:15.875
我們設定了一個自動化流程,
58:15.875–58:17.033
我們設定了一個儀表板,
58:17.033–58:18.385
我們使用了一些瀏覽器操作功能,
58:18.385–58:22.569
現在我們擁有一個實際的系統,每週它都會抓取更多留言,
58:22.569–58:23.856
它會更新我們的資料,
58:23.856–58:24.757
我們的 Excel 試算表,
58:24.757–58:24.960
並且
58:24.960–58:28.888
然後它會完全自動地將所有這些變更推送到我們實際的線上儀表板。
58:28.888–58:32.027
所以,我希望你們喜歡看到這個從基本構想、
58:32.027–58:33.073
建立專案
58:33.073–58:34.119
一直到最終完成的整個流程。
58:34.119–58:35.062
並且請記住,
58:35.062–58:37.713
真正重要的是,這個整個專案、
58:37.713–58:39.128
我們剛才所做的所有事情,
58:39.128–58:41.308
實際上只是你電腦上的一個資料夾。
58:41.308–58:46.259
這意味著你可以自訂這個資料夾,讓 OpenClaw 或 CloudCode 或任何你想要的工具來使用。
58:46.259–58:48.883
現在,任何代理程式都可以在這個目錄中運作。
58:48.883–58:51.786
如果我想在 Codex 裡明確地執行這個操作,
58:51.786–58:53.963
那麼我可以繼續點擊「檢視」。
58:53.963–58:55.836
我可以開啟終端機。
58:55.836–58:58.360
現在,因為我們處於這個目錄中,
58:58.360–58:59.730
我可以呼叫 Claude。
58:59.730–59:00.764
所以,就在這裡,
59:00.764–59:02.637
我可以在這個實際的儲存庫中使用 ClaudeCode。
59:02.637–59:04.511
因此,也許就在這裡,
59:04.511–59:05.385
我正在使用 Claude 來協助腦力激盪,
59:05.385–59:06.979
它為我建立了一個腦力激盪檔案,
59:06.979–59:08.624
放在這個專案的某個地方。
59:08.624–59:10.115
然後我可以做的是,
59:10.115–59:11.517
我可以回到 Codex,
59:11.517–59:13.520
然後我可以繼續標記該檔案。
59:13.520–59:15.589
所以,假設我說:「嘿,這裡有一個規劃檔案,
59:15.589–59:17.666
一個我剛剛用 Claude 產生的腦力激盪檔案。
59:17.666–59:20.523
一份我剛剛用 Claude 產生的腦力激盪檔案
59:20.523–59:21.492
實際接手這個檔案
59:21.492–59:22.785
並為我執行它的人。」
59:22.785–59:23.862
並幫我執行它
59:23.862–59:26.178
所以,你真的可以開始一起操作這些功能
59:26.178–59:26.986
並進行混合搭配。
59:26.986–59:28.546
就像我之前展示給你們看的
59:28.546–59:30.887
我們使用 Cloud Code 來建構某些東西
59:30.887–59:32.867
接著我們會實際引入 Codex
59:32.867–59:33.887
來對其進行審查
59:33.887–59:35.387
並尋找像是安全漏洞
59:35.387–59:37.788
或是任何基於程式碼的功能性錯誤
59:37.788–59:38.448
在裡面。
59:38.448–59:43.185
所以,在我看來,重點始終在於哪種工具最適合這個特定使用案例,
59:43.185–59:44.591
而不是哪種工具最好。
59:44.591–59:46.819
好的,我真的希望你們喜歡這段內容。
59:46.819–59:49.193
你應該對 Codex 的介面有非常良好的理解。
59:49.193–59:51.861
你應該對如何進入這裡有非常深入的了解
59:51.861–59:52.957
連接其他工具
59:52.957–59:53.624
使用外掛程式
59:53.624–59:54.720
開始建構技能有非常良好的理解。
59:54.720–59:57.864
而接下來真正的突破點是開始建構越來越多的技能。
59:57.864–1:00:00.695
所以,試著思考你每天在做什麼?
1:00:00.695–1:00:02.587
每週你會做哪些事
1:00:02.587–1:00:05.350
並記錄下那些枯燥且重複的工作
1:00:05.350–1:00:07.309
以及那些你希望能在睡眠中自動完成的事項。
1:00:07.309–1:00:09.154
接著將這些內容導入 Codex
1:00:09.154–1:00:10.552
並開始進行腦力激盪。
1:00:10.552–1:00:12.178
當你進行這個過程時,
1:00:12.178–1:00:14.733
你會想要建立屬於你自己的 AI 作業系統。
1:00:14.733–1:00:14.889
所以,
1:00:14.889–1:00:16.448
我會在此標註一支影片
1:00:16.448–1:00:18.163
強烈建議你們接下來一定要去觀看。
1:00:18.163–1:00:20.398
這支影片主要是基於 Cloud Code,
1:00:20.398–1:00:23.320
但請記住,一切只是檔案和資料夾。
1:00:23.320–1:00:23.497
所以,
1:00:23.497–1:00:25.326
如果你按照這支影片的步驟操作,
1:00:25.326–1:00:27.450
你將能夠在 Codex 中複製這個過程,
1:00:27.450–1:00:28.640
絕對沒有任何問題。
1:00:28.640–1:00:29.773
而真正酷的地方在於
1:00:29.773–1:00:32.470
我從 Cloud Code 遷移過來的每個專案,
1:00:32.470–1:00:35.113
我都會說:「嘿,這是我用 Cloud Code 建構的東西。
1:00:35.113–1:00:36.301
請繼續分析它
1:00:36.301–1:00:38.927
並協助我找出需要建立哪些檔案
1:00:38.927–1:00:41.303
以便讓它與 Codex 相容。
1:00:41.303–1:00:42.616
它只會做一件事
1:00:42.616–1:00:43.866
也許會更改一些名稱
1:00:43.866–1:00:46.440
也許會將 cloud.md 改為 agent.md,並且
1:00:46.440–1:00:47.425
這真的非常簡單。
1:00:47.425–1:00:48.642
大概只需要 30 秒
1:00:48.642–1:00:50.468
然後你就能在 Codex 中擁有你的專案。
1:00:50.468–1:00:50.625
所以,
1:00:50.625–1:00:51.045
總之,
1:00:51.045–1:00:53.773
我們在那個關於 AI 作業系統的影片裡見。
1:00:53.773–1:00:55.317
如果你喜歡的話,請按讚。
1:00:55.317–1:00:56.191
這對我幫助很大。
1:00:56.191–1:00:57.111
一如既往,
1:00:57.111–1:00:59.000
感謝你們看到影片的最後。
0:00.000–0:02.407
So, Codex is an absolutely incredible super app.
所以,Codex 是一個絕對令人驚嘆的超級應用程式。
0:02.407–0:03.862
I've been using it a lot more lately,
我最近使用它的頻率更高了,
0:03.862–0:05.851
and I'm not saying that I'm ditching Claude Code.
但我並不是說我要拋棄 Claude Code。
0:05.851–0:07.240
I still use them both regularly
我仍然定期同時使用這兩者,
0:07.240–0:09.378
because they're both good at different things.
因為它們各自擅長不同的領域。
0:09.378–0:13.460
So, today's video, I'm going to break down every single important thing that you need to know about Codex
所以,今天的影片,我將詳細拆解關於 Codex 你需要知道的所有重要事項,
0:13.460–0:15.619
to be able to, you know, open up the app for the first time
以便你能夠,你知道的,第一次打開這個應用程式,
0:15.619–0:18.960
and then actually have finished automations and websites and whatever you want to do
然後實際完成自動化、網站以及你想做的任何事情
0:18.960–0:21.080
in Codex done by the end of this video.
Codex 中做的任何事項,到本影片結束時。
0:21.080–0:23.249
So, whether you've never opened up a tool like this before
所以,無論你以前從未打開過這類工具,
0:23.249–0:25.283
or if you're already kind of used to using Claude Code,
還是你已經有點習慣使用 Claude Code,
0:25.283–0:27.271
I'm going to break down everything as simple as I can.
我都會盡可能簡單地拆解所有內容。
0:27.271–0:32.126
So, first of all, if you fit in this bucket of someone that uses ChatGPT just on the web or uses Claude,
所以,首先,如果你屬於那種只在網頁上使用 ChatGPT 或使用 Claude 的人,
0:32.126–0:33.939
you are going to get this really quick
你會很快掌握這些
0:33.939–0:36.513
because what we're looking at right here is ChatGPT.
因為我們現在看到的是 ChatGPT。
0:36.513–0:38.098
We have the ability to make new chats,
我們有能力建立新的對話,
0:38.098–0:39.325
we can search through chats,
我們可以搜尋對話,
0:39.325–0:40.705
we can have different projects,
我們可以擁有不同的專案,
0:40.705–0:42.750
we can have all of our different chats over here,
我們可以在此處擁有我們所有的不同對話,
0:42.750–0:44.232
and then we talk to chat right here.
然後我們在此處與聊天機器人對話。
0:44.232–0:48.163
And if I open up the Codex app, which is what we're going to be using today for the entire video,
如果我打開 Codex 應用程式,也就是今天整部影片都會使用的工具,
0:48.163–0:49.695
it looks pretty much the exact same.
它的外觀幾乎完全一樣。
0:49.695–0:51.130
We have projects on the left,
我們在左側有專案,
0:51.130–0:52.387
we have chats on the left,
左側有聊天記錄,
0:52.387–0:54.480
and then we can talk to ChatGPT right here.
然後我們可以在這裡與 ChatGPT 對話。
0:54.480–0:56.654
We use this toggle to change the model
我們使用這個切換按鈕來變更模型,
0:56.654–0:59.670
whether we want to use GPT 5.5, 5.4, or other models.
無論是使用 GPT 5.5、5.4 還是其他模型。
0:59.670–1:00.787
We can change the speed,
我們可以變更速度,
1:00.787–1:02.910
and then we can also change the intelligence.
然後也可以變更智慧程度。
1:02.910–1:04.911
So, low, medium, high, or extra high.
也就是低、中、高或超高。
1:04.911–1:08.054
And I'll get into this stuff a little bit later in more depth.
我會在稍後更深入地探討這些內容。
1:08.054–1:10.576
And this is also very similar to the Claude Code desktop app
這與 Claude Code 桌面應用程式也非常相似,
1:10.576–1:12.995
where we have the ability to chat with Claude right here,
我們可以在這裡與 Claude 對話,
1:12.995–1:15.877
and then on the left-hand side we can see our chats and our projects.
然後在左側可以看到我們的聊天記錄和專案。
1:15.877–1:17.187
So, that is the interface.
這就是介面。
1:17.187–1:18.320
Don't get overwhelmed.
別被搞混了。
1:18.320–1:20.563
So, I'm going to get you guys all familiar with the interface
所以,我會讓大家熟悉這個介面,
1:20.563–1:22.403
and go over all the settings that you need to know,
並介紹所有您需要知道的設定,
1:22.403–1:25.499
and then I'm going to show you a full project from beginning to end building skills,
接著我會展示一個完整的專案,從頭到尾建立技能,
1:25.499–1:26.351
connecting to things,
連接各種服務,
1:26.351–1:27.505
building automations,
建立自動化流程,
1:27.505–1:29.859
and then deploying on some sort of website.
然後部署到某種網站上。
1:29.859–1:30.571
So, buckle up.
所以,請坐穩了。
1:30.571–1:32.440
All right, so what actually is Codex?
好的,那麼 Codex 到底是什麼呢?
1:32.440–1:35.270
Codex is basically a massive super app.
Codex 基本上是一個龐大的超級應用程式。
1:35.270–1:37.788
We can use ChatGPT same way you talk to it on the web,
我們可以像使用網頁版 ChatGPT 那樣與它對話,
1:37.788–1:39.166
but now we work in projects,
但現在我們是在專案中工作,
1:39.166–1:40.905
and Codex can create Excel sheets,
Codex 可以建立 Excel 試算表,
1:40.905–1:41.864
read Excel sheets,
讀取 Excel 試算表,
1:41.864–1:43.602
look through all your local files.
瀏覽你所有的本機檔案。
1:43.602–1:45.594
It can do basically anything on your computer
它基本上可以在你的電腦上執行任何操作,
1:45.594–1:47.324
including using the mouse and keyboard
包括使用滑鼠和鍵盤,
1:47.324–1:48.216
and clicking around
點擊各個項目,
1:48.216–1:49.369
and automating a browser.
以及自動化瀏覽器操作。
1:49.369–1:51.632
It also lets us build these reusable skills.
它還讓我們能夠建立這些可重複使用的技能。
1:51.632–1:52.679
We can build websites,
我們可以建立網站,
1:52.679–1:53.506
we can build apps,
我們可以建立應用程式,
1:53.506–1:54.664
we can build video games,
我們可以建立電子遊戲,
1:54.664–1:55.766
and then we can automate
然後我們可以自動化
1:55.766–1:56.813
and push all that stuff
並將所有這些內容推送
1:56.813–1:57.916
so that it actually runs
讓它真正運行起來
1:57.916–1:59.514
while we're sleeping every night.
在我們每晚睡覺的時候。
1:59.514–2:01.398
So, the main difference here between web chat
所以這裡網頁聊天主要的差異在於
2:01.398–2:03.035
is that you're basically just talking.
的主要區別在於,你基本上只是在說話。
2:03.035–2:04.693
And you have these connectors in chat GPT now,
而現在聊天 GPT 有這些連接器,
2:04.693–2:06.395
so you can get a little bit more functionality.
所以你可以獲得更多一點的功能。
2:06.395–2:10.080
You can give that AI brain a bit more of like hands.
你可以給那個 AI 大腦更多一點像雙手一樣的能力。
2:10.080–2:13.040
But, in Codex, it can do everything.
但是,在 Codex 中,它可以做所有事情。
2:13.040–2:14.088
It's one of those things
這是其中一種情況,
2:14.088–2:16.132
where Codex can do everything that chat can do,
其中 Codex 可以做聊天能做的所有事情,
2:16.132–2:18.438
but chat cannot do nearly as much as what Codex can do.
但聊天能做的遠不及 Codex 能做的。
2:18.438–2:21.022
So, you might as well just switch over to something like Codex.
所以,你最好直接切換到像 Codex 這樣的東西。
2:21.022–2:23.950
And if you are curious about the Claude code versus Codex difference,
如果你對 Claude code 與 Codex 的差異感到好奇,
2:23.950–2:25.565
they're different harnesses, right?
它們是不同的框架,對吧?
2:25.565–2:28.012
So, they fundamentally work a little bit different,
所以,它們在根本上運作方式略有不同,
2:28.012–2:28.958
but very similarly.
但非常相似。
2:28.958–2:30.588
They also use different models.
它們也使用不同的模型。
2:30.588–2:33.041
So, Claude code natively under the hood uses Opus
所以,Claude code 在底層原生使用 Opus
2:33.041–2:33.580
and Sonnet
和 Sonnet
2:33.580–2:34.118
and Haiku,
以及 Haiku,
2:34.118–2:37.120
and Codex under the hood uses the different chat GPT models.
而 Codex 底層使用的是不同的 ChatGPT 模型。
2:37.120–2:38.438
Now, I did do a full breakdown
現在,我確實做了一個完整的分析
2:38.438–2:40.689
where I actually tested Opus 4.7 against GPT 5.5,
我實際測試了 Opus 4.7 與 GPT 5.5,
2:40.689–2:42.666
and I got some really interesting results.
並得到了一些非常有趣的結果。
2:42.666–2:44.513
So, if you guys want to check out this video next,
所以,如果你們接下來想看這部影片,
2:44.513–2:45.575
I'll tag that right up here.
我會直接在這裡標註出來。
2:45.575–2:47.901
I definitely think it's worth just at least skimming through.
我絕對認為至少瀏覽一下是值得的。
2:47.901–2:50.683
Because ultimately, these models have very different strengths
因為這些模型最終具有非常不同的優勢
2:50.683–2:53.009
is what I've noticed after playing with them non-stop.
這是我在不停使用它們後所觀察到的。
2:53.009–2:55.728
I really like Claude for being sort of like exploratory
我真的很喜歡 Claude 那種探索性的特質
2:55.728–2:56.674
and brainstorming
以及發想創意
2:56.674–2:58.033
and helping me get creative
幫助我發揮創意
2:58.033–2:59.274
and think through things
以及思考事情
2:59.274–2:59.747
and plan.
以及規劃。
2:59.747–3:02.440
But then, I really like Codex for being pragmatic.
但另一方面,我真的很喜歡 Codex 的務實風格。
3:02.440–3:05.093
And it feels like it does better at following my plan
而且當計畫變得越來越長時,
3:05.093–3:06.944
if the plan grows longer and longer.
它似乎更擅長遵循我的計畫。
3:06.944–3:08.528
And it's really good at executing,
它非常擅長執行,
3:08.528–3:10.275
and it's really good at finding issues
而且非常擅長發現問題
3:10.275–3:11.586
and troubleshooting things
以及進行除錯
3:11.586–3:14.098
that sometimes Claude, for some reason, can't handle.
有時克勞德出於某些原因無法處理的問題。
3:14.098–3:14.251
So,
所以,
3:14.251–3:16.850
I'm not in here saying that I love Codex more than Claude code.
我不是在這裡說我比克勞德程式碼更喜歡Codex。
3:16.850–3:18.550
I'm saying that I'm using them both,
我是說我同時使用這兩者,
3:18.550–3:20.589
and I'm learning more about both every day.
而且我每天對這兩者的了解都更多。
3:20.589–3:23.706
And one other thing I really like about Codex is you can see my little pet down here,
我還很喜歡Codex的另一點是,你可以在這裡看到我的小寵物,
3:23.706–3:25.494
which I'll tell you guys how you get this later.
稍後我會告訴大家如何獲得這個。
3:25.494–3:26.096
But this pet,
但這隻寵物,
3:26.096–3:27.135
while you're working,
在你工作時,
3:27.135–3:28.830
it stays in the bottom of your screen,
它會停留在螢幕底部,
3:28.830–3:30.526
and it tells you what it's working on.
並告訴你它正在處理什麼。
3:30.526–3:30.691
So,
所以,
3:30.691–3:32.505
it's really nice to be able to multitask
能夠多工處理真的很棒
3:32.505–3:34.440
and see what's happening inside of Codex.
並查看Codex內部的狀況真的很好。
3:34.440–3:35.770
And the pet's kind of funny.
而且這隻寵物有點有趣。
3:35.770–3:37.117
And it's more than just having chats.
而且不僅僅是聊天功能。
3:37.117–3:39.959
It's the ability to have everything organized on your workspace.
它能夠讓你的工作區中的所有內容都有條理。
3:39.959–3:43.428
So, if you guys watch my recent video about Claude code operating system,
所以,如果你們看過我最近關於克勞德程式碼作業系統的影片,
3:43.428–3:45.588
or you've seen my executive assistant video,
或者看過我的行政助理影片,
3:45.588–3:46.953
this is my heart two project,
這就是我的Heart Two專案,
3:46.953–3:49.512
which is basically where I live inside of Claude code.
基本上,這就是我在 Claude Code 裡的生活空間。
3:49.512–3:52.029
And all of this is is a bunch of folders and files.
而這裡面全都是一堆資料夾和檔案。
3:52.029–3:53.388
I've got a bunch of files here.
我這裡有很多檔案。
3:53.388–3:54.727
I've got a bunch of different folders.
我有很多不同的資料夾。
3:54.727–3:55.401
I've got settings.
我有設定檔。
3:55.401–3:56.114
I've got skills.
我有技能設定。
3:56.114–3:56.849
I've got agents.
我有代理程式(agents)。
3:56.849–3:57.798
I've got projects.
我有專案。
3:57.798–3:58.959
I've got all these things
我有這些東西
3:58.959–3:59.898
that I'm working on.
我正在處理的專案。
3:59.898–4:00.819
And all this is
而這些全都是
4:00.819–4:02.440
is a bunch of local files.
一堆本機檔案。
4:02.440–4:04.176
Which means I can have Codex work
這意味著我可以讓 Codex 在
4:04.176–4:05.527
inside of this directory
這個目錄裡運作
4:05.527–4:06.942
and do everything as well.
並完成所有工作。
4:06.942–4:07.856
All that we're doing
我們在使用這些不同模型時
4:07.856–4:09.685
when we're using these different models
當我們使用這些不同的模型時
4:09.685–4:11.729
is we're organizing things into a structure.
就是將事物組織成某種結構。
4:11.729–4:13.803
A structure that different agent harnesses can understand.
一種不同的代理程式框架能夠理解的結構。
4:13.803–4:15.425
And whether you want to use Codex
無論你想使用 Codex
4:15.425–4:16.145
or Claude Code
或是 Claude Code
4:16.145–4:16.626
or Cursor
或是 Cursor
4:16.626–4:17.827
or, you know, Open Claw,
或是,你知道的,Open Claw,
4:17.827–4:18.608
whatever it is,
無論是什麼,
4:18.608–4:20.600
they can all work out of that directory.
它們都可以從該目錄中運作。
4:20.600–4:22.796
As long as you have some sort of instructions
只要你有一些類型的指示
4:22.796–4:25.170
and guidelines over what actually lives where.
以及關於實際內容存放位置的指導方針。
4:25.170–4:28.348
Okay, so basically what I'm going to be building with you guys today
好的,所以基本上我今天要與各位一起建構的
4:28.348–4:30.732
is a bit of a YouTube comment intelligence system.
是一個 YouTube 留言智慧系統。
4:30.732–4:34.179
So we want to be able to pull in YouTube comments from my channel.
所以我們希望能夠從我的頻道擷取 YouTube 留言。
4:34.179–4:35.986
We want to be able to have those be analyzed.
我們希望能夠對這些留言進行分析。
4:35.986–4:37.241
We want a workbook in Excel.
我們希望有一個 Excel 工作簿。
4:37.241–4:39.184
We want like some data visualization.
我們希望有一些資料視覺化呈現。
4:39.184–4:41.833
And we want a dashboard that lives somewhere on the web
我們還希望有一個位於網路某處的儀表板
4:41.833–4:44.306
so I could go check it on my phone if I'm out on a walk.
這樣我在散步時可以透過手機去查看。
4:44.306–4:46.701
And I'm going to show you how we ship and deploy all of that.
我將展示如何部署和發布所有這些內容。
4:46.701–4:50.356
So basically from zero to a working project is what I'm going to show you guys today.
所以基本上,我今天要展示的是如何從零開始建構一個可運作的專案。
4:50.356–4:50.529
So,
所以,
4:50.529–4:51.219
let me go ahead
讓我繼續
4:51.219–4:52.370
and open up the Codex app
打開 Codex 應用程式
4:52.370–4:53.923
and show you guys how this works.
並向大家展示它是如何運作的。
4:53.923–4:54.765
Now real quick,
現在,快速說明一下,
4:54.765–4:55.736
what you have to do
你需要做的是
4:55.736–4:57.560
is have some sort of ChatGPT plan.
擁有一個某種形式的 ChatGPT 訂閱方案。
4:57.560–4:58.264
The good news is
好消息是,
4:58.264–4:59.076
if you're on free,
如果你使用的是免費方案,
4:59.076–5:00.322
you can still try out Codex.
你仍然可以試用 Codex。
5:00.322–5:01.907
You have limited Codex access.
你將擁有有限的 Codex 使用權限。
5:01.907–5:02.961
But I would recommend
但我會建議
5:02.961–5:04.659
just hopping on the $20 a month plan
先選擇每月 20 美元的方案來開始使用。
5:04.659–5:05.420
to get started.
以此作為起點。
5:05.420–5:07.959
And if you're running into your limits pretty quickly,
如果你很快就會遇到使用限制,
5:07.959–5:09.670
then maybe you want to upgrade to Pro.
那麼也許你應該考慮升級到 Pro 方案。
5:09.680–5:12.631
Now what else is really nice about ChatGPT subscription is
現在,ChatGPT 訂閱方案另一個非常棒的地方是,
5:12.631–5:14.919
you can plug it into Open Claw or Hermes Agent,
你可以將其接入 Open Claw 或 Hermes Agent,
5:14.919–5:16.364
which is really really nice.
這真的非常棒。
5:16.364–5:19.096
Because obviously it's so much more expensive to pay per token
因為顯然按 token 計費會貴得多
5:19.096–5:21.197
rather than being on some sort of subscription.
比起使用某種訂閱方案要昂貴得多。
5:21.197–5:23.307
And then you're just going to go ahead and go to Codex
然後,你只需前往 Codex
5:23.307–5:25.663
and then just download the app for your operating system.
並下載適用於你作業系統的版本。
5:25.663–5:27.908
That's the way that we're going to be using it today.
這就是我們今天要使用它的方式。
5:27.908–5:31.170
Ultimately, you will be getting more full functionality
最終,如果您在 VS Code 擴充功能或終端機中使用 Codex,您將獲得更完整的功能。
5:31.170–5:33.548
if you're using Codex in VS Code extension
如果您在 VS Code 擴充功能中使用 Codex,
5:33.548–5:34.635
or in the terminal.
或在終端機中使用,
5:34.635–5:36.214
But for the sake of the video,
但為了影片簡潔起見,
5:36.214–5:39.120
using the app is going to get you super far either way.
無論哪種方式,使用應用程式都能讓您獲得極大的便利。
5:39.120–5:40.996
There's just a few little things you want to keep in mind,
只是有幾件小事您需要注意,
5:40.996–5:42.433
which is why I'm making this YouTube video.
這也是我製作這部 YouTube 影片的原因。
5:42.433–5:44.707
All right, so let's go ahead and get started.
好的,那麼我們就開始吧。
5:44.707–5:46.224
So, on the left-hand side you can see
所以,在左側您可以看到
5:46.224–5:47.337
I've got one project open,
我開啟了一個專案,
5:47.337–5:51.028
and this project is actually how I built the slide deck that you were looking at earlier.
而這個專案實際上就是用來建構您剛才看到的簡報投影片。
5:51.028–5:53.624
So, this slide deck I built right here in this project,
所以,這個簡報投影片是我在這個專案中建構的,
5:53.624–5:55.412
and you can see because I'm in the app,
您可以看到因為我在使用應用程式,
5:55.412–5:59.449
Codex lets us basically navigate this right here in this little localhost browser.
Codex 讓我們基本上可以在這個本地主機瀏覽器中進行導航。
5:59.449–6:00.967
And this is also where if I said,
而且這也是如果我說
6:00.967–6:05.403
"Hey, can you use browser use and test out this slide deck to make sure everything looks good
「嘿,你能使用瀏覽器操作功能來測試這個簡報投影片,確保一切看起來沒問題
6:05.403–6:08.040
and make sure it functionally like clicks and moves?"
並確保它在功能上像點擊和移動那樣運作嗎?」
6:08.040–6:09.693
Then it would bring up a mouse over here,
那麼它就會在這裡顯示一個滑鼠游標,
6:09.693–6:10.995
and we would see it move around,
我們會看到它移動,
6:10.995–6:12.046
and we would see it click,
我們會看到它點擊,
6:12.046–6:13.849
which I'll show you guys later in the video.
這部分我稍後會在影片中展示給各位看。
6:13.849–6:15.533
But anyways, what we're going to do is
不過,總之我們要做的是
6:15.533–6:17.054
we're going to start a new project
我們要開始一個新專案
6:17.054–6:19.771
because over here you can see we have a bunch of random chats,
因為在這裡你可以看到我們有很多隨意的對話,
6:19.771–6:23.791
which can still do things like building games and building automations and simulators.
這些對話仍然可以執行像是建立遊戲、建置自動化流程和模擬器等任務。
6:23.791–6:26.523
But what we want to do is we want to work inside of an actual project
但我們想要做的是,我們希望在實際專案中工作
6:26.523–6:29.914
because these chats, any deliverable that we create doesn't really have a home,
因為這些對話,我們創建的任何交付成果都沒有真正的歸屬,
6:29.914–6:32.393
you know, it just lives somewhere random in our documents.
你知道,它們只是隨機存在於我們的文件中的某個地方。
6:32.393–6:34.625
But when we're working in a certain project,
但當我們在特定專案中工作時,
6:34.625–6:37.098
I can actually grab the local working directory,
我實際上可以取得本地的工作目錄,
6:37.098–6:37.821
so I copy that,
所以我複製它,
6:37.821–6:40.294
and if I go into my file explorer and paste that in,
如果我進入檔案總管並貼上它,
6:40.294–6:43.320
now I'm inside of the actual project that we're working on in
現在我進入了我們正在實際運作的專案
6:43.320–6:43.638
Codex.
Codex 中實際工作的專案。
6:43.638–6:46.265
So, now I can see different assets that live in this project,
所以,現在我可以看到這個專案中存在的不同資產,
6:46.265–6:47.053
all these images.
所有這些圖片。
6:47.053–6:48.602
I can see different guides,
我可以看到不同的指南,
6:48.602–6:53.315
and I can have a little bit more organization to this ongoing project in my business.
我可以為我業務中這個持續進行的專案增加一點組織性。
6:53.315–6:55.315
All right, so we're going to start a new project.
好的,所以我們要開始一個新專案。
6:55.315–6:57.360
I'm going to click on new chat in the top,
我將點擊頂部的「新增聊天」
6:57.360–7:00.770
and then right here you can see I'm inside of the Codex 95% project,
然後在這裡你可以看到我目前位於 Codex 95% 專案中
7:00.770–7:03.249
but we're going to go ahead and add a new project.
但我們將繼續新增一個新專案
7:03.249–7:06.394
So, that's going to open up a little um file explorer over here,
這將在這裡開啟一個小型的檔案總管
7:06.394–7:08.752
and then you choose where you want this to live.
然後你選擇要將它存放在哪裡
7:08.752–7:11.824
So, for this example, I'm going to go to my desktop,
因此,在這個範例中,我將前往我的桌面
7:11.824–7:14.896
I'm going to go into a folder called Codex YouTube,
我會進入一個名為 Codex YouTube 的資料夾
7:14.896–7:20.747
and I'm going to create a new folder inside of this folder just called um YouTube analytics demo.
然後我將在此資料夾內建立一個新資料夾,命名為 YouTube analytics demo
7:20.747–7:23.477
And we're going to go ahead and open up this folder and select that,
我們將繼續開啟這個資料夾並選取它
7:23.477–7:27.697
and now you can see it's a new project over here on this left-hand side that we're going to be working in.
現在你可以看到左側出現了一個新專案,我們將在此進行操作
7:27.697–7:29.744
Now, right here you can see I have something called full access.
現在,在這裡你可以看到我擁有「完全存取權限」
7:29.744–7:31.181
By default, you won't see this,
預設情況下,你不會看到這個選項
7:31.181–7:32.960
it'll just be on default permissions.
它將僅顯示為預設權限
7:32.960–7:34.771
So, I'm going to kick off some sort of chat here,
因此,我將在此啟動某種聊天
7:34.771–7:36.814
and then I'll show you how we actually get that set up.
然後我會展示如何實際設定它
7:36.814–7:37.638
Real quick, guys,
快速說明一下,各位
7:37.638–7:40.276
I know we're going over a ton of information in this video,
我知道這段影片涵蓋了大量資訊
7:40.276–7:45.058
so what I did is I threw all of this into a complete PDF resource guide that you can use and reference later.
所以我將這些內容整理成一份完整的 PDF 資源指南,供你稍後使用與參考
7:45.058–7:47.423
All you have to do to get that is join my free school community.
你只需加入我的免費學校社群即可獲取該指南
7:47.423–7:48.897
The link for that is down in the description.
相關連結位於描述欄中
7:48.897–7:49.992
And once you get in here,
一旦你進入這裡,
7:49.992–7:52.510
go to the classroom and click on all YouTube resources,
前往教室並點擊所有 YouTube 資源,
7:52.510–7:54.372
and you'll be able to find all of my repos,
你就能找到我所有的程式碼倉庫,
7:54.372–7:55.138
all of my skills,
我所有的技能,
7:55.138–7:55.960
resource guides,
資源指南,
7:55.960–7:59.135
everything that I've ever dropped inside of here is completely free,
我曾經放在這裡的所有內容都是完全免費的,
7:59.135–8:00.240
and anything I've shown
我在 YouTube 上展示過的任何內容
8:00.240–8:01.910
on YouTube is usually dropped in here.
通常都會放在這裡。
8:01.920–8:02.749
So, join the community,
所以,加入這個社群,
8:02.749–8:03.620
link in the description,
連結在描述中,
8:03.620–8:04.698
and let's get back to the video.
讓我們回到影片內容。
8:04.698–8:05.171
Thanks, guys.
謝謝大家。
8:05.171–8:08.288
All right, so the first thing that I want to do in this project is
好的,所以這個專案中我想做的第一件事是
8:08.288–8:11.944
I want it to be able to just kind of familiarize with self with my workspace
我希望能夠藉此熟悉我的工作環境
8:11.944–8:12.783
and with who I am.
以及我是誰。
8:12.783–8:15.050
And the way that I'm going to do that is
而我要採取的方式是
8:15.050–8:16.586
I have a project locally.
我在本地有一個專案。
8:16.586–8:17.413
If I go to my um
如果我進入我的
8:17.413–8:18.616
if I go to my desktop
如果我進入我的桌面
8:18.616–8:21.473
and I go into a project here called YouTube OS,
並進入這裡名為 YouTube OS 的專案,
8:21.473–8:25.834
I have like all of my transcripts right here from some YouTube videos.
我這裡有來自一些 YouTube 影片的完整轉錄稿。
8:25.834–8:26.814
So, what I'm going to do is
所以,我要做的是
8:26.814–8:28.308
I'm not going to give it that file path.
我不會提供那個檔案路徑。
8:28.308–8:30.621
I'm just going to say, "Hey, in my desktop,
我只會說,「嘿,在我的桌面裡,
8:30.621–8:32.471
look inside my YouTube OS folder,
查看我的 YouTube OS 資料夾,
8:32.471–8:34.652
and just pull in 10 of my raw transcripts
然後直接讀取 10 份我的原始轉錄稿
8:34.652–8:35.719
and analyze them."
並對它們進行分析。」
8:35.719–8:39.481
This is just to show you guys how good it's going to be at finding different files locally
這只是要向你們展示它在本地尋找不同檔案方面的能力有多強
8:39.481–8:40.872
and being able to organize them,
以及能夠對它們進行組織,
8:40.872–8:41.336
move them,
移動它們,
8:41.336–8:41.903
delete them,
刪除它們,
8:41.903–8:42.727
whatever you want.
隨你怎麼做。
8:42.727–8:44.702
In this case, I'm just telling it to read them.
在這種情況下,我只是告訴它去讀取這些內容。
8:44.702–8:47.131
All right, so I want you to go onto my desktop,
好的,所以我要你去我的桌面,
8:47.131–8:49.889
and I want you to look at a folder called YouTube OS,
然後查看一個名為 YouTube OS 的資料夾,
8:49.889–8:52.712
and I just want you to familiarize yourself with me.
我只希望你熟悉一下我的情況。
8:52.712–8:55.299
I make YouTube videos on AI automation,
我會製作關於 AI 自動化的 YouTube 影片,
8:55.299–8:57.023
and inside of this folder,
而這個資料夾裡面,
8:57.023–8:59.375
I have a bunch of my raw transcripts.
有我大量的原始轉錄稿。
8:59.375–9:01.586
So, I just want you to read through like 5 to 10 of those
所以,我只希望你讀取大約 5 到 10 份這些內容
9:01.586–9:04.350
just to familiarize yourself with the type of content that I make.
只是為了讓你熟悉我所製作的內容類型。
9:04.350–9:05.655
You shouldn't do any organization.
你不需要進行任何整理。
9:05.655–9:07.432
I just want you to read those for context.
我只是希望你閱讀這些內容以作為背景參考。
9:07.432–9:09.048
Now, what's cool about this is
現在,這部分有趣的地方在於
9:09.048–9:11.762
Codex, once again, is an agent that lives locally.
Codex 再次成為了一個在本地運行的代理程式。
9:11.762–9:14.683
So, just because it's working inside of one project,
所以,僅僅因為它是在一個專案內運作,
9:14.683–9:17.670
which is our, you know, um YouTube sort of demo folder,
也就是我們的,你知道,YouTube 類型的示範資料夾,
9:17.670–9:22.251
that doesn't mean that it can't navigate anywhere else inside of your local files.
這並不意味著它無法導航到你本地檔案中的其他任何地方。
9:22.251–9:23.874
And because we're telling it to do so,
而且因為我們指示它這麼做,
9:23.874–9:24.816
it's going to search.
它將會進行搜尋。
9:24.816–9:27.318
Right here, you can see it's searching inside of my desktop.
就在這裡,你可以看到它正在我的桌面內搜尋。
9:27.318–9:29.037
And then it's going to find the YouTube OS,
然後它會找到 YouTube OS,
9:29.037–9:30.903
and it's going to drill down into that folder.
並深入進入該資料夾。
9:30.903–9:33.960
And it's going to keep searching until it finds what it wants.
它會持續搜尋,直到找到它想要的東西為止。
9:33.960–9:35.028
Now, a quick warning.
現在,一個快速警告。
9:35.028–9:37.543
This is not the most effective use of Codex
這並不是使用 Codex
9:37.543–9:38.621
or of your tokens.
或你的 token 最有效的方式。
9:38.621–9:44.200
The more effective use would be to say, "Hey, this is the folder right here with all my raw transcripts.
更有效的方式會是說:「嘿,這個資料夾就在這裡,裡面有我所有的原始轉錄檔。
9:44.200–9:45.570
I'm going to copy this path,
我將複製這個路徑,
9:45.570–9:48.132
and I'm now just going to give Codex this exact path,
然後我現在只是將這個確切的路徑提供給 Codex,
9:48.132–9:51.706
so it can just look in there instead of having to search for it on its own."
所以它可以直接查看那裡,而不必自己搜尋。
9:51.706–9:54.268
But I just wanted to show you how it's able to do this.
但我只是想展示它如何能做到這一點。
9:54.268–9:55.478
Because you can see right here,
因為你可以看到這裡,
9:55.478–9:56.780
inside of my transcripts folder,
在我的轉錄資料夾內,
9:56.780–9:57.618
I have one called raw,
有一個名為 raw 的資料夾,
9:57.618–9:59.339
and that's the one that I wanted it to look at.
那就是我希望它查看的資料夾。
9:59.339–10:01.597
And right here it says there are two files,
而這裡顯示有兩個檔案,
10:01.597–10:02.888
raw and then processed.
分別是 raw 和 processed。
10:02.888–10:05.091
So it doesn't know which one to look through.
所以它不知道該查看哪一個。
10:05.091–10:05.589
So anyways,
所以,
10:05.589–10:07.583
the more specific you can be with your prompting
你在提示詞和指引上越具體,
10:07.583–10:08.580
and with your pointing,
效果就越好。
10:08.580–10:09.078
the better.
這樣會更好。
10:09.078–10:09.798
Now let's also,
現在讓我們在
10:09.798–10:10.851
while this is running,
這個程序運行的同時,
10:10.851–10:12.569
talk about the model stuff over here.
來討論這裡的模型設定。
10:12.569–10:14.829
So right now you've noticed that we're on extra high.
所以現在你應該注意到我們設定的是 extra high。
10:14.829–10:18.560
And I would say that extra high is probably overkill for that sort of job.
我認為對於這類工作來說,extra high 可能有點過度了。
10:18.560–10:19.495
For the most part,
在大多數情況下,
10:19.495–10:21.553
I'm using medium to do all of my planning
我使用 medium 來進行所有的規劃
10:21.553–10:22.738
and my brainstorming.
以及我的腦力激盪。
10:22.738–10:24.096
And then every once in a while,
然後偶爾
10:24.096–10:25.182
if I'm doing a huge build
當我在進行大型建置
10:25.182–10:26.215
or some massive scale,
或某些大規模專案時,
10:26.215–10:27.138
I'll switch to high.
我會切換到 high。
10:27.138–10:29.333
I'm honestly hardly using extra high
老實說,我幾乎不使用 extra high
10:29.333–10:31.386
unless I'm hitting some sort of bug
除非我遇到某種它無法解決的錯誤
10:31.386–10:33.520
or issue that it's not able to solve.
或是它無法解決的問題。
10:33.520–10:33.968
Anyways,
總之,
10:33.968–10:35.369
it has read nine transcripts,
它已讀取了九份轉錄檔,
10:35.369–10:38.226
so it has a little bit of a better of an idea now about who we are.
所以它現在對我們是誰有了更好的了解。
10:38.226–10:39.290
But just to show you guys,
但只是要展示給各位看,
10:39.290–10:41.267
this is still the folder that we're working in,
這仍然是我們正在使用的資料夾,
10:41.267–10:42.483
the YouTube Analytics Demo,
YouTube 分析示範,
10:42.483–10:44.105
and there's nothing that exists here.
這裡沒有任何存在的內容。
10:44.105–10:45.712
So even though it knows this,
所以即使它知道這些,
10:45.712–10:49.327
this knowledge only really lives in our overall ChatGPT memory,
這些知識實際上只存在於我們整體的 ChatGPT 記憶體中,
10:49.327–10:51.202
and in this specific chat window.
以及在這個特定的聊天視窗裡。
10:51.202–10:52.406
If I opened up a new chat,
如果我開啟一個新的聊天,
10:52.406–10:55.357
it probably wouldn't still have the knowledge about this.
它可能就不會再擁有關於這些的知識了。
10:55.357–10:57.348
So what I'd probably want to do is say,
所以我大概會想說,
10:57.348–10:59.916
"What I want you to do is set up an agents.md file.
「我希望你做的是建立一個 agents.md 檔案。
10:59.916–11:01.676
This should have context about me
這個檔案應該包含關於我的背景資訊
11:01.676–11:03.876
and about what the goal of this project is.
以及這個專案的目標。
11:03.876–11:04.416
Ultimately,
最終,
11:04.416–11:05.596
what we're going to do here is
我們在這裡要做的是
11:05.596–11:06.922
we're going to build a dashboard
建立一個儀表板
11:06.922–11:08.495
that's going to be pushed to dashboard
這個儀表板會被部署到
11:08.495–11:09.969
that's going to be pushed to Vercel,
部署到 Vercel,
11:09.969–11:12.082
and it's going to have information about my channel
並且它會包含關於我頻道的資訊
11:12.082–11:13.320
and some analytics around the
以及相關的數據分析
11:13.320–11:14.717
comments and stuff like that.
評論等相關的分析數據。
11:14.717–11:15.661
So that's the end goal.
這就是最終目標。
11:15.661–11:17.192
We're going to have to connect to YouTube,
我們需要串接 YouTube,
11:17.192–11:18.461
we're going to have to pull in data,
我們需要拉取資料,
11:18.461–11:19.643
we're going to set up some skills
我們需要設定一些技能
11:19.643–11:20.474
and some automations.
和一些自動化流程。
11:20.474–11:22.804
But I just want you to get us started here
但我只希望你先幫我們建立一個快速的 agents.md 檔案來啟動專案,
11:22.804–11:24.498
with a quick agents.md file.
然後現在我要繼續
11:24.498–11:26.000
And now I'm going to go ahead
現在我將繼續
11:26.000–11:27.120
and shoot that off."
然後把它發送出去。
11:27.120–11:29.114
Now, why do we need to create an agents.md file?
那麼,為什麼我們需要建立 agents.md 檔案呢?
11:29.114–11:31.249
Well, if you're coming over from Cloud Code,
嗯,如果你是從 Cloud Code 過來的,
11:31.249–11:33.441
you know that we always want to start a project
你就知道我們總是希望從一個專案開始,
11:33.441–11:34.537
with a Claude.md file.
使用 Claude.md 檔案。
11:34.537–11:36.297
And this is just agents.md,
而這裡只是 agents.md,
11:36.297–11:37.598
it's the same thing,
這是一樣的東西,
11:37.598–11:40.440
but Codex expects a different terminology.
但 Codex 期望不同的術語。
11:40.440–11:41.916
And what this agents file does is
這個 agents 檔案的作用是
11:41.916–11:42.846
it's basically like
基本上就像
11:42.846–11:43.840
it's onboarding doc.
一份入職文件。
11:43.840–11:45.573
Every time you open up a new chat,
每次你開啟新的對話時,
11:45.573–11:48.206
it's first of all going to read the agents.md file
它首先會讀取 agents.md 檔案,
11:48.206–11:49.875
and it's going to get organized
然後根據以下內容進行整理:
11:49.875–11:50.967
with what is my goal,
我的目標是什麼,
11:50.967–11:52.251
what is this user doing,
這位使用者在做什麼,
11:52.251–11:54.883
and how do I help them as effectively as possible.
以及我如何盡可能有效地幫助他們。
11:54.883–11:56.433
So, this document has been created.
所以,這個文件已經建立了。
11:56.433–11:58.649
If I click on open, we're going to be able to read it right here.
如果我點擊開啟,我們就能在這裡直接閱讀它。
11:58.649–12:00.460
And it's just a very simple markdown file.
這只是一個非常簡單的 Markdown 檔案。
12:00.460–12:02.013
This is the project right here.
就是這裡的專案。
12:02.013–12:04.443
This is about Nate's, Nate Herc does this.
這是關於 Nate 的部分,Nate Herc 負責這個。
12:04.443–12:05.960
This is the project goal.
這是專案目標。
12:05.960–12:07.183
This is the product direction.
這就是產品的方向
12:07.183–12:09.866
So, we're just giving it really important information
所以,我們只是提供它非常重要的資訊
12:09.866–12:11.800
that it needs to know about our project.
讓它了解我們的專案。
12:11.800–12:14.198
And you can see now if I pull the file explorer over,
現在你可以看到,如果我拉出檔案總管,
12:14.198–12:16.310
it has created this agents markdown folder,
它建立了這個 agents markdown 資料夾,
12:16.310–12:17.852
which is exactly what we wanted.
這正是我們想要的。
12:17.852–12:19.160
Sorry, not folder, file.
抱歉,不是資料夾,是檔案。
12:19.160–12:20.595
Okay, so now that that's out of the way,
好的,既然這部分已經完成,
12:20.595–12:22.344
I'm going to go ahead and close back out of that,
我將繼續關閉這個視窗,
12:22.344–12:23.520
and we're going to get started.
然後我們開始。
12:23.520–12:24.400
So, what I'm going to do is
所以,我要做的是
12:24.400–12:25.532
I'm going to click on this button
我會點擊這個按鈕
12:25.532–12:26.705
and I'm going to turn on plan mode.
並開啟計畫模式。
12:26.705–12:28.888
Plan mode is what I like to start with
計畫模式是我喜歡開始的方式
12:28.888–12:31.071
when I am creating some sort of plan.
當我在制定某種計畫時。
12:31.071–12:33.817
That basically means that Codex won't actually execute anything,
這基本上意味著 Codex 實際上不會執行任何操作,
12:33.817–12:35.043
it's just going to brainstorm
它只會進行腦力激盪
12:35.043–12:37.102
and help you guys get clear on what you want to build
並幫助大家釐清想要建構的內容
12:37.102–12:38.328
before you actually build it.
在實際建構之前。
12:38.328–12:40.240
So, I always start with plan mode.
所以,我總是從計畫模式開始。
12:40.240–12:41.400
Now, I'm just going to start yapping.
現在,我開始囉嗦一下。
12:41.400–12:44.126
And by the way, if you guys are curious about the tool I use for voice-to-text,
另外,如果你們好奇我使用的語音轉文字工具,
12:44.126–12:45.276
check it out in the description,
請在描述中查看,
12:45.276–12:45.957
it's called Glido.
它叫做 Glido。
12:45.957–12:47.727
I'm now an official member of the Glido team,
我現在已經是 Glido 團隊的正式成員,
12:47.727–12:48.732
which is super exciting.
這非常令人興奮。
12:48.732–12:51.090
I've fully switched over from Whisper to Glido
我已經完全從 Whisper 切換到 Glido
12:51.090–12:52.178
because it's faster,
因為它速度更快,
12:52.178–12:53.145
it's more private,
隱私性更高,
12:53.145–12:54.777
and it is a way more agentic tool,
而且它是一個更具代理能力的工具,
12:54.777–12:56.530
and we've got a really cool vision.
我們有著非常酷的願景。
12:56.530–12:57.913
So, check it out in the description.
所以,請在描述欄查看。
12:57.913–13:00.323
Okay, so now that you understand that context,
好的,現在你了解了這個背景,
13:00.323–13:02.238
the first hurdle for us to overcome is
我們需要克服的第一個障礙是
13:02.238–13:04.338
how do you actually connect to my YouTube
你實際上如何連接到我的 YouTube
13:04.338–13:06.192
in order to be able to pull in my data.
以便能夠拉取我的資料。
13:06.192–13:07.796
I want you to be able to specifically
我希望你能夠特別
13:07.796–13:09.987
at this point be able to pull in a bunch of comments
在這個階段,能夠匯入大量評論
13:09.987–13:11.280
so that you can analyze them.
以便你進行分析。
13:11.280–13:12.894
So, help me figure out how we do that,
所以,幫我弄清楚我們該如何做,
13:12.894–13:14.680
and then explain it to me step-by-step.
然後一步一步解釋給我聽。
13:14.680–13:16.255
And that's really the mindset shift
這確實是一種思維模式的轉變,
13:16.255–13:17.831
with tools like Codex or Claude Code
對於像 Codex 或 Claude Code 這樣的工具,
13:17.831–13:19.721
is if you don't know something's possible,
如果你不知道某件事是可能的,
13:19.721–13:20.982
instead of defaulting to oh,
與其預設為「哦,
13:20.982–13:21.927
I need to go to YouTube
我需要去 YouTube
13:21.927–13:24.342
or oh, I want to book in a consulting call with an expert,
」或「哦,我想預約與專家進行諮詢通話,
13:24.342–13:26.266
just ask Codex or Claude Code.
就直接詢問 Codex 或 Claude Code。
13:26.266–13:28.514
Ask it to do research and explain things to you.
請它幫你進行研究並解釋事情。
13:28.514–13:31.360
And that's basically how I learned everything that I know.
基本上,我就是透過這種方式學會我所知道的一切。
13:31.360–13:32.611
So while this is running,
因此,當這段程式正在執行時,
13:32.611–13:34.696
I wanted to explain something real quick,
我想快速解釋一件事,
13:34.696–13:35.947
which is called plugins.
那就是外掛程式(plugins)。
13:35.947–13:38.060
Plugins, MCP servers, skills, connectors,
外掛程式、MCP 伺服器、技能、連接器,
13:38.060–13:39.544
whatever you want to call them.
無論你怎麼稱呼它們。
13:39.544–13:42.210
We kind of have this interface inside of Codex
我們似乎在 Codex 內部擁有一個這樣的介面,
13:42.210–13:43.473
to do stuff like this.
來執行這類操作。
13:43.473–13:44.414
And what you'll notice is
你會注意到的是
13:44.414–13:46.028
there's a bunch of different plugins here.
這裡有很多不同的外掛程式。
13:46.028–13:47.200
We've got hugging face,
我們有 Hugging Face,
13:47.200–13:48.079
we've got Vercel,
我們有 Vercel,
13:48.079–13:48.958
we've got GitHub,
我們有 GitHub,
13:48.958–13:50.072
we've got Game Studio.
我們有 Game Studio。
13:50.072–13:52.121
We've got a bunch down here for design,
我們在這邊有很多設計相關的外掛,
13:52.121–13:54.235
Remotion, Figma, Hyperframes, Canva.
[未翻譯]
13:54.235–13:55.655
We've got stuff for lifestyle,
我們有生活風格相關的功能,
13:55.655–13:56.366
productivity,
生產力工具,
13:56.366–13:58.059
and this lets us basically connect to
這讓我們基本上可以連接
13:58.059–14:00.200
a lot of the tools that we already know and love.
到許多我們已經熟悉且喜愛的工具。
14:00.200–14:02.355
Google Drive, Slack, SharePoint, Teams,
[未翻譯]
14:02.355–14:03.524
whatever you may need,
無論你需要什麼,
14:03.524–14:05.433
a lot of that stuff is available here.
這裡都有很多相關功能可供使用。
14:05.433–14:06.146
And if you can't find it,
如果你找不到,
14:06.146–14:06.966
you can go ahead and search.
你可以直接進行搜尋。
14:06.966–14:07.605
So like Slack,
比如 Slack,
14:07.605–14:08.618
we have it right there.
我們就在這裡有它。
14:08.618–14:09.260
But look,
但是你看,
14:09.260–14:10.623
if I search YouTube,
如果我搜尋 YouTube,
14:10.623–14:13.200
there is no default plugin right here.
這裡沒有預設的外掛程式。
14:13.200–14:14.905
And that's why I had to ask Codex,
這就是為什麼我必須詢問 Codex,
14:14.905–14:16.357
okay, so there's no plugin,
好的,既然沒有外掛程式,
14:16.357–14:18.377
how do I actually access YouTube data?
我該如何實際存取 YouTube 的資料?
14:18.377–14:19.787
And so it comes back here
然後它會回到這裡
14:19.787–14:21.560
and it asks us some questions.
並向我們提出一些問題。
14:21.560–14:24.311
It says for the first comment analysis milestone,
它表示針對第一個評論分析里程碑,
14:24.311–14:26.800
which connection path should we plan around,
我們應該圍繞哪個連線路徑來規劃,
14:26.800–14:28.120
API key, OAuth, or both?
API 金鑰、OAuth,還是兩者都要?
14:28.120–14:30.078
Um I'm just going to go with his recommendation
嗯,我將直接採用他的建議
14:30.078–14:31.835
cuz let's say I don't know what I need to do,
因為假設我不知道該做什麼,
14:31.835–14:33.200
and I'm going to click on API key.
然後我會點擊 API 金鑰。
14:33.200–14:34.870
What should the first comment pull focus on?
第一個評論抓取應該聚焦於什麼?
14:34.870–14:36.680
I'm just going to say recent videos.
我只會說最近的影片。
14:36.680–14:38.575
And now if it has any other questions,
現在如果它還有其他問題,
14:38.575–14:40.470
it'll go ahead and ask us those first.
它會先繼續向我們提出那些問題。
14:40.480–14:41.701
Now one thing you'll notice is
現在你會注意到一件事是
14:41.701–14:44.680
because it already was searching through my other folders and projects,
因為它已經在搜尋我的其他資料夾和專案,
14:44.680–14:46.487
it did find an API key in a different project,
它確實在另一個專案中找到了 API 金鑰,
14:46.487–14:49.026
but I'm still going to show you guys how you would get this set up
但我還是要向大家展示如何進行設定
14:49.026–14:49.720
because it comes
因為它會
14:49.720–14:51.005
back here with a plan,
回到這裡並提出計畫,
14:51.005–14:52.800
which we can go ahead and read.
我們可以繼續閱讀該計畫。
14:52.800–14:54.162
So what it wants to use is
所以它想要使用的是
14:54.162–14:55.388
it it found an API key,
它找到了一個 API 金鑰,
14:55.388–14:56.410
so not full OAuth,
因此不是完整的 OAuth,
14:56.410–14:59.280
and then it needs to actually convert everything.
然後它需要實際轉換所有內容。
14:59.280–15:00.776
So what I'm just going to say is
所以我只會說
15:00.776–15:02.092
instead of implementing,
與其進行實作,
15:02.092–15:02.930
I'm going to say,
我會說,
15:02.930–15:04.784
"I'm glad that you found that API key,
「很高興你找到了那個 API 金鑰,
15:04.784–15:06.100
but let's set up a fresh one
但讓我們重新設定一個新的
15:06.100–15:07.477
because in my Google Cloud,
因為在我的 Google Cloud 中,
15:07.477–15:09.511
I want to have a separate API key for Codex
我希望為 Codex 設定一個單獨的 API 金鑰
15:09.511–15:09.760
and a
以及
15:09.760–15:11.069
separate one for Claude code.
為 Claude code 設定另一個單獨的金鑰。
15:11.069–15:14.693
So let's just go ahead and assume that we're going to create a complete new one from scratch."
所以我們就假設要從頭開始建立一個全新的金鑰。」
15:14.693–15:16.388
And now I'm able to shoot off those changes.
現在我可以送出這些變更了。
15:16.388–15:18.165
Codex is going to review the plan
Codex 將審查該計畫
15:18.165–15:19.087
and then edit it.
然後編輯它。
15:19.087–15:20.794
And then once we're aligned on the plan,
然後一旦我們對計劃達成一致,
15:20.794–15:22.345
we'll go ahead and start executing.
我們就繼續開始執行。
15:22.345–15:23.275
So now it's come back
所以現在它回來了
15:23.275–15:23.987
and it has okay,
並且顯示「好的」,
15:23.987–15:26.240
we're going to do a brand new Google Cloud API key.
我們將建立一個全新的 Google Cloud API 金鑰。
15:26.240–15:28.700
If you wanted to read through all of this step-by-step,
如果你想逐步閱讀所有內容,
15:28.700–15:29.182
you could,
你可以這麼做,
15:29.182–15:31.161
but I'm just going to go ahead and say submit,
但我將直接點擊提交,
15:31.161–15:32.080
implement the plan.
實施計劃。
15:32.080–15:32.190
So,
所以,
15:32.190–15:33.835
there's some stuff that we're going to have to do here.
這裡有一些我們必須做的事情。
15:33.835–15:36.498
We're going to have to go into Google Cloud Console,
我們必須進入 Google Cloud Console,
15:36.498–15:39.099
and we're going to have to create this new project,
並且我們必須建立這個新專案,
15:39.099–15:40.089
um enable this API,
嗯,啟用這個 API,
15:40.089–15:41.390
and then grab the API key,
然後取得 API 金鑰,
15:41.390–15:43.619
and then get it configured inside of Codex.
然後在 Codex 內進行配置。
15:43.619–15:43.756
So,
所以,
15:43.756–15:46.002
if this part of the tutorial isn't very interesting to you,
如果這個教程部分對你來說不太有趣,
15:46.002–15:47.468
you don't want to watch me get it set up,
你不想看我設定它,
15:47.468–15:49.805
maybe you want to do some stuff first with the native plugins,
也許你想先用原生外掛做一些事情,
15:49.805–15:50.640
which is much easier.
這會容易得多。
15:50.640–15:51.165
Typically,
通常,
15:51.165–15:53.002
these plugins you just basically sign in,
這些外掛你基本上只要登入,
15:53.002–15:55.311
the same way where you would open up Slack and sign in,
就像你打開 Slack 並登入的方式一樣,
15:55.311–15:57.463
or the same way you would open up Gmail and sign in,
或者就像你打開 Gmail 並登入的方式一樣,
15:57.463–15:58.680
and that's a lot lot easier.
這會容易得多。
15:58.680–15:58.964
Okay,
好的,
15:58.964–16:00.330
so I have to go to Google Cloud
所以我必須前往 Google Cloud
16:00.330–16:02.160
and get everything set up in a project.
並在專案中設定所有東西。
16:02.160–16:03.674
If I didn't know exactly how to do this,
如果我不完全知道該如何做,
16:03.674–16:05.898
it would tell me step-by-step as you guys saw on the plan,
它會像你們在計畫中看到的那樣,一步步告訴我,
16:05.898–16:06.939
but what it's going to do is
但它會做的是
16:06.939–16:08.169
it created another file for us.
它為我們創建了另一個檔案。
16:08.169–16:08.348
So,
所以,
16:08.348–16:10.016
it created this one called for us.
它為我們創建了這個名為
16:10.016–16:10.144
So,
所以,
16:10.144–16:11.560
it created this one called .env.local.
它為我們創建了這個名為 .env.local 的檔案。
16:11.560–16:11.732
So,
所以,
16:11.732–16:12.762
what I'm going to do is
我要做的是
16:12.762–16:14.536
head over to my Google Cloud Console.
前往我的 Google Cloud Console。
16:14.536–16:16.296
I'm signed in with my YouTube account,
我已使用我的 YouTube 帳戶登入,
16:16.296–16:18.560
and I'm going to go ahead and create a new project.
接著我將建立一個新專案。
16:18.560–16:21.799
So, I'm going to call this one um Codex demo.
所以,我將這個專案命名為 Codex demo。
16:21.799–16:24.194
I'm just going to go ahead and create this project,
我將直接建立這個專案,
16:24.194–16:26.304
and once that's spun up, it's pretty simple.
一旦專案建立完成,操作就相當簡單。
16:26.304–16:29.220
We just have to create a connection to YouTube Data API,
我們只需建立與 YouTube Data API 的連線,
16:29.220–16:31.376
and then we're going to create an API key.
然後建立一個 API 金鑰。
16:31.376–16:32.542
So, I'm going to select this project.
所以,我將選取這個專案。
16:32.542–16:35.892
The first thing I'm going to do is search up here at the top for YouTube
我要做的第一件事是在頂部搜尋 YouTube
16:35.892–16:38.066
is search up here at the top for YouTube Data,
是在頂部搜尋 YouTube Data,
16:38.066–16:40.358
and we're going to grab the YouTube Data API v3,
接著我們將取得 YouTube Data API v3,
16:40.358–16:42.650
and then I'm going to go ahead and click enable.
接著我會點擊啟用
16:42.650–16:46.714
And once that has been enabled, it should pull up a new screen that looks like this,
啟用後,應該會顯示如下畫面
16:46.714–16:49.164
and then I'm going to go down here to credentials,
接著我將往下捲動至憑證(Credentials),
16:49.164–16:51.196
and I'm going to just create a new API key.
並建立一個新的 API 金鑰。
16:51.196–16:52.295
So, create API key.
所以,建立 API 金鑰。
16:52.295–16:56.331
This is just going to be called Codex YouTube demo.
這將命名為 Codex YouTube demo。
16:56.331–16:59.522
And then right here for the restrictions, I'm just going to once again type in YouTube.
接著在限制(restrictions)部分,我將再次輸入 YouTube。
16:59.522–17:01.365
We're going to check YouTube Data API v3,
我們將勾選 YouTube Data API v3,
17:01.365–17:03.858
and then we're going to go ahead and create that API key.
接著我們繼續建立該 API 金鑰。
17:03.858–17:05.946
And it gives me this value that I'm going to go ahead and copy.
它會給我這個值,我將複製它。
17:05.946–17:07.443
So, I'm going to copy that,
所以,我會複製那個,
17:07.443–17:11.458
and then I'm going to pull in that file that it created, the .env.local,
然後我會載入它建立的檔案,也就是 .env.local,
17:11.458–17:15.132
and I'm just going to open this file real quick with um my notepad,
我只會用我的記事本快速開啟這個檔案,
17:15.132–17:18.058
and here is where I'm going to put my YouTube API key.
這裡是我放入 YouTube API 金鑰的地方。
17:18.058–17:19.839
I'm just going to paste that in right there.
我只會把它貼到那裡。
17:19.839–17:21.932
Hit save and then I can close out of that
按下儲存,然後我可以關閉它
17:21.932–17:25.800
because what we need to get next is we need to get our YouTube channel ID.
因為我們接下來需要取得的是我們的 YouTube 頻道 ID。
17:25.800–17:27.476
I'm not actually going to do the uploads playlist.
我實際上不會使用上傳播放清單。
17:27.476–17:28.815
I don't think it needs that,
我認為不需要那個,
17:28.815–17:31.085
but I am going to go find the YouTube channel ID.
但我會去尋找 YouTube 頻道 ID。
17:31.085–17:32.460
Oh, but this is actually cool.
哦,但這其實很酷。
17:32.460–17:34.244
My YouTube channel ID is already in there
我的 YouTube 頻道 ID 已經在裡面了
17:34.244–17:35.924
and the playlist ID is already in there
播放清單 ID 也已經在裡面了
17:35.924–17:38.548
because it was able to just pull it from a different project.
因為它能夠從另一個專案直接擷取。
17:38.548–17:41.679
So obviously if you didn't have that already set up, it wouldn't do that,
所以顯然如果你沒有事先設定好,它就不會那樣做,
17:41.679–17:44.497
but it would explain to you exactly how to do that if you needed to.
但如果你需要,它會詳細說明如何操作。
17:44.497–17:48.480
So now that we have that API key put in, let's just see if it works.
所以現在我們已經輸入 API 金鑰,讓我們看看它是否運作。
17:48.480–17:52.760
Okay, so I've given you the API key in that local.env.
好的,所以我已經在 local.env 中提供了 API 金鑰。
17:52.760–17:55.198
Can you go ahead and test it to see if that connection works?
你可以繼續測試一下,看看連線是否正常運作?
17:55.198–17:57.317
And if not, then we'll have to make some changes.
如果不行的話,我們就得做一些調整。
17:57.317–17:58.977
Okay, now while this is running,
好的,現在當這個程式正在執行時,
17:58.977–18:01.497
what you guys might notice when you hop into Codex
你們進入 Codex 時可能會注意到
18:01.497–18:04.387
is that it might pause a lot to actually ask you questions
它可能會經常暫停,實際上是為了詢問你們問題
18:04.387–18:05.678
and like approve things.
或是要求批准某些事項。
18:05.678–18:08.355
And that's what happens when you're on default permissions.
這就是使用預設權限時會發生的情況。
18:08.355–18:09.746
So if you want to be able to change that,
所以,如果你想變更這個設定,
18:09.746–18:11.320
you're going to go up here to your settings.
你需要前往這裡的設定選單。
18:11.320–18:12.339
And then in general,
然後在一般設定中,
18:12.339–18:13.478
you can see right here,
你可以看到這裡,
18:13.478–18:14.857
auto review or full access.
自動審查或完全存取。
18:14.857–18:16.849
And this by default will be turned off.
預設情況下,這個選項是關閉的。
18:16.849–18:17.849
So if I turn this on,
所以如果我開啟這個選項,
18:17.849–18:19.537
then when we're back in our chat,
那麼當我們回到聊天視窗時,
18:19.537–18:20.788
we now have the ability,
我們現在就具備了這個功能,
18:20.788–18:21.600
see right here,
就在這裡可以看到,
18:21.600–18:22.788
this is exact example,
這是一個具體的例子,
18:22.788–18:23.914
allow network access
允許網路存取
18:23.914–18:25.039
and I want to say yeah,
我想說好的,
18:25.039–18:25.539
allow it.
允許它。
18:25.539–18:27.263
Or if I switch this to full access,
或者如果我將此切換為完全存取,
18:27.263–18:30.772
now it's just going to do everything without asking for permission.
現在它就不會再詢問許可而直接執行所有操作。
18:30.772–18:32.791
So obviously it comes up as orange here
所以很明顯,這裡會顯示為橘色,
18:32.791–18:36.828
because there's sometimes where you might not want full autonomous access.
因為有時你可能不希望擁有完全自主的存取權。
18:36.828–18:39.651
And I think it's best practice when you're first getting started
我認為在剛開始使用時,最佳做法是
18:39.651–18:41.585
and you're first building some automations
並初次建構一些自動化流程時,
18:41.585–18:43.049
to maybe just leave it on default.
最好將其保留在預設值。
18:43.049–18:44.948
But once you start getting a hang of your skills
但一旦你開始熟悉你的技能
18:44.948–18:46.555
and you start getting a hang of the flow,
並開始熟悉整個流程,
18:46.555–18:48.892
then moving to full access is going to save you a lot of time
那麼切換到完全存取將為你節省大量時間,
18:48.892–18:50.791
so that you can actually not have to baby sit it.
這樣你實際上就不需要一直盯著它看。
18:50.791–18:52.522
But I had to call that out because,
但我必須特別指出這一點,因為,
18:52.522–18:53.017
you know,
你知道,
18:53.017–18:55.922
we've seen horror stories of agents deleting databases
我們看過過多的恐怖故事,例如代理程式刪除資料庫
18:55.922–18:58.333
or sending out mass emails and stuff like that.
或發送大量電子郵件等情況。
18:58.333–18:59.832
So you just want to be safe with it.
所以你要對它保持謹慎。
18:59.832–19:02.395
I personally have never had any sort of problem like that.
我個人從未遇過類似的問題。
19:02.395–19:04.283
That usually comes from context rot
這通常來自於情境腐敗
19:04.283–19:05.731
or very vague instructions
或非常模糊的指令
19:05.731–19:08.437
or or just not being super smart with your planning.
或是規劃時不夠周全
19:08.437–19:11.013
So you can see what's happening here is it's trying it out, right?
所以你可以看到這裡正在嘗試,對吧?
19:11.013–19:12.303
And it's running into some issues.
它遇到了一些問題。
19:12.303–19:15.719
But what's great about this agentic loop is that it's going to keep trying things
但這個代理循環(agentic loop)很棒的地方在於,它會持續嘗試各種方法
19:15.719–19:17.096
until it actually goes through.
直到成功完成為止。
19:17.096–19:17.599
There we go.
成功了。
19:17.599–19:19.658
You can see nice the key works for channel data,
你可以看到金鑰對頻道資料運作良好,
19:19.658–19:21.031
and I'm going to do one more test
我還要再做一次測試
19:21.031–19:23.512
to make sure that I can pull comments from recent videos.
以確保我能從最近的影片中擷取留言。
19:23.512–19:26.614
So a big mindset shift when you're using any of these tools
所以當你使用這些工具時,一個重大的心態轉變
19:26.614–19:27.712
is to just let it run,
就是讓它運行,
19:27.712–19:28.682
let it try things,
讓它嘗試各種方法,
19:28.682–19:30.556
help steer in the right direction,
在正確的方向上給予協助,
19:30.556–19:31.396
ask questions,
提出問題,
19:31.396–19:32.042
be curious,
保持好奇心,
19:32.042–19:34.045
and just take a look at what it's doing
並查看它正在做什麼
19:34.045–19:34.960
because it tells
因為它會告訴
19:34.960–19:36.880
you every single thing that it's trying.
你它嘗試的每一個步驟。
19:36.880–19:38.830
But now we can see I've tested the key.
但現在我們可以看到我已經測試過金鑰。
19:38.840–19:40.836
I can get comments from your recent videos,
我可以從你最近的影片中取得留言,
19:40.836–19:42.776
and it's completely working as expected.
且運作完全符合預期。
19:42.776–19:46.614
However, PowerShell's built-in web request had a local TLS issue,
然而,PowerShell 內建的網頁請求功能存在本地 TLS 問題,
19:46.614–19:49.160
but Node and Python both connected cleanly.
但 Node 和 Python 都順利連線。
19:49.160–19:50.618
For the project, that's fine.
對這個專案來說,這樣沒問題。
19:50.618–19:54.120
We'll use Node and server-side code for the dashboard anyway.
反正我們會使用 Node 和伺服器端程式碼來建置儀表板。
19:54.120–19:56.400
Now, here's something to think about.
現在,這裡有件事值得思考。
19:56.400–19:58.440
I don't really know what that means.
我其實不太明白那代表什麼意思。
19:58.440–20:01.762
But what I want to make sure is that that doesn't happen again,
但我想確保的是,這種情況不要再發生,
20:01.762–20:05.411
or I want to make sure that this project doesn't lose this knowledge
或者我想確保這個專案不會因為遇到失敗而失去這項知識
20:05.411–20:07.430
because it it it it ran into a failure.
因為它遇到了失敗。
20:07.430–20:09.014
And whenever you run into a failure,
每當你遇到失敗時,
20:09.014–20:10.862
you want to treat that as golden knowledge
你要將它視為寶貴的知識,
20:10.862–20:14.136
because it means you have more data to make sure that it doesn't do it again.
因為這意味著你有更多資料可以確保它不會再次發生。
20:14.136–20:17.934
So all I'm going to say is, "Okay, thanks for testing that.
所以我只會說:「好的,謝謝你做了這個測試。
20:17.934–20:20.655
I want to make sure that you don't ever run into that issue again,
我想確保你永遠不會再遇到這個問題,
20:20.655–20:23.529
and I want to make sure that that knowledge is saved in this project.
並且我想確保這項知識已保存在這個專案中。
20:23.529–20:26.655
So can you just throw together a quick file somewhere in your memory,
所以你能不能在記憶體中的某個地方,
20:26.655–20:29.616
somewhere in this project to make sure that you already know that
或者這個專案中的某個地方,快速建立一個檔案,以確保你已經知道
20:29.616–20:31.600
so that next time it doesn't happen again."
這樣下次就不會再發生了
20:31.600–20:32.728
And doing stuff like this,
而像這樣做
20:32.728–20:33.855
having this sort of habit,
養成這種習慣,
20:33.855–20:36.418
is how you actually make these systems get smarter over time
才能真正讓這些系統隨著時間推移變得更聰明,
20:36.418–20:39.186
rather than just feeling like you're always repeating yourself
而不是一直覺得自己在重複同樣的工作,
20:39.186–20:41.400
or that you're always running into the same issues.
或是總是遇到相同的問題。
20:41.400–20:43.105
Another mindset shift for you right there.
這是另一個思維上的轉變。
20:43.105–20:45.643
So here it decided to add this into the agents.md.
所以這裡它決定將這個加入 agents.md。
20:45.643–20:47.659
Right now, I have no objections to that,
目前我對這個沒有意見,
20:47.659–20:49.002
but as your projects grow,
但隨著你的專案規模擴大,
20:49.002–20:51.506
you don't want to put everything in the agents.md
你不想把所有東西都塞進 agents.md,
20:51.506–20:54.011
because if that agents.md file gets really huge,
因為如果那個 agents.md 檔案變得非常龐大,
20:54.011–20:55.904
it's going to use more of your tokens.
它會消耗你更多的 token。
20:55.904–20:56.160
Okay.
好的。
20:56.160–20:57.303
So before we keep going,
所以在我們繼續之前,
20:57.303–20:59.590
I did want to point out one other thing down here,
我想指出這裡的另一個東西,
20:59.590–21:00.800
which is this little bar.
就是這個小條。
21:00.800–21:04.500
This shows you how much of your context window is currently filled up.
這會顯示你目前上下文視窗的使用情況。
21:04.500–21:07.140
Now, if If were using Claude Code and you're using Opus,
現在,如果你使用的是 Claude Code 並使用 Opus,
21:07.140–21:08.058
you have a million.
你有一百萬的容量。
21:08.058–21:11.491
So, it's, you know, about four times as much as this in Codex.
所以,你知道,這大約是 Codex 的四倍。
21:11.491–21:15.056
However, Codex automatically compacts just like Opus does
然而,Codex 會自動進行壓縮,就像 Opus 一樣
21:15.056–21:16.838
and just like Cloud Code does.
就像 Cloud Code 一樣。
21:16.838–21:17.595
So, it's really nice.
所以,這真的很棒。
21:17.595–21:19.480
You don't have to worry about it too much,
你不需要太擔心這個問題,
21:19.480–21:23.085
but you still want to be thinking about some general context management tips.
但你仍然需要考慮一些關於上下文管理的一般性建議。
21:23.085–21:25.099
I've got some videos on my channel about that
我的頻道上有相關的影片
21:25.099–21:27.386
that are agnostic to whatever tool you want to use.
這些影片適用於任何你想要的工具。
21:27.386–21:30.898
I'm not going to dive super deep into context window management in this video,
我不會在這部影片中深入探討上下文視窗管理的細節,
21:30.898–21:32.735
but just wanted to point that out as well.
但只是想指出這一點。
21:32.735–21:33.929
Okay, so what's next?
好的,那麼接下來要做什麼呢?
21:33.929–21:37.447
What I want to do is I want to show you guys that it's able to pull comments
我想做的是,我想向你們展示它能夠抓取評論
21:37.447–21:40.429
and that we're able to create an actual deliverable from it.
並且我們能夠從中創建實際的交付成果。
21:40.429–21:42.803
So, let me just once again go back to plan mode.
所以,讓我再次回到計劃模式。
21:42.803–21:47.662
All right, so what I want you to do is pull in, you know, about 100 or 200 of my most recent comments
好的,我想讓你們做的是,抓取大約 100 到 200 條我最近期的評論
21:47.662–21:49.200
and I want you to analyze them.
然後分析它們。
21:49.200–21:50.908
I want you to find patterns
我想讓你們找出其中的模式
21:50.908–21:54.247
and I want you to display all of this in a Excel sheet.
並將所有這些內容顯示在 Excel 表格中。
21:54.247–21:56.967
And I want it to be a visual representation of this data
我希望這是一個數據的可視化呈現
21:56.967–21:59.868
that has interesting insights for me as a content creator
為我作為內容創作者提供有趣的見解
21:59.868–22:02.346
so that I can keep making content that people want
這樣我就能持續製作大家想要的內容
22:02.346–22:05.680
and I can keep answering questions that are coming up frequently.
並且持續回答那些經常出現的問題。
22:05.680–22:07.352
So, go ahead and do a plan for this
所以,請繼續為此制定計劃
22:07.352–22:10.633
and structure what the Excel sheet deliverable will look like.
並規劃 Excel 檔案交付成果的格式。
22:10.633–22:11.342
So, I shot that off.
所以我已經發送出去了。
22:11.342–22:13.575
I'm going to let you guys know when we have a plan
我會讓大家知道我們什麼時候有計畫
22:13.575–22:15.006
or if it asks me any questions.
或如果它向我提出任何問題時,我會通知大家。
22:15.006–22:17.607
A couple questions here to make sure that it understands what we want.
這裡有幾個問題,以確保它理解我們的需求。
22:17.607–22:19.328
It's asking about the recent comments.
它正在詢問最近的評論。
22:19.328–22:21.078
I'm just going to say across recent videos.
我只會說針對最近的影片。
22:21.078–22:22.320
How many should we pull?
我們應該抓取多少條?
22:22.320–22:23.078
Let's say 200.
讓我們說 200 條。
22:23.078–22:25.476
How should we classify and summarize the comments?
我們該如何分類和總結這些評論?
22:25.476–22:27.040
I'm just going with all of its recommendations.
我直接採用它的所有建議。
22:27.040–22:27.796
Those were pretty good.
那些建議相當不錯。
22:27.796–22:29.470
And so, if I switch over to a different tab,
所以,如果我切換到不同的分頁,
22:29.470–22:30.857
let's say we're back on our slides,
假設我們回到了投影片頁面,
22:30.857–22:32.962
you can see my pet down here has a little one next to it.
你可以看到我下方的寵物旁邊有一個小圖示。
22:32.962–22:35.458
Well, the one's gone because I switched back into Codex,
那個小圖示不見了,因為我切換回了 Codex,
22:35.458–22:36.361
but that little one,
但那個小圖示,
22:36.361–22:37.742
if I would have hovered over it,
如果我將滑鼠懸停在它上面,
22:37.742–22:39.388
it would show me what it's working on.
它會顯示它正在處理的工作。
22:39.388–22:43.400
So, now I can keep tabs on my workflow while I'm doing other things.
所以,現在我可以在做其他事情的時候,隨時掌握我的工作流程。
22:43.400–22:45.622
And Codex makes multitasking really easy.
而 Codex 讓多工處理變得非常輕鬆。
22:45.622–22:48.049
Because of the fact that I could open up a new chat in this project
因為我可以在這個專案中開啟新的聊天視窗,
22:48.049–22:49.102
and work on something else.
並處理其他事情。
22:49.102–22:50.679
Then I could open up a new chat in this project
接著我可以在這個專案中開啟新的聊天視窗,
22:50.679–22:51.660
and work on something else.
並處理其他事情。
22:51.660–22:52.678
And it will color code
它會進行顏色編碼,
22:52.678–22:55.618
and give you like a little blue dot or yellow dot on the side here
並在側邊顯示藍色或黃色的小圓點,
22:55.618–22:57.597
if one of these sessions needs attention.
如果其中一個工作階段需要關注的話。
22:57.597–22:58.822
So, anyways, here is the plan.
所以,總之,這是計畫。
22:58.822–23:01.593
What I would recommend is at this point you read through it.
我建議你在這個階段先閱讀一遍。
23:01.593–23:03.842
You make any changes to specific sections if you want,
如果你願意,你可以對特定章節進行任何修改,
23:03.842–23:06.941
but for the sake of the video I'm just going to go ahead and submit that plan.
但為了影片效果,我將直接提交這個計畫。
23:06.941–23:08.604
But while this is running real quick,
但當這個計畫正在快速執行時,
23:08.604–23:11.125
I wanted to show you a few other things that we can look at.
我想向你展示一些我們可以查看的其他內容。
23:11.125–23:13.082
So, if you do {slash} inside of this chat,
所以,如果你在這個聊天中輸入 {slash},
23:13.082–23:15.280
there's things that you can actually look at.
你會看到一些你可以實際查看的功能。
23:15.280–23:22.440
So, we've got auto review, code review, feedback, MCP, memories, model, personality, pet, plan mode, reasoning.
我們有自動審查、程式碼審查、回饋、MCP、記憶、模型、個性、寵物、計畫模式、推理。
23:22.440–23:29.120
There's all of these different skills that we can use like browser use, GitHub, Higgs Field, PDF, skill creator.
還有各種不同的技能,例如瀏覽器使用、GitHub、Higgs Field、PDF、技能建立器。
23:29.120–23:31.799
The {slash} is going to open up a lot of different things for you.
{slash} 將為你開啟許多不同的功能。
23:31.799–23:34.174
And of course, what you can do is you can also tag things.
當然,你也可以使用標籤功能。
23:34.174–23:35.086
So, if I do an {at},
所以,如果我輸入@符號
23:35.086–23:40.433
this is going to let us tag either specific plugins or specific files that live somewhere in this project.
這樣就能讓我們標註這個專案中特定位置的插件或檔案
23:40.433–23:44.556
So, if you're ever trying to reference a specific plugin or something specific,
所以,如果你曾經想要參考特定的外掛程式或某些特定內容,
23:44.556–23:49.603
then it's probably best to try using the {slash} or using the {at} to actually tag that in your chat.
那麼最好嘗試使用斜線指令或是 at 標記來在聊天中實際標註該項目
23:49.603–23:51.688
Now, the reason I wanted to bring up the {slash}
現在我要提到斜線指令的原因
23:51.688–23:54.627
is because you'll see one right here called {slash} personality,
是因為你會在這裡看到一個叫做 / personality 的指令
23:54.627–23:55.696
which if I shot that off,
如果我把這個打出來
23:55.696–23:57.888
it would actually let it, you know, do something.
這樣它實際上就會執行某些動作
23:57.888–23:58.731
So, what I can show you is
所以我可以展示給你看的是
23:58.731–24:01.480
I don't want to interrupt this main don't want to interrupt this main session.
我不想打斷這個主要會議
24:01.480–24:04.164
I could come up here and I could click on open side chat.
我可以點這裡,然後點擊開啟側邊聊天
24:04.164–24:06.737
And that opens up a different little conversation here
這樣就會在這裡開啟另一個小對話視窗
24:06.737–24:08.136
that still lives in this chat,
它仍然存在於這個聊天中
24:08.136–24:09.478
still lives in this project.
仍然屬於這個專案
24:09.478–24:11.594
So, if you're coming over from Cloud Code,
所以,如果你是從 Cloud Code 過來的
24:11.594–24:13.840
this is pretty similar to {slash} by the way.
順便一提,這跟 {slash} 非常類似。
24:13.840–24:16.209
So, what I can do over here is I can do {slash} personality.
所以,我在這裡可以輸入 / personality
24:16.209–24:19.755
And now I can set if I want the personality to be friendly or pragmatic.
現在我可以設定人格是友善還是務實
24:19.755–24:22.548
And I guess I didn't actually need to switch over here
我想我其實不需要切換到這裡
24:22.548–24:24.261
because it just opens like this,
因為它就像這樣打開,
24:24.261–24:25.975
but right now we're on friendly.
但現在我們設定為友善模式。
24:25.975–24:27.633
I'm actually going to switch this to pragmatic.
我實際上要將這個切換為務實模式。
24:27.633–24:31.174
You can see this says concise, task-focused, and direct.
你可以看到這裡寫著簡潔、以任務為導向且直接。
24:31.174–24:34.774
And honestly, most of the time I'd probably prefer pragmatic.
老實說,大多數時候我可能更偏好務實模式。
24:34.774–24:37.400
So, I'm usually working on pragmatic by default.
所以,我通常預設都是在務實模式下工作。
24:37.400–24:38.885
But now that we've opened the side chat,
但現在我們已經打開了側邊聊天視窗,
24:38.885–24:40.414
let me just show you guys something else.
讓我給你們看點別的東西。
24:40.414–24:43.211
Um, give me a quick update about my YouTube channel and,
嗯,給我一個關於我的 YouTube 頻道的快速更新,以及,
24:43.211–24:46.008
you know, the type of videos I've been making recently.
你知道,我最近製作的那種類型影片。
24:46.008–24:47.291
Just to show you guys that, okay,
只是想讓你們知道,好吧,
24:47.291–24:49.430
if you have your agent working right here on something
如果你的代理程式正在這裡處理某件事,
24:49.430–24:50.809
and you don't want to interrupt it,
而你不想打斷它,
24:50.809–24:52.330
but you have some sort of side question
但你有一些相關的側邊問題,
24:52.330–24:53.613
that is relevant to this project
這個問題與這個專案有關,
24:53.613–24:56.000
or maybe relevant to something that you guys were working on
或者與你們之前處理過的事情有關,
24:56.000–24:57.852
earlier, you can ask over here.
你可以在這裡詢問。
24:57.852–25:00.418
Because right here you can see it has the context
因為在這裡你可以看到它擁有
25:00.418–25:02.160
of what we talked about already.
我們已經討論過的話題的上下文。
25:02.160–25:03.630
And I could go back and forth a little bit,
而且我可以來回稍微討論一下,
25:03.630–25:05.272
and then I could just close out of the side chat
然後我就可以關閉側邊聊天視窗
25:05.272–25:05.964
whenever I'm done.
在我完成操作時。
25:05.964–25:07.464
Okay, so that has been created.
好的,所以這個已經建立完成了。
25:07.464–25:10.810
It pulled in 200 recent comments across three recent videos,
它從最近的三部影片中匯入了 200 則最新的留言,
25:10.810–25:14.155
and I could open it up right here in this dashboard sort of view
我可以在這個儀表板類型的視圖中直接打開它
25:14.155–25:15.992
right in CodaX, which is awesome.
就在 CodaX 裡,這真的很棒。
25:15.992–25:17.715
And I could actually make some follow-ups
我實際上可以進行一些後續操作
25:17.715–25:18.847
and chat with it right here,
並在這裡與它聊天,
25:18.847–25:20.570
but it's a little bit finicky to be honest.
但老實說,它有點難用。
25:20.570–25:22.322
So what I'm going to do is close out of that,
所以我接下來要關閉那個視窗,
25:22.322–25:24.223
and I'm just going to open up our folder again,
然後我會重新打開我們的資料夾,
25:24.223–25:25.124
which was right here.
就在這裡
25:25.124–25:26.936
And you can see there's a lot more that lives in here now.
你可以看到現在裡面多了很多東西。
25:26.936–25:29.075
Not only do we have our agents and our .env,
我們不僅有我們的代理程式和 .env 檔案,
25:29.075–25:30.114
but we have scripts,
還有腳本,
25:30.114–25:31.153
and we have outputs,
還有輸出結果,
25:31.153–25:33.232
and we have different nodes and modules,
還有不同的節點和模組,
25:33.232–25:34.454
which has a lot of stuff.
裡面包含了很多內容。
25:34.454–25:36.759
So if at any point this starts to feel a little bit unorganized
所以如果任何時候這開始感覺有點雜亂無章
25:36.759–25:38.295
and you don't understand the structure,
而你不了解其結構,
25:38.295–25:39.922
all you have to do is come into CodaX and say,
你只需要進入 CodaX 並說,
25:39.922–25:41.278
have to do is come into CodaX and say,
你只需要進入 CodaX 並說,
25:41.278–25:42.634
"Hey, help me like reorganize this,
「嘿,幫我重新組織一下,
25:42.634–25:45.520
or maybe give me a document that helps me navigate it a little bit better."
或者給我一份文件,幫助我更好地導航。」
25:45.520–25:48.359
Because of course this lives in a local directory,
因為這當然存在於本地目錄中,
25:48.359–25:49.644
and CodaX can touch it,
而 CodaX 可以接觸它,
25:49.644–25:50.117
read it,
讀取它,
25:50.117–25:50.861
organize it,
組織它,
25:50.861–25:51.334
edit it.
編輯它。
25:51.334–25:52.373
So if I go to the outputs
所以如果我進入輸出資料夾
25:52.373–25:54.233
and I go to the YouTube comment insights,
並進入 YouTube 評論洞察,
25:54.233–25:56.367
we see all of these different stuff that it did.
我們會看到它所做的各種不同內容。
25:56.367–25:58.461
So it took some screenshots as you can see,
所以它截了一些螢幕截圖,你可以看到,
25:58.461–26:00.855
but then it also created the actual Excel sheet.
但隨後它也建立了實際的 Excel 試算表。
26:00.855–26:02.611
So I'll open this up right here,
所以我就在這裡打開它,
26:02.611–26:03.826
and we can take a look.
我們可以來看看。
26:03.826–26:05.485
All right, so we and we can take a look.
好的,我們可以來看看。
26:05.485–26:07.958
All right, so we have YouTube comment insights,
好的,我們有 YouTube 評論洞察,
26:07.958–26:11.049
200 newest public comments across recent Nate Hurt videos,
最近 Nate Hurt 影片中的 200 條最新公開評論,
26:11.049–26:12.595
generated May 5th, 11:00 a.m.
生成於 5 月 5 日上午 11:00
26:12.595–26:14.378
So we can see the question rate,
所以我們可以看到提問率,
26:14.378–26:16.024
the content requested rate,
內容請求率
26:16.024–26:17.670
top mention tools CodaCode.
最常提及的工具是 CodaCode。
26:17.670–26:18.066
Uh-oh.
哎呀。
26:18.066–26:19.801
We've got high priority stuff,
我們有高優先級的內容,
26:19.801–26:20.602
top patterns,
主要模式,
26:20.602–26:21.269
skip video,
跳過影片,
26:21.269–26:22.203
stuff like that.
諸如此類。
26:22.203–26:23.916
It even started to create some visuals here,
它甚至開始在這裡建立一些視覺效果,
26:23.916–26:24.611
which is awesome.
這太棒了。
26:24.611–26:27.124
So this is content category mix over here.
所以這裡是內容類別的組合。
26:27.124–26:31.596
It shows the mix between general feedback or questions with um actual values.
它顯示了一般意見或問題與實際價值之間的混合比例。
26:31.596–26:33.451
So 55 were general feedback,
所以有 55 條是一般意見,
26:33.451–26:34.688
53 were questions.
53 條是問題。
26:34.688–26:36.240
Some of these were access,
其中一些是存取權限,
26:36.240–26:37.440
positive feedback,
正面反饋,
26:37.440–26:38.498
tool comparison,
工具比較,
26:38.498–26:39.415
pricing stuff.
定價相關內容。
26:39.415–26:41.055
Over here we have different tools.
這裡有不同的工具。
26:41.055–26:41.844
So CodaCode,
所以 CodaCode,
26:41.844–26:42.633
Higgs Field,
希格斯場
26:42.633–26:43.278
CodaX API.
[未翻譯]
26:43.278–26:45.501
And then over here we have some other stats as you can see.
然後在這裡,你可以看到一些其他統計數據。
26:45.501–26:47.254
Now we have a bunch of different tabs as well.
現在我們還有一堆不同的標籤頁。
26:47.254–26:48.635
So we have creator insights.
所以我們有創作者洞察。
26:48.635–26:51.496
So ranked comment patterns and recommended creator actions.
也就是排名評論模式和推薦的創作者行動。
26:51.496–26:55.470
So I'm able to see the percentage breakdown of different types of comments
所以我能夠看到不同類型評論的百分比分解,
26:55.470–26:58.867
and it also gives me recommended actions with priority scores.
它還為我提供帶有優先級分數的推薦行動。
26:58.867–27:00.138
So, that's pretty cool.
所以,這真的很酷。
27:00.138–27:01.640
I also can see frequent questions.
我還能看到常見問題。
27:01.640–27:03.913
So, things that are coming up as patterns.
也就是那些作為模式出現的事物。
27:03.913–27:08.200
It's giving me content ideas now as well because it's analyzing those comments.
因為它正在分析這些評論,現在它也為我提供內容靈感。
27:08.200–27:10.204
It's giving me nice reply opportunities
它為我提供很好的回覆機會,
27:10.204–27:12.444
and then it's giving me just the raw comments.
然後它只提供原始評論。
27:12.444–27:16.696
So, this should be 200 rows of our actual comments that it pulled.
所以,這應該是它提取的我們實際評論的 200 行。
27:16.696–27:21.273
204 as you can see because the first three or four were just nonsense.
正如你所見,是 204 行,因為前三或四行只是胡言亂語。
27:21.273–27:22.487
So, that is awesome.
所以,這太棒了。
27:22.487–27:25.628
And what you guys might be thinking is okay, is this actually useful?
你們可能會想的是,好吧,這真的有用嗎?
27:25.628–27:29.916
Maybe not because we just said, "Hey, give me analytics." Right?
也許沒有用,因為我們剛才只是說,「嘿,給我分析數據。」對吧?
27:29.916–27:32.567
If you guys remember my actual prompt, it was very, very vague.
如果你們記得我的實際提示詞,它非常、非常模糊。
27:32.567–27:35.202
So, if we would have spent more time in the planning phase
所以,如果我們能在規劃階段多花點時間
27:35.202–27:38.062
or if we had certain analytics that we're tracking very heavy
或者我們有某些非常重點追蹤的數據分析
27:38.062–27:40.641
or certain comments that we're really looking out for,
或者某些我們特別留意的評論,
27:40.641–27:42.492
we would give that to Codex as knowledge
我們會將這些資訊提供給 Codex 作為知識
27:42.492–27:44.240
and it would make this actual, um, you
這樣它就能產生這些實際的、嗯,你
27:44.240–27:44.895
know, insights,
知道的洞察,
27:44.895–27:46.346
it would make it much know, insights,
它會產生這些洞察,
27:46.346–27:48.359
it would make it much more customized and tailored.
它會讓結果更加客製化且量身打造。
27:48.359–27:50.696
So, now let's talk about how do we turn this into a skill?
所以,現在讓我們來談談如何將這轉化為一項技能?
27:50.696–27:52.200
So, first of all, what is a skill?
首先,什麼是技能?
27:52.200–27:53.120
So, first of all, what is a skill?
首先,什麼是技能?
27:53.120–27:55.405
Well, a skill is basically a repeatable recipe.
基本上,技能就是一種可重複使用的配方。
27:55.405–27:57.499
So, if I come back in here and I click on plugins,
所以,如果我回到這裡並點擊外掛程式,
27:57.499–27:58.949
we saw all these plugins, right?
我們看到了所有這些外掛程式,對吧?
27:58.949–28:00.691
These are actual like connections
這些實際上是像連線
28:00.691–28:02.133
and potentially MCP servers
以及潛在的 MCP 伺服器
28:02.133–28:03.995
and kind of like some other, you know,
以及類似其他一些,你知道,
28:03.995–28:06.698
it's a package that people are able to install and use.
它是一個人們能夠安裝和使用的套件。
28:06.698–28:09.969
But, skills are more of just like instructions.
但是,技能更像是僅限於指示。
28:09.969–28:11.850
So, there's an image gen skill.
所以,有一個影像生成技能。
28:11.850–28:13.950
There is a OpenAI doc skill.
這裡有一個 OpenAI 文件技能。
28:13.960–28:16.294
There's a GitHub review follow-up skill,
有一個 GitHub 審查後續技能,
28:16.294–28:17.295
a document skill.
一個文件技能。
28:17.295–28:20.798
And these are all basically just markdown file instructions
這些基本上都只是 Markdown 檔案的指令,
28:20.798–28:23.271
that tell Codex how to do something better.
告訴 Codex 如何更好地完成某項任務。
28:23.271–28:25.091
So, how to design a website better
例如,如何更好地設計網站,
28:25.091–28:27.497
or how to, you know, give you a morning brief.
或是如何,你知道的,為你提供晨間簡報。
28:27.497–28:30.455
And so, what we want to do is we want to turn this,
所以,我們想要做的是,我們想把這個,
28:30.455–28:32.882
exactly what we just did, into a skill.
剛才我們所做的,轉化為一個技能。
28:32.882–28:35.863
So, that anytime I say, "Hey, go give me more YouTube insights."
這樣,只要我說:「嘿,給我更多 YouTube 洞察。」
28:35.863–28:37.325
It knows what endpoints to hit,
它知道要連線哪些端點
28:37.325–28:38.619
it knows how to pull them in,
它知道如何將它們拉取進來,
28:38.619–28:40.307
it knows how to make the Excel sheet,
它知道如何建立 Excel 試算表,
28:40.307–28:41.544
it knows how to do all this.
它知道如何完成所有這些工作。
28:41.544–28:43.656
And the best way that I like to make skills is
而我最喜歡建立技能的最佳方式是,
28:43.656–28:46.588
I just basically brainstorm with with Codex to do something
我基本上只是與 Codex 進行腦力激盪,以完成某項任務,
28:46.588–28:48.348
and then after I get an output I like,
然後在我得到滿意的輸出後,
28:48.348–28:50.166
I say, "Okay, turn that into a skill."
我會說:「好的,把那個轉化為一個技能。」
28:50.166–28:52.454
So, this was the ultimate deliverable, right?
所以,這就是最終的交付成果,對吧?
28:52.454–28:55.641
So, what you just did is you helped me pull in data from my YouTube.
所以,你剛才所做的,是幫助我從我的 YouTube 拉取資料。
28:55.641–28:56.512
You got comments,
你取得了留言,
28:56.512–28:57.499
you ran an analysis,
你進行了分析,
28:57.499–29:00.169
and you created me an awesome Excel sheet deliverable.
並為我建立了一份很棒的 Excel 檔案交付成果。
29:00.169–29:02.113
I want you to turn that into a skill
我希望你將這項任務轉化為一項技能,
29:02.113–29:05.029
so that every time I say to grab my YouTube comments
這樣每次我說要抓取我的 YouTube 留言
29:05.029–29:06.556
and give me some insights,
並提供某些洞察時,
29:06.556–29:07.876
you do this exact flow,
你都會執行完全相同的流程,
29:07.876–29:09.889
and that makes it more consistent.
這會讓結果更加一致。
29:09.889–29:11.593
So, I'm going to shoot off that message,
所以,我現在要發送那則訊息,
29:11.593–29:14.021
and while it's doing that, just think about it like this.
而在它執行的同時,請這樣想。
29:14.021–29:15.861
If someone asked you to create or not create
如果有人要求你建立或不建立
29:15.861–29:18.365
If someone asked you to make them chocolate chip pancakes,
如果有人要求你為他們製作巧克力碎片鬆餅,
29:18.365–29:19.950
you're going to open up your cookbook
你會打開你的食譜書
29:19.950–29:20.870
or pull up your phone,
或拿起手機,
29:20.870–29:22.301
and you're going to read a recipe,
然後你會去讀食譜
29:22.301–29:23.640
and you're going to follow it to
並嚴格按照指示執行,
29:23.640–29:23.788
a T.
一點都不差。
29:23.788–29:25.165
You're going to follow the measurements,
你會嚴格按照份量來操作
29:25.165–29:25.756
the ingredients,
食材
29:25.756–29:26.464
and the temperature,
以及溫度
29:26.464–29:26.976
and the timing,
以及時間,
29:26.976–29:27.566
and temperature,
以及溫度,
29:27.566–29:28.078
and the timing,
以及時間,
29:28.078–29:28.560
and whatever.
還有其他各種細節。
29:28.560–29:31.318
And then next time someone asked you to make chocolate chip cookies
然後下次有人要求你製作巧克力碎片餅乾
29:31.318–29:31.859
or pancakes,
或鬆餅時,
29:31.859–29:33.337
you would just use that same recipe,
你就會直接使用那同一個食譜,
29:33.337–29:35.405
and they'd come out pretty much the exact same way.
做出來的成品也會幾乎完全一樣。
29:35.405–29:37.062
Because if you didn't use the recipe,
因為如果你沒有使用食譜,
29:37.062–29:38.292
you would just be guessing,
你就只是在猜測,
29:38.292–29:40.057
and you'd be you'd be sort of measuring,
你只會憑感覺去測量,
29:40.057–29:41.019
and you'd be feeling,
憑感覺去判斷,
29:41.019–29:42.623
and it just wouldn't be consistent.
結果就不會一致。
29:42.623–29:43.564
And the cool thing is,
而最棒的是,
29:43.564–29:45.133
now that you have this recipe to use,
現在你有了這個可以使用的食譜,
29:45.133–29:46.440
every time you use the recipe,
每次使用這個食譜時,
29:46.440–29:47.957
you might be able to make it better.
你或許能把它做得更好。
29:47.957–29:49.210
If one time you experiment,
如果有一次你做了實驗,
29:49.210–29:50.952
and you add some more chocolate chips,
多加了一些巧克力碎片,
29:50.952–29:51.878
you either like that
無論你喜不喜歡
29:51.878–29:52.477
or you don't,
或者不喜歡,
29:52.477–29:53.512
you update the recipe.
你就更新食譜。
29:53.512–29:56.820
Maybe one time you realize that you're actually leaving too much raw batter inside.
也許有一次你發現自己其實留下了太多未熟的生麵糊。
29:56.820–29:57.744
So, what do you do?
那麼,你會怎麼做?
29:57.744–30:03.609
You update the recipe to say, "Okay, you leave it on 4 minutes on each side rather than 3 and 1/2 minutes on each side."
你會更新食譜,寫道:「好的,每邊煎4分鐘,而不是每邊3分半鐘。」
30:03.609–30:09.240
You're able to, each time you use the recipe, have it be updated, and that is the power of building these skills.
每次使用食譜時,你都能讓它更新,這就是建立這些技能的強大之處。
30:09.240–30:13.914
And you can see that it's able to work backwards and reverse engineer a skill from our output.
你可以看到,它能逆向運作,從我們的輸出中反向工程出一項技能。
30:13.914–30:17.389
And what it does is it puts them in a file called the dot Codex,
它會將這些技能存入一個名為 .codex 的檔案中,
30:17.389–30:19.126
which kind of lives globally,
這個檔案在全球範圍內生效,
30:19.126–30:22.949
which means whenever you're working inside of any Codex project,
這意味著無論你在任何 Codex 專案中工作,
30:22.949–30:25.312
you're going to be able to use that skill.
你都能夠使用這項技能。
30:25.312–30:27.508
And all you have to do to call it is you'll do a slash command,
要呼叫它,你只需要輸入斜線指令,
30:27.508–30:28.897
and then you will just name the skill.
然後直接輸入技能名稱即可。
30:28.897–30:31.372
So, if you guys remember, down here we have all these other ones.
所以,如果大家還記得的話,這裡有所有其他技能。
30:31.372–30:34.848
I could do slash browser use slash image gen slash PDF,
我可以輸入 /browser、/image gen、/PDF,
30:34.848–30:37.551
and that's how I could be able to call them.
這就是呼叫它們的方式。
30:37.551–30:40.867
The other way you can call them is you can actually just have them be natural language.
另一種呼叫它們的方式是,你可以直接使用自然語言。
30:40.867–30:42.942
So, just to show you guys another example,
所以,為了向大家展示另一個範例,
30:42.942–30:44.246
if I go to my Herc 2 project,
如果我進入我的 Herc 2 專案,
30:44.246–30:46.617
and I know this is more optimized for cloud code,
我知道這更適合雲端代碼,
30:46.617–30:48.099
but we have a dot cloud folder,
但我們有一個 .cloud 資料夾,
30:48.099–30:48.880
which is local.
這是本機端的。
30:48.880–30:50.042
So, if I click into here,
所以,如果我點擊進入這裡,
30:50.042–30:51.901
I can see I have a folder called skills,
我會看到一個名為 skills 的資料夾,
30:51.901–30:53.818
and all of these are my different skills
這些都是我的不同技能,
30:53.818–30:55.677
that currently live inside of my AI OS.
目前運行在我的 AI OS 內部。
30:55.677–30:57.671
So, let's say here I have a morning coffee skill,
所以,假設這裡有一個「晨間咖啡」技能,
30:57.671–31:00.711
and I'm going to open this up real quick in my notepad just to show you guys.
我現在要快速在記事本裡打開它,給大家看看。
31:00.711–31:02.192
All this is is a markdown file.
這其實只是一個 Markdown 檔案。
31:02.192–31:03.519
We have the name of the skill,
我們有技能的名称,
31:03.519–31:04.680
we have the description.
我們有描述內容
31:04.680–31:09.128
So, here it says, "Use when someone asks for morning coffee to prep or plan their day."
所以,這裡寫著:「當有人要求準備晨間咖啡以規劃或準備他們的一天時使用。」
31:09.128–31:12.511
So, anytime in cloud code I say, "Hey, can you help me plan my day?"
所以,無論何時在 Cloud Code 中我說:「嘿,你能幫我規劃我的一天嗎?」
31:12.511–31:15.017
cloud code will grab this morning coffee skill,
Cloud Code 會抓取這個晨間咖啡技能,
31:15.017–31:15.456
read it,
讀取它,
31:15.456–31:16.521
and then execute it.
然後執行它。
31:16.521–31:18.186
And it says, "Okay, here's the context,
它會說:「好的,這是背景資訊,
31:18.186–31:19.548
here's the recurring meetings,
這是常態性會議,
31:19.548–31:20.607
here is the meeting prep,
這是會議準備,
31:20.607–31:22.322
here are these different reference IDs,
這些是不同的參考 ID,
31:22.322–31:23.836
here's everything you need to know,
這裡有你需要知道的一切,
31:23.836–31:24.441
and the order.
以及順序。
31:24.441–31:25.305
So, step one,
所以,第一步,
31:25.305–31:25.933
step two,
第二步,
31:25.933–31:26.719
step three.
第三步。
31:26.719–31:29.987
Here is what you do whenever Nate asks for a morning coffee skill."
當 Nate 要求建立「早安咖啡」技能時,你會這樣做:
31:29.987–31:32.186
So, that is all that is happening right here.
所以,這就是這裡正在發生的所有事情。
31:32.186–31:35.435
You can see it created this skill called YouTube comment insights,
你可以看到它建立了一個名為 YouTube 評論洞察的技能,
31:35.435–31:37.117
and it did this at the global level.
並且它是在全域層級執行的。
31:37.117–31:39.954
What I mean by that is this lives locally in our directory
我所說的全域層級是指,這存在於我們目錄的本地,
31:39.954–31:42.549
directory that sits across any Codex project ever.
這個目錄位於任何 Codex 專案之上。
31:42.549–31:45.717
So, if I open up this other project, I could use the skill,
所以,如果我開啟這個其他專案,我就可以使用這個技能,
31:45.717–31:48.009
or we could put it locally in our project,
或者我們可以將其本地化放在我們的專案中,
31:48.009–31:53.199
which would mean I could only use the skill in this specific YouTube analytics demo project.
這意味著我只能在這個特定的 YouTube 分析示範專案中使用該技能。
31:53.199–31:55.615
And all you have to do to change that differentiation is say,
而你要做的唯一改變這種差異的方法就是說,
31:55.615–31:58.562
"Hey, instead of putting that global, put that locally in this project."
「嘿,不要把它設為全域,而是把它本地化放在這個專案中。」
31:58.562–32:01.364
Or, instead of having that locally in this project, make that global.
或者,不要把它本地化放在這個專案中,而是將其設為全域。
32:01.364–32:06.040
So, now if I do a slash and I do YouTube comment insights, we have this right here.
所以,現在如果我輸入斜線並輸入 YouTube 評論洞察,我們就會看到這個:
32:06.040–32:10.670
YouTube comment insights analyze comments into an Excel report.
YouTube 評論洞察:將評論分析為 Excel 報告。
32:10.680–32:12.396
Which is the skill that we just built together,
這就是我們剛才一起建立的技能,
32:12.396–32:13.100
so that is awesome.
所以這真的很棒。
32:13.100–32:13.570
All right,
好的,
32:13.570–32:15.449
so before we move on to the next step of this,
所以在我們進入下一步之前,
32:15.449–32:17.067
I wanted to talk about pets real quick
我想快速談談寵物功能
32:17.067–32:20.199
just because I know you guys are dying to understand how you can get this.
只是因為我知道你們都很想知道如何取得這個功能。
32:20.199–32:20.932
It's really simple,
這真的很簡單,
32:20.932–32:21.795
you go to your settings,
你進入你的設定,
32:21.795–32:23.433
and then you're going to go to your appearance
然後前往你的外觀設定
32:23.433–32:24.425
and scroll all the way down,
並一直往下捲動,
32:24.425–32:25.805
and you can see right here we have pets.
你就可以在這裡看到寵物功能。
32:25.805–32:27.755
And we can choose between different ones.
我們可以從不同的寵物中進行選擇。
32:27.755–32:27.996
So,
所以,
32:27.996–32:30.567
right now I'm just using the Codex pet,
目前我只是使用 Codex 寵物,
32:30.567–32:32.255
but I could choose Dewey,
但我可以選擇 Dewey,
32:32.255–32:32.657
or CD,
或是 CD,
32:32.657–32:33.380
or Beasod,
或是 Beasod,
32:33.380–32:34.103
or Stacky.
或是 Stacky。
32:34.103–32:36.653
So, I'm just going to go ahead and switch this to Fireball for fun,
所以,我打算為了好玩切換成 Fireball,
32:36.653–32:38.069
and you can see down here it changes.
你可以在這裡看到它發生了變化。
32:38.069–32:40.286
And yes, it's kind of a fun little UI thing,
是的,這確實是個有趣的小 UI 功能,
32:40.286–32:44.214
but remember if I'm not inside of Codex and I'm in this dashboard over here,
但請記住,如果我不在 Codex 裡面,而是在這裡的儀表板上,
32:44.214–32:49.473
we can still see the pet and it will tell us when it's working on things and when it's done with things.
我們仍然可以看到寵物,它會告訴我們它正在處理什麼,以及何時完成。
32:49.473–32:51.578
So, it is a little bit practical as well.
所以,它也有一點實用性。
32:51.578–32:52.160
All right.
好的。
32:52.160–32:54.422
So, now we have a deliverable.
現在我們有了交付成果。
32:54.422–32:58.738
We have an Excel sheet and we're going to use that as the back end that basically powers this next section.
我們有一個 Excel 試算表,我們將用它作為後端,基本上驅動下一個部分。
32:58.738–33:03.726
So, I'm going to open up a new project because we're kind of starting a new goal, a new a new deliverable.
所以,我要開啟一個新專案,因為我們開始了一個新的目標、新的交付成果。
33:03.726–33:09.680
So, I want to open up a new chat and this will still be able to access everything that's in this folder.
所以,我想開啟一個新的聊天,這仍然可以存取這個資料夾中的所有內容。
33:09.680–33:11.562
So, I'm going to go ahead and switch over to plan mode here.
所以,我要切換到這裡的計畫模式。
33:11.562–33:13.209
Okay, so here's the idea I have.
好的,這就是我的想法。
33:13.209–33:19.189
You have access to a file inside of this project and what I'm going to do is actually reference the exact file.
你可以存取這個專案內的一個檔案,而我實際上要參考確切的檔案。
33:19.189–33:23.169
So, I'm going to look for the YouTube comment insights right here
所以,我要在這裡尋找 YouTube 評論洞察,
33:23.169–33:25.307
and I'm going to tag that right here
然後在這裡標記它,
33:25.307–33:27.160
and I'm going to tag that file.
並標記該檔案。
33:27.160–33:29.756
So, what I want you to do is create me a dashboard,
所以,我希望你做的是為我建立一個儀表板,
33:29.756–33:31.248
spin this up on a local host,
在本地主機上啟動它,
33:31.248–33:33.584
and I want it to have really nice UI elements
我希望它擁有非常漂亮的 UI 元素,
33:33.584–33:36.114
and, you know, charts and graphics and things,
以及圖表和圖形等內容,
33:36.114–33:37.347
so visualizing my data
以視覺化我的資料,
33:37.347–33:38.720
and I want to be able to see
我希望能夠看到
33:38.720–33:41.680
different insights about my YouTube different insights about my YouTube comments.
關於我的 YouTube 評論,獲取不同的洞察。
33:41.680–33:44.383
What I want you to do here is I want you to use GPT image 2
我希望你使用 GPT Image 2。
33:44.383–33:48.068
and create some really nice concepts of how this dashboard should look.
並為這個儀表板的呈現方式創建一些非常棒的概念設計。
33:48.068–33:51.851
And also, if you want to use it for maybe like a nice logo in the top
此外,如果你想在頂部使用它來製作一個漂亮的標誌。
33:51.851–33:53.707
or any of the other UI elements,
或是其他任何 UI 元素,
33:53.707–33:57.490
utilize GPT image 2 to make this thing just look really polished
請利用 GPT Image 2 讓這個專案看起來更加精緻。
33:57.490–33:58.775
and really aesthetic
並且非常具有美感。
33:58.775–34:00.631
and really fun at the same time.
同時還要充滿趣味。
34:00.631–34:02.520
So, that is the idea I have.
這就是我的構想。
34:02.520–34:04.094
I want you to help plan this out,
我希望你協助規劃這個專案,
34:04.094–34:06.152
ask me any questions you have about this,
針對此事向我提出任何疑問,
34:06.152–34:07.968
and then we'll go ahead and execute.
然後我們就繼續執行。
34:07.968–34:09.988
And so also, this default switch to extra high again,
接著,這個預設切換回「額外高」模式,
34:09.988–34:12.101
I'm just going to go ahead and switch that back to medium
我將直接把它切換回「中等」模式,
34:12.101–34:13.019
and then shoot that off.
然後發送請求。
34:13.019–34:16.021
And you can see down here the pet has started to think
你可以在這裡看到,Pet 已經開始思考,
34:16.021–34:17.766
and it's talking a little bit.
並且正在進行一些對話。
34:17.766–34:20.744
But, the reason why you want to be careful about which models you're using,
但是,為什麼你要謹慎選擇所使用的模型,
34:20.744–34:21.608
there's two reasons.
有兩個原因。
34:21.608–34:26.317
The first one is because sometimes if you chuck extra high at a task that's really simple,
第一個原因是,有時如果你對非常簡單的任務使用「額外高」模式,
34:26.317–34:27.600
like over engineers it.
像是過度設計它。
34:27.600–34:31.992
And the second piece is because each of these cost you different amounts of your tokens or your session.
第二個原因是因為這些模型會消耗你不同數量的 token 或你的 session。
34:31.992–34:33.318
Obviously, low cost the least
顯然,低成本的消耗最少
34:33.318–34:34.591
and extra high cost the most.
而高成本的消耗最多。
34:34.591–34:36.347
If you go over here to your settings
如果你點到這裡的設定
34:36.347–34:38.346
and you click on rate limits remaining,
並點擊剩餘的速率限制,
34:38.346–34:40.829
it shows you how much of your session you have left
它會顯示你還剩多少 session
34:40.829–34:41.859
and when it expires.
以及何時過期。
34:41.859–34:43.743
So, every 5 hours it resets
所以,每 5 小時它會重置
34:43.743–34:46.142
and right now I have 97% remaining
而現在我還有 97% 的剩餘額度
34:46.142–34:48.198
and then every week it resets
然後每週它會重置
34:48.198–34:51.120
and right now I have 99% remaining there.
而現在我在那裡還有 99% 的剩餘額度。
34:51.120–34:54.545
And so, it's really nice to be able to keep tabs on that right here,
所以,能夠在這裡隨時掌握這些狀況真的很不錯,
34:54.545–34:57.335
but that's why you want to be careful about, you know,
但這就是為什麼你要小心,你知道的,
34:57.335–34:59.048
your context window management
你的上下文視窗管理
34:59.048–34:59.999
and your planning
以及你的規劃
34:59.999–35:01.014
and your prompting
和你的提示詞
35:01.014–35:02.663
and your model usage down here.
還有你這裡的模型使用情況。
35:02.663–35:07.844
In general though, I have seen that my session is lasting way longer in Codex
不過總體來說,我發現我的 session 在 Codex 中持續的時間遠比
35:07.844–35:09.571
than it is in Claude Code.
在 Claude Code 中要長。
35:09.571–35:15.511
And a big part of that is because ChatGPT 5.5 is really, really efficient with tokens,
這其中很大一部分原因是,ChatGPT 5.5 在 token 使用上真的非常高效,
35:15.511–35:18.105
with output tokens and input tokens.
無論是輸出 token 還是輸入 token。
35:18.105–35:20.610
And if you guys go watch that video that I was talking about,
如果你們去觀看我之前提到的那個影片,
35:20.610–35:24.445
you will see that exact experiment and it's really interesting to understand and look at,
你會看到那個確切的實驗,理解並觀察它真的很有趣,
35:24.445–35:27.257
but I've generally found that it's really efficient with tokens.
但我通常發現它在 token 使用上真的非常高效。
35:27.257–35:28.625
Now, we have some feedback here.
現在,我們這裡有一些回饋。
35:28.625–35:34.400
It says, "Which visual direction should guide the GPT image two concepts and the final dashboard UI?"
它說:「應該由哪種視覺方向來引導 GPT 的圖片、兩個概念以及最終的儀表板 UI?」
35:34.400–35:37.270
Creator Ops, Playful Studio or Executive Clean.
創作者營運、趣味工作室或專業簡潔風格。
35:37.270–35:39.001
I'm just going to go with the recommendation.
我就直接採用這個建議
35:39.001–35:42.112
For this first version, how should the dashboard get its YouTube comment data?
對於這個第一版,儀表板該如何獲取 YouTube 留言資料?
35:42.112–35:46.340
I'm going to say to use the existing output, which was the um Excel file.
我會說使用現有的輸出,也就是那個 Excel 檔案。
35:46.340–35:49.356
And then what should the first screen prioritize most?
然後,第一個畫面應該優先處理什麼?
35:49.356–35:51.431
Reply and ideas, analytics overview.
回覆與想法、分析概覽。
35:51.431–35:54.257
I'm actually going to go with analytics overview for this one.
對於這一項,我實際上會選擇分析概覽。
35:54.257–35:54.911
And by the way,
順便一提,
35:54.911–35:55.784
if you're in the app
如果你在應用程式中
35:55.784–35:57.856
and you want to get rid of the pet really quick,
而如果你想快速移除寵物
35:57.856–35:59.055
you can just do {slash} pet
你只需要輸入 {slash} pet
35:59.055–36:00.691
and then that will just tuck it away.
然後它就會被隱藏起來。
36:00.691–36:01.042
Okay,
好的,
36:01.042–36:03.356
so it came up with a plan pretty quickly.
所以它很快就提出了一個計畫。
36:03.356–36:05.112
You can see here that I can expand this
你可以在這裡看到我可以展開這個
36:05.112–36:05.962
and read about it.
並閱讀相關內容。
36:05.962–36:06.116
So,
所以,
36:06.116–36:07.191
we've got like a summary,
我們有一個摘要,
36:07.191–36:08.164
we've got key changes,
我們有關鍵變更,
36:08.164–36:09.445
we've got all this other stuff
我們還有其他所有這些內容
36:09.445–36:11.801
and this is where we would once again iterate with Codex
而這就是我們會再次與 Codex 進行迭代的地方
36:11.801–36:14.004
before we say, "Yep, go ahead and build that for me."
在我們說「好的,繼續為我建構那個」之前。
36:14.004–36:15.960
But I'm just going to go ahead and say, "Yep, go
但我直接說「好的,繼續
36:15.960–36:17.125
ahead and build that for me."
為我建構那個」。
36:17.125–36:19.795
You can see that it's using the image generation for GPT image two,
你可以看到它正在使用 GPT image two 的圖像生成功能,
36:19.795–36:21.057
which is really, really solid.
這真的非常穩固。
36:21.057–36:24.280
And here is one of the kind of versions that it came up with.
這裡是它生成的一個版本
36:24.280–36:28.334
And I've just found if If using Codex to build games or websites or whatever it is,
我發現如果使用 Codex 來建構遊戲或網站或其他東西,
36:28.334–36:30.997
it just helps to give it the ability to test things out
這樣做能賦予它測試的功能
36:30.997–36:32.691
and generate some concepts first
並先產生一些概念
36:32.691–36:35.112
before it actually designs the rest of the site.
在它實際設計網站其餘部分之前,會很有幫助。
36:35.112–36:36.868
You can see this is the little logo that it came up with,
你可以看到這是它提出的一個小標誌,
36:36.868–36:37.571
which is kind of cool.
這還挺酷的
36:37.571–36:39.496
It's got like a YouTube play button
它看起來有個 YouTube 播放按鈕
36:39.496–36:40.360
with some noise
加上一些雜訊
36:40.360–36:41.953
and some comments coming in.
以及進來的評論。
36:41.953–36:43.040
And what it's going to do is
接下來它會做的是
36:43.040–36:46.102
it's going to store all of these assets locally somewhere in this project,
它會將這些資產全部儲存在這個專案中的某個本地位置,
36:46.102–36:49.066
so that later if we wanted to spin up different versions of the dashboard
以便之後如果我們想要啟動儀表板的不同版本
36:49.066–36:50.251
or a different landing page,
或不同的登陸頁面,
36:50.251–36:51.200
it would have access to
它就能夠存取
36:51.200–36:52.629
all of these assets already.
這些已經存在的資產。
36:52.629–36:53.978
And this is super cool, guys.
這真的太酷了,各位。
36:53.978–36:56.276
It has like this built-in verification loop
它內建了一個驗證迴圈
36:56.276–36:58.016
where it's going to check its work
它會在這裡檢查自己的工作成果
36:58.016–37:00.066
before it actually gives you an output,
真正輸出結果之前檢查自己的工作,
37:00.066–37:01.184
which is pretty cool.
這真的很酷
37:01.184–37:04.008
So, it said the automated browser verification passed.
所以,它表示自動化瀏覽器驗證已通過。
37:04.008–37:05.599
I'm now doing one visual pass
我現在正在進行一次視覺檢查
37:05.599–37:07.323
to see what else there might be,
看看還可能有什麼其他情況,
37:07.323–37:08.384
what other issues.
以及其他問題。
37:08.384–37:09.726
And it found three issues
當它進行實際的視覺掃描時,
37:09.726–37:11.515
when it did an actual visual scan.
它發現了三個問題。
37:11.515–37:12.772
So, now it's fixing those.
所以,現在它正在修復這些問題。
37:12.772–37:14.341
It says, "Okay, those UI fixes are in.
它說:「好的,那些 UI 修復已經完成了。
37:14.341–37:15.600
I'm going to stop the server.
我將停止伺服器。
37:15.600–37:16.457
I'm going to rebuild,
我將重新建構,
37:16.457–37:18.981
and then I'm going to verify it one more time with screenshots."
然後我會再用截圖驗證一次
37:18.981–37:20.219
And then it comes back and says,
然後它回來並說:
37:20.219–37:22.172
"Okay, the second visual pass looks a lot better.
「好的,第二次視覺檢查看起來好多了。
37:22.172–37:25.090
Here is your dashboard to actually go ahead and test out."
這是您的儀表板,您可以繼續進行測試。」
37:25.090–37:28.798
So, let's just real quick open this up right here locally in the explorer.
所以,讓我們就在這裡的資源管理器中快速打開它。
37:28.798–37:30.805
And now we have our creator ops signal desk.
現在我們有了我們的創作者運營信號檯。
37:30.805–37:32.635
So, I'm going to expand this a little bit.
所以,我會稍微擴展它。
37:32.635–37:34.895
We see the logo up here that it made.
我們看到這裡顯示它製作的標誌。
37:34.895–37:36.796
We see 83% creator replies,
我們看到創作者回覆率為 83%,
37:36.796–37:37.870
78 total likes.
總共有 78 個讚。
37:37.870–37:40.041
We can switch between overview,
我們可以在總覽、
37:40.041–37:40.685
replies,
回覆、
37:40.685–37:41.167
ideas,
想法、
37:41.167–37:41.972
questions,
問題、
37:41.972–37:43.178
and the explorer.
和資源管理器之間切換。
37:43.178–37:44.317
And this is really cool.
這真的很酷。
37:44.317–37:46.284
It looks like every single comment has a link.
看起來每個留言都附帶了一個連結。
37:46.284–37:47.452
So, if I click on this,
所以,如果我點擊這裡,
37:47.452–37:48.751
does it actually take us
它真的會帶我們
37:48.751–37:49.280
Okay, no.
好的,不行。
37:49.280–37:51.820
It didn't actually sync up every single comment to a link.
它並沒有真的將每個留言同步對應到一個連結。
37:51.820–37:53.254
But it's cool that it showed us that
但顯示這個資訊很酷,
37:53.254–37:54.886
because that gave us a nice idea of like,
因為這給了我們一個很好的概念,
37:54.886–37:55.430
"Okay, cool.
「好的,很酷。
37:55.430–37:56.675
I do actually want a link."
我確實想要一個連結。」
37:56.675–37:59.729
Now, you can actually go ahead and work that into the back end code
現在,你可以繼續將這個功能整合到後端程式碼中,
37:59.729–38:02.558
where every single comment should be associated with a link
讓每個留言都應該與一個連結關聯,
38:02.558–38:04.538
so that I could open it up and respond to it.
這樣我就可以打開它並回覆。
38:04.538–38:06.281
Or we could take it one step further
或者我們可以再進一步,
38:06.281–38:06.701
and say,
說,
38:06.701–38:10.848
"Okay, what would it look like for me to be able to respond right in this dashboard?"
「好的,如果我能夠在這個儀表板上直接回覆,會是什麼樣子呢?」
38:10.848–38:14.934
And you actually fire off that API call to YouTube to respond on the right comment.
你實際上可以發送那個 API 呼叫到 YouTube,以回覆正確的留言。
38:14.934–38:16.405
Because that is 100% doable.
因為這絕對是可以做到的。
38:16.405–38:19.227
You guys have seen how I've automated my comment section a little bit.
你們已經看過我是如何稍微自動化我的留言區了。
38:19.227–38:19.805
Anyways, let's
總之,讓我們
38:19.805–38:21.051
Let's take a look at the overview.
讓我們來看看概覽。
38:21.051–38:23.216
We can see we have this really nice chart.
我們可以看到這個非常漂亮的圖表。
38:23.216–38:24.957
We have some AI insights over here
這裡有一些 AI 洞察
38:24.957–38:26.822
where I can click on work reply queue
我可以點擊「工作回覆佇列」
38:26.822–38:28.563
and that goes over to the replies.
然後就會進入回覆頁面。
38:28.563–38:30.491
I could also click on more content ideas
我也可以點擊「更多內容創意」
38:30.491–38:31.952
and that takes us to the ideas.
然後就會帶我們到創意頁面。
38:31.952–38:33.678
We can look at top tool mentions,
我們可以查看工具提及次數最多的內容、
38:33.678–38:34.574
reply priority,
回覆優先順序、
38:34.574–38:35.405
common themes.
常見主題。
38:35.405–38:37.752
We can also see the videos that are driving comments
我們也可以看到驅動留言的影片
38:37.752–38:40.535
and this would obviously grow as we pull in more and more data.
隨著我們匯入更多資料,這部分顯然會增長。
38:40.535–38:42.637
So let's say at this point we like this output
所以假設到目前為止我們喜歡這個輸出結果
38:42.637–38:44.285
and we want to actually deploy this
並且我們想要實際部署這個系統
38:44.285–38:47.760
because what you'll notice is this says that it's running on a localhost.
因為你會注意到這裡顯示它正在本機端(localhost)上運行。
38:47.760–38:49.342
So if I copy this link right here
所以如果我複製這裡的連結
38:49.342–38:50.194
and I go to Chrome
然後打開 Chrome
38:50.194–38:51.167
and I paste that in,
並貼上該連結,
38:51.167–38:53.601
it's going to pull up exactly what we saw, right?
它就會顯示出我們剛才看到的一模一樣的內容,對吧?
38:53.601–38:54.429
And it works
它運作正常
38:54.429–38:55.680
and it looks fine.
而且看起來也沒問題。
38:55.680–38:57.444
But if I gave you this localhost
但如果我給你這個 localhost
38:57.444–39:00.294
and you copy and pasted that into your own browser,
而你把它複製貼上到你自己的瀏覽器裡,
39:00.294–39:01.515
you would get nothing
你什麼也看不到
39:01.515–39:03.144
because this lives locally.
因為它只存在於本地。
39:03.144–39:06.041
It's being served on a server from our codebase.
它是從我們的程式碼庫中的伺服器提供服務的。
39:06.041–39:08.284
So what I'm going to show you how to do now
所以接下來我要展示給你看的是
39:08.284–39:11.546
is how do you actually get this from a localhost to the web?
你如何實際將這個從 localhost 部署到網路上?
39:11.546–39:12.518
And what we're going to do
而我們要做的是
39:12.518–39:13.722
is we're going to use two tools.
我們將使用兩個工具。
39:13.722–39:16.000
We're going to use The first tool is called GitHub
我們將使用第一個工具,叫做 GitHub
39:16.000–39:17.723
and the second tool is called Vercel.
第二個工具叫做 Vercel。
39:17.723–39:19.004
So the first thing you're going to do
所以你要做的第一件事
39:19.004–39:20.156
is you're going to type in GitHub
就是輸入 GitHub
39:20.156–39:21.266
and you're going to go over here
然後你到這裡來
39:21.266–39:22.504
and you're going to make a profile.
建立一個個人檔案。
39:22.504–39:23.838
It's completely free to set up,
設定完全免費,
39:23.838–39:25.634
pretty much completely free to maintain.
維護也幾乎完全免費。
39:25.634–39:27.320
Once you've created your GitHub,
一旦你建立了 GitHub,
39:27.320–39:29.367
all you have to do is connect this to Codex
你所要做的就是將這個與 Codex 連接
39:29.367–39:33.039
and we're going to have Codex help us set up something called a repository
我們將讓 Codex 幫助我們設定一個叫做儲存庫(repository)的東西
39:33.039–39:36.240
which is basically just a collection of your files and folders.
基本上就是您檔案和資料夾的集合。
39:36.240–39:38.455
Remember how if we open up my file explorer
記得我們打開檔案總管時
39:38.455–39:40.606
and we look inside of our YouTube comment
查看我們的 YouTube 評論
39:40.606–39:42.821
or sorry, YouTube analytics demo folder,
或者說,YouTube 分析示範資料夾,
39:42.821–39:45.163
all of these files and folders are important
這些檔案和資料夾都很重要
39:45.163–39:48.074
and all we have to do is get these off of our local machine
我們只需要將這些從本機電腦
39:48.074–39:48.400
or not
或者說不是
39:48.400–39:50.320
off, they'll still live here locally.
移出,它們仍會保留在本機。
39:50.320–39:52.710
But we're going to get them into some sort of repository
但我們會將它們放入某種儲存庫
39:52.710–39:54.113
where I can access them publicly
讓我可以公開存取它們
39:54.113–39:56.243
or if you wanted to share these with other people,
或者如果您想與其他人分享這些內容,
39:56.243–39:57.594
they could access them as well.
他們也可以存取它們。
39:57.594–39:59.473
So it's kind of like having a Word doc locally
所以這有點像是在本機上擁有 Word 文件
39:59.473–40:02.368
but instead you're putting it on into Microsoft's cloud on OneDrive
但相反地,您將其上傳至 Microsoft 雲端上的 OneDrive
40:02.368–40:03.333
or something like that
或類似的地方
40:03.333–40:04.602
so that other people can use it
以便其他人可以使用它
40:04.602–40:06.532
and you could use it from a different machine.
您也可以從不同的機器上使用它。
40:06.532–40:07.771
So that's the first step.
所以這是第一步。
40:07.771–40:09.425
So let's go back into Codex
所以讓我們回到 Codex
40:09.425–40:13.561
and what do you do when you don't exactly know how something works?
當您不完全了解某事如何運作時,該怎麼辦?
40:13.561–40:14.320
You just ask.
你只需要詢問。
40:14.320–40:15.039
know how something works?
知道某事是如何運作的?
40:15.039–40:15.412
You just ask.
你只需要詢問。
40:15.412–40:16.493
So this looks really good.
這看起來真的很好。
40:16.493–40:17.552
What I want to do is
我想要做的是
40:17.552–40:19.175
I want to sync this code base
我想要同步這個程式碼庫
40:19.175–40:20.869
for this specific dashboard
針對這個特定的儀表板
40:20.869–40:22.280
to a GitHub repository.
到 GitHub 儲存庫。
40:22.280–40:24.105
So, help me get that signed up.
所以,幫我註冊這個。
40:24.105–40:26.177
Help me get connected here to GitHub,
幫我在此處連線到 GitHub,
40:26.177–40:29.052
and then I want you to help me create that actual repo
然後我想要你幫我建立那個實際的儲存庫
40:29.052–40:31.057
and push everything into that repo.
並將所有內容推送到該儲存庫。
40:31.057–40:32.924
And it even mentioned that right here.
這裡甚至提到了這一點。
40:32.924–40:34.954
Note, this folder is not currently a Git repo,
注意,這個資料夾目前不是 Git 儲存庫,
40:34.954–40:36.877
so there is no diff and status to summarize.
因此沒有差異和狀態可供摘要。
40:36.877–40:38.755
So, I'm going to shoot off that message,
所以,我將發送該訊息,
40:38.755–40:41.372
and now it's going to help us actually sync up to GitHub.
現在它將幫助我們實際同步到 GitHub。
40:41.372–40:43.683
Now, there is a difference between Git and GitHub.
現在,Git 和 GitHub 之間存在差異。
40:43.683–40:47.031
Really the same thing of version control and all this stuff,
本質上都是關於版本控制等這些東西,
40:47.031–40:47.901
but Git is local
但 Git 是本地的
40:47.901–40:49.374
and GitHub is on the cloud.
GitHub 則是在雲端上。
40:49.374–40:51.449
And what's important here is that it says,
這裡重要的是它提到,
40:51.449–40:54.590
"I'll avoid committing secrets, especially the .env.local."
「我會避免提交機密資訊,特別是 .env.local。」
40:54.590–40:57.850
And so, that's why I told you to always paste your keys in that .env,
所以這就是我告訴你要把金鑰貼到那個 .env 檔案裡的原因,
40:57.850–40:59.925
not into some random file called secrets.
而不是放到某個叫做 secrets 的隨機檔案中。
40:59.925–41:01.306
It has to be in the .env
它必須在 .env 裡
41:01.306–41:03.839
because that dot in front of the word env
因為 env 這個字前面的那個點
41:03.839–41:07.830
basically tells Codex or Cloud Code or whatever you're using,
基本上是在告訴 Codex 或 Cloud Code 或你使用的任何工具,
41:07.830–41:11.821
it tells it to exclude this from any, you know, public commits.
它會指示該工具將此內容排除在任何公開提交之外。
41:11.821–41:14.102
So, this point I've already set up the GitHub CLI.
所以,關於這一點,我已經設定好 GitHub CLI。
41:14.102–41:15.311
If you haven't, it would just say,
如果你還沒設定,它只會說,
41:15.311–41:16.477
"Hey, do you want to set this up?"
「嘿,你想設定這個嗎?」
41:16.477–41:17.772
And you'll say, "Yes." Very simple.
然後你會說「是」。非常簡單。
41:17.772–41:19.425
And then you'll authenticate,
接著你會進行驗證,
41:19.425–41:22.223
which means it'll basically just pop up a browser tab
這意味著它基本上只會彈出一個瀏覽器分頁
41:22.223–41:25.465
and you'll sign in with the account you used to create GitHub,
然後你用建立 GitHub 時使用的帳號登入,
41:25.465–41:28.400
and then boom, you will be connected to GitHub in Codex.
然後砰!你就會連接到 Codex 裡的 GitHub。
41:28.400–41:29.455
And while this is syncing up,
而當這個正在同步時,
41:29.455–41:31.345
let me show you guys the next tool we're going to use.
讓我向大家展示我們接下來要使用的下一個工具。
41:31.345–41:33.221
This one is called Vercel.
這個工具叫做 Vercel。
41:33.221–41:35.320
Now, Vercel has a pretty generous free tier.
現在,Vercel 提供相當慷慨的免費方案。
41:35.320–41:36.713
You can see I've got a few products on here.
你可以看到我這裡有一些產品。
41:36.713–41:41.049
You're going to be able to get working on Vercel for free just to get started.
為了起步,你將能夠免費在 Vercel 上開始操作。
41:41.049–41:44.281
And what Vercel does is it basically takes that code,
而 Vercel 所做的,基本上就是將那些程式碼,
41:44.281–41:46.705
it takes, you know, this exact website,
它會取得,你知道,這個確切的網站,
41:46.705–41:49.496
which is on the back end, all this is it's code,
這在後端,所有這些都是程式碼,
41:49.496–41:52.434
and it takes this and it serves it on a actual URL,
然後它會將這些內容部署到一個實際的 URL,
41:52.434–41:55.078
on an actual domain that anyone can access.
在一個任何人都可以存取的實際網域上。
41:55.078–41:59.880
And what's really cool about this is Vercel and GitHub have a really nice partnership.
而這項功能真正酷的地方在於,Vercel 和 GitHub 之間有著非常好的合作關係。
41:59.880–42:01.534
They actually like talk to each other.
它們實際上會互相溝通。
42:01.534–42:03.868
So, anytime I make a change to our GitHub repo,
所以,每當我對我們的 GitHub 儲存庫進行更改時,
42:03.868–42:06.510
Vercel automatically picks that up and deploys it.
Vercel 就會自動偵測並部署它。
42:06.510–42:08.342
So, I know there's three tools here,
所以,我知道這裡有三個工具,
42:08.342–42:09.747
Codex, GitHub, and Vercel,
Codex、GitHub 和 Vercel,
42:09.747–42:12.434
but that doesn't mean we have to manage three places.
但這並不意味著我們必須管理三個地方。
42:12.434–42:14.374
All we have to do is manage Codex.
我們只需要管理 Codex。
42:14.374–42:17.168
So it said that it's created a private repo for us.
所以它說它為我們建立了一個私人儲存庫。
42:17.168–42:17.812
If I open this up,
如果我打開這個,
42:17.812–42:19.053
I don't want to open this up here.
我不想在這裡打開它。
42:19.053–42:20.671
And the reason why it doesn't show up here
而它沒有顯示在這裡的原因是
42:20.671–42:21.955
is because this is a private repo
是因為這是一個私有倉庫
42:21.955–42:23.573
and over here I'm not signed in to GitHub.
而這裡我沒有登入 GitHub。
42:23.573–42:25.459
So if I open this up in a browser
所以如果我在瀏覽器中打開它
42:25.459–42:27.346
where I am signed in to GitHub,
而我已登入 GitHub,
42:27.346–42:29.534
we can see YouTube Analytics Demo.
我們可以看到 YouTube Analytics Demo。
42:29.534–42:30.667
This is a private repo
這是一個私有倉庫
42:30.667–42:33.751
and what's in here is all of the different folders and files
這裡面包含了所有不同的資料夾和檔案
42:33.751–42:36.646
that we've actually created to spin up this dashboard.
這些是我們實際建立用來啟動這個儀表板的內容。
42:36.646–42:38.211
And now what's really cool is
現在真正酷的是
42:38.211–42:39.189
if I go into Vercel
如果我進入 Vercel
42:39.189–42:41.472
and I go ahead and click on add new project,
並繼續點擊新增專案,
42:41.472–42:42.972
I can connect this to GitHub
我可以將它連接到 GitHub
42:42.972–42:44.537
and it already is connected.
而且它已經連接好了。
42:44.537–42:45.929
So you would then just sign in
所以你只需要登入
42:45.929–42:48.074
and you would connect your Vercel to GitHub.
並將你的 Vercel 連接到 GitHub。
42:48.074–42:50.432
And now you can import any of your repos.
現在你可以匯入任何你的倉庫。
42:50.432–42:53.720
So right here you can see YouTube Analytics Demo 1 minute ago.
所以在這裡你可以看到 YouTube Analytics Demo,一分鐘前。
42:53.720–42:55.111
I'm going to click on import.
我將點擊匯入。
42:55.111–42:56.370
And that's literally that simple.
實際上就是這麼簡單。
42:56.370–42:57.921
I'm going to click on deploy
我將點擊部署
42:57.921–42:59.473
and then in maybe 30 seconds
然後大約在 30 秒後
42:59.473–43:02.103
we will have our YouTube Analytics Dashboard,
我們就會擁有我們的 YouTube Analytics 儀表板
43:02.103–43:03.924
but we'll have it up on a live URL.
但我們會透過一個實際的 URL 來呈現它
43:03.924–43:04.416
Awesome.
太棒了
43:04.416–43:05.724
So it says congratulations,
所以它顯示恭喜
43:05.724–43:07.142
you have deployed a new project
您已部署了一個新專案
43:07.142–43:09.486
and I'm going to go ahead and continue to dashboard.
接著我會繼續前往儀表板
43:09.486–43:12.347
And this gives us a youtube-analytics-demo.vercel.app
這為我們提供了 youtube-analytics-demo.vercel.app
43:12.347–43:14.800
a youtube-analytics-demo.vercel.app domain.
一個 youtube-analytics-demo.vercel.app 網域
43:14.800–43:17.107
And if you wanted to switch this off to your own domain,
如果您想將其切換為自己的網域
43:17.107–43:18.040
you certainly could.
您當然可以
43:18.040–43:21.100
You would just basically have to move the DNS records over here.
您基本上只需將 DNS 記錄移至這裡
43:21.100–43:22.333
But I'm going to click on this
但我將點擊這裡
43:22.333–43:25.519
so you guys can see that this is the exact same thing we were just looking at.
讓你們看到這正是我們剛才所查看的內容
43:25.519–43:26.108
Our replies,
我們的回覆
43:26.108–43:26.589
our ideas,
我們的想法
43:26.589–43:27.285
our questions,
我們的問題
43:27.285–43:27.927
our explorer,
我們的探索器
43:27.927–43:29.212
everything here is the same.
這裡的一切都是相同的
43:29.212–43:30.578
Except for now I could take this URL
只是現在我可以複製這個 URL
43:30.578–43:31.850
and I could open it up on my phone.
我可以在手機上打開它。
43:31.850–43:33.279
Or I could open it up on my laptop.
或者我可以在筆記型電腦上打開它。
43:33.279–43:34.522
Or you guys could open it up.
或者你們可以打開它。
43:34.522–43:35.232
And like I said,
就像我說過的,
43:35.232–43:36.380
what's cool about that is
這很酷的地方在於
43:36.380–43:38.347
we basically are able to then test in Codex.
我們基本上能夠在 Codex 中進行測試。
43:38.347–43:39.775
We can iterate right here.
我們可以在這裡進行迭代。
43:39.775–43:40.957
We can make changes.
我們可以進行修改。
43:40.957–43:42.057
But just because we make changes
但只是因為我們進行了修改
43:42.057–43:43.727
doesn't mean that it's actually going to go live.
並不意味著它實際上會上線。
43:43.727–43:48.079
So if I said, "Hey, I want you to change the entire background instead of blue to be red."
所以如果我說:「嘿,我想讓你把整個背景從藍色改成紅色。」
43:48.079–43:49.600
And it would say, "Okay, cool.
它會說:「好的,很棒。
43:49.600–43:50.488
Here's the red background.
這是紅色背景。
43:50.488–43:53.075
Here's the localhost to test it out on."
這是用於測試的本機位址。」
43:53.075–43:57.240
And if we like it, we say, "Okay, push those changes to our repo."
如果我們喜歡它,我們會說:「好的,將這些更改推送到我們的儲存庫。」
43:57.240–44:01.475
And then as soon as we push those changes, Vercel would automatically deploy those onto the real URL.
然後一旦我們推送這些更改,Vercel 就會自動將它們部署到實際的網址上。
44:01.475–44:02.633
But if we said, "You know what?
但如果我們說:「你知道嗎?
44:02.633–44:03.300
I don't like that.
我不喜歡那個。
44:03.300–44:04.344
Just keep it as is."
就保持原樣吧。」
44:04.344–44:07.019
then our main production site never got touched.
那麼我們的主要生產網站就完全沒有被觸動。
44:07.019–44:11.175
And that's how we keep a clean separation to test and to have something in production.
這就是我們如何保持測試與生產環境的清晰分離。
44:11.175–44:12.415
Okay, awesome.
好的,太棒了。
44:12.415–44:14.092
So, what do we have now?
那麼,我們現在有什麼呢?
44:14.092–44:15.311
We have a working project,
我們擁有一個運作中的專案,
44:15.311–44:16.696
and I'm opening up this folder
我現在打開這個資料夾
44:16.696–44:18.746
just to show you how much we've actually done
只是想展示我們實際上完成了多少工作
44:18.746–44:19.300
in the past,
在過去,
44:19.300–44:19.909
I don't know,
我不確定,
44:19.909–44:21.128
30 to 40 minutes together.
大約花了 30 到 40 分鐘。
44:21.128–44:23.474
And we've set up a bunch of different stuff.
我們設置了許多不同的東西。
44:23.474–44:25.499
Now, what do I want to talk about next
接下來我想談論的是
44:25.499–44:26.444
is automations.
是自動化功能
44:26.444–44:27.367
So, already over here
所以,在這一側
44:27.367–44:29.110
you can see this tab called automations.
你可以看到一個名為自動化的標籤頁。
44:29.120–44:31.314
Automate work by setting up scheduled chats.
透過設定排程聊天來自動化工作。
44:31.314–44:33.576
You can set up things like a status report,
你可以設定像是狀態報告,
44:33.576–44:34.352
release prep.
發布準備等事項。
44:34.352–44:35.982
There's bunch of different things here
這裡有許多不同的選項
44:35.982–44:37.612
that give you sort of some inspiration.
可以給你一些靈感。
44:37.612–44:38.951
But, what's really cool is
但真正酷的是
44:38.951–44:40.472
you can turn all of your skills
你可以將所有技能
44:40.472–44:42.298
or any of your repeatable workflows
或任何可重複的工作流程
44:42.298–44:43.272
into an automation
轉化為自動化
44:43.272–44:44.246
that Codex will run
讓 Codex 執行
44:44.246–44:45.960
without needing your oversight.
而無需你的監督。
44:45.960–44:47.281
So, I'm going to open up a new chat
所以,我將開啟一個新的對話
44:47.281–44:48.896
in our YouTube Analytics Demo project,
在我們的 YouTube 分析示範專案中,
44:48.896–44:49.875
and I'm going to go ahead
接著我將繼續
44:49.875–44:51.245
and start chatting to Codex here.
在這裡開始與 Codex 對話。
44:51.245–44:53.793
Okay, so we've just done a lot of stuff together.
好的,我們剛才一起做了很多事情。
44:53.793–44:57.617
We built a skill that grabs YouTube comments from my YouTube,
我們建立了一個技能,從我的 YouTube 抓取留言,
44:57.617–45:01.600
and it puts them into an Excel sheet after it does some analysis.
並在進行一些分析後將其放入 Excel 檔案中。
45:01.600–45:03.098
And that's coming out really nice.
結果看起來非常不錯。
45:03.098–45:07.344
And then we built a dashboard served on then we built a dashboard served on Vercel
然後我們建立了一個在 Vercel 上運行的儀表板
45:07.344–45:12.360
that actually displays visually all of those analytics and statistics from that Excel sheet.
該儀表板實際上視覺化顯示了來自該 Excel 檔案的所有分析與統計數據。
45:12.360–45:16.869
Now, what I want to do is I want to set up an automation that just refreshes this every week.
現在,我想做的是設定一個自動化流程,每週自動重新整理這個內容。
45:16.869–45:19.824
So, let's just say every Sunday at 5:00 p.m.,
所以,讓我們假設每個週日下午五點,
45:19.824–45:23.498
I want you to run the YouTube comments analytics skill.
我希望你執行 YouTube 留言分析技能。
45:23.498–45:28.130
And then what I want you to do with that is update that data on that Excel sheet,
然後,我希望你利用這個結果更新該 Excel 檔案中的數據,
45:28.130–45:29.578
you know, add more rows,
你知道的,新增更多資料列,
45:29.578–45:31.025
update the statistics,
更新統計數據,
45:31.025–45:34.210
and that will automatically sync to the GitHub repo.
這將自動同步到 GitHub 儲存庫。
45:34.210–45:35.797
So, after you make those changes,
所以,在你做出這些變更之後,
45:35.797–45:38.971
you'll have to also reflect those changes onto the actual code base
你也必須將這些變更反映到實際存放儀表板的程式碼庫中,
45:38.971–45:40.274
where the dashboard lives,
然後將這些變更推送到 GitHub,
45:40.274–45:42.371
and then you'll push those changes to GitHub
以便它們能自動反映在 Vercel 上。
45:42.371–45:44.865
so that they automatically get reflected in Vercel.
這樣它們就會自動反映在 Vercel 上
45:44.865–45:46.769
So, a lot of moving pieces here,
但基本上從高層面來看,
45:46.769–45:48.454
but basically high-level,
你需要獲取更多留言,
45:48.454–45:50.285
you need to get more comments,
重新進行分析,
45:50.285–45:51.457
redo the analysis,
將資料更新到 Excel 中,
45:51.457–45:53.216
refresh the data into Excel,
這樣我就能每週收到關於我的 YouTube 留言回覆狀況的報告。
45:53.216–45:56.072
and that way I'm always getting a weekly report
好的,所以老實說,感覺這個提示有點凌亂,
45:56.072–45:59.222
of what's going on with my YouTube comment replies.
但 Codex 應該能夠很好地處理它,
45:59.222–46:01.993
Okay, so honestly felt like a little bit of a messy prompt,
好吧,老實說,這個提示感覺有點雜亂
46:01.993–46:03.840
but Codex should be able to do a good job
並確保它能夠按照我們希望的方式為我們設定這項自動化。
46:03.840–46:05.398
of asking us any questions it has
現在,我想請各位思考的一件事是,
46:05.398–46:08.804
and making sure that it's able to actually set up this automation for us
並確保它能夠為我們實際設定這項自動化流程
46:08.804–46:09.680
the way we want it.
我們希望它呈現的方式
46:09.680–46:12.114
Now, something I want you guys to think about here
現在,我想請大家思考一件事
46:12.114–46:16.093
is the way that I approach building AI automations and skills and stuff like this
是我建構 AI 自動化、技能等類似事物的方法
46:16.093–46:18.052
is remember when we talked about skills
請記得我們之前談過技能
46:18.052–46:19.596
and I said every time you use it,
我說過每次使用它
46:19.596–46:20.783
it's going to get better
它都會變得更好
46:20.783–46:22.040
cuz you can get feedback?
因為你可以獲得回饋嗎?
46:22.040–46:24.391
You should honestly think of these automations in a similar way.
你應該誠懇地以類似的方式看待這些自動化。
46:24.391–46:27.035
You should think about it like you're teaching a kid to ride a bike.
你應該把它想像成在教小孩騎腳踏車。
46:27.035–46:28.796
You're not going to just chuck a kid on a bike
你不會只是把小孩丟上腳踏車
46:28.796–46:29.970
and say, "Okay, go have fun."
然後說:「好了,去開心騎吧。」
46:29.970–46:31.926
You're going to start off by holding the handles
你會先握住把手
46:31.926–46:33.149
and walking alongside the kid
並陪著小孩一起走
46:33.149–46:35.448
and saying, "Okay, you're leaning too much to the right.
同時說:「好了,你向右傾斜太多了。
46:35.448–46:36.565
You need to lean more to the left
你需要向左傾斜更多
46:36.565–46:37.769
and you need to center your weight
並且你需要將重心放正
46:37.769–46:39.230
and you need to make sure you're pedaling
你需要確保自己在踩踏板
46:39.230–46:40.219
and you need to do all this."
並且你需要做所有這些事情。」
46:40.219–46:42.110
And slowly over time you'll start getting more trust
隨著時間慢慢推移,你會開始建立更多信任
46:42.110–46:43.280
and you'll take your hand off the
然後你會把手從
46:43.280–46:43.758
handlebars
把手上拿開
46:43.758–46:45.863
and you'll start to walk a little bit farther behind.
然後你會開始在後面走遠一點。
46:45.863–46:48.662
And eventually maybe you'll take off the training wheels and stuff like that.
最終也許你會拆掉輔助輪之類的東西。
46:48.662–46:49.817
The point I'm making here
我想強調的重點是
46:49.817–46:53.228
is don't expect your automations or skills to be perfect on the first shot.
不要期望你的自動化或技能在第一次嘗試時就完美無缺。
46:53.228–46:54.375
That's just unrealistic.
那是不切實際的。
46:54.375–46:56.214
You should be expecting them to get better
你應該期待它們會變得更好
46:56.214–46:57.108
the more you use them
隨著你使用它們次數的增加
46:57.108–46:59.262
because every time you use them you get more data.
因為每次使用它們你都會獲得更多數據。
46:59.262–47:00.939
But look how quickly it set that up.
但看看它設定得有多快。
47:00.939–47:02.520
It set up a weekly automation.
它設定了一個每週自動化任務。
47:02.520–47:04.219
It'll run every Sunday at 5:00 p.m.
它會在每個週日下午 5 點執行。
47:04.219–47:06.798
and it will just basically run inside of this project
它基本上會在這個專案內部執行
47:06.798–47:09.493
and it will run the YouTube comment insights workflow.
並執行 YouTube 留言洞察工作流程。
47:09.493–47:11.324
It will regenerate the Excel workbook.
它會重新生成 Excel 工作簿。
47:11.324–47:13.575
It will preserve and merge comment rows.
它會保留並合併留言資料列。
47:13.575–47:14.921
It will refresh the workbook.
它會重新整理工作簿。
47:14.921–47:16.599
It will verify the dashboard
它會驗證儀表板
47:16.599–47:19.396
and it will commit only those changes to our repo
並將這些變更僅提交到我們的儲存庫
47:19.396–47:21.563
and it will push it to the right branch
並將其推送到正確的分支
47:21.563–47:24.160
so that Vercel actually deploys all of that.
以便 Vercel 實際上部署所有這些內容。
47:24.160–47:25.934
And what you want to do is you come into the automations.
而你想做的是進入自動化設定。
47:25.934–47:27.523
You can see that we have this one
你可以看到我們有這個
47:27.523–47:28.929
which is Sunday at 5:00 p.m.
也就是週日下午五點
47:28.929–47:31.183
We can click into it to see the actual prompt
我們可以點擊進入查看實際的提示詞
47:31.183–47:32.685
that it will submit to Codex.
它將提交給 Codex 的內容
47:32.685–47:34.501
We could add some stuff here if we wanted,
如果我們想的話,可以在這裡添加一些內容
47:34.501–47:35.409
but we don't want to.
但我們不想這麼做
47:35.409–47:37.769
This will get injected into a new Codex chat
這將被注入到專案內新的 Codex 對話中
47:37.769–47:39.014
inside of our project.
在我們的專案內部
47:39.014–47:40.160
So, just as a test,
所以,作為一個測試
47:40.160–47:41.458
if I click on run now,
如果我點擊立即執行
47:41.458–47:44.600
you can see that this starts a new chat right here.
你可以看到這會在此處啟動一個新對話
47:44.600–47:46.403
This injected that exact prompt
這注入了那個確切的提示詞
47:46.403–47:48.540
that we looked at with the automation,
我們之前在自動化中查看過的那個
47:48.540–47:48.940
the ID,
識別碼
47:48.940–47:49.608
the memory,
記憶體
47:49.608–47:50.342
the last run,
上次執行
47:50.342–47:51.611
and the actual prompt.
以及實際的提示詞
47:51.611–47:53.808
And then it starts up this little progress sheet
然後它會啟動這個小進度表單
47:53.808–47:55.291
which is kind of like a to-do list
這有點像待辦事項清單
47:55.291–47:57.048
and it's going to go down in this order.
它將按照這個順序進行
47:57.048–47:59.939
And we have the full Codex Agentic loop going on here.
這裡正在進行完整的 Codex Agentic 循環。
47:59.939–48:01.524
So, if you're used to Cloud Code,
所以,如果你熟悉 Cloud Code,
48:01.524–48:03.108
this is basically the same thing
這基本上與在 Cloud Code
48:03.108–48:05.573
as running a local scheduled routine in Cloud Code
或 Cloud Co-work 中運行本地排程常規相同。
48:05.573–48:06.571
or in Cloud Co-work.
或者在 Cloud Co-work 中運行。
48:06.571–48:09.644
Now, the one thing you're going to have to think about here
現在,這裡有一件事你需要考慮
48:09.644–48:11.693
is because this is kind of a local cron,
是因為這有點像是本地排程(cron),
48:11.693–48:13.357
if you close out of the Codex app
如果你關閉 Codex 應用程式
48:13.357–48:15.470
or if you turn off your PC or your laptop,
或者關閉你的電腦或筆記型電腦,
48:15.470–48:16.760
this will stop running.
這就會停止運行。
48:16.760–48:19.639
In order for this to be truly 24/7 all the time,
為了讓這真正全天候 24/7 運行,
48:19.639–48:23.957
you would have to get this sort of Codex routine on the cloud somehow.
你必須以某種方式將這種 Codex 常規部署到雲端。
48:23.957–48:26.830
And that's what Cloud Code just added with their cloud routines.
而這就是 Cloud Code 透過其雲端常規功能所新增的內容。
48:26.830–48:28.553
Okay, so while this automation is running,
好的,所以當這項自動化正在運行時,
48:28.553–48:31.185
and we know we're going to make sure that it's working as expected,
我們知道我們會確保它按預期運作,
48:31.185–48:32.812
and if not, we'll correct it a little bit.
如果沒有,我們會稍微修正它。
48:32.812–48:35.518
But, I realized that I wanted to show you guys a little bit more
但是,我意識到我想要向你們展示更多
48:35.518–48:36.738
of that kind of computer use
那種電腦使用
48:36.738–48:38.330
and and browser use functionality.
以及瀏覽器使用功能。
48:38.330–48:41.796
So, if I go back into the actual um dashboard
所以,如果我回到實際的儀表板
48:41.796–48:43.240
where it built it,
它是在哪裡建置的,
48:43.240–48:45.560
which I believe was this one.
我相信是這個。
48:45.560–48:46.350
Yep, it was this one.
沒錯,就是這個。
48:46.350–48:50.498
What I'm going to say here is before we kind of keep making changes,
我想在這裡說的是,在我們繼續進行各種變更之前,
48:50.498–48:52.308
I want you to test the UI here.
我希望你先測試這裡的 UI。
48:52.308–48:54.821
I want you to open up this um dashboard,
我希望你開啟這個儀表板,
48:54.821–48:57.178
and I want you to open it up in this app
並希望你在這個應用程式中開啟它,
48:57.178–48:58.680
so I can watch you do it.
這樣我才能看著你操作。
48:58.680–49:00.975
I want you to use your browser use skill
我希望你使用你的瀏覽器操作技能,
49:00.975–49:02.051
and click around.
然後隨意點擊。
49:02.051–49:03.289
I want you to click on the buttons.
我希望你點擊那些按鈕。
49:03.289–49:04.842
I want you to try to break this thing.
我希望你試著搞壞這個東西。
49:04.842–49:06.248
I want you to stress test it
我希望你對它進行壓力測試,
49:06.248–49:06.759
and QA it.
並進行品質保證(QA)。
49:06.759–49:08.401
And let me know what you find,
然後告訴我你發現了什麼,
49:08.401–49:09.495
what bugs you find,
你找到了哪些錯誤,
49:09.495–49:11.410
and what we might need to improve.
以及我們可能需要改進的地方。
49:11.410–49:14.665
And so, all I did here is I explained in natural language what I wanted,
所以,我在這裡所做的,就是用自然語言解釋我想要什麼,
49:14.665–49:17.246
and we're going to be able to see it use the right skills.
我們將能夠看到它使用了正確的技能。
49:17.246–49:19.002
So, browser use is great for a lot of things.
所以,瀏覽器操作對於很多事情來說都很棒。
49:19.002–49:21.370
It's great for um QA-ing, like you just saw here,
它非常適合用於品質保證,就像你剛才在這裡看到的,
49:21.370–49:25.880
because it can find bugs and click around on things that typically it wouldn't be able to do.
因為它能找出錯誤,並點擊那些通常無法操作的項目。
49:25.880–49:27.862
It's also really great for certain automations.
它也非常適合用於某些自動化任務。
49:27.862–49:29.981
So, maybe you don't have an API for something,
所以,也許你沒有某個功能的 API,
49:29.981–49:33.885
and you want to be able to go in and download reports or go in and change some settings.
而你希望能夠進入系統下載報告,或進入系統變更某些設定。
49:33.885–49:36.167
I've done a few of those automations on my channel as well,
我也在我的頻道中執行過幾項這樣的自動化任務,
49:36.167–49:38.212
and browser use can be really, really good for that.
而瀏覽器使用功能對於這些任務來說真的非常有用。
49:38.212–49:40.608
And you can even use it to just search the web,
你甚至可以用它來搜尋網頁,
49:40.608–49:44.104
because you can use browser use in a way where it has like cookies,
因為你可以讓瀏覽器使用功能帶有 Cookie,
49:44.104–49:46.370
and it's able to remember your login info.
這樣它就能記住你的登入資訊。
49:46.370–49:48.315
So, you could log into something like school,
所以,你可以登入像學校系統這樣的平台,
49:48.315–49:50.413
where you'd have to get past the authentication,
在需要通過身份驗證的地方
49:50.413–49:52.716
and then the browser can automate and control things.
然後瀏覽器就能自動化並控制各項操作。
49:52.716–49:56.057
But anyways, what you see right here is the in-app browser open.
不過,總之,你現在在這裡看到的是應用程式內的瀏覽器已開啟。
49:56.057–50:00.398
And this little mouse right here, which kind of looks like the ChatGPT Alice logo,
而這裡這個小滑鼠游標,看起來有點像 ChatGPT Alice 的標誌,
50:00.398–50:01.739
is going to click around.
將會進行點擊操作。
50:01.739–50:02.811
You guys already saw it
你們剛才已經看到它
50:02.811–50:04.390
switch from overview to replies.
從總覽切換到回覆頁面。
50:04.390–50:07.080
You can see it's moving around even more now.
你可以看到它現在移動得更為頻繁。
50:07.080–50:09.367
And as it's clicking these different links
當它點擊這些不同的連結時
50:09.367–50:10.384
and moving around,
並四處移動,
50:10.384–50:12.036
it's going to start to document
它將開始記錄
50:12.036–50:13.815
what might be wrong with this app.
這個應用程式可能出了什麼問題。
50:13.815–50:15.314
And then we can obviously say,
接著我們顯然可以說,
50:15.314–50:15.974
"Okay, cool.
「好的,很棒。
50:15.974–50:17.486
Go make all of those changes for us."
請為我們進行所有那些變更。」
50:17.486–50:17.990
Right here,
就在這裡,
50:17.990–50:19.703
it found the thing with the YouTube link.
它找到了與 YouTube 連結相關的問題。
50:19.703–50:21.751
So, it said they have the correct URLs,
所以,它表示他們擁有正確的網址,
50:21.751–50:25.526
but the in-app browser did not visibly open the new tab after clicking.
但應用程式內瀏覽器在點擊後並未明顯開啟新分頁。
50:25.526–50:28.361
So, that's one of the things that we actually did notice ourselves.
所以,這正是我們實際觀察到的問題之一。
50:28.361–50:29.585
Now, browser use is pretty,
現在,瀏覽器使用功能相當,
50:29.585–50:30.170
I don't know,
我不知道,
50:30.170–50:32.680
it can feel kind of subjective when you're looking at it.
當你觀看時,它可能會感覺有點主觀。
50:32.680–50:34.409
I mean, this is pretty cool to watch it move live.
我的意思是,看著它即時運作相當有趣。
50:34.409–50:39.129
But that also happens in Cloud Code when I use like the Playwright CLI or something.
但當我使用 Playwright CLI 或其他工具時,Cloud Code 也會發生類似情況。
50:39.129–50:40.378
But from my testing,
但根據我的測試,
50:40.378–50:43.024
Codex browser use has been much more smooth
Codex 的瀏覽器使用功能更加順暢
50:43.024–50:44.641
and much more intelligent
而且更智能
50:44.641–50:49.419
than any other sort of browser use automations that I've built or used before.
比我之前建立或使用過的任何瀏覽器自動化功能都要好。
50:49.419–50:55.650
So, that is something that is really cool about Codex in this app here is that the browser use is really good.
所以,這個應用程式裡的 Codex 真的很酷的地方在於,它的瀏覽器操作功能非常出色。
50:55.650–50:59.614
Now, you could obviously use it still from a CLI or whatever, but it is pretty good.
當然,你仍然可以透過 CLI 或其他方式使用它,但效果相當不錯。
50:59.614–51:03.325
And like I said, there's just so many really cool use cases with browser automation.
就像我說過的,瀏覽器自動化有非常多非常酷的應用場景。
51:03.325–51:07.971
If you want to check out a few more, even though this video was Cloud Code, you would set it up the exact same way in Codex.
如果你想看更多範例,雖然這段影片是關於 Cloud Code 的,但在 Codex 中設定方式完全相同。
51:07.971–51:09.888
I'll tag a video right up here.
我會在這邊標註一段影片。
51:09.888–51:10.922
I mean, I love this.
我是說,我超愛這個功能。
51:10.922–51:12.672
It's literally going through the filters.
它實際上是在篩選條件中進行操作。
51:12.672–51:14.336
You guys saw it had something else up here.
你們看到這裡還有其他東西。
51:14.336–51:15.717
It's changing these check boxes.
它正在變更這些核取方塊。
51:15.717–51:16.809
It's changing the stuff.
它正在變更相關內容。
51:16.809–51:18.024
It did another search here,
它在這裡進行了另一次搜尋,
51:18.024–51:20.402
and it's really going to actually stress test this app
並且它實際上會對這個應用程式進行壓力測試
51:20.402–51:22.252
to make sure that it didn't miss anything.
以確保它沒有遺漏任何項目。
51:22.252–51:24.341
And what else is really cool is
而另一個非常酷的地方是
51:24.341–51:27.683
you can build in this sort of QA check into skills
你可以將這種品質檢查機制整合到技能
51:27.683–51:29.271
or into the knowledge.
或知識庫中。
51:29.271–51:31.641
So, next time when you're building another dashboard
所以,下次當你建立另一個儀表板時
51:31.641–51:33.221
or next time you're building a game,
或下次你建立遊戲時,
51:33.221–51:34.644
before it ever comes back to you,
在結果回報給你之前,
51:34.644–51:36.276
it already does a few passes visually
它已經在視覺上進行了幾輪檢查
51:36.276–51:38.225
and, you know, from like a code perspective,
而且,從程式碼的角度來看,
51:38.225–51:38.910
but you can make
但你可以確保
51:38.920–51:43.635
sure that, "Hey, don't ever ever ever come back to me until you've stress tested with your own browser use."
「嘿,在沒有用你自己的瀏覽器使用情境進行壓力測試之前,絕對不要回來找我。」
51:43.635–51:47.185
And that's how you can really just make this stuff smarter and smarter every day.
這就是讓這些功能每天變得越來越聰明的方法。
51:47.185–51:49.384
All right, so it decided that it's done testing now.
好的,所以它決定現在測試已經完成了。
51:49.384–51:53.798
You can see that we have a bunch of things that passed, but it found a ton of improvements.
你可以看到我們有一堆通過的項目,但它發現了大量的改進空間。
51:53.798–51:55.345
It ended up finding six things.
它最終找到了六個問題。
51:55.345–51:58.489
The external links for YouTube aren't really working.
YouTube 的外部連結實際上無法運作。
51:58.489–52:00.533
The empty explorer state is too bare.
空的瀏覽器狀態顯示得太過空蕩。
52:00.533–52:01.776
Search is too literal.
搜尋功能太過字面化。
52:01.776–52:03.538
Active tab state is mostly visual.
分頁狀態主要只是視覺上的問題。
52:03.538–52:06.116
And there's some other things that are just coming through awkward
還有一些其他問題看起來很突兀,
52:06.116–52:07.958
and little changes that we need to make to the UI.
以及我們需要對 UI 進行的一些小修改。
52:07.958–52:09.316
So, what's really cool now is
所以,現在真正酷的地方是
52:09.316–52:11.465
I can say, "Okay, take all of these six changes
我可以說:「好的,把這六個修改項目
52:11.465–52:14.519
and build a plan around exactly how you're going to solve those."
並據此制定一個計畫,說明你將如何解決這些問題。」
52:14.519–52:16.782
And then once it comes back with its proper plan,
然後當它帶著適當的計畫回來時,
52:16.782–52:18.196
we would go ahead and execute.
我們就會繼續執行。
52:18.196–52:19.619
But now that I showed you guys that,
但既然我已經向大家展示了這一點,
52:19.619–52:22.122
let's check back in on our actual automation that's running.
讓我們回頭看看我們實際正在執行的自動化程序。
52:22.122–52:24.244
You can see that it is still going through the checks.
你可以看到它仍在進行檢查。
52:24.244–52:25.491
It's been about 10 minutes.
已經過了大約 10 分鐘。
52:25.491–52:27.417
So, I will just check back in with you guys
所以,我會稍後再回來跟各位確認
52:27.417–52:29.060
once this has been fully committed
一旦這個流程完全提交
52:29.060–52:32.063
and we'll see what changes we have on our actual live dashboard.
我們來看看實際線上儀表板上有哪些變更。
52:32.063–52:32.880
Oh my goodness.
天啊
52:32.880–52:34.708
So, this was pushing like 20 minutes,
所以,這個推送過程大約花了 20 分鐘,
52:34.708–52:37.184
so I stopped it and said, "Why is it taking so long?"
於是我把它停下來並想:「為什麼這麼久?」
52:37.184–52:40.191
And it's because it couldn't overwrite a file that I had open.
這是因為它無法覆蓋我已經開啟的檔案。
52:40.191–52:41.284
So, don't do that.
所以,不要這樣做。
52:41.284–52:44.505
But now we're going to go ahead and just keep this going.
但現在我們會繼續讓它運行。
52:44.505–52:46.210
But honestly, there is a lesson there,
但老實說,這裡有個教訓,
52:46.210–52:48.448
which is sometimes it is nice to be able to watch it,
那就是有時候能夠看著它運作是不錯的,
52:48.448–52:52.338
especially before, like I said, before we know that this automation is really refined,
特別是在像我說的,在我們知道這個自動化流程已經非常完善之前,
52:52.338–52:54.480
because if it is going down the wrong path or it's
因為如果它走錯了方向,或者
52:54.480–53:00.217
hitting some sort of roadblock that you the human should be able to just be able to solve in like a quick 20 seconds,
遇到了某種路障,而身為人類的你本該能在短短 20 秒內解決,
53:00.217–53:03.696
then stop it and ask a question or stop it and steer it in the right way,
那就停下來提問,或者停下來引導它回到正確軌道,
53:03.696–53:05.720
because it's going to help not only save
因為這不僅能幫助你節省
53:05.720–53:07.331
you time, but it's also going to save you session limit.
時間,還能節省你的 session 額度。
53:07.331–53:09.794
Because if it was just burning tokens trying things,
因為如果它只是在浪費 token 嘗試各種方法,
53:09.794–53:12.089
when the fix was for me to just close out of the app,
當修復方法只是讓我關閉應用程式時,
53:12.089–53:16.792
then, you know, you'd rather have stopped that earlier before it's going down multiple wrong paths.
那麼,你知道,你寧願在它開始走錯多個方向之前更早停止。
53:16.792–53:18.761
And another thing that I just noticed,
還有我剛剛注意到的一件事,
53:18.761–53:20.976
which is really important to call out here,
這在這裡非常值得提出來討論,
53:20.976–53:23.007
is that when you look at the automation,
就是當你查看自動化流程時,
53:23.007–53:25.837
this automation is set up by default to run with GPT 5.2,
這個自動化預設設定為使用 GPT 5.2 執行,
53:25.837–53:27.437
which obviously we don't want.
這顯然不是我們想要的。
53:27.437–53:30.706
So, you're going to want to make sure that your model is set up correctly,
因此,你要確保模型設定正確
53:30.706–53:32.504
that the reasoning is set up correctly,
確保推理設定正確
53:32.504–53:34.629
and all of this other stuff is set up correctly,
以及所有其他相關設定都正確,
53:34.629–53:37.789
because that is also a reason why that run was probably taking so long.
因為這也是那次執行耗時那麼久的原因。
53:37.789–53:41.120
So, I just went ahead and retriggered a new run using GPT 5.5,
所以,我直接重新觸發了一個使用 GPT 5.5 的新執行,
53:41.120–53:43.519
and I decided to try this one out using high.
並且我決定嘗試使用 high 模式來執行這個。
53:43.519–53:46.112
Now, you also might be curious about the speed thing,
現在,你可能也會對速度選項感到好奇,
53:46.112–53:48.233
the difference between standard and fast.
也就是標準模式和快速模式之間的差異。
53:48.233–53:51.226
And honestly, I never really ever touch fast.
老實說,我從來沒有真的碰過快速模式。
53:51.226–53:55.180
I'm never working in something that's super time-sensitive where I need to go fast,
我從不在需要極度快速反應的超時間敏感情境中工作,
53:55.180–53:57.553
because that also eats up your usage a lot quicker.
因為那樣也會讓你的用量消耗得更快。
53:57.553–53:58.917
But this is much more like it.
但這就比較像樣了。
53:58.917–54:00.304
We can actually see it thinking
我們實際上可以看到它在思考
54:00.304–54:02.918
and now we're going to be able to get this back much quicker.
現在我們就能更快地取得這個結果。
54:02.918–54:04.751
Okay, so finally that has finished up.
好的,所以終於完成了。
54:04.751–54:09.308
You can see that it was able to make changes to that Excel sheet.
你可以看到它能夠對那個 Excel 試算表進行修改。
54:09.308–54:11.428
And it says that it analyzed 208 comments.
它表示它分析了 208 則評論。
54:11.428–54:12.934
Now, because we just did this,
現在,因為我們剛剛才做過這個,
54:12.934–54:14.199
you know, earlier today,
你知道,就在今天早些時候,
54:14.199–54:16.729
I'm curious if it actually analyzed 200 of the same
我很好奇它是否真的分析了同樣的 200 則評論,
54:16.729–54:18.235
or if it knew not to duplicate.
還是它知道不要重複分析。
54:18.235–54:19.748
And that's something that we'll want to take a look at.
而這是我們想要進一步查看的地方。
54:19.748–54:22.285
But let's actually head over to my GitHub real quick.
但讓我們先快速前往我的 GitHub。
54:22.285–54:24.087
This is the repo that we just set up, right?
這就是我們剛剛設立的儲存庫,對吧?
54:24.087–54:25.832
And if I go ahead and give this a refresh,
如果我繼續刷新這個頁面,
54:25.832–54:27.683
we should now see that we have two commits.
我們現在應該會看到有兩個提交記錄。
54:27.683–54:29.155
So, in the second commit,
所以,在第二次提交中,
54:29.155–54:31.397
this shows we refreshed the comments.
這顯示我們刷新了評論。
54:31.397–54:33.746
So, every single time that you make a change to this repo,
所以,每當您對這個儲存庫進行任何更改時,
54:33.746–54:34.645
it'll show that here.
它都會在這裡顯示出來。
54:34.645–54:36.291
So, you can check at the version control
因此,您可以檢查版本控制,
54:36.291–54:37.588
and you can see what's going on.
並查看發生了什麼情況。
54:37.588–54:41.662
But what that means is because our GitHub repo here got a new commit,
但這意味著因為我們的 GitHub 儲存庫這裡有了新的提交,
54:41.662–54:42.899
if we go to Vercel now
如果我們現在前往 Vercel
54:42.899–54:45.009
and we look at this actual project,
並查看這個實際專案
54:45.009–54:46.391
if I go to deployments,
如果我進入部署頁面
54:46.391–54:50.029
we should be able to see that this just picked up a new change.
我們應該能看到它剛剛抓取了一個新的變更。
54:50.029–54:50.791
1 minute ago,
1 分鐘前,
54:50.791–54:52.729
it picked up this new deployment.
它抓取了這個新的部署。
54:52.729–54:54.531
So, now if we go to the dashboard
所以,如果我們現在前往儀表板
54:54.531–54:55.987
and I give this a refresh,
並重新整理這個頁面,
54:55.987–54:57.027
this has new data.
這裡就有了新的資料。
54:57.027–54:58.875
So, this used to say 200 videos,
所以,這裡之前顯示的是 200 部影片,
54:58.875–55:00.297
or sorry, 200 comments,
或者說,200 則留言,
55:00.297–55:01.434
and now it says 208.
現在顯示的是 208。
55:01.434–55:05.407
So, that is just proof that we were able to actually get some fresh insights.
所以,這只是證明我們確實獲得了一些新的洞察。
55:05.407–55:10.413
Now, what's really nice is that it looks like it just basically added on eight new ones.
現在,真正令人高興的是,它看起來基本上只新增了八個。
55:10.413–55:11.763
It didn't like add on 200
它並沒有新增 200 個
55:11.763–55:12.708
and then 200 more
然後再新增 200 個
55:12.708–55:13.855
and then eight more,
然後再新增八個,
55:13.855–55:16.555
because it realized that they were duplicated.
因為它意識到那些是重複的。
55:16.555–55:19.804
And if we actually go and open up the actual source of truth,
如果我們實際上去開啟真正的資料來源,
55:19.804–55:20.931
if I go into our repo,
如果我進入我們的儲存庫,
55:20.931–55:21.793
I go to outputs,
我進入輸出資料夾
55:21.793–55:23.583
I go to YouTube comment insights
我進入 YouTube 評論洞察
55:23.583–55:27.362
and I click on the Excel sheet that we accidentally had open earlier,
然後我點擊我們之前不小心打開的 Excel 檔案
55:27.362–55:29.560
we see that the dashboard is exactly the
我們看到儀表板完全一樣
55:29.560–55:29.866
same,
相同
55:29.866–55:32.497
except for now we've analyzed eight extra comments
只是現在我們分析了額外八則評論
55:32.497–55:33.965
instead of the original 200.
而不是原本的 200 則。
55:33.965–55:37.080
But I wanted to show you guys what happened inside of this run.
但我想要向大家展示這次執行過程中發生了什麼事。
55:37.080–55:38.048
So, as you guys know,
所以,如你們所知,
55:38.048–55:40.952
we ran into that issue where I had the Excel sheet open, right?
我們遇到了那個問題,就是我當時打開了 Excel 檔案,對吧?
55:40.952–55:42.174
That was the first mistake.
那是第一個錯誤。
55:42.174–55:44.593
The second mistake was that this was running with 5.2.
第二個錯誤是這次執行使用的是 5.2 版本。
55:44.593–55:46.251
So, we reset the automation,
所以,我們重設了自動化流程,
55:46.251–55:48.254
and now it's running with 5.5 high.
現在它使用的是 5.5 high 版本。
55:48.254–55:50.537
But then what happened is this was running for quite a while again.
但接著發生的是,這次執行又花了很長一段時間。
55:50.537–55:51.083
So, I stopped it
所以,我停止了它
55:51.083–55:52.891
and said, "Hey, you've been running for a long time.
並說:「嘿,你都執行很長一段時間了。
55:52.891–55:54.218
Why is it taking so long?
為什麼這麼久?
55:54.218–55:55.447
This is a very simple task."
這是非常簡單的任務。」
55:55.447–55:56.142
So, basically,
所以,基本上,
55:56.142–55:57.852
I knew that something went wrong here.
我知道這裡出了問題。
55:57.852–56:00.570
Because when we built this dashboard from scratch,
因為當我們從頭建立這個儀表板時,
56:00.570–56:02.160
it only took about 20 minutes.
只花了大約 20 分鐘。
56:02.160–56:04.031
But updating it took 40 minutes
但更新它卻花了 40 分鐘
56:04.031–56:05.542
or probably even longer.
甚至可能更久。
56:05.542–56:06.847
So, I knew something was going wrong.
所以,我知道有問題發生。
56:06.847–56:07.521
So, I stopped it,
於是我停止了它,
56:07.521–56:09.352
and I wanted to dig into it a little bit better.
並想更深入地調查一下。
56:09.352–56:10.841
And it And I was able to find out
然後我能夠找出
56:10.841–56:12.509
that it was stuck on some process.
它卡在某個處理程序上。
56:12.509–56:13.857
So, I said, "What do you need from me
於是我說:「你需要我提供什麼
56:13.857–56:15.903
in order to make sure that this doesn't happen again,
才能確保這種情況不再發生,
56:15.903–56:18.042
and that you're able to just basically actually give us
並且你們能夠基本上確實提供
56:18.042–56:19.715
this deliverable that we're looking for?"
我們所尋求的交付成果?」
56:19.715–56:21.203
And it had me make some confirmations.
它讓我進行了一些確認。
56:21.203–56:22.450
And then as soon as I did that,
然後一旦我這麼做了,
56:22.450–56:23.488
it took about 7 minutes,
只花了大約 7 分鐘,
56:23.488–56:25.566
and then it was able to make all of those changes.
然後它就能完成所有這些變更。
56:25.566–56:27.316
So, the reason why I wanted to show you this
所以,我想向你們展示這個
56:27.316–56:29.265
is because once again, this stuff is not magic.
原因在於,再次強調,這些東西並非魔法。
56:29.265–56:30.370
You don't deploy something,
你不會部署某個東西,
56:30.370–56:31.935
and you just expect it to work perfectly.
然後就指望它能完美運作。
56:31.935–56:35.237
But what's really cool is I could say, "Awesome.
但真正酷的是,我可以說:「太棒了。
56:35.237–56:37.607
So, everything worked as expected on the dashboard.
儀表板上的所有功能都如預期般運作。
56:37.607–56:39.195
The analytics have been updated.
分析數據也已更新。
56:39.195–56:41.064
Now, I want you to dig into what you just did
現在,我希望你深入探討你剛才所做的
56:41.064–56:42.079
with this automation,
這項自動化工作,
56:42.079–56:43.147
and help me understand,
並幫助我理解,
56:43.147–56:45.870
are there any opportunities to streamline this automation?
是否有機會簡化這項自動化流程?
56:45.870–56:48.228
Are there any opportunities to make this better
是否有機會讓這項自動化
56:48.228–56:49.053
and more robust?
變得更好且更穩健?
56:49.053–56:50.805
Do you have any recommendations here?"
你這邊有什麼建議嗎?
56:50.805–56:52.292
And I'll go ahead and fire that off
接著我會繼續發送這個請求,
56:52.292–56:55.213
and see if there's any way that we can make this automation better.
看看是否有辦法讓這項自動化變得更好。
56:55.213–56:56.255
It's really important
這真的很重要,
56:56.255–56:58.448
because there's this concept called dark code,
因為有個概念叫做「暗碼」(dark code),
56:58.448–57:00.860
which basically means you're writing a bunch of code
基本上是指你在進行「氛圍編碼」(vibe coding)時寫了一堆程式碼,
57:00.860–57:02.176
when you do your vibe coding,
但實際上你並不知道
57:02.176–57:04.150
but you don't actually know what's going on
在 Python 腳本或其他
57:04.150–57:05.640
in the Python script or whatever
你所使用的語言中到底發生了什麼事。
57:05.640–57:07.195
language you're using there.
你正在使用的語言。
57:07.195–57:09.520
And not to say that you need to understand every line
我不是說你需要理解每一行
57:09.520–57:10.115
of your code,
程式碼,
57:10.115–57:12.008
but you need to understand fundamentally
但你必須從根本上理解
57:12.008–57:13.089
what it's doing and why.
了解它在做什麼以及為什麼。
57:13.089–57:16.194
And if there are any opportunities to get rid of some code,
如果有任何機會可以移除一些程式碼,
57:16.194–57:17.617
or if you have to, you know,
或者如果你必須,你知道,
57:17.617–57:20.204
bake in some more guardrails in a certain place,
在某些地方加入更多防護措施,
57:20.204–57:21.433
or anything like that.
或類似的事情。
57:21.433–57:22.869
So, it's basically looking at this
所以,基本上是在檢視這個
57:22.869–57:24.108
to see if we can make it faster,
看看我們能否讓它更快,
57:24.108–57:25.148
or if we can make it safer.
或者讓它更安全。
57:25.148–57:27.091
Now, ultimately, as long as it's working,
現在,最終來說,只要它能運作,
57:27.091–57:28.646
I don't really care how fast it is.
我真的不介意它有多快。
57:28.646–57:30.623
Because if this is running once a week,
因為如果這個每週只執行一次,
57:30.623–57:32.538
I don't care if it happens at 6:00 p.m.
我不介意它是在下午 6 點
57:32.538–57:33.156
or 6:30 p.m.
還是下午 6 點 30 分
57:33.156–57:34.021
or even 7:00 p.m.
甚至是下午 7 點執行。
57:34.021–57:35.460
As long as it's actually working.
只要它確實能運作。
57:35.460–57:38.689
But sometimes speed is a big deal in your automations.
但有時速度在你的自動化中非常重要。
57:38.689–57:38.867
So,
所以,
57:38.867–57:39.993
it comes back and says,
它會回傳並表示,
57:39.993–57:40.289
"Yes,
「是的,
57:40.289–57:40.882
this works,
這可行,
57:40.882–57:41.060
but
57:41.060–57:42.779
it is still too agent orchestrated
它仍然過於依賴 Agent 協調,
57:42.779–57:42.957
and
57:42.957–57:44.794
too heavy for a weekly data refresh."
對於每週資料更新來說過於沉重。」
57:44.794–57:44.972
So,
因此,
57:44.972–57:46.335
we could add one repo script
我們可以新增一個 repo 腳本,
57:46.335–57:47.817
to basically run the builder.
基本上來執行建置器。
57:47.817–57:51.230
We could stop running the full next build for these sorts of updates.
我們可以停止為這類更新執行完整的 Next.js 建置。
57:51.240–57:53.439
And it's giving us all these different insights
它提供了我們各種不同的洞察,
57:53.439–57:55.033
that we could then go ahead and push
我們可以接著採取行動,
57:55.033–57:57.341
to make our automation and our system better here.
以改善我們的自動化與系統。
57:57.341–57:59.851
So, that's how you can kind of keep iterating upon it.
所以,這就是你可以持續迭代的方式。
57:59.851–58:04.436
Even if you yourself don't really know exactly how you would make this better,
即使你自己並不清楚該如何讓它變得更好,
58:04.436–58:07.187
you can use the AI to figure out and brainstorm.
你也可以利用 AI 來找出問題並進行腦力激盪。
58:07.187–58:07.472
Okay.
好的。
58:07.472–58:10.854
So, what you guys saw here is we created this product from scratch, right?
所以,各位在這裡看到的是,我們從頭開始建立了這個產品,對吧?
58:10.854–58:12.335
It was our YouTube analytics demo.
這是我們的 YouTube 分析功能示範。
58:12.335–58:13.687
We connected to YouTube,
我們連接了 YouTube,
58:13.687–58:14.588
we set up a skill,
我們設定了一個技能,
58:14.588–58:15.875
we set up an automation,
我們設定了一個自動化流程,
58:15.875–58:17.033
we set up a dashboard,
我們設定了一個儀表板,
58:17.033–58:18.385
we used some browser use,
我們使用了一些瀏覽器操作功能,
58:18.385–58:22.569
and now we have an actual system where every week it will pull in more comments,
現在我們擁有一個實際的系統,每週它都會抓取更多留言,
58:22.569–58:23.856
it will update our data,
它會更新我們的資料,
58:23.856–58:24.757
our Excel sheet,
我們的 Excel 試算表,
58:24.757–58:24.960
and
並且
58:24.960–58:28.888
then it pushes all of those changes to our actual live dashboard completely automatically.
然後它會完全自動地將所有這些變更推送到我們實際的線上儀表板。
58:28.888–58:32.027
So, I hope you guys enjoyed seeing that flow from basically idea,
所以,我希望你們喜歡看到這個從基本構想、
58:32.027–58:33.073
setting up a project,
建立專案
58:33.073–58:34.119
all the way to the end.
一直到最終完成的整個流程。
58:34.119–58:35.062
And just remember,
並且請記住,
58:35.062–58:37.713
what's really important is that this entire project,
真正重要的是,這個整個專案、
58:37.713–58:39.128
everything that we just did,
我們剛才所做的所有事情,
58:39.128–58:41.308
is literally just a folder on your computer.
實際上只是你電腦上的一個資料夾。
58:41.308–58:46.259
And what that means is you can customize this folder to be used by OpenClaw or CloudCode or whatever you want.
這意味著你可以自訂這個資料夾,讓 OpenClaw 或 CloudCode 或任何你想要的工具來使用。
58:46.259–58:48.883
Any agent can work inside of this directory now.
現在,任何代理程式都可以在這個目錄中運作。
58:48.883–58:51.786
And if I wanted to explicitly do this inside of Codex,
如果我想在 Codex 裡明確地執行這個操作,
58:51.786–58:53.963
well, I could go ahead and click on view.
那麼我可以繼續點擊「檢視」。
58:53.963–58:55.836
I could open up the terminal.
我可以開啟終端機。
58:55.836–58:58.360
And now, because we're in this directory,
現在,因為我們處於這個目錄中,
58:58.360–58:59.730
I could call on Claude.
我可以呼叫 Claude。
58:59.730–59:00.764
And so, right here,
所以,就在這裡,
59:00.764–59:02.637
I could be working with ClaudeCode
我可以在這個實際的儲存庫中使用 ClaudeCode。
59:02.637–59:04.511
inside of this actual repository.
因此,也許就在這裡,
59:04.511–59:05.385
So, maybe right here
我正在使用 Claude 來協助腦力激盪,
59:05.385–59:06.979
I'm using Claude to help brainstorm,
它為我建立了一個腦力激盪檔案,
59:06.979–59:08.624
and it creates me a brainstorming file
放在這個專案的某個地方。
59:08.624–59:10.115
inside of this project somewhere.
然後我可以做的是,
59:10.115–59:11.517
And then what I could do is
我可以回到 Codex,
59:11.517–59:13.520
I could just go back up here to Codex,
然後我可以繼續標記該檔案。
59:13.520–59:15.589
and I could go ahead and tag that file.
所以,假設我說:「嘿,這裡有一個規劃檔案,
59:15.589–59:17.666
So, say, "Hey, here is a planning file,
一個我剛剛用 Claude 產生的腦力激盪檔案。
59:17.666–59:20.523
a brainstorm file that I just generated with Claude.
一份我剛剛用 Claude 產生的腦力激盪檔案
59:20.523–59:21.492
I want you to be the one
實際接手這個檔案
59:21.492–59:22.785
who actually takes this file
並為我執行它的人。」
59:22.785–59:23.862
and executes it for me."
並幫我執行它
59:23.862–59:26.178
So, you can really start to play with these together
所以,你真的可以開始一起操作這些功能
59:26.178–59:26.986
and mix and match.
並進行混合搭配。
59:26.986–59:28.546
Just like I've shown you before
就像我之前展示給你們看的
59:28.546–59:30.887
where we would build something with Cloud Code
我們使用 Cloud Code 來建構某些東西
59:30.887–59:32.867
and then we would actually loop in Codex
接著我們會實際引入 Codex
59:32.867–59:33.887
to do the review on it
來對其進行審查
59:33.887–59:35.387
and to find like security bugs
並尋找像是安全漏洞
59:35.387–59:37.788
or any just like code-based functionality bugs
或是任何基於程式碼的功能性錯誤
59:37.788–59:38.448
inside of it.
在裡面。
59:38.448–59:43.185
So, in my mind it's always about which tool is best for this specific use case,
所以,在我看來,重點始終在於哪種工具最適合這個特定使用案例,
59:43.185–59:44.591
not which tool is best.
而不是哪種工具最好。
59:44.591–59:46.819
All right, so I really hope that you guys enjoyed that.
好的,我真的希望你們喜歡這段內容。
59:46.819–59:49.193
You should have a really good understanding of the interface of Codex.
你應該對 Codex 的介面有非常良好的理解。
59:49.193–59:51.861
You should have a really good understanding of how you come in here,
你應該對如何進入這裡有非常深入的了解
59:51.861–59:52.957
you connect to other tools,
連接其他工具
59:52.957–59:53.624
you use plugins,
使用外掛程式
59:53.624–59:54.720
you start building skills.
開始建構技能有非常良好的理解。
59:54.720–59:57.864
And really the next unlock is start building more and more skills.
而接下來真正的突破點是開始建構越來越多的技能。
59:57.864–1:00:00.695
So, try to think about what are you doing on a daily basis?
所以,試著思考你每天在做什麼?
1:00:00.695–1:00:02.587
What are you doing on a weekly basis?
每週你會做哪些事
1:00:02.587–1:00:05.350
And write down some of those things that are boring and repetitive
並記錄下那些枯燥且重複的工作
1:00:05.350–1:00:07.309
and that you just wish happened when you slept.
以及那些你希望能在睡眠中自動完成的事項。
1:00:07.309–1:00:09.154
And then start to bring those into Codex
接著將這些內容導入 Codex
1:00:09.154–1:00:10.552
and start to just brainstorm.
並開始進行腦力激盪。
1:00:10.552–1:00:12.178
And as you're going through this process,
當你進行這個過程時,
1:00:12.178–1:00:14.733
you're going to want to set up kind of your own AI operating system.
你會想要建立屬於你自己的 AI 作業系統。
1:00:14.733–1:00:14.889
So,
所以,
1:00:14.889–1:00:16.448
I'm going to tag a video right up here
我會在此標註一支影片
1:00:16.448–1:00:18.163
that you guys should 100% go watch next.
強烈建議你們接下來一定要去觀看。
1:00:18.163–1:00:20.398
This one was kind of based on Cloud Code,
這支影片主要是基於 Cloud Code,
1:00:20.398–1:00:23.320
but remember everything is just files and folders.
但請記住,一切只是檔案和資料夾。
1:00:23.320–1:00:23.497
So,
所以,
1:00:23.497–1:00:25.326
if you follow the steps in this video,
如果你按照這支影片的步驟操作,
1:00:25.326–1:00:27.450
you will be able to replicate this in Codex,
你將能夠在 Codex 中複製這個過程,
1:00:27.450–1:00:28.640
absolutely no problem.
絕對沒有任何問題。
1:00:28.640–1:00:29.773
And what's really cool is
而真正酷的地方在於
1:00:29.773–1:00:32.470
every project that I've moved over from Cloud Code to Codex,
我從 Cloud Code 遷移過來的每個專案,
1:00:32.470–1:00:35.113
I've said, "Hey, this is something I built with Cloud Code.
我都會說:「嘿,這是我用 Cloud Code 建構的東西。
1:00:35.113–1:00:36.301
Go ahead and analyze it
請繼續分析它
1:00:36.301–1:00:38.927
and help me figure out what files you need to create
並協助我找出需要建立哪些檔案
1:00:38.927–1:00:41.303
in order to make this compatible with Codex."
以便讓它與 Codex 相容。
1:00:41.303–1:00:42.616
And all it's going to do is
它只會做一件事
1:00:42.616–1:00:43.866
maybe change a few names
也許會更改一些名稱
1:00:43.866–1:00:46.440
and maybe change the cloud.md to the agent.md and
也許會將 cloud.md 改為 agent.md,並且
1:00:46.440–1:00:47.425
it's really, really simple.
這真的非常簡單。
1:00:47.425–1:00:48.642
It'll take like 30 seconds
大概只需要 30 秒
1:00:48.642–1:00:50.468
and then you have your project in Codex.
然後你就能在 Codex 中擁有你的專案。
1:00:50.468–1:00:50.625
So,
所以,
1:00:50.625–1:00:51.045
anyways,
總之,
1:00:51.045–1:00:53.773
I'll see you guys over there at that AI operating system video.
我們在那個關於 AI 作業系統的影片裡見。
1:00:53.773–1:00:55.317
Please give it a like if you enjoyed.
如果你喜歡的話,請按讚。
1:00:55.317–1:00:56.191
It helps me out a ton.
這對我幫助很大。
1:00:56.191–1:00:57.111
And as always,
一如既往,
1:00:57.111–1:00:59.000
I appreciate you guys making it to the end of the video.
感謝你們看到影片的最後。

影片筆記:Master 97% of Codex in 1 Hour (full course)

一句話總結

本影片詳細演示了如何使用 OpenAI 推出的桌面應用程式 Codex,從專案初始化、串接 YouTube API、建立可重複使用的「技能 (Skills)」,到自動化部署至 Vercel,完整建構一個 YouTube 評論分析儀表板的自動化工作流,並強調了權限管理、錯誤處理與跨工具協作的最佳實踐。

核心重點

  1. Codex 作為超級應用程式 (Super App)
  • Codex 不僅是聊天機器人,更是具備專案管理、本地檔案存取、瀏覽器自動化及技能建立能力的桌面應用程式。
  • 與網頁版 ChatGPT 不同,Codex 強調將產出物組織在特定的本地工作目錄中,並支援多工處理與側邊聊天 (Side Chat)。
  1. 專案初始化與環境設定
  • 建立本地專案資料夾,並透過 agents.md 檔案作為「入職文件」,定義專案目標與背景,確保 AI 理解意圖。
  • 透過 Google Cloud Console 建立 API Key 並存入 .env.local,以串接 YouTube Data API v3,取代預設外掛。
  1. 權限管理與錯誤處理 (Agentic Loop)
  • 預設為「自動審查 (Auto review)」,熟練後可切換至「完全存取 (Full access)」以節省時間,但需謹慎。
  • 遇到錯誤(如 PowerShell TLS 問題)時,應將其視為「黃金知識」,要求 AI 將經驗保存至 agents.md,避免未來重複犯錯。
  • 需注意上下文視窗 (Context window) 的使用情況,過大的 agents.md 會消耗更多 Token。
  1. 技能 (Skills) 的建立與應用
  • Skill 是可重複的指令集(Markdown 格式),可儲存為全域 (Global) 或本地 (Local)。
  • 透過斜線指令 (/) 或自然語言呼叫 Skill,實現流程自動化(例如:YouTube 評論洞察 Skill)。
  • 介面提供「寵物 (Pet)」視覺化功能顯示工作狀態,並支援多種模型等級(Medium, High, Extra High)以平衡成本與效能。
  1. 自動化部署與迭代優化
  • 將本地 localhost 儀表板透過 GitHub 與 Vercel 部署至公開網路。
  • 利用 Codex 設定每週定時任務 (Automations),自動抓取評論、更新 Excel、推送 GitHub 並觸發 Vercel 部署。
  • 強調「暗碼 (Dark Code)」概念:雖使用自然語言,但仍需理解核心邏輯與安全性,並透過反覆使用與回饋優化自動化流程。

詳細大綱

1. Codex 介面介紹與基礎設定 (片段 1)

  • 介面結構:左側為專案/聊天列表,右側為對話視窗。底部有小寵物 (Pet) 顯示狀態。
  • 模型與設定:可切換 GPT 5.5、5.4 等模型,調整速度 (Speed) 與智慧等級 (Intelligence: 低、中、高、超高)。
  • 專案建立
  • 點擊「New Chat」或「New Project」。
  • 選擇本地資料夾路徑(如桌面下的 Codex YouTube)。
  • 設定權限(預設或完全存取)。
  • 初始指令:讓 AI 讀取指定資料夾中的原始轉錄檔。
  • 對比:與 Claude Code 相比,兩者皆為承載框架,但 Codex 具備更多本地整合功能。

2. 專案初始化與資料串接 (片段 2)

  • 本地搜尋技巧:直接提供精確檔案路徑,而非讓 AI 自行搜尋,以節省 Token。
  • agents.md 檔案:作為新聊天視窗的入職文件,定義專案目標與使用者意圖。
  • 計畫模式 (Plan Mode):僅進行腦力激盪與規劃,不執行程式碼。建議使用 Medium 等級進行規劃,High 用於大型建構,Extra High 用於解決難題。
  • YouTube API 串接
  • 在 Google Cloud Console 建立專案,啟用 YouTube Data API v3
  • 產生 API Key,設定限制僅限該 API。
  • 將 API Key 填入專案中的 .env.local 檔案。
  • 測試連線是否成功。

3. 權限、錯誤處理與多任務處理 (片段 3)

  • 權限設置
  • 預設為關閉 (Auto review)。
  • 切換至「完全存取 (Full access)」可自動執行,但需謹慎。
  • 錯誤處理 (Agentic Loop)
  • 將錯誤視為「黃金知識」,要求 AI 保存至 agents.md
  • 注意上下文視窗限制,避免檔案過大。
  • 多任務與側邊聊天
  • 利用多標籤頁或新聊天視窗進行多任務處理。
  • 使用 {slash} 命令列選項調整代理性格(如切換為 Pragmatic 模式,更簡潔、任務導向)。
  • 側邊聊天功能允許在不中斷主要工作流的情況下進行額外查詢。
  • 成果展示:成功生成包含 200 條近期 YouTube 評論分析的 Excel 儀表板,涵蓋評論分類、熱門工具提及等洞察。

4. 技能 (Skill) 建立與介面功能 (片段 4)

  • 技能定義:可重複的食譜 (Recipe),儲存為 Markdown 檔案。
  • 儲存與呼叫
  • 全域 (Global):儲存在 .codex 檔案中,所有專案共用。
  • 本地 (Local):儲存在特定專案資料夾內。
  • 呼叫方式:斜線指令 (/) 或自然語言。
  • 介面功能
  • 寵物 (Pet) 設定:提供視覺化回饋,可選擇不同樣式(Codex pet, Dewey, CD 等)。
  • 模型選擇:簡單任務避免使用高階模型以防過度設計。監控剩餘速率限制 (Rate limits)。
  • 新專案規劃:使用 GPT Image 2 生成儀表板設計概念,建立本地主機 (Localhost) 上的視覺化介面。

5. 部署與自動化工作流 (片段 5)

  • 部署流程
  • 使用 GitHub 建立雲端倉儲 (Repository)。
  • 使用 Vercel 進行託管與部署,獲得公開 URL。
  • 安全注意事項:使用 .env 檔案保護金鑰,避免公開提交。
  • 自動化設定 (Automations)
  • 設定每週定時任務(如每週日傍晚 5 點)。
  • 邏輯:執行抓取 YouTube 評論的技能 -> 更新 Excel -> 同步至 GitHub -> Vercel 自動部署。
  • 開發理念:將 AI 自動化技能的建立比喻為「教小孩騎腳踏車」,透過反覆使用與回饋來優化。

6. 自動化除錯與瀏覽器使用 (片段 6)

  • 自動化預期管理
  • 本地定時任務 (Local Cron) 需保持應用程式開啟。
  • 若需 24/7 運行,需使用雲端常規任務 (Cloud Routines)。
  • 瀏覽器使用 (Browser Use)
  • 利用自然語言指令讓 AI 使用瀏覽器進行 UI 測試、點擊按鈕、壓力測試與 QA。
  • 適合尋找 Bug、無 API 時的自動化操作、需保留 Cookie 的網頁自動化。
  • 講者認為比 Playwright CLI 更平滑、智能。
  • 除錯與優化
  • 修正模型版本(從 GPT 5.2 改為 GPT 5.5)與推理層級設定。
  • 自動化成功分析 208 則評論,並透過 GitHub 與 Vercel 部署至儀表板,驗證流程成功。

7. 迭代優化與工具協作 (片段 7)

  • 迭代優化
  • 監控執行時間,若過長需介入檢查。
  • 主動詢問 AI 如何優化流程,識別可刪除的代碼或需要增加的防護機制。
  • 理解「暗碼 (Dark Code)」
  • 使用自然語言編寫代碼,但需理解核心邏輯與安全性。
  • 不需理解每一行代碼,但需理解根本邏輯與目的。
  • 工具協作
  • 專案資料夾可被不同代理工具(Codex, Claude Code, OpenClaw)共用。
  • 混合使用策略:例如用 Claude Code 建構,用 Codex 進行審查。
  • 跨平台遷移簡單,僅需更改設定檔名稱。

工具 / 模型 / 名詞整理

  • Codex:OpenAI 推出的桌面應用程式,具備專案管理、本地檔案存取、瀏覽器自動化及技能建立能力。
  • ChatGPT:OpenAI 的聊天機器人服務,包含網頁版與應用程式版。
  • Claude Code:Anthropic 推出的桌面應用程式,用於與 Claude 互動,作為 Codex 的對比對象。
  • GPT 5.5 / GPT 5.4 / GPT 5.2:Codex 中可選用的模型版本之一(需查證是否為實際發布版本)。
  • Opus / Sonnet / Haiku:Claude Code 底層使用的模型。
  • Opus 4.7:講者提及進行過測試的模型版本。
  • Open Claw / Hermes Agent:講者提及可接入 ChatGPT 訂閱方案的代理程式工具。
  • Glido:講者使用的語音轉文字 (voice-to-text) 工具。
  • Whisper:講者之前使用的語音轉文字工具。
  • YouTube Data API v3:Google Cloud Console 中需啟用的 API,用於串接 YouTube 資料。
  • Google Cloud Console:講者建立專案與 API Key 的平台。
  • agents.md:Codex 專案起始檔案名稱,用於定義專案上下文與目標。
  • Claude.md:Cloud Code 專案起始檔案名稱。
  • .env.local / .env:Codex 自動建立用於儲存環境變數(如 API Key)的檔案。
  • Plan Mode:Codex 的計畫模式,僅進行腦力激盪與規劃,不執行程式碼。
  • Skill (技能):可重複的指令集,儲存為 Markdown 檔案,可透過斜線指令或自然語言呼叫。
  • Pet (寵物):Codex 介面中的視覺化功能,顯示 AI 工作狀態。
  • GitHub:用於建立雲端倉儲 (Repository) 存放程式碼。
  • Vercel:用於將程式碼部署到實際網域,提供公開 URL 的平台。
  • Git / GitHub CLI:本地版本控制系統與雲端倉儲的命令行介面。
  • Browser Use (瀏覽器使用):Codex 的技能之一,允許 AI 使用瀏覽器進行 UI 測試與自動化操作。
  • Playwright CLI:講者過去使用的瀏覽器自動化工具。
  • Dark Code (暗碼):講者提出的概念,指使用自然語言編寫代碼,但仍需理解核心邏輯與安全性。
  • Cloud Routines:Cloud Code 新增的雲端常規任務,用於實現全天候 24/7 運行。
  • CodaCode / Higgs Field / CodaX API:Excel 報告中提及的熱門工具(需查證是否為真實存在或模型生成)。
  • Hyperframes:Codex 內建的外掛之一(需查證)。
  • GPT Image 2:用於生成儀表板設計概念與 Logo 的圖像生成模型(需查證)。
  • Beasod / Stacky / Fireball:Codex 寵物選項列表中的名稱(需查證)。
  • Nate Herc / Nate Hurt:講者提及的人名或專案名稱(需查證)。
  • Cloud Code / Cloud Co-work:提及的專案名稱或環境,需查證是否為正確產品名稱。

操作流程整理

  1. 環境準備與專案建立
  • 安裝 Codex 桌面應用程式。
  • 建立本地專案資料夾,設定權限。
  • 建立 agents.md 檔案,定義專案目標與背景。
  1. 資料串接 (YouTube API)
  • 前往 Google Cloud Console 建立專案。
  • 啟用 YouTube Data API v3
  • 產生 API Key,設定限制。
  • 將 API Key 填入專案中的 .env.local 檔案。
  • 測試連線是否成功。
  1. 數據抓取與分析 (Skill 建立)
  • 進入 Plan Mode,規劃抓取近期 YouTube 評論的流程。
  • 執行抓取,分析數據,生成 Excel 報表。
  • 將此流程封裝為「YouTube 評論洞察 (YouTube comment insights)」Skill,儲存為 Markdown 檔案。
  1. 儀表板開發與設計
  • 使用 GPT Image 2 生成儀表板設計概念與 UI 元素。
  • 讓 Codex 基於 Excel 數據,在本地主機 (Localhost) 上生成視覺化儀表板。
  1. 部署與自動化
  • 建立 GitHub 倉儲,推送程式碼。
  • 連接 Vercel,部署專案至公開 URL。
  • 設定 Automations(自動化任務),配置每週定時任務。
  • 自動化邏輯:執行 Skill 抓取評論 -> 更新 Excel -> 推送 GitHub -> Vercel 自動部署。
  1. 測試與優化
  • 使用 Browser Use 技能進行 UI 測試與 QA。
  • 監控自動化執行時間,若過長則介入優化。
  • 修正模型版本與推理層級,確保穩定性與效率。

值得注意的限制或風險

  1. 權限風險
  • 切換至「完全存取 (Full access)」可節省時間,但若操作不當可能導致災難性後果(如刪除資料庫)。建議初學者保持預設的「自動審查 (Auto review)」。
  1. 上下文視窗限制
  • 隨著專案增長,agents.md 檔案過大會消耗更多 Token,需注意上下文管理。
  1. 本地定時任務限制
  • 當前設定的自動化任務為本地定時任務 (Local Cron),若關閉 Codex 應用程式或電腦,任務將停止。若需 24/7 運行,需依賴雲端常規任務 (Cloud Routines)。
  1. Token 成本與配額
  • 不同模型等級對應不同的 Token 或 Session 成本。需監控剩餘速率限制 (Rate limits),避免過度消耗。
  • 使用高階模型(如 Extra High)進行簡單任務可能導致過度設計 (Over-engineers) 並浪費 Token。
  1. 安全性
  • 需區分 Git(本地版本控制)與 GitHub(雲端)。
  • 使用 .env 檔案存放金鑰,利用前置的點號讓 Codex 或 Cloud Code 排除該檔案的公開提交,防止金鑰洩露。
  1. 模型版本不確定性
  • 影片中提及的 GPT 5.5、5.4、5.2 等版本編號,需查證是否為實際發布版本或口誤。

逐字稿辨識疑點

  • GPT 5.5 / GPT 5.4 / GPT 5.2:逐字稿中多次提及的模型版本編號,需查證是否為實際發布版本或口誤。
  • Opus 4.7:逐字稿中提及的模型版本,需查證是否為實際發布版本或口誤。
  • Open Claw / Hermes Agent:逐字稿中提及的工具名稱,需查證是否為正確產品名稱或聽寫錯誤。
  • Glido:逐字稿中明確拼寫為 "Glido",需查證是否為正確產品名稱(常見為 Glid.io 或其他變體,但依規則保留原樣)。
  • Hyperframes:逐字稿中列為外掛名稱,需查證是否為正確產品名稱。
  • Beasod / Stacky / Fireball:在寵物選項列表中出現,聽起來可能是特定名稱或口誤,需查證是否為正確名稱。
  • Nate Herc / Nate Hurt:逐字稿中提到 "This is about Nate's, Nate Herc does this." 及 "recent Nate Hurt videos",疑點:講者口語中出現重複或停頓,可能為講者姓名或專案名稱,需查證。
  • CodaX / Codex:逐字稿中交替使用 "Codex" 與 "CodaX",需查證該工具的確切名稱。
  • Cloud Code / Cloud Co-work:逐字稿提及 "Cloud Code" 與 "Cloud Co-work",需查證是否為同一產品的不同稱呼或聽寫錯誤。
  • **{slash}

生字列表

生字讀音類型中文
super app/ˈsuːpər æp/超級應用程式
ditch/dɪtʃ/verb拋棄;丟棄
break down/breɪk daʊn/phrasal verb詳細拆解;分解說明
overwhelmed/ˌoʊvərˈwelmɪd/adjective不知所措的;被搞混的
buckle up/ˈbʌkəl ʌp/idiom坐穩了;準備好(迎接挑戰或激動時刻)
toggle/ˈtɒɡəl/noun切換按鈕
under the hood/ˌʌndər ðə hʊd/idiom底層;內部運作機制
skimming/ˈskɪmɪŋ/verb瀏覽;略讀
pragmatic/præɡˈmætɪk/adjective務實的
troubleshooting/ˈtrʌblˌʃuːtɪŋ/noun除錯;故障排除
deploy/dɪˈplɔɪ/verb部署;發布
connectors/kəˈnektərz/noun連接器;串接工具
harness/ˈhɑːrnɪs/noun框架;工具集
non-stop/ˌnɒnˈstɒp/adverb不停地;連續地
stress test/stres test/noun壓力測試
robust/roʊˈbʌst/adjective穩健的;強健的
iterate/ˈɪtəreɪt/verb迭代;反覆改進
replicate/ˈreplɪkeɪt/verb複製;重現

生字解說

super app /ˈsuːpər æp/

· B2

意思:超級應用程式

解說:指整合多種功能於單一應用程式中的軟體,通常包含聊天、檔案處理、自動化等能力。

影片原句
So, Codex is an absolutely incredible super app.
所以,Codex 是一個絕對令人驚嘆的超級應用程式。
延伸例句
WeChat is a famous super app in China.
微信是中國著名的超級應用程式。

ditch /dɪtʃ/

verb · B2

意思:拋棄;丟棄

解說:口語中常用來表示不再使用某物或停止與某人交往。

影片原句
I'm not saying that I'm ditching Claude Code.
但我並不是說我要拋棄 Claude Code。
延伸例句
I decided to ditch the old phone and buy a new one.
我決定拋棄舊手機並買一部新的。

break down /breɪk daʊn/

phrasal verb · B2

意思:詳細拆解;分解說明

解說:將複雜的事物分解成較小、較易理解的部分進行解釋。

影片原句
I'm going to break down every single important thing that you need to know about Codex
我將詳細拆解關於 Codex 你需要知道的所有重要事項,
延伸例句
Let me break down the costs for you.
讓我為你詳細拆解這些費用。

overwhelmed /ˌoʊvərˈwelmɪd/

adjective · C1

意思:不知所措的;被搞混的

解說:形容面對過多資訊或複雜情況時感到無法應對或困惑。

影片原句
Don't get overwhelmed.
別被搞混了。
延伸例句
Students often feel overwhelmed by the amount of homework.
學生們經常因作業量過大而感到不知所措。

buckle up /ˈbʌkəl ʌp/

idiom · B2

意思:坐穩了;準備好(迎接挑戰或激動時刻)

解說:比喻語,提醒聽者即將開始一段艱難或精彩的旅程/過程。

影片原句
So, buckle up.
所以,請坐穩了。
延伸例句
The roller coaster ride is about to start, so buckle up!
雲霄飛車即將開始,所以請坐穩了!

toggle /ˈtɒɡəl/

noun · B2

意思:切換按鈕

解說:介面中用於在兩個狀態之間切換的控制項。

影片原句
We use this toggle to change the model
我們使用這個切換按鈕來變更模型,
延伸例句
Please use the toggle switch to turn on the light.
請使用切換開關打開燈。

under the hood /ˌʌndər ðə hʊd/

idiom · C1

意思:底層;內部運作機制

解說:源自汽車引擎蓋下,比喻技術或系統的內部運作原理。

影片原句
So, Claude code natively under the hood uses Opus
所以,Claude code 在底層原生使用 Opus
延伸例句
The new engine is powerful under the hood.
這台引擎在底層運作上非常強大。

skimming /ˈskɪmɪŋ/

verb · B2

意思:瀏覽;略讀

解說:快速閱讀以獲取大意,而非仔細閱讀每個字。

影片原句
I definitely think it's worth just at least skimming through.
我絕對認為至少瀏覽一下是值得的。
延伸例句
I was just skimming the newspaper while drinking coffee.
我喝咖啡時只是在略讀報紙。

pragmatic /præɡˈmætɪk/

adjective · C1

意思:務實的

解說:注重實際效果而非理論或理想,強調解決問題的方法。

影片原句
But then, I really like Codex for being pragmatic.
但另一方面,我真的很喜歡 Codex 的務實風格。
延伸例句
We need a pragmatic approach to solve this problem.
我們需要務實的方法來解決這個問題。

troubleshooting /ˈtrʌblˌʃuːtɪŋ/

noun · B2

意思:除錯;故障排除

解說:識別並解決系統或設備問題的過程。

影片原句
and troubleshooting things
以及進行除錯
延伸例句
The IT department is good at troubleshooting network issues.
資訊部門擅長排除網路故障。

deploy /dɪˈplɔɪ/

verb · B2

意思:部署;發布

解說:將軟體或系統安裝到伺服器並使其運行的過程。

影片原句
and then deploying on some sort of website.
然後部署到某種網站上。
延伸例句
We need to deploy the new version of the app to the store.
我們需要將應用程式的新版本部署到商店。

connectors /kəˈnektərz/

noun · B2

意思:連接器;串接工具

解說:允許不同應用程式或服務之間進行數據交換的介面。

影片原句
And you have these connectors in chat GPT now,
而現在聊天 GPT 有這些連接器,
延伸例句
The API connectors allow seamless data integration.
API 連接器允許無縫的數據整合。

harness /ˈhɑːrnɪs/

noun · C1

意思:框架;工具集

解說:在此語境中指用於開發或運行軟體的基礎架構或工具集合。

影片原句
they're different harnesses, right?
它們是不同的框架,對吧?
延伸例句
React is a popular JavaScript harness for building UIs.
React 是用於構建使用者介面的熱門 JavaScript 框架。

non-stop /ˌnɒnˈstɒp/

adverb · B2

意思:不停地;連續地

解說:形容沒有間斷地進行某項活動。

影片原句
is what I've noticed after playing with them non-stop.
這是我在不停使用它們後所觀察到的。
延伸例句
The machine has been running non-stop for 24 hours.
這台機器已經連續運行了 24 小時。

stress test /stres test/

noun · B2

意思:壓力測試

解說:在極端負載下測試系統穩定性的過程。

影片原句
I want you to stress test it
我希望你對它進行壓力測試,
延伸例句
We need to stress test the server before the launch.
我們需要在發布前對伺服器進行壓力測試。

robust /roʊˈbʌst/

adjective · C1

意思:穩健的;強健的

解說:形容系統或程式碼能夠在各種情況下穩定運作,不易出錯。

影片原句
Are there any opportunities to make this better and more robust?
是否有機會讓這項自動化變得更好且更穩健?
延伸例句
The software is robust enough to handle large datasets.
這軟體足夠穩健,可以處理大量數據集。

iterate /ˈɪtəreɪt/

verb · C1

意思:迭代;反覆改進

解說:通過重複循環來逐步改進產品或過程。

影片原句
So, that's how you can kind of keep iterating upon it.
所以,這就是你可以持續迭代的方式。
延伸例句
We need to iterate on the design based on user feedback.
我們需要根據用戶反饋對設計進行迭代。

replicate /ˈreplɪkeɪt/

verb · C1

意思:複製;重現

解說:精確地重現某個結果或過程。

影片原句
you will be able to replicate this in Codex,
你將能夠在 Codex 中複製這個過程,
延伸例句
Scientists tried to replicate the experiment with different variables.
科學家試圖用不同的變量來重現實驗。

句型解說(含實例)

whether ... or ...

意思:無論是……還是……

接續:whether + [Option A] + or + [Option B]

解說:用於列出兩種或多種可能性,強調無論哪種情況,結果或動作都相同。

影片原句
whether we want to use GPT 5.5, 5.4, or other models.
無論是使用 GPT 5.5、5.4 還是其他模型。
實例
  1. You can choose whether to work from home or in the office.
    你可以選擇在家工作或在辦公室工作。
  2. Whether it rains or shines, the event will go on.
    無論下雨還是晴天,活動都會繼續進行。

not only ... but also ...

意思:不僅……而且……

接續:not only + [Clause A] + but also + [Clause B]

解說:連接兩個並列成分,強調後者比前者更重要或額外增加了一層意義。

影片原句
because it's going to help not only save you time, but it's also going to save you session limit.
因為這不僅能幫助你節省時間,還能節省你的 session 額度。
實例
  1. She is not only a great singer but also a talented dancer.
    她不僅是一位出色的歌手,還是一位有才華的舞者。
  2. The new policy will not only reduce costs but also improve efficiency.
    新政策不僅會降低成本,還會提高效率。

as long as ...

意思:只要……

接續:as long as + [Condition]

解說:表示某個條件是滿足的,結果就會發生。

影片原句
As long as it's actually working.
只要它確實能運作。
實例
  1. You can borrow my car as long as you drive carefully.
    只要你開車小心,你就可以借用我的車。
  2. As long as you try your best, I will support you.
    只要你盡力而為,我就會支持你。

It's not ... but ...

意思:不是……而是……

接續:It's not + [A] + but + [B]

解說:否定前者,肯定後者,用於澄清事實或糾正誤解。

影片原句
It's not magic. You don't deploy something, and you just expect it to work perfectly.
這些東西並非魔法。你不會部署某個東西,然後就指望它能完美運作。
實例
  1. It's not about winning, but about participating.
    重點不在於贏,而在於參與。
  2. It's not a bug, but a feature.
    這不是錯誤,而是一個功能。

The more ... the better ...

意思:越……越好……

接續:The more + [Comparative A] + the better + [Comparative B]

解說:表示 A 的程度增加會導致 B 的結果變好。

影片原句
the more specific you can be with your prompting and with your pointing, the better.
你在提示詞和指引上越具體,效果就越好。
實例
  1. The more you practice, the better you become.
    你練習得越多,你就會變得越好。
  2. The more detailed the instructions, the better the result.
    說明越詳細,結果越好。

What I want you to do is ...

意思:我希望你做的是……

接續:What + [Subject Clause] + is + [Infinitive/Clause]

解說:用於明確地給出指令或說明期望的行動。

影片原句
What I want you to do is set up an agents.md file.
我希望你做的是建立一個 agents.md 檔案。
實例
  1. What I want you to do is finish the report by Friday.
    我希望你做的是在週五前完成報告。
  2. What I need you to do is check the data carefully.
    我需要你做的是仔細檢查數據。

Not to say that ... but ...

意思:我不是說……但……

接續:Not to say that + [Statement A] + but + [Statement B]

解說:先排除一種極端情況或誤解,然後提出更準確或更重要的觀點。

影片原句
And not to say that you need to understand every line of your code, but you need to understand fundamentally what it's doing and why.
我不是說你需要理解每一行程式碼,但你必須從根本上了解它在做什麼以及為什麼。
實例
  1. Not to say that you are wrong, but there might be another explanation.
    我不是說你錯了,但可能有另一種解釋。
  2. Not to say that the food is bad, but it could be improved.
    我不是說食物不好,但可以改進。