1
00:00:00,000 --> 00:00:05,039
This is the start of the crescendo towards the finale of this program.
这是本节目最后高潮的开始。

2
00:00:05,039 --> 00:00:13,279
This is week three, day three, another purple day, another core learning day of skills.
这是第三周第三天，又是紫色的一天，又是技能的核心学习日。

3
00:00:13,279 --> 00:00:17,200
And this is the day when we look at what it takes to build
在这一天，我们将探讨如何构建

4
00:00:17,200 --> 00:00:23,120
large code bases, working with big teams, working together with platforms like
大型代码库，与大型团队合作，与诸如此类的平台合作

5
00:00:23,120 --> 00:00:30,079
Claude Code and Codex and OpenCode and so on, professional coding agents in large teams.
Claude Code还有Codex和OpenCode等等，大型团队中的专业编码代理。

6
00:00:30,079 --> 00:00:35,119
And originally, that was going to be all I was going to cover today.
本来，这就是我今天要介绍的全部内容。

7
00:00:35,119 --> 00:00:40,080
I was going to have a whole day to talk about large team work and I had some stuff prepared
我本来打算用一整天的时间来谈论大型团队工作，并且我准备了一些东西

8
00:00:40,080 --> 00:00:45,119
and I was thinking we would dive in and take a big open source repo and kind of work on it.
我想我们应该深入研究并进行一个大型开源存储库并对其进行一些工作。

9
00:00:45,119 --> 00:00:50,240
But what I sort of realized is that we've already covered all of the foundational skills.
但我意识到我们已经涵盖了所有的基础技能。

10
00:00:50,240 --> 00:00:55,680
So this is more about summarizing and packaging it all up and explaining the do's and don'ts.
因此，这更多的是对所有内容进行总结和打包，并解释该做什么和不该做什么。

11
00:00:55,680 --> 00:00:59,279
And that would be boring to be an entire day, especially this late in the game.
一整天都会很无聊，尤其是在比赛的最后阶段。

12
00:00:59,279 --> 00:01:03,520
We're not up for a boring day like that. I can cover that material quite quickly.
我们不想度过这样无聊的一天。我可以很快地涵盖这些材料。

13
00:01:03,520 --> 00:01:07,839
And then, and then I've got some spicy topics,
然后，然后我有一些辛辣的话题，

14
00:01:07,839 --> 00:01:12,559
some spicy things to throw into the mix to keep things sizzling.
加入一些辛辣的东西，以保持食物的滋滋作响。

15
00:01:12,559 --> 00:01:15,440
So prepare yourself, be prepared for some spice.
所以做好准备，准备好一些香料。

16
00:01:15,440 --> 00:01:18,639
Let's get through the large code based workflow, some good stuff,
让我们完成基于大型代码的工作流程，一些好东西，

17
00:01:18,639 --> 00:01:23,919
some vegetables to get through first, and then we will bring on the fun.
先吃一些蔬菜，然后我们再带来乐趣。

18
00:01:23,919 --> 00:01:25,680
All right, let's get started.
好吧，让我们开始吧。

19
00:01:25,680 --> 00:01:27,839
I'm going to start with another recap.
我将从另一个回顾开始。

20
00:01:27,839 --> 00:01:32,160
And I realize this is like the third day in a row of recapping the same material,
我意识到这就像连续第三天重述相同的材料，

21
00:01:32,160 --> 00:01:36,400
but I feel like I gave you a lot to digest on the first day.
但我觉得第一天我给了你很多东西需要消化。

22
00:01:37,599 --> 00:01:38,959
Keep the food analogy going.
继续用食物来比喻。

23
00:01:38,959 --> 00:01:40,239
A lot to digest.
很多东西需要消化。

24
00:01:40,239 --> 00:01:43,919
And before we get to the spicy stuff, if I'm not carrying this too much,
在我们开始吃辛辣的东西之前，如果我没有带太多的话，

25
00:01:44,800 --> 00:01:47,279
it's worth us taking one more moment to look at this.
值得我们再花一点时间来看看这一点。

26
00:01:47,839 --> 00:01:51,519
Slash commands, we know in Cloud Code how you run commands,
斜杠命令，我们在 Cloud Code 中知道如何运行命令，

27
00:01:51,519 --> 00:01:54,319
and there is a way to configure your own as I showed you.
正如我向您展示的那样，有一种方法可以配置您自己的。

28
00:01:54,319 --> 00:01:57,599
Although these days, it's more common just to use skills.
尽管如今，仅使用技能更为常见。

29
00:01:57,599 --> 00:02:00,959
And skills, of course, consistent across Cloud Code and Codex.
当然，Cloud Code 和 Codex 的技能也是一致的。

30
00:02:00,959 --> 00:02:04,720
And I think everyone is really jumping on the skills bandwagon.
我认为每个人都在追赶技能潮流。

31
00:02:04,720 --> 00:02:08,639
To a large extent, they're kind of taking over from MCP as being
在很大程度上，他们正在接替 MCP 作为

32
00:02:08,639 --> 00:02:12,559
the way that we like to build functionality into these coding agents.
我们喜欢将功能构建到这些编码代理中的方式。

33
00:02:13,199 --> 00:02:17,919
Then multi-agents, which is just this idea of running lots of Cloud Code at once,
然后是多代理，这就是同时运行大量云代码的想法，

34
00:02:17,919 --> 00:02:21,759
or maybe kicking off Codex to run as we did, which was really cool.
或者也许像我们一样启动 Codex 运行，这真的很酷。

35
00:02:22,320 --> 00:02:24,800
Or now we know how to throw into that,
或者现在我们知道如何投入其中，

36
00:02:24,800 --> 00:02:29,919
like running multiple Clawds that might be on the internet, like out on the cloud.
就像在互联网上运行多个 Clawds，比如在云端。

37
00:02:29,919 --> 00:02:34,720
Perhaps because we just raised a bunch of GitHub issues, and we've tagged Clawd in them.
也许是因为我们刚刚提出了一堆 GitHub 问题，并且我们在其中标记了 Clawd。

38
00:02:34,720 --> 00:02:37,199
And that means that Clawd just goes off and does them.
这意味着克劳德就可以去做这些事情。

39
00:02:37,279 --> 00:02:43,759
Or perhaps we're using something like Sprites.dev to run on a remote container,
或者也许我们正在使用 Sprites.dev 之类的东西在远程容器上运行，

40
00:02:43,759 --> 00:02:46,880
a remote sandbox on the cloud, running lots of Clawds.
云上的远程沙箱，运行大量 Clawds。

41
00:02:46,880 --> 00:02:48,240
All of these things are possible.
所有这些都是可能的。

42
00:02:48,240 --> 00:02:50,080
Those are multi-agents.
这些是多代理。

43
00:02:50,080 --> 00:02:53,360
Sub-agents is something that's a bit more contained.
子代理是更包含的东西。

44
00:02:53,360 --> 00:02:59,600
It's when you really delegate one particular task to a sort of sub-instance of Clawd
当你真正将一项特定任务委托给 Clawd 的一种子实例时

45
00:02:59,600 --> 00:03:03,759
that just keeps that context, takes care of that, and then returns the results.
它只是保留该上下文，处理该上下文，然后返回结果。

46
00:03:03,759 --> 00:03:08,240
And one of the built-in ones that's used a lot is the exploration sub-agent.
经常使用的内置代理之一是探索子代理。

47
00:03:08,240 --> 00:03:11,119
They can just sort of go off and dig around a lot of files,
他们可以直接去挖掘大量文件，

48
00:03:11,119 --> 00:03:16,080
read them all, summarize them, and return that back to the Clawd code context.
阅读所有内容，总结它们，然后将其返回到 Clawd 代码上下文。

49
00:03:16,080 --> 00:03:17,919
So that's multi-agents and sub-agents.
这就是多代理和子代理。

50
00:03:17,919 --> 00:03:22,639
And of course, you can create your own sub-agents and have them able to carry out a task.
当然，您可以创建自己的子代理并让他们能够执行任务。

51
00:03:22,639 --> 00:03:26,960
Agent teams, we talked about a bit, but we didn't actually use them.
特工团队，我们谈过一些，但我们并没有真正使用它们。

52
00:03:26,960 --> 00:03:28,559
We're going to do them tomorrow.
我们明天就去做。

53
00:03:28,639 --> 00:03:33,440
They are where we start to get a bit more kooky and have things like swarms
它们是我们开始变得更加古怪的地方，并且有诸如群体之类的东西

54
00:03:33,440 --> 00:03:35,600
and orchestration and stuff like that.
以及编排之类的东西。

55
00:03:36,240 --> 00:03:41,919
Hooks is something very specific when you want to be able to tie something that's going on,
当你希望能够将正在发生的事情联系起来时，Hooks 是非常具体的东西，

56
00:03:41,919 --> 00:03:44,240
like Clawd using a tool or something like that,
就像克劳德使用工具或类似的东西，

57
00:03:44,240 --> 00:03:47,279
and have that always triggering, running a command,
并让它始终触发，运行命令，

58
00:03:47,279 --> 00:03:50,960
or sending a prompt to Clawd, or kicking off a sub-agent.
或向 Clawd 发送提示，或踢掉子代理。

59
00:03:50,960 --> 00:03:52,639
And you can configure it that way.
您可以这样配置。

60
00:03:52,639 --> 00:03:57,919
And it's used only occasionally, but they do sometimes come packaged in with plugins.
它只是偶尔使用，但有时它们确实与插件一起打包。

61
00:03:57,919 --> 00:04:01,679
And speaking of, you can also create your own plugins.
说到这里，您还可以创建自己的插件。

62
00:04:01,679 --> 00:04:05,679
As I showed you, you can package up different plugins that can contain
正如我向您展示的，您可以打包不同的插件，其中可以包含

63
00:04:05,679 --> 00:04:08,720
things like skills and sub-agents and commands,
诸如技能、子代理和命令之类的东西，

64
00:04:08,720 --> 00:04:10,639
and you can package them up together.
你可以将它们打包在一起。

65
00:04:10,639 --> 00:04:13,279
And you can also put them into a marketplace,
你也可以将它们放入市场，

66
00:04:13,279 --> 00:04:14,880
and you can then publish that marketplace,
然后你可以发布该市场，

67
00:04:14,880 --> 00:04:18,480
and other people can bring in your marketplace,
其他人可以进入你的市场，

68
00:04:18,480 --> 00:04:21,279
and then choose to add in your different plugins.
然后选择添加不同的插件。

69
00:04:21,839 --> 00:04:24,320
So that is how you'd create a plugin.
这就是创建插件的方式。

70
00:04:24,320 --> 00:04:25,760
Not something you'd do every day,
不是你每天都会做的事

71
00:04:25,760 --> 00:04:30,079
but something you might do as part of a larger project, as we'll get to today.
但您可能会在更大的项目中做一些事情，正如我们今天将要讨论的那样。

72
00:04:30,079 --> 00:04:35,600
So that's the quick recap on the different Pro features that we covered on Week 3, Day 1.
这就是我们在第 3 周第 1 天介绍的不同 Pro 功能的快速回顾。

73
00:04:35,600 --> 00:04:40,480
And then yesterday, we had such an interesting time looking at sandboxing.
昨天，我们在沙盒方面度过了一段非常有趣的时光。

74
00:04:40,480 --> 00:04:45,519
It's a very important topic when you're thinking about being able to do more YOLOing,
当你考虑能够做更多的 YOLO 时，这是一个非常重要的话题，

75
00:04:45,519 --> 00:04:47,440
kick off Clawd to do more,
让 Clawd 去做更多事情，

76
00:04:47,440 --> 00:04:51,839
but there are serious security risks doing that on your computer with your file system,
但是在您的计算机上使用文件系统执行此操作会存在严重的安全风险，

77
00:04:51,839 --> 00:04:56,000
with your network access, running shell scripts on your computer.
通过网络访问，在计算机上运行 shell 脚本。

78
00:04:56,000 --> 00:04:57,760
That's where sandboxes come in.
这就是沙箱发挥作用的地方。

79
00:04:57,760 --> 00:05:00,799
And built into Clawd is the native sandbox,
Clawd 内置了原生沙箱，

80
00:05:00,799 --> 00:05:04,320
and it's also built into some other tools like we saw in Cursor.
它也内置于其他一些工具中，就像我们在 Cursor 中看到的那样。

81
00:05:04,320 --> 00:05:06,799
But in Clawd Code, it's just slash sandbox,
但在 Clawd Code 中，它只是斜线沙箱，

82
00:05:06,799 --> 00:05:09,839
and then you're running in a lightweight native sandbox.
然后您就在轻量级本机沙箱中运行。

83
00:05:09,839 --> 00:05:14,799
But then we also found out all about using managed Clawd on the web.
但后来我们还发现了有关在网络上使用托管 Clawd 的所有信息。

84
00:05:14,799 --> 00:05:18,239
And you could have Clawd on the web and just through a web browser kick it off.
您可以将 Clawd 放在网络上，然后只需通过网络浏览器即可启动它。

85
00:05:18,239 --> 00:05:20,239
You could do it through a mobile app.
您可以通过移动应用程序来完成。

86
00:05:20,239 --> 00:05:23,200
You can have it so that it's hooked into GitHub,
你可以拥有它，以便将它连接到 GitHub，

87
00:05:23,200 --> 00:05:26,079
so that a GitHub action, you tag Clawd,
这样你就可以在 GitHub 操作中标记 Clawd，

88
00:05:26,079 --> 00:05:28,880
and Clawd just goes away and does the work.
克劳德就走开去做工作。

89
00:05:28,880 --> 00:05:31,760
And then you find that there's a branch that's been pushed.
然后你发现有一个分支被push了。

90
00:05:31,760 --> 00:05:37,839
There's a PR ready for you with the change made just because you tagged Clawd. It's amazing.
我们已经为您准备了一份公关，其中包含仅因为您标记了 Clawd 而做出的更改。太棒了。

91
00:05:37,839 --> 00:05:40,799
And so, yeah, obviously, I hope you shared in my joy with that.
所以，是的，显然，我希望你能分享我的喜悦。

92
00:05:40,799 --> 00:05:43,279
And I hope you've been trying it out because it's really great.
我希望你已经尝试过，因为它真的很棒。

93
00:05:43,279 --> 00:05:46,480
The thing I didn't get to do yesterday, but you hopefully did,
昨天我没能做但你希望能做到的事情

94
00:05:46,559 --> 00:05:50,799
is just that simple trick of putting an ampersand before a command to Clawd,
只是在对 Clawd 的命令之前添加一个 &amp; 符号的简单技巧，

95
00:05:50,799 --> 00:05:52,799
which means don't run this here.
这意味着不要在这里运行它。

96
00:05:52,799 --> 00:05:54,880
Take this whole conversation so far,
到目前为止，整个谈话

97
00:05:54,880 --> 00:05:59,519
push it out onto the internet and run it in a remote Clawd,
将其发布到互联网上并在远程 Clawd 中运行它，

98
00:05:59,519 --> 00:06:01,200
and then get back the answer.
然后得到答案。

99
00:06:01,200 --> 00:06:03,119
It's really amazing that you could do that.
你能做到这一点真是太神奇了。

100
00:06:03,119 --> 00:06:04,320
I guess you don't get back the answer.
我猜你不会得到答案。

101
00:06:04,320 --> 00:06:05,600
It runs remotely.
它远程运行。

102
00:06:05,600 --> 00:06:09,359
And then you probably saw you could do slash tasks to come and look at them.
然后你可能会发现你可以做大量任务来查看它们。

103
00:06:09,359 --> 00:06:13,839
So that is a really cool feature of Clawd Code on the web.
所以这是网络上 Clawd Code 的一个非常酷的功能。

104
00:06:14,480 --> 00:06:19,119
And then there is third-party sandboxes.
然后是第三方沙箱。

105
00:06:19,119 --> 00:06:21,440
It's a bit of an up-and-coming feature.
这是一个很有前途的功能。

106
00:06:21,440 --> 00:06:24,480
I showed you Sprites.dev that I'm super impressed with.
我向您展示了 Sprites.dev，它给我留下了深刻的印象。

107
00:06:24,480 --> 00:06:26,880
Just as they say, it is really, really quick.
正如他们所说，它真的非常快。

108
00:06:26,880 --> 00:06:31,519
And it's just very easy then to run on YOLO mode,
然后在 YOLO 模式下运行就非常容易了，

109
00:06:31,519 --> 00:06:34,320
on the Clawd, on a fast box.
在 Clawd 上，在一个快速盒子上。

110
00:06:34,320 --> 00:06:38,239
And so it is stateful in that you can just come back to it.
所以它是有状态的，因为你可以回到它。

111
00:06:38,239 --> 00:06:39,920
It's exactly where you left it.
这正是你离开的地方。

112
00:06:39,920 --> 00:06:41,760
And again, it comes up really, really fast.
再说一次，它出现得非常非常快。

113
00:06:41,760 --> 00:06:43,839
And it's got everything just as you left it.
它拥有您离开时的一切。

114
00:06:43,839 --> 00:06:46,079
So you can use it as a little home away from home.
因此，您可以将其用作一个小家外之家。

115
00:06:46,720 --> 00:06:48,559
And that's really amazing for developing.
这对于开发来说确实是令人惊奇的。

116
00:06:48,559 --> 00:06:52,799
And the fact that Clawd Code runs in the terminal like that
事实上，Clawd Code 在终端中运行是这样的

117
00:06:52,799 --> 00:06:54,720
means that it's just so convenient.
意味着它是如此方便。

118
00:06:54,720 --> 00:06:57,359
You just run it there in the terminal remotely.
您只需在终端中远程运行它即可。

119
00:06:57,359 --> 00:07:00,239
And you have access to your Clawds wherever you are.
无论您身在何处，都可以使用您的爪子。

120
00:07:00,799 --> 00:07:02,399
So that is Sprites.dev.
这就是 Sprites.dev。

121
00:07:02,399 --> 00:07:03,600
I absolutely love it.
我非常喜欢它。

122
00:07:03,600 --> 00:07:05,920
And I hope you are impressed with that too.
我希望您也对此印象深刻。

123
00:07:05,920 --> 00:07:09,839
And here I am back in VS Code again in the finally repo.
在这里，我再次回到 VS Code 的 finally 存储库中。

124
00:07:09,839 --> 00:07:11,760
And I've got two terminal screens.
我有两个终端屏幕。

125
00:07:11,760 --> 00:07:14,079
One of them is just a terminal as usual,
其中一个像往常一样只是一个终端，

126
00:07:14,079 --> 00:07:16,079
normal terminal in the finally directory.
最后目录中的普通终端。

127
00:07:16,079 --> 00:07:17,920
This one here says Sprite on it.
这里的这个上面写着雪碧。

128
00:07:17,920 --> 00:07:19,920
This is just the same one as I had yesterday.
这和我昨天的一模一样。

129
00:07:19,920 --> 00:07:21,119
And it's weird that it looks like
奇怪的是它看起来像

130
00:07:21,119 --> 00:07:23,200
this is just a terminal like any other.
这只是一个像其他终端一样的终端。

131
00:07:23,200 --> 00:07:26,640
But of course, this is actually connected to my remote box,
当然，这实际上是连接到我的远程盒子的，

132
00:07:26,640 --> 00:07:29,359
my Sprite box out there somewhere.
我的雪碧盒就在某处。

133
00:07:29,359 --> 00:07:31,920
And I actually kept going yesterday.
事实上我昨天还在继续。

134
00:07:31,920 --> 00:07:32,720
I couldn't resist.
我无法抗拒。

135
00:07:32,720 --> 00:07:33,920
I couldn't stop.
我无法停下来。

136
00:07:33,920 --> 00:07:37,040
It was the end of the recording, the end of the day.
录音结束了，一天结束了。

137
00:07:37,040 --> 00:07:38,239
But I just had to keep going.
但我必须继续前进。

138
00:07:38,239 --> 00:07:39,679
I asked it to do one more thing.
我要求它再做一件事。

139
00:07:39,679 --> 00:07:42,239
I asked it to update all of its documentation
我要求它更新所有文档

140
00:07:42,239 --> 00:07:44,239
to have one summary document
拥有一份摘要文件

141
00:07:44,239 --> 00:07:45,679
because I thought that would be nicer.
因为我觉得那样会更好。

142
00:07:45,679 --> 00:07:48,000
And then I also asked it to make a little demo
然后我还要求它做一个小演示

143
00:07:48,000 --> 00:07:49,920
called Market Data Demo
称为市场数据演示

144
00:07:49,920 --> 00:07:51,359
so that I could see for myself
这样我就可以亲眼看到

145
00:07:51,359 --> 00:07:53,519
that it was actually doing something and working.
它实际上正在做某事并且正在发挥作用。

146
00:07:53,519 --> 00:07:56,559
And I asked it to push that, which of course it did.
我要求它推动这一点，它当然做到了。

147
00:07:56,559 --> 00:08:01,279
And I then came to my local machine here.
然后我来到我的本地机器。

148
00:08:01,279 --> 00:08:02,239
And I already did this.
我已经这样做了。

149
00:08:02,239 --> 00:08:03,600
I did like a Git pull
我确实喜欢 Git pull

150
00:08:03,600 --> 00:08:07,359
so that the latest code would come down to my computer.
这样最新的代码就会传到我的电脑上。

151
00:08:07,359 --> 00:08:09,760
And then I thought, all right,
然后我想，好吧，

152
00:08:09,760 --> 00:08:11,440
now it's time to try out this demo.
现在是时候尝试这个演示了。

153
00:08:11,440 --> 00:08:12,399
Let's see what it looks like.
让我们看看它是什么样子的。

154
00:08:12,399 --> 00:08:13,839
So I asked it for a demo
所以我要求它提供一个演示

155
00:08:13,839 --> 00:08:16,559
that could run in a terminal like this,
可以在这样的终端中运行，

156
00:08:16,559 --> 00:08:18,480
like not a fancy graphical demo
不像一个花哨的图形演示

157
00:08:18,480 --> 00:08:22,239
that could prove that the market data simulator was working
这可以证明市场数据模拟器正在发挥作用

158
00:08:22,239 --> 00:08:24,239
and able to generate market data.
并能够生成市场数据。

159
00:08:24,239 --> 00:08:26,160
So I cd backend,
所以我cd后端，

160
00:08:26,160 --> 00:08:30,079
and then I wanted to go uv run market data demo.
然后我想去 uv 运行市场数据演示。

161
00:08:30,079 --> 00:08:31,040
That's what I should be able to do.
这就是我应该能够做的。

162
00:08:31,040 --> 00:08:32,820
Let's see what happens. Whoa.
让我们看看会发生什么。哇哦。

163
00:08:37,679 --> 00:08:38,179
Wow.
哇。

164
00:08:38,719 --> 00:08:39,919
So take that in for a second.
所以请考虑一下。

165
00:08:39,919 --> 00:08:42,320
So you're seeing a bunch of tickers here.
所以你在这里看到了一堆行情。

166
00:08:42,320 --> 00:08:43,440
Price is changing here.
这里的价格正在变化。

167
00:08:43,440 --> 00:08:45,760
This is the change appearing in red and green
这是红色和绿色出现的变化

168
00:08:45,760 --> 00:08:46,799
and things happening.
和正在发生的事情。

169
00:08:46,799 --> 00:08:50,559
And these spark lines is like a text-based graph
这些迷你图就像基于文本的图表

170
00:08:50,559 --> 00:08:52,719
of the movement of these stock tickers.
这些股票行情的变动。

171
00:08:53,760 --> 00:08:56,320
And yeah, come on.
是的，来吧。

172
00:08:56,320 --> 00:08:57,440
This is fantastic.
这太棒了。

173
00:08:58,799 --> 00:09:02,080
This is all like zero shot stuff, as they say,
正如他们所说，这就像零射击的东西，

174
00:09:02,080 --> 00:09:04,320
which means this isn't based on it not working
这意味着这不是基于它不起作用

175
00:09:04,320 --> 00:09:06,559
and then me giving feedback and then it working.
然后我提供反馈，然后它就起作用了。

176
00:09:06,559 --> 00:09:09,919
This is just the demo that I asked for,
这只是我要求的演示，

177
00:09:09,919 --> 00:09:11,760
just working first time,
刚开始工作，

178
00:09:11,760 --> 00:09:14,320
pushed to GitHub, just like that.
推送到GitHub，就这样。

179
00:09:15,359 --> 00:09:17,200
So I absolutely love it.
所以我绝对喜欢它。

180
00:09:17,200 --> 00:09:18,640
So I present this to you,
所以我向你介绍这个，

181
00:09:18,640 --> 00:09:21,359
and hopefully you'll be able to get similar kinds of things
希望你能得到类似的东西

182
00:09:21,359 --> 00:09:24,000
by asking for a demo just like this.
通过要求这样的演示。
