发现 cloud code 隐藏丝滑模式如果你觉得 cloud code 在 终端里跳动太厉害,或者想用鼠标滚轮刷代码,一定要试试这个 cloud underscore code underscore null underscore flicker equals one 开启后告别精神污染般的 u i 闪烁,顺滑的鼠标滚动,支持点击文件路径直接跳转一行代码交互体验直接从 c i 进化到 g u i 级。
粉丝689获赞1.0万

今天这个视频教你无痛安装 cloud code, 在 国内的网络环境下,用上 cloud gpt 等国外的顶尖模型,有些人可能还不了解 cloud code 是 什么,先简单介绍一下。 cloud code 可以 说是现在最强的 ai 编程工具, 再加上最近爆火的 skill 加持,很多人也用它写作、学习、做数据分析、办公等等。 cloud code 可以 说是现在最火热的 ai 助手之一,网上有很多的安装教程, 但是实际上你去安装就会发现不是那么回事,网络限制、安装配置中出现的各种问题能把你搞得焦头烂额。我也是看了很多的教程,结合自身安装过程中遇到的一些坑, 整理了一份 cloud code 在 国内网络环境下的安装使用指南,这份指南能帮你省下几个小时的折腾时间。接下来我会将原理和操作方法用通俗的语言给大家讲明白。好了,我们开始。 首先在安装 cloud code 之前,我们需要做好前置准备。 windows 电脑需要先下载 git, mac 系统自带 git, 无需下载, 不去这个网站选择 windows 叉六十四 setup 这个版本下载。安装完成以后呢,在 powershell cmd 中输入 git vision, 如果能输出正确的版本号,就代表 git 安装成功了。接下来要安装的是 node js 跟 npm, 我 们去这个网站选择适配自己的安装包下载即可。安装完成以后呢,如果你是 mac 用户,在启动台搜索终端, windows 用户在开始菜单里找到 git bash。 为了讲解方便,后面我们统一把终端和 get bash 统称为命令行。接下来我们在命令行输入这两条指令,如果都能显示版本号,就代表 node js 和 npm 安装成功了, and code 安装的所有的前置条件就已经完成了。 接下来我会手把手教你安装和使用 cloud code。 具体从哪里下载呢?我们有两个选择,一个是 npm 的 官方源,一个是国内的镜像源,你可以把它们类比成一个软件仓库, cloud code 也发布在这个仓库里面。那所谓的镜像源呢,其实就是官方的软件仓库同步复制了一份,那因为默认的 npm 源在国外 我们访问不是很方便,所以我们选择国内的镜像员下载 cloud code。 接下来是实际的操作步骤。首先我们打开命令行,输入下面的命令回车执行,然后再输入这条指令, 如果显示我们刚刚配置的镜像员地址,就代表我们已经成功的切换到国内的镜像员了。接下来你只需要在命令行中输入这条指令,回车执行即可安装。那这里要注意一个常见的问题啊, 系统可能会提示权限不足,这个时候你就只需要重新执行这条命令,输入管理员的密码。这指令的意思呢,就是我要用管理员权限强制覆盖安装 cloud code 的 最新版本。当安装完成以后呢,你在命令行输入这条指令,如果输出版本号,就代表 cloud code 安装成功了。 第三步是给 cloud code 配置模型。我们首先要去模型供应商平台开通账户,获取 api key, api key 相当于你在模型平台开户的凭证, 可以自己去创建获取。另外呢,要有可用的 token 额度,你可以在平台充值或者购买套餐。对模型供应商呢,大家可以根据自己的需要去选择, 你像国内的智普 glm 五、 mini max 的 m 二点五都是不错的编程模型。如果你想用 cloud opera、 四点六、 gemini、 三点一 pro 等国外的顶尖模型啊,因为国内的网络环境问题,你可以通过一些合规的中转站去订阅。 接下来我们就要把 api k 请求地址给到 cloud code, 在 这里我们用到一个叫做 c c switch 的 工具,下面是具体的操作步骤。首先我们去这个地址下载 c c switch, mac os 系统下载这个版本, windows 系统下载这个版本安装完成以后呢,打开 c c switch, 选择第一个标签 cloud, 点击右上角的加号。 第二步呢,选择要接入的模型供应商,如果没有我们需要的供应商,可以选择自定义配置。这里有三个最重要的信息需要注意一下。首先是 api key 和请求地址, 这两个是我们必填的,也就是前面我们在模型供应商中获取的信息。请求地址呢,在 cc switch 中,根据选择的供应商已经预填好了,一般在模型供应商平台的 api 文档中也能看到 行信息是选填的,但是也建议你指定一个模型,因为有些供应商会支持多个模型,换人情况下,你不知道他选择哪一个模型。接入 cloud code, 这里要注意的是,填写的模型必须是供应商支持的模型,否则 cloud code 会无法识别。那其他的配置信息呢?保持默认即可。 配置完成以后呢,我们选择一个供应商起用,后面你也可以切换至其他供应商,这样 cloud code 就 能够接入不同的模型。 不过要注意的是,每次切换供应商以后,都需要在 cloud code 里面切换模型,这样配置才能生效。那把 cloud code 装好了,模型也配置好了,接下来我们终于要使用 cloud code 了,我们在命令行中输入 cloud, 然后回车直行,这样 cloud code 就 被起用了。 当我们在 cloud code 里输入这个指令,回车直行,就会弹出模型选择的列表,我们用键盘的上下箭头选择第一个默认的模型,也就是 c c switch 里起用的那个供应商。接下来你就可以指挥 cloud code 帮你干活了。 在选择和切换模型后,啊, cloud code 可能会出现找不到模型的情况,这个时候你可以进行下面这几步排查。 首先你可以退出克拉的 code, 重启后再试一下,如果还是不行,你就要去核实一下 c c switch 中的 api key 请求地址,模型的名称是否填写错误,微商平台是否有充足的余额和套餐。 另外,我还整理了 cloud code 的 三类常用的指令,放在了指哪里。第一类是启动类的指令,在中单命令中执行,包括 cloud code 的 重启,继续上次对话,查看历史对话记录。第二类是对话类的指令,在 cloud code 里输入斜盖,你就能查看所有的绘画指令。 第三类是安装卸载类指令,前面我们安装的时候也已经用到过一部分。最后再给大家分享一个小技巧,如果你在安装和使用过程中遇到了任何你解决不了的问题,你可以连同问题和截图一同给到 ai, 你甚至可以直接给豆包共享屏幕,让他现场指导你。一般情况下,大部分问题都能够解决。这份 cloud code 的 安装指南除了有详细的安装步骤和注意事项,我还对用到的一些技术概念和工具做了小科普,如果你想要这份安装指南,我可以分享给你,而今天的视频就到这里,别忘了点个关注,我们下期见!

今天我们这期视频只讲一件事情,就是普通人如何使用,如何安装 cloud code 并接入国产大模型 deepsafe。 你 是不是也觉得 ai 编程那肯定要写代码吧? cloud code 听起来好高级,跟普通人有关系吗?我的回答是当然有。 当我们接入 deepsafe 之后,可以利用它去写作,和 deepsafe 官网的模型是完全一样的,它不光能写文章,还能帮你去造工具,而且现在超火的 ai 技能插件 skill 最早就是可乐的 code, 玩明白的。安装好之后我们再安装 vs code, 那 它就可以实时操作,可以帮我们去开发网页开发工具,它的功能是非常强大的。 今天这期视频就是专门为你定制的,不用懂代码,不用找可用的支付方式去购买国外的大模型,只要你会复制粘贴,就能在十分钟之内装好可多的 code, 并成功接入国产大模型 deepsafe。 在 这里有一个前提就是网络环境 是处理好的,而且本期分享我会特意使用一台全新的没有安装过任何环境的 windows 十一系统来演示,会把所有遇到的问题给大家解决方法和步骤,让大家只需按照步骤操作就可以安装成功。实操环节,我会分享如何成功安装 cloud code, 第一次使用,如何起用可劳的 code, 如何接入 deepsafe 大 模型,然后如何利用编程应用制作一个个人主页。本期视频分享我们需要安装以下内容, 第一个就是 note 点 gs, 它是一个运行环境可拉的 code, 要靠它才能跑起来。第二个就是 g i t, 一个隐藏但比较重要的工具, windows 十一系统默认是没有安装的,如果没有可拉的 code 会无法使用。下一个就是 cc switch, 它可以一键轻松切换大模型,就像平时我们开关水龙头一样简单。第四个就是 vs code, 它是微软出的免费编辑器,长得就像记事本,但功能强大。以下就是本期分享我们需要安装的东西。 骚掩饰我会先分享 c l i 命令行界面。 altcode 本身是个命令行工具,英文叫 c l i, 意思是你可以在黑窗口里面打字指挥它,但大家别担心,我们装上 vs code 之后,使用插件百分之九十的操作都能用鼠标点出来, 不用死记命令。好了,下面我们直接开始实操,进入实操演示部分,第一步我们就需要安装 note g s, 在 这里我们不用命令安装,直接选择安装包,然后我们运行安装包,在这里我们就直接下一步,然后选择下一步,就直接下一步就可以。 好,这时候就安装成功了。安装好之后我们来验证一下是否安装成功,在这里我们按键盘上的,在这里我们按键盘上的 windows 图标加 r 键,这时候就会弹出运行窗口,在这里输入 cmd, 然后确定,这时候就会出现命令窗口,在这里我们输入 node 杠 v, 然后回车可以看一下,现在出了版本号就证明这个 node js 安装成功了。下一步我们就需要安装 cloud code, 安装 cloud code 我 们需要使用 powershell, 在 这里我们搜索一下, 搜索之后,然后右键选择以管理员身份运行,然后我们输入这条命令,直接回车。 好了,到这里就安装成功了,同样我们也是查看版本号的方法,查看是否安装成功,在这里我们输入一下命令,输入好之后我们回车可以看一下,现在已经出了版本号,二点一点三七,我们的 cloud code 就 安装成功了, 然后我们进入 cloud code, 直接输入 cloud, 然后回车可以看一下,现在进入出问题了,这时候我们就需要安装一下 g i t, 我 们来到 g i t 页面,然后选择保存,我这里保存到桌面上,然后我们开始安装,这里我们也是直接下一步, 下一步这些我们就全部的都是直接下一步 好了,这时候就安装成功了,然后我们再看一下,我们重新打开一个 powershell, 我 们重新打开一个 powershell 窗口,然后我们输入 cloud 可以 看一下。现在我们进入 cloud 是 可以运行了,但它又遇到一个问题,就是它有一个验证,在这里我们需要修改一个配置文件, 在这里我们来到我们的用户目录,我的用户名是 k, 我 这里直接输入,然后回车到这里就可以看到一个配置文件,就是 cloud 点 jason, 然后在这里我们打开编辑一下, 可以看一下,这里就是这个配置文件,在这里我们增加一个参数,增加之前这里我们需要有一个英文的逗号,像这个标点符号是经常会被大家忽略的,有好多朋友遇到问题就是增加配置,但大家增加好之后还是不能使用,就是因为这个标点符号的问题, 在这里我们添加添加这个配置项就可以了,然后我们再返回,然后我们在 c l o u d cloud, 然后回车可以看一下,现在就已经进入了,下一步我们再回车,这个提示就是是否在当前目录,然后我们回车 好了,这时候它就会让我们去登录 cloud 账号,因为 cloud 这个它国外的大模型最让人头痛的一个问题就是经常会被封号,所以在这里我们不使用它的大模型,我们要接入我们国产的 deepsafe, 在 这里我们 cloud 安装好了,然后下一步就是需要去接入 deepsafe 大 模型,在这里还用到一个工具,就是 cc switch, 现在我们再来安装一下, 我们来到 github, 然后我们去找安装包,在这里我们就直接往下拉,拉到底部,在这里我们找到适合我们系统使用的,在这里我选择三点幺零点三,如果是 windows 的 话,大家就选择这个就可以。好,现在保存好了,然后我们直接进入安装, 在这里我们也是直接下一步,下一步安装即可,这时候就安装好了,然后我们运行 下一步就需要我们配置 deepsafe 的 api, 在 这里我演示一下操作流程,在这里我们打开 deepsafe, 然后选择 api 开放平台,然后我们选择 api keys, 在 这里去创建,比如创建 api key c c 三,然后我们创建, 创建好之后我们复制一下这个 api key 的 这个密钥,然后复制,然后我们来到 c c switch 里面,在这里我们就选择右上角的加号,然后选择模型 zip, 然后往下滑,这里我们只需要填写一下这个 api, 然后添加, 这时候就添加好了,然后我们回到命令窗口,我们再进入 cloud, 可以看一下,现在已经不提示登录了,在这里我们输入斜杠 model m o d 可以 看一下,然后我们就选择第一个,在这里已经有了 deepsea v 三点二模型,现在我们去选择一下,就是第五个选项,让我们回车。好,这时候就选择好了, 选择好模型之后,在这里我们对话,我们问他一下你当前是什么模型,然后我们回车 可以看一下。在这里在此次绘画中,我作为 cloud code 实力实际使用的是 deepsafe v 三点二模型,到这里我们就成功地安装了 cloud code, 然后接入了 deepsafe 大 模型, 到这里我们就完成了 cloud code 命令行工具接入 deepsafe 大 模型,下面我来演示一下。我们在 vs code 里面使用 cloud code, 它的一个优势就是格式化操作,它的操作几乎都是用鼠标点击就可以, 然后我们下一步就需要安装 vs code, 在 这里我们选择宏框按钮,然后保存 好,现在保存成功了,然后我们安装在这里选择,我同意,然后我们直接下一步,这里就是选择一下安装目录,如果不选择默认安装到 c 盘,然后我们选择下一步,这里几乎也是全程下一步就可以,然后我们安装 好,这时候安装成功了,我们选择完成,在这里打开之后,它默认的是英文界面,看到英文不用担心,在这里我们需要安装一个插件就可以搞定,我们选择四个方块这里,然后我们输入简体, 我们就安装默认的第一个好,安装成功之后,右下角会有一个重启的一个提示,在这里我们选择重启。好,现在打开就是中文界面了,然后下一步我们就需要找到 colode code 插件,我们输入 colode code, 然后我们选择第一个安装, 在这里我们需要辨别一下官方版本,在这里我们安装,然后我们选择新任发布者和安装好了,这时候成功之后,在右上角就会多一个这样的一个图标,然后我们选择 可以看一下它,这里默认跳出的是一个登录提示,我们有了 c c switch 已经接入了模型,它这里就会跳过,然后在这里我们再输入你当前的模型是什么模型,然后我们发送, 可以看一下我当前运行的模型是 dipstick 为三点二,像这里也是这个 cc switch 在 这里起到的作用,像这里比如接入 glm 大 模型,或者是其他第三方中转的模型,用这个 都是可以搞定的,非常方便。好到这里就安装成功了,也成功接入了,下一步我们就让它帮我们生成一个个人主页,我们一起来看一下,在这里返回桌面,我先新建一个文件夹,然后回到 vs code, 然后文件打开文件夹, 我们选择桌面上的 myweb, 然后选择文件夹,这时候我们就用 cloud code 来对话,在这里我们输入提示词,就是我是一名专业的前端程序员,帮我生成一个自我介绍的个人主页,让大家可以快速的认识我,了解我,然后使用 html 格式,简约风格, 科技感配色,页面元素,要有自我介绍板块,联系方式,二维码区域,在这里就是我们给他的提示词,然后我们发送 好了,可以看一下,现在个人主页已经生成成功了,然后我们预览一下它给我们生成的一个个人主页,就是简历风格的,可以看一下,还是比较丰富的。在这里经过我的测试,就是我们使用可多扣的时候,不管是生成文章还是生成网页, 在这里我们要给他一个语言的提示,就是要生成中文内容,他有时候是默认的生成中文,有时候默认的生成英文,他这个是存在几率问题的。所以在大家生成内容的时候,强调一下生成中文内容, 这是目前想到的一个问题,分享给大家。这就是以插件模式使用的,在 vs code 里面还可以以命令行模式,在这里我们打开终端 使用方法是一样的,在这里我们输入 cloud 可以 看一下,就和我们在命令窗口使用的是一样的, 像这个一个优势,就是命令行模式加格式化窗口的模式可以直接使用,这就是我们所有的实操分享内容。在这里我也写了实操手册,比如安装好之后无法进入,或者是安装之后要验证,像这些遇到问题的解决办法,都有写到手册里面。 好了,到这里我们就完成了一整套从完全零基础到真正用起来的全过程。我们一开始什么都不懂,装好了克拉的 code, 配上了国产大模型 deepsafe, 在 vs code 的 里面,我们让 ai 帮我们生成了一个个人主页。其实克拉的 code 它有很多高阶的玩法, 你可能也听说过,比如 mcp、 gel, 但这些我也会慢慢讲,后面我会分享,但是这些都不着急,也不重要, 真正重要的只有一件事,就是现在先去试一试,先用起来,哪怕只做一件小事。 ai 时代最危险的不是不会用工具,而是以为自己用不了。 老的 code 不是 程序员的专利,它是每个普通人的效率工具。 ai 时代只要有思路就开始动手,就已经超过了百分之九十的人。 ai 时代,我们不用纠结新出了什么东西,哪个模型更厉害, 能帮自己提效的,自己用着习惯的,对自己来说就是完美的模型,完美的工具。好了,本期内容分享就到这里,我们下期再见。

演示一下用 cloud code 来操作当前的浏览器窗口。首先进入 cloud code, 然后我们告诉他用浏览器打开百度, 会有一个弹窗允许 可以看到他已经进到百度了,我们告诉问他一个需要思考的问题啊,需要进一步思考的问题。 进入 b 站创造中心查看我最近发布的一条视频的数据, 可以看到啊,浏览器这边,这边,浏览器这边它已经开始进行一些跳转的一些操作了。 结论来了,确实拿到了数据,确实是我最近发布的一个视频,虽然说数据不太好,不过没关系,然后下一步再演示一下 有一个交互性的这个操作吧, 我要对所有评论这个视频的都点个赞, 看下他会怎么处理。嗯,他直接下面这边直接进来这个页面了, 然后我把这个打开吧,你看可以看到这边这个,哎,看到了吗?已经在 这三个赞已经都点上了啊。嗯,成功了,成功了,然后看一下他怎么说的,完成。嗯,没毛病。其实,嗯, 用 ai 来操作当前的浏览器还是很好的,因为它你当前的浏览器是已经登录你的账号,你就没有必要去重新登录账号。有了这么个工具,其实我感觉嗯可做的事情就很多了。对,有一些 嗯,大的网站可能会对爬虫会有禁止等等。然后那你现在是用浏览器去操作的,那是不是就没有这种?就是,嗯,担心了。对, 好,那我们来看一下这个到底是怎么安装的,就是说,嗯,如果说你想要去 安装这么一个东西的话,可以去看这个 get up 的 这个仓库。对,嗯,你们可以去研究一下。好,那这个视频就到这里,再见。

今天的话我们来详细讲解 cloud code 它底层的源代码,然后这节课的话,我们会通过详细的讲解 cloud code 它源代码是怎么被开发出来的, 普通人怎么样去二次开发 cloud code, 以及 cloud code 所有的底层技术原理是怎么样规划开发出来的,那么以及教会大家用 ai 编程怎么样去一步一步开发出自己想要的 cloud code, 或者是呃基于这个 cloud 去做其他的一些事情。 那么我们继续讲解这一个怎么样用 cloud code 去发挥 cloud code 的 最强的这个编程能力和它的系统格式的这个结构。 那它的编程功能的话, cloud code 的 确作为编程能力里面最强的这一个模型, 它有这个,比如说它有很多的这一个相关的这个功能,那么 code code 它内置了强大的这个编程辅助功能,覆盖了这个软件开发的全生命周期。它有这个文件的操作功能,有这个 read write, 还有这个代码的编辑 edit, notebook 以及代码的搜索,有 grab globe, 另外的话也有这个命令的执行,有这个 bash, 还有 git 操作和这个 work key 代码的审查 agent, 还有这一个呃网络的搜索, web search 网,网页的这个抓取,有这一个呃 web fetch 以及任务的管理,有这个 task。 那么核心的这一个编程的工具的讲解是有这个 read 工具多格式的这个文件的这个读取,有这个读取这个文件的内容,多种的这个格式,还有支持的这个格式,有这个文本,纯文本文件纯文本和这个自动的这个语法高量图图片文件,这一个 b s 六十四编码返回,然后支持这一个 j p e, g 和 p n, g 以及 g i g, i f 和这个 web 这一个相关的图片文件以及 pdf 的 文件,支持这个 base 六十四,编码返回,还有这个 jasper notebook json 的 格式来进行解析,还有这一个,呃, pdf 这个分析的这个图片,将这个 pdf 转化为这个图片来进行分析, 那么输入的这个参数的话,它就是这个 type script, type script interface file, read input file, path screen 文件的这个路径,这是必填的,还有 limit number 函数的限制,还有 offset number 起始的这一个行的偏移。 另外就是返回的类型的话,有这一个,嗯, type script 有 这一个文本的返回,还有这个 type text, fire fire path content number, lines, start, line 以及 total total lines 图片的返回,以及这个 type type 的 话, image image fire base 六十四,还有这个 type original original size 以及 dimensions dimensions pdf 返回,还有这一个 type pdf fire fire pass base 六十四和这个 original size, 以及这个 notebook 返回,还有这个 type notebook fire, 还有这一个 fire ties sales unknown, 还有 parts parts 返回,以及这一个 pdf 分 页 type parts 的 这一个 fire firepath original size, 还有这个 count output 变无变化的这个返回,以及这个 type of fire 这一个 unchanged unchanged fire firepath。 文件大小的这个限制的话就是 n p six 有 这个一百兆,超过此大小的话自动进行截断, a s seven 就是 三十二兆普通编辑操作的这个工具, 那么同时它有 write 的 这个工具,原子性的这个文件读写,它可以创建覆盖文件的这个内容,输入的这个参数,这些。

最近 cloud code 非常火,相信关注编程 agent 的 同学应该都已经上手体验过了,不过要把这个工具从入门真正落地到生产环境,光会敲几个简单的命令是远远不够的, 所以这期视频咱们不整虚的,直接带大家从头到尾把 cloud code 的 实战流程彻底走一遍。这个视频呢,一共是分为以下四个部分,第一,环境的搭建与基础交互。 第二,复杂任务处理与终端控制。第三,多模态与上下文管理。最后呢是高级功能的扩展与定制,大家可以看到屏幕上密密麻麻的知识点和时间戳, 这期视频的含金量呢绝对是拉满的,只要你花点时间看完这期视频,我保证你能够彻底吃透 cloud code, 把它变成你手心里最顺手的生产工具。 另外我知道市场上还有其他类似的编程 agent, 比如 codex、 open code 等等,其实它们无论从功能上还是使用上都跟 cloud code 没有什么太大区别,所以我相信在看完了这期视频之后,你一定会一通百通,同类的产品基本上都能够直接上手。好话不多说,那我们直接开始。 首先我们来到 cloud code 的 官方网站,就是这个页面了,然后呢,我们点击这里面的复制按钮,再回到终端粘贴,这样呢就开始安装 cloud code 了。 安装完成后,我们试着用它来做一个代码软件。首先使用命令 m k d i r 来创建一个目录,就叫做 my to do 就 好了,我们所有的代码呢,都放在这个目录里面, 然后我们进入到这个目录里,再执行 cloud 这个命令来打开 cloud code。 刚进来的时候, cloud code 可能会提示你进行登录,如果你像我这样没有被提醒的话,可以执行杠 login 命令来主动触发登录流程。 呃,可以看出啊, cloud code 官方一共是提供了两种标准的接入方式。第一种呢是订阅制,如果你购买了 cloud 的 pro 或者是 max 会员,那就直接选这个就好了。第二个呢是使用官方的 api key, 按照 token 的 用量计,费用多少花多少。 我呢是订阅用户,所以我选择第一项。选择之后, cloud code 会弹出一个网页提示,我授权,我们同意。 可以看出登录成功,我们关掉当前页面,回到终端,这里按下回车登录呢,就结束了。这里顺便提一下, 有些同学可能没有办法使用 cloud 的 官方订阅或者是 api, 这个时候呢,你也可以使用国产模型来驱动 cloud code, 比如说是 g, l, m, mini, max 等等。 cloud code 是 一个通用的编程 agent, 它本身其实并不跟 cloud 的 模型绑定,你完全可以使用其他的模型来驱动 cloud code。 具体使用国产模型的方法呢,这里就不再赘述了,其实很简单,设置几个环境变量就行了,网上一搜一大堆, 有需要的同学可以自己搜索一下。好,言归正传,我们再回到 cloud code 这里开始使用它。前面的我们说过,我们要做的是一个代办软件,那我们现在就把这个需求告诉 cloud code, 让他帮我们实现。给我做一个代办软件,使用 html 实现。可以看到 cloud code 开始工作了,让我们稍作等待。 cloud code 想要创建一个叫做 index dhtml 的 文件,询问我们是否同意, 这里面呢?一共有三个选项,第一项 yes 是 单词授权,意思就是说只同意创建当前的这么一个文件,如果它接下来还需要创建其他文件的话,它还会再次向我们询问确认。 第二项呢是 yes allow all edits during this session。 选中了它就意味着在本次的对话期间,后续所有的文件操作都会自动通过,不会再反复打扰我们。 第三项是不同意,选择了它之后,你可以继续输入你的想法, cloud code 会根据你的输入生成代码,并再次向你确认。呃,为了演示方便,我们这里就选择第二项,开启自动模式,把后续的工作全权交给他 好。选完之后注意看,输入框下方多了一行字,就是这个 accept and it's on。 这个呢,就表示目前的自动同意模式已经开启了。那如果说你后悔了,想换一个模式怎么办呢? 这个时候就要用到 shift 加 tab 键来切换模式了,我们来按一下试试看。现在变成了 play mode, 也就是规划模式,这个模式主要用来探讨复杂的方案,只聊天不执行。具体用法呢,我们后面再细讲。我们再按一次, 注意看,底部的 play mode 消失了,取而代之的是一行灰色的提示问号 for shortcuts, 也就是按问号显示快捷键。大家千万别误会,这个呢并不是什么快捷键模式,这行字呢,只是 cloud code 的 一个小提醒而已,跟当前的模式没有关系。 呃, cloud code 其实在这个时候没有标注当前的模式,而这种没有标注的模式就是默认模式。 不知道你还有没有印象,我们刚进入 cloud code 的 时候用的就是默认模式,在默认模式下, cloud code 表现的最为谨慎,每次创建文件或者是修改文件的时候,它都会先去询问用户的意见,所以大家看出来了吗? shift 加 tab 就 在这三种模式之间循环,让我们稍微总结一下。 第一个是默认模式,也就是显示问号 for shortcuts 的 那个模式,在这个模式下,创建和修改文件之前一定会询问用户最为稳妥。 第二个呢是自动模式,也就是那个 accept edit on, 在 这个模式下, cloud code 会自动创建或修改文件,不会去询问用户,最为方便。第三个是规划模式,也就是那个 plan mode on, 这个模式只讨论不修改文件,适合构思 这个模式,我们后面会详细解释。好。这个呢就是 cloud code 的 三种模式了,我们再按一次 shift tab, 来到 accept add its on 模式。选择好模式之后,我们再回头看看之前 cloud code 给我们写好的文件,我们要打开它, 那怎么打开呢?你可以去文件管理器里面找到这个文件,双击打开它。不过这里我想要教另外一个方法,我们可以直接在 cloud code 里面执行终端命令来打开它。首先呢,我们输入一个叹号, 看 cloud code 有 反应了,现在我们处在 bash 模式下,可以运行任意的中断命令了。紧接着我们来输入 open index 点 html 来打开这个 html 文件 代码。软件做的还算不错,一次成功,这不得不给 cloud code 点个赞。不过这里面有个小坑,他把所有的代码都写到 index 点 html 里面了, 小项目还好,要是项目做大了,维护起来简直是个灾难,所以咱们最好趁早是换成 react, type script 和 white 这种现代架构,把代码分模块儿管理, 我们可以直接向 cloud code 提出这个请求,让它改掉。不过呢,改架构是个大工程,最好是先确定细节再动手。这个呢,就是 play mode 登场的时候啦, 它就是专门用来讨论方案,确定细节的。让我们先关掉当前页面,回到终端这里,然后按一下 shift 加 tab, 进入到 play mode。 然后呢,输入我们的请求,将当前的代办应用重构为使用 react 加 type script 加 white 的 项目。 呃,问题到这里还没有结束,这个时候呢,我们想换行。怎么换行?敲回车吗?敲回车显然是不行的,敲回车的话,我们的问题就提交了。换行呢,是需要按 shift 加回车,然后我们就可以继续写了,保留所有的现有功能。 呃,这里顺便提一句,如果你按 shift 加回车不好用的话,那你大概利用的 cloud code 版本比较旧,需要升级一下。 呃,另外还有一点,有些同学可能会觉得这个终端的输入框实在是太难用了,想用一些比较现代化的编辑器来替代它。这个呢,其实也是可以的,我们可以按一下 ctrl 加 g, 这个时候 cloud code 就 会打开一个 vs code 的 标签页,在这里面编辑就方便多了,回车随便按,也不用担心不小心提交问题了。当然,这要求你先事先装好 vs code, 我 们就在这里把要求补充完,再加一句,且 ui 风格保持一致。 写完了之后,我们保存,然后关掉这个标签页。此时 cloud code 就 会把 vs code 里面的内容全部放到输入框里面,我们直接再按个回车就可以提交请求了,可以看到 cloud code 开始工作了,让我们稍等一下, 计划似乎是产好了,我们把滚动条往上移一移,看一看它这个计划具体是个什么样子的。 这个计划呢,是从这里开始看起来还是挺完善的,目标项目清单、目录结构之类的信息全部都有覆盖。到最后他询问我们是否要执行, 他一共给了我们三个选项,第一个是执行计划,并且进入到同一模式,后续修改文件前就不再询问用户了。 第二个也是执行计划,只不过后续会使用默认的模式,也就是说之后每次写完文件前都需要询问用户。第三项是继续修改计划,如果你对计划不满意的话,那可以在这里面继续输入, cloud code 会根据你的要求再修改这个计划,产出一份新的。 这里假设我们对计划不满意,选择第三项提出我们的修改意见,给每个蛋白事项增加一个优先级,比如高中低,并且用不同的颜色标记出来。然后我们按一下回车,这个时候呢, cloud code 就 开始修改它的计划了,让我们再稍微等待一下。 好, cloud code 又产出了一份计划,具体内容呢,我们就不看了,单从最后的测试部分我们就可以看到,它确实是把我们的优先级的需求考虑进去了,这次差不多了,要不我们就同意吧。 让我们选择第一项执行这个计划,并且进入到自动同意模式,也就是说后续修改文件的时候就不要再询问我们了。好,回车可以看到当前模式切换到了 accept edit it's on, 没问题,这个呢,跟我们的选择是一样的,后面写入文件的时候呢,便不会再麻烦我们了。 现在 cloud code 开始执行计划了,时间估计会比较长,我们慢慢等待一下。 cloud code 暂停了,他现在想用 m k d i r 来创建目录,然后询问我们是否同意。 稍微等一下,这个是什么情况?我们不是跟 cloud code 说过了吗?不需要每次都询问用户的。还记不记得我们是在 accept add it on 这个模式下面,那怎么现在又开始询问了呢? 对,我们确实是说过,不过那只不过是写入文件的时候,不需要询问用户,这个呢,是在执行终端命令。 cloud code 认为执行终端命令呢是一个比较危险的操作,所以需要征得用户同意才会继续。 不仅如此,这里面还没有一个自动执行所有终端命令的选项,即使是第二项,那只不过是告诉 cloud code 以后都可以自由地访问 s r c 目录,不需要询问用户。至于执行别的命令,那还是要问的。 如果你觉得每次选择都太麻烦的话, cloud code 其实是提供了一个比较隐蔽的选项,可以跳过这个选择的步骤,让它想执行什么命令就执行什么命令。这个呢,是需要在启动 cloud 的 时候加上一个选项,叫做 dangerously skip permissions。 我 来给大家新开一个终端标签页演示一下。 我们先进入到原来的这个 my to do 目录里面,然后我们来输入 cloud, 再加上 dangerously skip permissions, 意思就是跳过所有的权限检测,大家注意看这个参数里面的单词, dangerously, 也就是危险的。 官方把危险两个字写在了脸上,意思非常明确,一旦加上了这个参数, cloud code 就 彻底放飞自我了。 进来之后你会发现模式变成了 bypass permissions, 这就意味着接下来它执行任何终端命令都不会再征求你的意见了,无论是安装依赖还是删除文件还是创建目录,都不会再问了。 这个呢,其实是一把双刃剑,往好了说,它能够极大地提升开发效率,全自动干活,不用你一直盯着点。同意, 但是往坏了说,他理论上呢,就拥有了和你一样的终端权限。虽然 cloud code 只有在极度发疯的情况下才能去破坏你的电脑,这种概率呢,可以说是微乎其微。但是作为一个负责任的博主,我必须要提醒大家,这个选项会让 cloud code 彻底的放飞自我。所以理论上呢,还是有一定的危险性的, 是否要为了效率承担这一丢丢的理论上的风险?决定权是在你们手里。好,演示完毕,回到我们原的例子里,我们呢,还是不用这个选项了,我们来选择第二项,只同意它以后可以自由地访问 s r c 目录。回车让 cloud code 继续。 cloud code 询问我们能不能执行 n p m 引导命令,我们选择以后都同意。 这里 cloud code 想要使用 npm run dev 来启动服务器,启动了服务器就可以查看网页的效果了,启动也行。不过呢,这里我们先取消,待会我想用它来给你演示如何手动启动它,并且借这个机会来解释任务相关的一些概念。 cloud code 看我们拒绝了,在询问我们应该要做什么,我们来跟他说一下这个命令呢,等会我自己执行,你确保其他部分都完成了就可以了。然后呢, cloud code 就 开始确认了,好,确认完毕,看起来一切正常。现在我们就可以自己来运行这个命令了,我们来试一下 服务器启动成功,我们来点击这里面的链接,看一下效果怎么样。不错,效果还可以,我们来随便点点,看起来没有什么问题,增加个代办事项也是可以的。 然后呢,我们可以再增加一个其他的代办事项,调一下优先级,再添加,一切完美,我们再回到 cloud code 这里,这里有一点需要给大家强调下, 这个服务的运行呢,是会堵塞 cloud code 的, 比如说我们在这里输入一个 hi, 你 看 cloud code 没有给我们任何回应,那是因为服务还在运行, cloud code 就 没有办法处理这个新的请求。那怎么办呢?很简单,看这里按 ctrl 加 b, 可以 把这个服务放置在后台,我们按一下试试, 好像是起作用了。 cloud code 开始处理我们的请求了,它给了我们一个回复,而且注意这里有一个后台任务正在运行, 我们输入杠 tasks 就 可以查看这个任务。在这里面可以看出,这确实是我们所启动的那个 npm run dev 的 命令, 注意这行提示,按 k 可以 关掉这个服务,不过我们目前还不打算关掉它,我们按 esc 回到原来的那个界面里面,就让这个服务先一直跑着吧,这样的话呢,我们后续的修改也能够实时看到效果。 那现在假设我们想加一个切换语言的功能,目前使用的是中文,我们希望它能够在右上角切换为英文,让我们来输入请求,在页面右上角增加一个切换语言的选项,用户可以选择中文或者是英文,默认为中文。回车, cloud code 开始运作了,让我们稍作等待。 好,可以看到 cloud code 改完了,我们回到页面这里看看。效果不错,确实是加上了切换语言的选项,而且切换的效果呢,也是符合预期的。 不过你转念一下,不对,我的用户都能看懂中文啊,我加这个功能干什么呢?要不就回滚吧。 好吧,那 cloud code 能回滚吗?当然是可以的,对应的命令呢,就是 go reverse, 或者是说呢,有个更简单的办法,你可以直接按两下 esc, 这样呢就进入到了回滚页面。我们每次输入请求的时候, cloud code 都会创建一个回滚点,比如说我们不是想回滚到增加语言选项之前的那个版本吗?那就选择这个回滚点就好了,选好之后按下回车。 然后呢, cloud code 会给我们四个选项,是回滚代码和绘画,还是说是只回滚绘画还是只回滚代码,或者说呢,我们就放弃回滚,我们来选择第一个代码和绘画都回滚。 好,现在回滚成功了,让我们来验证下。打开页面没问题,确实是回滚成功了,没有那个切换语言的选项了,是不是很棒呢? 好,假设,这个时候啊,你觉得 react 加 type script 加 white 这套架构好像是有点过于复杂了, 你在想要不干脆我们就回滚到只有 index 点 html 的 那个版本就好了。好,那继续用回滚功能就行了。不过呢,在这之前,我们最好把 npm run dev 这个后台任务给关掉,毕竟回滚之后相关的文件都没了,这个后台任务呢,也就没有什么用了。 我们回到 cloud code 这里,输入杠 tasks 来查看后台任务,然后再按 k 结束掉当前的这个后台服务。 呃,这个时候 cloud code 提示我们开发服务器运行正常。这个呢,纯属是 cloud code 晕了啊,大家忽略它,我们的开发服务器现在实际上已经被关掉了。服务器关掉之后,我们就可以开始回滚流程了,先按两下 esc, 然后选择一开始重勾代码的那个回滚点。 然后呢,我们再选择第一项恢复代码和绘画。好看起来呢,是已经回滚完成了。我们来看看当前目录下是不是只有 index 域是天秒这个文件。我们使用 ls 这个命令, 这个命令呢,可以用来列举当前目录下的文件列表运行。看结果好像是不太对啊,除了 index 底下是天秒文件,这个目录下还有很多其他的文件,它默认只显示了一部分,我们可以按一下 ctrl o 来显示所有的文件列表, 看起来总的文件数量还不少呢。这个是怎么回事呢?难道是 cloud code 出 bug 了吗? 其实不是,这些文件呢,是之前用终端命令创建的,比如说是 m k d i r n p m install 之类的 cloud code 呢,只能回滚它自己写入的那些文件。至于由终端命令生成的文件, cloud code 是 没有办法回滚的。 所以呢,我建议大家还是不要太依赖 cloud code 的 这个回滚功能了,如果要精准回滚的话,大家还是使用 git 会更好一点 好。不过呢,问题其实不大, index html 呢,是 cloud code 自己把控的,所以呢,这个文件一定是回滚成功了,我们把别的文件都删掉就行了, 说干就干,让我们打开文件管理器,删掉除了 index html 之外别的文件。然后呢,再回到 cloud code 这里,执行一下 ls 命令,可以看到文件确实只剩一个了。然后这个时候呢,我们可以使用 open 命令打开这个 html 来验证一下它的效果。 没问题,跟我们之前的那个 index 表 tm 的 效果呢是一样的,到这里回滚才算是彻底结束了。好,回滚呢,我们就讲到这里,现在假设你对 cloud code 做的页面一直都不太满意,所以呢,你去 figma 上面自己画了一个界面,就大概是这个样子的了, 你希望 cloud code 仿照这个界面来做,那具体该怎么实现呢?很简单,我们只要把这个设计稿图片传给 cloud code 就 可以了。首先我们需要在 figma 上面操作下,把当前的这个设计稿导出为一个 png 图片, 导出的方法很简单,就按这个 export frame 就 可以了。然后呢,我们回到访答这里,可以看到图片导出的非常成功,下面我们的任务呢,就是把这个图片传给 cloud code。 那 怎么做到这一点呢? 有两个方法,其中第一个方法就是直接把这个图片拖到 cloud code 这里,看到这里面的 a 位二了吗?这就代表 cloud code 已经接收到我们的图片了,这个呢只是其中的一个方法。还有另外一个方法呢,就是复制这个文件, 然后来到 collab 这里,按 ctrl 加 v 粘贴。注意啊,这里面我说的这个快捷键呢,是 ctrl 加 v, 不是 command 加 v。 即使你用的是 micros, 你 也要用 ctrl 加 v 来粘贴这个图片,按 command 加 v 是 不起作用的, 这一点要记住了。这样呢,我们就可以继续输入请求,让 collab 根据图片来修改代码儿。 具体的过程我就不演示了,这个方法肯定行得通。不过说实话,很多时候呢,可能还原的并没有那么精确,比如说字体啊,间距啊之类的, cloud code 很 难通过图片做到非常精确的把握。 所以这个时候呢,我们其实还有另外一个方法,一个更为精确有效的方法,那就是使用 m c p 来实现这个还原 figma 设计稿的需求。 m c p 是 大模型与外界沟通的渠道,我之前讲过 m c p 的 使用方法和相关原理,感兴趣的同学可以自己看一下。 figma 提供了一个很好用的 m c p server, 我 们可以接入进来用用。首先呢,我们是需要安装这个 m c p server, 根据 figma 官方的要求,我们需要执行这一行命令, 因此呢,我们先把它复制一下,然后回到 cloud code 这里,先按两下 ctrl c 退出,然后执行这行命令。 可以看到, mcp server 已经是安装成功了。之后呢,我们需要重新打开 cloud code, 不过好像之前的对话全都没了呀,这可怎么办呢?别担心,我们可以使用杠 resume 命令来回到之前的对话。这里面的第一个就是我们刚才的那个对话了,我们按回车来选择它,你看这个对话不就回来了吗? 呃,另外啊,还有一种更为简单的办法,那就是在启动 cloud code 的 时候呢,加上一个参数,我们来试一下。首先退出 cloud code, 然后呢我们执行命令 cloud 空格杠 c, 这里面的 c 呢就是 continue 的 缩写,它的功能就是打开 cloud code, 并自动恢复上一次的对话。好,对话恢复了,我们执行杠 m c p 命令,来查看目前所安装的 m c p 工具, 目前呢只有一个,就是我们刚刚安装的 figma, 可以 看到我们需要健全才能够使用这个工具。我们来选择这个 m c p 工具,然后呢再选择 authenticate, 这个时候呢会自动弹出一个页面,让我们授权我们同意, 然后再回到 cloud code 这里执行杠 m c p, 选择 figma, 这个时候呢可以看到 m c p server 呢就是一个可用的状态了。我们选择 view tools, 就 可以看到这个 m c p server 内部所包含的工具列表, 其中有用来截图的,有创建设计规则的等等,具体呢我们就不看了,我们其实也不用太关心到底该使用哪个工具来完成我们的需求,我们让 cloud code 来判断, 所以呢,我们按 esc 退出这个界面,然后输入我们的需求,修改当前的页面,使它与 figma 搞件保持一致。啊,问题还没完,我们现在回到 figma 页面这里复制这个设计稿的链接, 就点击这里面的 copy link to selection 就 好了。然后呢再回到 cloud code 这里粘贴,再回车,这样呢应该就可以了,可以看出 cloud code 开始工作了, 它首先呢是发现了我们的 figma m c p 可以 解决这个问题,请求调用 get design context 这个 m c p 工具来实现,需求我们同意, 然后呢, cloud code 请求调用 get screenshot 工具获取对应设计稿的截图,我们也同意。 现在调完两工具之后呢, cloud code 就 获取到了全部的设计稿信息了,其中不仅包括设计稿的截图,还有各种组建的间距、字体样式等,非常的详细。拿到这些信息后, cloud code 就 开始紧锣密鼓的修改现有的 html 代码,使它与 figma 设计稿相同,让我们稍作等待。 好,看起来是完成了,我们来到浏览器那边看一下效果怎么样。 这个呢,就是 cloud code 根据 figma 设计稿所搞出的页面,我把原始的设计稿也放在这里,大家可以比较一下,看看效果怎么样, 反正我觉得还原程度还是挺高的。当然这个页面还有一些细节需要打磨,比如说里面的 undefined, n a n 之类的,可能需要修改一下,但整体效果我觉得真的还是可以了。 好,那 m c p 呢?我们暂时就讲到这里,下面我们来看一下上下文压缩。在之前我们写了很多的代码,然后 cloud code 呢也调用了很多的工具,相信这个时候呢, cloud code 的 上下文里面就有了非常多的信息,这里面有一些是有用的,有一些其实没什么太大用处, 我们可以根据需要对上下文做一些压缩,这里需要用到的命令是杠 compact, 我 们可以直接去执行这个命令,也可以选择性的在它后面追加一些具体的压缩策略,比如说是重点保留用户提出的需求之类的。 呃,不过我们就不在后面加需求了,我们就直接执行这个杠 compact 命令,看一下它的效果怎么样。 压缩完成了,我们按一下 ctrl 加 o, 就 可以看到压缩后的上下文内容,这个呢就是压缩之后的结果了。 呃,我们之前呢,在上下文里面有很多的信息,有代码,有 m c p 的 调用结果之类的,现在呢,全部的内容就只剩这么一点了。 这样的话呢,不仅 cloud code 的 性能有了保障,后面在执行任务时, token 的 消耗量也会少很多。好,现在我们按一下 ctrl 加 o, 再回到原来的这个界面里。这里再提一下关于上下文的另外一个命令,就是这个杠 clear, 他呢做的更为极端,就会直接把所有的上下文内容都给清空掉。一般来说,如果我们后面的任务跟之前的上下文并没有什么关联的话,我们就可以使用这个 clear 命令来清空所有的上下文内容。 这个命令我们就不演示了,毕竟我们还需要之前的上下文,演示了之后,那就什么都没了,我们还是保留这个压缩后的结果好。现在压缩完成了,但是压缩结果的可控性并没有那么强,比如假设你想手动改改这里的压缩结果, cloud code 可并没有给你提供这个选项。 另外,无论亚不压缩上下文呢,都跟某个绘画绑定,我们下次进入到 cloud code 的 时候,还必须要来到这个绘画,否则 cloud code 是 不知道之前发生了什么的。那有没有什么办法可以解决这些问题呢? 有没有一种方案可以让 cloud code 每次进来的时候都读取一些我们自己设定的一些信息,这样 cloud code 就 知道这是一个什么项目,用户有什么需求,我们甚至可以把各种注意事项都写在这里面。了解了这些信息之后, cloud code 就 可以更好地为我们工作了。有这种方案吗? 当然是有的,这个呢就是 cloud d r m d。 我 们来尝试使用一下,我们首先让 cloud code 自己生成一份 cloud d r m d 文件,用的是杠 in it 命令。 好, cloud code 创建完毕了,我们来打开 cloud md 文件看一下,它就放在当前目录里面, 看起来内容是有模有样的,不过很可惜,它的语言呢是英文,看起来不太方便,我们要不让 cloud code 再把它给转成中文? 转换完毕,我们再回来看一下,没问题,确实是中文了。另外提一下,这里面的内容呢,是可以随便修改的,比如说我们可以在最后面加上一句注意事项,每次回答到最后,必须要追加这么一句 happy coding, 然后我们回到 cloud code 这里先退出,然后再重新进入,这样 cloud code 就 会重新加载我们那份最新的 cloud 点 md 文件。我们来随便给 cloud code 说一句,比如说是 hi, cloud code 回答了它,最后呢,确实是加上了 happy coding, 可以 看到我们的 cloud 点 md 真的 是起作用了。 所以呢,如果你有什么东西是希望 cloud code 每次都读取的,那就直接放到 cloud md 文件里就好了。 试验完毕,现在我们把 cloud md 结尾中的那个注意事项去掉,要不每次都出现 happy coding, 会影响我们后续的演示。我们可以直接找到 vs code 编辑 cloud md 文件。不过这里嘛,我想顺便教大家另外一个打开 cloud md 的 方法, 我们在这个输入框里面输入杠 memory, 在 这里可以看出 cloud md 文件呢一共是有两种,一种是项目级别的,对应的文件就放在当前的目录里,对当前项目生效。第二个呢是用户级别 对应的文件放在用户目录里,对当前用户生效。我们之前用的是第一个,所以选择第一项,选择好了之后,对应的 cloud md 文件就自动打开了,这样呢,就不用每次都自己在文件管理器里面找了,会稍微方便一点。 打开 cloud 点 m d 文件之后,我们删掉最后面的注意事项保存,再回到 cloud code 这里重启一下, 然后再随便问一句,可以看到 happy coding 已经没了,这说明我们的修改已经生效了。那 cloud 点 m d 文件就讲到这里, cloud code 还有个 hook 功能,允许用户在运行工具前后等时机执行一段自己指定的逻辑,比如说我们可以用它来做自动格式化,也就是说在 cloud code 写完代码之后,自动执行我们设定的格式化函数,以便让最终的代码更加美观,更加符合我们的需求。 首先我们执行杠 hooks 命令,进入到 hook 的 配置页面,这里我们可以配置 hook 的 执行时机,比如说是工具使用前,工具使用后,工具使用失败发送通知等等。我们来选择第二项 post to use, 也就是工具使用后来执行这个 hook。 然后呢,我们再选择 add new matrix, 这里面呢,我们需要选择对应的工具,也就是说我们希望在哪个工具执行之后再运行我们的 hook 逻辑,我们填写的是 write 或者是 edit, 也就是说在创建或者是编辑文件的时候来执行这个 hook。 然后呢,我们再选择 add new hook, 这里输入我们具体的格式化命令。这 这个命令看起来很长,我们来仔细分析下。首先在运行的时候, cloud code 会给我们传这么一份 json 过来,其中的 file path 就是 cloud code 刚刚编辑好的文件路径,因此我们需要解析这个 json 结构,把其中的 file path 的 值给取出来。我们刚才命令里面的这一部分就是用来干这个活的, 其中 jq 是 解析 json 的 一个程序,不熟悉的同学可以自己查下。获取到文件路径之后,我们把这个文件路径通过 x arcs 传递给 preder 命令,然后剩下的工作呢,就是只用 preder 来格式化这个文件的内容了。 所以总结下来,这段命令其实就是使用 jq 来获得当前编辑好的文件路径,然后再使用 preder 来格式化这个文件。 好,讲完了,让我们再回到 cloud code 这里,写好代码之后,我们按回车确认。此时 cloud code 会询问我们应该把这个 hook 保存在哪一级,一共是有三个选项, 第一个呢是本地的项目级别,也就是说这个 hook 只会在本机本项目生效。选择这个选项之后, cloud code 会把配置放在项目目录里面的 settings, 点 local, 点 json, 加入到 get 的, 点 get ignore 文件里面, 所以呢这个文件不会共享给别人。第二个呢是项目级别,也就是说所有使用这个项目的用户呢,都能够用到这个 hook, 它对应的配置文件呢是 settings there jason, 这个文件呢会随着 get 分 发给所有人。 第三个呢是用户级别对当前的用户生效对应的配置保存在用户的目录里面,每一个用户都有一份,不会互相影响,也不会跟着项目保定。我们来选择第二个,所有使用这个项目的人呢,都能够用到这个 hook。 然后呢,这个 hook 就 算是创建好了,我们按 esc 退出。 最后呢输入请求来试一下。我们的请求是创建一个新的文件 test, 点 html 里面随便写点 html 就 行,所有的内容都写在一行里面。回车,我们来稍微等一下, 通过这个写入文件的请求就可以看出, cloud code 确实是把所有的内容都写入到一行里面了,我们同意执行完毕。我们来看看最终生成的 test 点 html 的 文件内容。 可以看到这个文件的内容呢已经被格式化好了,并不是像一开始 cloud code 写入的那样只有一行,这说明我们刚才写的那个 hook 生效了,在 cloud code 写入完代码之后,我们的 hook 启动把那个文件给格式化了,所以呢,我们现在看到的就是格式非常漂亮的 html 代码。 hook 的 功能呢,就讲到这里,现在假设你每天都想写一个总结,记录下今天开发了哪些功能,而且呢,这个总结必须要遵循一定的格式,比如一定要包含日期开发招标开发详情之类的。 你可以把对应的格式要求直接粘贴在这个输入框里面,让 cloud code 帮你写一份,只不过这样的话,你每天都要重复粘贴一遍,很麻烦。这种事情其实非常适合使用 agent skill 来解决,我之前出过一个系统性讲 agent skill 的 视频,有兴趣的同学可以看一下, 不过没看过也没关系,你可以大致把它理解为一个给大家看的说明书,一个动态加载的 prompt。 我 们来创建一个 agent skill 试一下。 首先我们新开一个终端 tab, 使用 m k d r 命令,在用户目录下的 their cloud skills 文件夹下面创建一个新的文件夹,就叫做 daily reports。 我 们使用 vs code 来打开这个文件夹, 然后呢,在这个文件夹下面创建一个叫做 skill 点 md 的 文件,在这里面填入这样的一些内容。 这个文件呢,一共分为两部分,前面的 name 和 description 分 别代表这个 agent skill 的 名称和描述, cloud code 会根据这一部分的内容来决定是否要使用这个 agent skill。 后面呢,就是这个 agent skill 的 具体描述了,这里主要是写了日报需要遵循的格式。 写好了之后,我们回到终端,关掉这个新开的标签页。然后呢,再重启一下这个 cloud code, 然后输入杠 skills, 可以 看到 cloud code 已经发现了我们的 agent skill。 然后呢,我们回到输入框,这里面打入我们的请求,写一份每日总结,回车开始执行。 可以看出, cloud code 发现了这个请求与我们刚才录的那个 agent skill 相关,请求使用这个 agent skill, 我 们同意。 然后呢,我们的每日总结就写好了,跟我们要求的格式是一模一样的。这个呢就是 agent skill 的 使用方法了,是不是很简单? 呃,另外啊,这个 agent skill 的 调用请求呢,是由大模型发现并且发起的,除此之外呢,我们也可以这样来主动地发起这个 agent skill, 就是 先输入杠 daily reports, 然后呢后面加上具体的请求。 这个跟之前的效果呢,其实是一样的,只不过是省去了大模型意图识别的过程,直接由用户调用了这个 agent skill, 结果更加可控一些,具体我们就不演示了,我们来把它给删掉 啊。 agent skill 呢,就大致讲到这里了,当然 agent skill 还有很多高级的用法,感兴趣的同学可以看一下我的上一个视频。 下面我们再讲讲 cloud code 的 另外一个重要功能, sub agents。 这个呢,其实就是一个独立的 agent, 有 着自己独立的上下文,独立的工具,独立的 skill, 可以 独立完成某一件事情。我之前讲过 agent 的 原理, 有感兴趣的同学呢可以自己来看一下。呃,下面呢,让我们来创建一个用于代码审核的 sub agents, 然后选择 create new agent。 这里面要选择 agent 类型是项目级别还是用户级别,我们来选择项目级别, 也就是说使用这个项目的人呢,都能用。接下来选择 agent 的 创建方法,一种是用 cloud code 的 初设化,另外一种呢是完全手动创建,第一种是推荐方法,所以我们选它。 接下来我们描述一下这个 agent 要做的事情,我们填入以下内容,这是一个用于代码审核的 sub agent, 在 用户要求代码审核的时候调用它。回车可以看到 cloud code 正在生成这个 sub agent, 让我们稍等一下。 接下来呢,我们选择这个 sub agent 能用的工具,我们选择 read only tools 就 好,也就是说只能够使用止读工具,其余的都去掉。模型呢,就选择默认的 sonnets, 接下来选择这个 sub agent 的 颜色。 cloud code 在 运行这个 sub agent 的 时候,会使用我们选择的颜色来展示它,我们用绿色吧。 呃,然后呢, cloud code 就 会给我们生成这个 sub agent。 可以 看到这个 sub agent 的 描述呢是英文的,而且里面的内容大概率也不会跟我们期望的完全相同。我们按一下 e 来编辑一下这个 sub agent 的 描述。 这个呢就是 cloud code 给我们生成的 sub agent 描述了,不过呢,它跟我们想要的那个版本差距有点大,所以这里呢,我来给这个 sub agent 整体替换一下,换成适合我们这个场景的。 sub agent 的 结构与 agent skill 类似,一共是分为两部分,上面呢是原数据写明了这个 sub agent 的 名称,描述所使用的模型、颜色等等。下面呢就是这个 sub agent 具体要干的事情了。 呃,我的要求呢,有两条,一个是审查的准则里面有两项,一项是针对 js 的, 一项是针对 css 的。 最后呢会有一个输出格式方面的一个要求啊,我们后面去看一下 cloud code 能否遵循这个 sub agent 的 规范。 呃,填完了这个 sub agent 的 描述之后呢,我们来到 cloud code 这里给它重启一下, 重启完后我们提交请求,给我做一下代码审核。 可以看出 cloud code 调用了我们刚才创建的 sub agents, 并把对应的任务描述传给了它,让它处理。而且看这里 cloud code 是 用绿色来表示这个 sub agents, 这跟我们之前的配置也是相符的,它估计还要再运行一会儿,让我们稍作等待。 它运行了一会儿之后,给出了代码审核报告,可以看出,它检查的内容确实是我们在 sub agent 描述文件里面要求的。这个呢,就是 sub agent 的 使用方法了。 有人可能会问, agent skill 跟 sub agent 很 像啊,它俩什么区别?其实吧,它俩最大的区别就在于对上下文的处理方式不同。 agent skill 运行的时候,它会完全继承并且共享你当前主对话的上下文,这就意味着它执行过程中的每一行日记,每一个思考过程,都会记录到你的当前上下文。 想象一下,如果你让 skill 去审核一个有着几万行代码的项目,这些项目会逐步塞满你的上下文窗口, token 消耗飙升, agent 也会因为记忆过载而变慢变傻。 所以呢, agent skill 最适合处理那些与上下文关联比较大,而且对上下文影响不大的人物。比如说是根据今天的开发过程写一个每日总结之类的。 而 sub agent 呢,则拥有自己完全独立的上下文。当你启动它时,它会开辟一个全新的对话窗口,它在这个窗口里面看的所有的代码,生成的所有的中间分析过程,都不会回传到你的主对话里面。只有当它把活干完了,它才会拿着一个最终的执行结果来向你汇报。 这样一来,你的主对话依然干干净净,永远不会被琐碎的中间过程所冲爆。所以, sub agent 比较适合处理那些与上下文关联比较小,而且对上下文影响比较大的任务。因此, agent skill 与 sub agent 的 最大区别就在于对上下文的处理方式不同,大家要根据具体的场景来选择合适的方案。 下面我们再讲讲 plug in 这个东西。你可以把 plug in 想象成一个全家桶的安装包,有点儿像是 micros 的 dmg 或者是 windows 下面的 exe 文件。它把一系列的 skill, sub agents, hook 等能力全部打包在一起,你只需要一键安装 cloud code, 就 能够瞬间获得整套高级能力。 下面呢,我来给大家演示一下。我们先输入杠 plug in, 进入到插件管理器,这里面呢有三个选项,分别是 discover, 也就是发现新插件 installed 已安装的插件和 marketplaces。 呃,插件市场,我们在 discover 里面找到这个 friend and design, 按回车安装。 接下来要选择安装范围,有三个可选范围,分别是对当前用户生效,对当前项目生效或者是对当前用户的当前项目生效。我们维持默认就好了, 确定后安装就完成了。对,就是这么快。这里简单说明一下, front and design 是 一个用来做前端设计的插件, 一般来说啊,大模型做的前端呢,都有一定的共性,比如说使用深紫色的主题啊等等。这个插件呢,据说可以打破这个共性,让界面看起来更加好看一点,我们等会儿来看看是不是这个样子的。 安装好了之后,我们重启 cloud code, 然后使用 m k d r 命令新建一个目录,就叫做 my to do r。 然后呢,我们进入到这个目录里面, 再启动 cloud code。 启动好了之后,我们输入杠 plugin, 再次进入到插件的管理页面, 然后再选择 installed, 可以 看到 installed 这一个 tab 下面多了一项,就是我们刚才安装的这个 front and design。 我 们按回车看一下它的详情。可以看到这个 plugin 的 主要的组成元素就是一个叫做 front and design 的 agent skill。 既然我们已经安装了这个 plugin, 那 对应的 agent skill 应该也安装了,我们不妨验证一下。让我们回到输入框这里面, 然后打杠 skills。 你 看这里面是不是多了一个叫做 front and design 的 agent skill 呢?所以呢,安装这个插件本质上就是安装了这个 agent skill。 当然,这个 plugin 比较特殊,就只有一个组成元素,有些 plugin 里面包含了 agent skill, mcp, hook 等多个组成元素,你可以把它理解为整套解决能力,一次性全部安装了进来。下面呢,我们就来用用这个 frontin design, 看看它跟原装的前端设计有没有什么区别。 让我们回到输入框这里,输入我们的请求,按照 frontin design 的 要求做一个代码软件,使用 html 来实现。 注意看, cloud code 并没有立即开始写代码,它首先是意识到用户要求使用 front and design 的 规范,于是呢,它会先请求使用这个 agent skill。 呃,我们点同意? 读取完了之后呢,它就拥有了 antropic 官方沉淀的一整套 ui 的 设计直觉。接着呢,它开始写代码了,让我们稍微等一下。 写好了,我们先用 l s 命令看看当前目录下有哪些文件没问题,只有一个 index html 文件。然后呢,我们就可以使用 open 命令来打开这个文件看一下效果怎么样? 大家看这个呢?跟我们一开始写出来的那个 demo 相比,风格就完全不一样了,它的排版更加高级,色彩更加协调,交互呢,也更符合现代审美。 这个就是 france and design 这个插件的力量了。目前 cloud code 的 插件市场还在迅速的增长,除了 ui 设计之外,还有一些针对特定编程语言的 lsp 插件等等。 呃,当然,如果你觉得自己的配置写得非常好的话,也可以参考官方的文档,把你的 skill, sub agent, mcp 等等东西打包成插件,分享给你的团队或者是社区。 好, cloud code 到这里就讲完了,如果我的视频对你有帮助,别忘了点赞关注。我是马克,用最通俗的语言讲最硬核的技术,我们下期再见。拜拜。

就在昨天,发生了一件巨离谱的事, s r p 的 这个 cloud code 的 源码居然泄露了,行驶在叉上这个账号呢,发帖宣称是个 cloud code 的 源码泄露,并贴出了泄露的代码。 具体的泄露原因呢,就是在这个 n p m 上面, cloud code 的 包里残留了一个点 map 文件,而这个点 map 文件呢,又指向了一个 s r p 的 未混淆的一个 type c 的 源码地址。 我只想说是故意的还是不小心的,这一解压,一千九百来个文件,五十一万行的代码都在里头。 截止目前为止啊,这个帖子已经引起了两千六百多万次的浏览。而作为一个经常用 web coding 的 算法工程师,这种机会其实还是很少见的,因为你平时很难有机会近距离的去看到一个顶级的 ai 编程产品,它内部到底是怎么设计的? 我接下来呢,和大家分享一下我在这个源码里头看到的哪几个我认为比较值得学习借鉴的地方啊。视频最后还有 cloud code 的 尚未发布的隐藏功能揭晓哦。 首先就技术站了, cloud code 的 ui 框架居然使用的是 react 加上 ink, 没错,就是那个 java script 的 ui 框架,使用 ink 呢,将 react 的 主键渲染到命令行界面显示。我 之前就在想,像 cloud code 的 这样的命令行界面这么复杂,对于要支持流式输出啊,状态切换,多区渲染和复杂交互的这个通电 a 键的来说, 那 react 加 in 的 这种声名式的 ui 方案确实相对那种啊一大堆,这种终端控制逻辑要更容易维护一些。并且通过查看源码发现, leo 的 整个主控流程核心只是一个微扰循环,而在这个循环内部呢,管理了一整轮的 a 键的运行机制,例如整理上下文,决定是否压缩历史调用,模型流逝输出,还有工具执行等等等等。具体的流程呢,可以参考这里。 用过 cloud code 或者 codex 的 这种代码。 a 型的小伙伴应该知道,当你对话的上下文操作模型的限制时, a 型呢,会自动压缩上下文,而在以前,普遍的做法都是对历史上下文做个总结,对吧?然后充当之前的上下文。 cloud code 的 上下文压缩怎么也那么简单,它总共分为四种不同力度的上下文管理策略。 首先是这个 snap, 它的作用呢是直接切掉一段已经没有价值的内容等等。 第二个,这个 micro compact, 它的作用呢,就是优先清理那些又长又旧啊,但是又没有那么重要的一些工具的结果,尽量不破坏对话的主干,比如说像什么 web search 啊, grab 等等等等,这些都属于结果很大,但是经过几轮对话之后呢,相对就没有那么重要的内容。 为啥可以删除这部分的工具调用呢?这是因为模型的输出其实还保留着对吧?也就说只需要把前缀的正文部分内容给抹掉了,所以模型还是能够知道他之前读过哪个文件啊,搜过什么网页的。那第三个呢,则是 context collapse, 它比较有意思,它通过构建一个折叠后的上下文式图,并把旧轮次的上下文归档到一个存储库当中。你可以理解为类似啊,像必特那样的加密啊信息,就把你某段历史从上下文当中摘出来啊,只留一个简短的介绍放在里头,然后最后一个则是 auto compact。 这个才是我们常规理解的上下文压缩,也就是通过总结所有上下文的历史,然后加这个精简后的结果,替换原本的上下文,从而达到压缩长度。 并它并不是简单的替换总结就可以了,它在替换完总结的内容之后呢,还会重新在上下文当中注入一些必要的内容,比如说你最近上传的文件啊, a 键的制定的一些 plan 的 计划,还有这个 scale, m, c, p 等工具的介绍等等。 而且这个也是最后兜底的一层,当上述的三个流程都执行过后啊,还是即将要超过模型上下文限制的话,那就会调用这个方法去彻底的压缩一遍。总结下来,你会发现他并不是一上来啊,就直接暴力的去用大模型去总结一波,而是按照删除、清理、折叠、重写这四个层级逐步的去处理。 我们这个思想还是比较值得学习的。就能不动对话的股价就先别动是吧?能不重新总结就先别总结,因为你总结势必会丢失很多上下文当中的细节。 再往下走就是发起模型请求和流逝接收了。这一步我觉得最值得注意点是很多比较基础的 a 键的实现是等到模型输出完成后啊,再去检查工具的调用,有的话再去执行。那 cloud code 呢?只是流逝接收是吧?不用等整条消息的结束,只要接收到工具调用的回复啊,像拖钥匙就直接把工具跑起来, 把连续的止毒命令或者你设定的安全命令形成一组并发去执行。你像写文件啊危险的命令的工具,则单独串行执行工具,结果再根据这个工具出现的这个顺序缓冲再吐出,保证了顺序性。 并且从这只代码暴露出来的实现细节看,他在主响应结束之后呢,可能还会继续做一系列的这种收尾任务,比如说提取长期记忆,整理记忆状态等等, 也就说他把一轮 a 型完成,还有就是后台收尾和派生任务继续跑。 而像记忆提取呢,则他会在对话结束之后啊,专门挑那些以后还有可能用的这种信息提炼成长期记忆。比如说像用户的偏好啊,项目的长期背景呢,某个反复出现的约束条件呢等等等等。这一步的本质呢,就是将短期的上下文变成长期记忆,这样你下次新开一个规划就不会说啊,每一次都从零开始对不对? 还有这个 out to dream, 如果说刚刚的记忆提取是记笔记,这个呢,则更像是在某种特定条件下整理你的笔记,譬如在合适的时机将你重复的一些记忆合并是吧,删除一些过期的内容,然后修正一些已经被推翻那些旧言论等等。 就像能休息的时候是吧,做的这种记忆巩固一样,白天接受信息是吧,晚上睡觉的时候啊,自动整理规范。这样做的好处也很明显,会让你的长期记忆不会说啊越来越笼常, 而是能够恰当的经典记忆,只保留最重要而且最正确的一些记忆好。然后以上部分呢,是我目前看到的一些我觉得比较好的 a 型的值得学习的地方,接下来呢,然后就是讲他还未正式上线,但在代码当中已经透露出来的一些东西了。 首先就是完整的宠物系统,没错了的,未来可能可以在终端养宠物了,这个我是真没有想到这么严肃的工具还会有这个部分。目前为止呢,可以看到包含了十八种宠物, 有五种等级的稀有度,什么普通啊,罕见啊,传说呀,稀有啊等等等等,从低到高的获取概率如下,说说如果出了啊,你们最想养的电子宠物是这里的哪一个?其实就是语音模式了,目前看在这个目录下已经支持了语音模式,但是呢,走的是一个专门的 will stream 的 一个观点, 但是好像只是 cloud 的 本身的授权认证。还有一个就是自主代理模式,在这个目录下呢,这个文件里头有一段系统题词是这样的, 主要内容就是告诉 a 键呢,你现在是自主模式,如果没啥事干是吧,你就调用这种睡眠工具,也就说当前用户正在使用终端的时候,会偏向协助模式,当用户终端未聚焦的时候呢,则偏向自主行动。同 时呢,给这个 a 键呢,关联了若干个适合自主模式的工具。像刚刚说的这个睡眠工具,还有一个桥接模式,在这个目录下呢,有几十个文件,看起来是一个完整的跨端桥接控制功能。未来呢,可能你可以直接在浏览器当中的 cloud 网页当中操控你的本地电脑环境了。 总结下来就是 cloud code 呢,未来可能会从一个助手的形式转变成全天候的自主开发形式,这个还是很值得期待一下。最后,如果你看我的上期视频,你就会发现 cloud code 是 一个很好的 harness engineering 的 工程实践,他把模型啊,工具、上下文权限等等等等全部装进了一套完整的工程体系里头。 我觉得大家如果想学习最佳的 a 键的工程思路,可以去看一下源码,要知道这可是经过商业验证的 a 键的系统,还是非常有价值的好。如果这期视频你有帮助的话呢?麻烦点赞收藏加关注,咱们下期视频见!

大家好,今天给大家分享 cloudco 创始人在推特上分享的他们的团队是如何使用 cloudco 的, 他总共分享了十三个小技巧,我觉得非常能提升你使用 cloudco 的 效率。那废话不多说,我们直接来看看。 那他给的第一个建议是并行处理多个任务,他一般来说会在终端里面开五个 tab, 然后开启系统通知,当某个任务需要你的输入的时候,你再切换打开。 而且除了本地之外,他还在网页端同时跑五到十个的绘画,然后通过一些操作让多端进行协调,当你在终端运行命令加上 end 之后,就可以把本地的绘画接管到网页端,一整个的效率就拉满了。 第三个是他推荐所有的工作都用 up 四点五,并且开启思考模式。虽然 up 比其他的模型更大更慢,但因为这个模型它需要更少的引导工具的使用能力也更强,最终几乎总是比用小模型更快, 当然最近就是已经有了 up 四点六。呃,我觉得整体的核心逻辑就是我们要用高阶的模型,省去您很多修改 prom 的 时间。 第四个是他们整个团队会共享一个 cloud md 的 文件,每当看到 cloud 做错了什么,就加到 cloud md 里,这样 cloud 下次就知道不要这样做了,这就形成了一个良好的循环。第五个是在 covid review 的 时候,通过 app 机器人的方式,让 cloud 自动把一些信息记录到 cloud md 文件里。这是一种利用 ai 自动维护项目文档的技巧,你不需要离开浏览器回到本地去修改文档, ai 会自动帮你更新规则。 然后第六个是它建议大多数的任务都要从 plan 的 模式开始,这也是我在过往的 ycode 顶的 教程里面推崇的一种方式。我们要先把计划做好,再让 cloud 进行开发,会减少很多来回修改的一个过程,在终端里面按两次 shift 加 time, 就 会进入到 plan mode 的 模式。 第七个技巧是 boris 会对每天重复做很多次的一个内循环的工作流,用斜杠命令放在 cloud commands 目录下,比如 boris 和 cloud 每天都会使用几十次 commit push pr 这个斜杠命令正常,你给 ai 说帮我提个 pr, ai 可能需要思考, 然后再调用工具,然后再去获取结果,然后再思考。那每一次提交一个 pr, 你 都要进行一次这样的循环,会消耗大量的 token 跟时间。 那你提前设置好这个斜杠命令, ai 就 不需要思考。用斜杠调起这个命令之后, ai 就 直接操作,就减少了你输入 prom 以及也减少了 ai 的 思考时间,直接可以快速的执行。 那第八个是用子代理来做流程的自动化,它会专门让 cloud 去调用一些专门的子代理去处理一些单一的任务。它这里展示的是它现在目前最常用的一些子的代理,比如说像这个就是专门负责重构用于代码的一个子代理。 呃,第九个是用 post to use 钩子来格式化 cloud 的 代码,大家写代码最烦的就是格式错误导致 ci 挂掉,那创始人 boris 的 绝招就是使用 post to use 钩子。简单来说就是在 cloud 刚写完代码的瞬间,后台它会自动静默地执行一遍格式化工具, cloud 负责搞定百分之九十的逻辑钩子负责最后百分之十的细节, 这样不仅你的代码会比较整洁,更重要的是它建立了一个自动验证的一个防线,不让低级错误来浪费你的部署时间。这个就是 boris 它在后台配置的一个 post to use 的 一个脚本。 第十个技巧是,当我们在用 cloud 的 时候,它经常会停下来申请去获得一些操作的权限,可能为了快速,或者说也比较懒,然后没有认真的去看,就会无脑地给权限或者跳过,那可能会有一些安全的问题。 boris 就 建议我们可以对一些常用的进行 预先授权,只要输入斜杠 permission 就 能进行操作,而且它大部分的操作都会和团队去共享,这样就可以开通一次权限,全团队都不需要再重复开间距了,效率也保住了安全。 那第十一个技巧是,它会用 cloud 去调用不同的工具,比如它会让 cloud 去抓报错日期,然后直接根据日期去修 bug, 修完顺便发一个 flag 告诉老板,这样 cloud 变得更加强大。 那第十二个技巧是,当你处理长任务的时候, ai 会经常停下来问你接下来去干嘛, 如果你不能及时响应,反而会耽误 ai 生产的时间,那它给的建议就是它会提示 cloud 在 完成之后使用后台代理去验证 ai 的 工作,然后再使用 agent stockhook 进行更确定性的验证,或者去安装一个插件,他推荐这款插件,这个插件会让 cloud 自动 继续,直到任务彻底完成,这个会让你的长任务处理变得更加的自动化。那最后一个技巧是 boris 认为最为重要的一个建议,给 cloud 一个验证工作的方法,如果 cloud 拥有这种反馈避反,它最终结果的质量将会提升两到三倍。 简单来讲就是 ai 写完代码之后,需要运行在线上看一看,让 ai 自己能够看到这个结果,然后去判断这个结果是否合适,然后再做一些正常的调整。那 boris 的 方式是对于提交到 cloud ai 或者 cloud code 的 每一项改动,它都会通过 cloud chrome 扩展程序进行测试,它会自动打开浏览器去测试 ui 界面,并且不带的迭代。只要代码能够正常运行,且用户体验良好,那在不同的领域,其实验证的方式都各不相同,它可能简单到只是运行一条命令, 或者是运行一套测试主键。那像 boris 的 话,它是运行了一个浏览器的主键来自动打开 ai 写的网页,然后让 ai 去看这个网页是否能够正常运行哈,再做正常修正。那这个就是 cloud code 的 创始人在 twitter 上分享的十三个小技巧,我觉得 每一个都非常的实用,希望能够帮助到大家。

我用克拉的 code 已经一年多了,我在平台中保持非常活跃,以下是实际使用其工作的最佳实践,一、 搭建子智能体团队别让一个 ai 包办所有事,打造专属的专业智能体,比如研究型、调试行、审核行,各自配备独立上下文, 各司其职,形成合作团队。二、善用规划模式动手操作前先按两次 shift 加 tab, cloud 会先读取你的代码库,提出疑问,制定执行方案,等你确认后再开始编码,输出的内容会规整很多。 三、配置可附用技能指南这类指南能让 cloud 根据上下文自动加载流程,只需定义一次,后续遇到对应场景就会自动套用。四、核心操作用钩子功能,这是社区里大家反复验证的技巧, 在 cloud 点 m d 里写的规则, cloud 的 执行率大概只有百分之七十,而钩子功能能运行,需要脚本实现百分之一百的强制执行拦截,关键操作一定要用它。 五、自定义命令与规则命令是未重复的工作流,保存的斜杠快捷指令,规则则用来定义项目架构,让科拉的每次绘画都能精准理解你的项目。六、借助 get 工作树实现并行开发多分支并行运行,避免任务之间相互阻塞。 cloud code 本身支持这个功能, 但用起来很繁琐,要开多个终端,安装多份依赖,手动切换分支,耗时耗力的操作特别多,这也是我选择 d f o m 的 原因,它能让每个分支都拥有独立的隔离工作区, c o d c o 的 在各工作区独立运行,无需额外配置,不会产生冲突,直接就能实现多绘画并行工作,自己去试试吧。地址是 d s o 没 i 我 一直都在使用。

用简单的语言讲解一下实现实现一个 cloud code 的 最简化的模型,你不一定非要懂代码,首先需要定义一个系统提示词,告诉模型你是一个编程智能体工作,在项目所在目录里 使用代办摄像工具来规划多步骤任务,优先使用工具,而非文字描述。这个系统提示词的作用就是告诉模型你在做任务之前,需要先制定一个任务步骤,编排计划,按照计划执行任务。优先要使用工具呢?因为我们默认认为不使用工具的话,这个任务就算结束了。 如果某个步骤里模型只回答我们一些文字信息,没有使用工具,当然就不会有下一步执行的必要了。那我们需要提供模型什么工具呢?下面我们会告诉模型你可以用这五个工具。哪五个工具呢? 第一, bash, 这个工具的描述就是告诉模型你可以运行一个任意的 shell 命令。第二, read file, 这个工具描述就是告诉模型你可以提取文件内容,但是需要根据参数的要求提取,你必须提供需要提取文件的路径。 第三, write file, 这个工具描述就是告诉模型你可以写内容到文件里,但是必须提供一些必要的参数,比如需要写入文件的路径和需要写入的内容。第四, edit file, 这个工具描述就是告诉模型你可以编辑文件内容,这个和上面那个 write file 的 区别就是它是编辑文件, write file 是 直接覆盖写入, 需要提供一些必要的参数,比如编辑文件的路径和需要替换文字的内容。第五, to do, 这个工具是最重要的,它告诉模型你需要更新任务编排的清单,用来跟踪任务进行到哪一步。意思就是说,一开始系统提示词里要求生成了任务编排步骤了,需要根据编排计划完成一步,就将这一步认为状态,这一步的任务状态实施成完成。 因为当智能体处理多任务步骤时,他经常丢失对已完成和代办事项的追踪。没有显示的计划模型可能重复工作,跳过步骤或者跑偏,用户也无法看到智能体内部的计划。用这个工具来标记完成了哪些,用于下次对话,让模型自己看到进行到了哪一步。 最后将我们的提问和系统提示词以及工具一起发给大模型,然后放进一个无限的循环里。如果模型回答一次说需要调用哪个工具,怎么调用,我们就直接执行我们这五个工具里的模型指定的工具方法。比如模型回复用 read file 提取某个文件,模型会把工具名称 read file 和文件路径给我们,我们直接按照预先定义好的工具方法 read file 调用即可。 在无限循环里,每一次调用模型的操作的结果都会再次发给模型,模型来判断下一步该怎么做,直到模型回复说就不需要工具了,那我们默认认为这个任务循环就结束。跳出循环,本次任务结束,没有工具调用即可认为是没有再进行下一步操作的必要了。 最后再适当的做一些安全叫验,比如只能工作在呃当前的目录里,不能执行黑名单里的危险命令,比如不能执行呃删除全部或者一些比较危险的命令,然后用 history 树组保存历史绘画,达到记忆多轮对话的功能,这样就实现了一个最简单的 cloud code 的 编程助手。 下面看一下效果。我让这个我们写的编程助手新建一个画布,然后画布可以新建正方形,每新建一个正方形,我们可以检测正方形和正方形之间的碰撞,检测如果碰撞了有提示红字的效果,就是正方形变成红色的效果。 嗯,下面我们看看这个最后它生成的这个 html, 它可以随便的生成正方形,然后检测这个正方形之间的碰撞,还是比较完善的。 最后总结一下,其实模型就是智能体,我们的工作就是给他工具,然后让开这种思路能不能用到你的业务里?给模型一些有边界的工具能力,比如你自己业务系统封装的操作函数,让他自己编排执行来整合到自己的业务里。

今天我们来聊一个特别有意思的话题,有个 ai 编神功火的不行,但说实话,几乎所有人都用错了,结果呢,就是各种吐槽说体验太差了。所以今天咱们就来彻底把它掰扯明白,看看这东西到底该怎么用。 首先你看这个数字,八万四千,你猜这是什么?这个不是个小数目,这是 cloud code 这个项目在 github 上拿到的星票数。这就很说明问题了,它现在绝对是 ai 编程这个圈子里最火的工具之一,妥妥的顶流。但是你看啊,这么火的一个东西,征信用户的反快确实是这样的, 好多人都在说,用起来感觉特别别扭,甚至有人说完全不知道该怎么办,这就奇怪了对吧?一个这么厉害的工具,怎么会让人这么困惑呢? 这就是我们今天要去挖的核心问题。我们研究了一圈,发现问题其实特别简单,简单到就一句话,十个人里头有九个从一开始就用错了,他们是想用开拖拉机的方法去开跑车,这能行吗?完全是用旧的思维模式去套一个全新的工具。 所以要想把它用明白,咱们得先换个脑子,这不仅仅是又多了个新工具那么简单,它背后是一种全新的编程思想,或者说范式。 好,你看这里,我们把两种完全不同的编程哲学放在了一起。左边这个氛围编码听着可能有点玄乎,但其实就是咱们现在最熟悉的模式,人是主角, ai 在 旁边打打下手帮帮忙。而右边智能体编码就是 cloud code 的 玩法了,核心完全变了, ai 自己干活,你就负责秒收任务,下达指令。 你看这个比喻简直是绝了,一下就能让你明白区别在哪儿。用 cursor 这种工具的时候,你是机长, ai 是 你的副驾驶,听你指挥。但是用了 cloud could, 情况就完全反过来了, ai 成了机长,他来开飞机,那你干嘛呢?你变成了地面塔台的空中交通管制员,负责给他指明航向和最终目标。 好,那现在理念上的巨大差别我们搞清楚了,下一个问题就很实际了。行,我懂了,那在具体干活的时候,我到底该用哪个?这张表就给出了一个特别直观的答案。你看,比方说你就是想改个按钮颜色,调整下界面样式这种需要马上看到效果的小活,那肯定用 cursor 这种副驾驶模式更好,对吧? 但是,如果你要干的是个大工程,比如整个代码库的大重工,或者从零开始写一个复杂的新功能,那让 coco 的 这个机长直接上手,一次性搞定,那效率就高太多了。所以总结一下就是一句话,精雕细做的活,找副驾驶要大型土木,直接把任务包给机长, ok, 到这里,概念我们懂了,场景也分清楚了,但你以为就玩了吗?噗,接下来要说的这个,才是真正的杀手锏,一个能让你工作效率直接翻三倍的秘密武器。关键是,好多人压根就不知道这东西的存在。 这个秘密武器啊,核心技术叫 get walk tree。 可能有些人不太熟,我用个大白话给你解释一下,你就想象你的项目代码就是一条高速公路主干道,正常情况下,你一次只能在这条路上开一辆车,对吧?而 walk tree 这玩意呢,就牛了,它相当于给这条主干道旁边 biu 的 一下,凭空开辟出好几条独立的并行车道, 这样你就可以同时在好几条道上开车。比如一条道上开发新功能,另一条道上修紧急 bug, 它们互相之间完全不影响,各跑各的。 那具体怎么操作呢?难不难?一点儿都不难,其实超级简单,你看,就这么几行命令,你就能给不同的任务创建出独立的工作空间,你就可以开好几个终端窗口,让好几个 ai 机长同时开工给你干活儿。 想象一下那个场面,这张图就更直接了,它给你转示了这带来的变化有多夸张。传统方式你一个人干活,效率算一百,但一旦你用上了 work tree, 让任务并行起来,你的效率蹭的一下直接飙到三百帕,甚至可能更高。这可不是量变,这完全是质的飞跃。 当然了,要用好这么一个新东西,光知道怎么做还不够,更重要的是要知道哪些坑不能踩。咱们接下来就盘点一下最常见的几个错误,你看看自己是不是也中招了。第一个,也是最最根本的错误,就是我前面反复说的,你把机长当副驾驶使了,老是想去干预他,一步一式检查,恨不得手把手教。 这就不对了,正确的做法是什么?放手相信他,你只要把目标定清楚,定期检查一下结果就行了,别搞微观管理。 第二个错,就是我们刚刚才强调过的那个杀手锏 work tree, 很多人压根就不用,他们还是老样子,在主分子上直接让 ai 干活,结果一次只能干一件事 呀,这简直就是把法拉利当买菜车开,完全浪费了 cloud code 的 最大的潜力。第三个错误,这个就非常现实了,直接关系到你的钱包。 很多人有个习惯,就是不管干啥都用 cloud 系列里那个最牛,当然也是最贵的 opus 模型。说实话,这完全没必要,我教你一个省钱的技巧,用 opus 这个最大脑去做顶层的规划和设计,这个最关键,然后具体的执行,写代码这些活儿,就切换到性能足够但便宜得多的 solnet 模型。 这么一操作,能省下多少钱?高达六十趴。好了,到现在咱们理念也懂了,常见也分清了,技巧也掌握了,坑也知道了。那最后一步,就是把所有这些东西串起来,娓娓一套,清晰高效的最佳实践工作流 来。这就是掌握 cloder code 的 七步黄金法则,咱们一步步来过一遍。第一步,理解,别急着动手,先用你最顺手的工具,比如 cursor 或者你的 ide, 把代码和需求彻底搞明白。第二步,规划,让最强的那个大脑 opus 帮你出谋划策,定个高层计划。 第三步,创建,给这个任务单开一个 git work tree, 把它跟别的工作隔离开。第四步,执行,这回就用性价比到的 sun 模型,让它按照计划去写代码。最后就是常规操作了。第五步,审查代码,第六步,跑测试。第七步,没问题了就提交,你只要跟着这个流程走,就能真正把这工具的威力给发挥到极致。 所以你看,绕了一圈,我们又回到了最核心的那个观点上,你一定要记住 cologold, 它不是一个更好用的科室儿,它根本就不是一类东西,它代表的是一种全新的编程范式。你如果老想着拿对待副驾驶那套去指挥一个机长,那能不憋扭吗?肯定憋扭。 那么最后,这就给我们所有人都留下了一个特别值得思考的问题,在这个新的智能体编码时代,当 ai 真的 坐上了驾驶舱里机长的位置,那我们这些人脸开发者,我们的新角色又会是什么?这可能是咱们每个搞技术的人都得开始认真思考的未来了。

今天的话我们来详细讲解 cloud code 它底层的源代码,然后这节课的话,我们会通过详细的讲解 cloud code 它源代码是怎么被开发出来的, 普通人怎么样去二次开发 cloud code, 以及 cloud code 所有的底层技术原理是怎么样规划开发出来的,那么以及教会大家用 ai 编程怎么样去一步一步开发出自己想要的 cloud code, 或者是呃基于这个 cloud 去做其他的一些事情。 那么我们这节课继续讲解这一个 cloud code 它的这一个 ai 功能和 api 接口的这些文档。 首先的话我们来分析这个 api 接口, api 接口这个它的逻辑是通过这个 c r i 点 json, 然后去读储,读取这一个嗯 caller code provider 点 json, 然后注入这个环境变量,再去调用这个后面的这个 c r i original 点 json 的 这个核心,那么通过这个 arabic s d k client post h t p e open big model a p i s graphic v one message, 通过这一个 arabic base u r l 加上这个 arabic api key 这样的一个形式,然后去调用后端的这个其他的大模型。 另外的话就是这个 arabic sdk 的 这个 client 的 核心类,它是从这一个, 从这一个 original sdk 的 这个 client 核心类,从这一个 c r i original 点 js js 以及代码分析到这一个 asp 类的这个关键 api 的 方法,以及 message 点 create 的 这一个方法,还有这个 java script 核心的这一个 api 调用,还有 post 的 这个 vone message 以及 beta true 请求头的话是有这个 content type, 还有这个 application jason, 以及这一个叉 api 的 这个 key asterisk 的 这个 api key, 还有这个 asterisk 钢 battle, 还有这个 battle 标识请求的这个体, 有这一个 model, 比如说 grm 五,还有这个 max token 数字最大输出的这一个 token, 还有这一个 system 系统提示词,系统的这个指令。还有 message 对 话的这个历史,以及 row user content row user content, 以及这个 row assistant content, 以及 row user content type tool use, 还有 tool 工具的这个定义 name bash description, 还有这个 input scanner, 另外有这个 thinking 思考配置的这个模式,思考配置的模式就是深度思考的这个能力。那么有 type enabled a aadaptive disabled, 还有这个 stream true force 是 否为流逝响应 stream true or fault, 是 否为流逝响应工具调用配置这一个思考的这个模式。另外的话有这个最大的输出,还有这个系统级的这一个指令对话的这个历史。 另外的话就是有这一个 message stream 的 这个方法。还有 sce 的 server surf send event surf send event 流逝的这个响应通过这个 rt from sce response 处理。还有这个响应事件类型,由这个 message start 消息开始, message data 消息的增量 tokens 逐个输出,还有这个 message stop 消息的结束 completion 完整 完成,完整的这一个 jason, 还有 pin 是 心跳的意思,以及这一个 bedrock 客户端 aws 集成以及 java script aws bedrock cloud 模型支持。还有 class w one extends base constructer a w s region, 有 这一个 a w s 区域,还有这一个 base u i l 这个 http backbone round time region amazing amazing amazing a w s become 以及这个 a w s secret key, 还有这个 a w s access key, 以及这个 a w s session token 这些 完成,然后由它这一个 a w s 的 这一个 c 个 v 四的这个签名认证链,还有环境变量配置文件,以及这个 a w s 的 这个 access key, a 加 id, 还有这个 a w s secret access key, 还有 a w s session token, 以及 a w s s o 以及这一个 ec instance, instance meta data, 还有 api 请求的参数参数和这一个类型以及说明。那么有这个 model stream, model 有 这个类型是 stream, 还有这个模型的名称 max token number, 最大的输出 token 数,还有这一个 system stream 系统提示词 message array 对 话的这一个消息的序组,还有 tools array 工具的这个定义的序组,还有这个 linking type string 思考的这个模式,还有 string boolean 是 否流逝,还有这个 betas array, beta 功能列表,那么十四种。这一个内置的工具。有这个 built in tools 工具列表的这一个总览, 由这一个 agent 创建,子代理和多代理协助,它可以支持,比如说它不能支持网络文件操作和网络操作。还有这个拜师,它可以执行这个命令,行命令,然后它可以支持文件操作,也支持网络操作。还有这个工具的话有这个,比如 write read, read 的 话就读取文件图片, pdf notebook, 它有这个文件操作,但它不能进行网络操作,它是支持这个文件操作,但不支持网络操作。 然后它有这个 edit 编辑这个文件,有这个 s t r replace 的 跟这个格式,然后是支持这个文件操作,但是不支持这个网络操作。同时还有这个 globe global 模式的这一个匹配查找文件,它支持这个文件操作,不支持网络操作。那么还有 grab 内容的这个搜索支持这个文件操作,不支持这个网络操作。同时它有这个 task 任务的这一个管理创建停止获取输出,有这个文件操作,不支持这个网络操作。还有这个 web search 网络的这个搜索不支持这个文件操作,支持这个网络操作。还有这个 web fetch 网页的这个内容中 抓取是不支持这个文件操作,支持这个网络操作。还有这个 m c p, 这一个 m c p 的 这个协议的这个工具调用是支持这一个文件操作和这一个网络操作的。同时的话还有这个我 ask question 向用户的提问,它是 不支持文件操作,也不支持网络操作。还有这一个 to do, right to do 的 这个列表的管理,它是不支持文件操作,也不支持网络操作。同时还有这个 config 配置管理配置操作,它是呃支持这个文件操作。进行文件的这个配置,它不支持网络操作。还有这个 worktree, 它 是是支持这个文件操作,是可以进行 git 的 这个 worktree 的 这个管理,但是它不支持这一个网络操作。