OK,好,那我們繼續,我們公開課的下一個小節這個內容。那麼公開課其實相比之下,其實講的會比較快一些。主要是大家有這樣的一個全局的技術的認識和了解。然後對於很多底層東西,我們其實是不會展開講。更多其實就是比如說我們接下來直接上手使用Codex來進行運行。看一下到底應該怎麼樣來進行開發。 那么之前我们其实是大概给大家介绍了一下 关于Deepseek v4 flash跟我们的Responsees API 它的一些基本的能力 那么接下来比较重要的就是我们怎么样使用这Codex 来完成更加复杂的这些agent开发 很多底层的原理基本上大家了解一下 想一想知道是怎么一回事也就可以了 但比较重要的是我们怎么样去使用现在这工具来完成对应的开发 这里有一个大家需要知道的一个点 就在于对于Codex来说 它其实现在功能现在是很丰富的 那有CodexClip 有Codex的桌面端 就是Codex的APP 还有Codex IDE的拓展 还有Codex的Cloud 它的云环境的运行和ChatGPT等等 当然现在Codex桌面端跟ChatGPT实际上是已经合并了 他们是已经合并成一个APP了 那么大家之前可能很多 我们不管开发同学用的比较多的 实际上就是Codex的桌面端会用的比较多 对吧 当然我们之后其实会比较多的 是使用这codex的命令行来进行开发 当然对于命令行来说 大家也不用怕 觉得说命令行 这个环境会比较恐怖 对不对 这个纯命令行需要点击来进行操作 会比较困难等等 这个其实不用特别担心 我们接下来会带大家一步一步来进行实现 所以其实还好 对于开发人员来说 其实使用这个桌面 使用这个命令行来完成开发 这个事情其实是迟早的事 是一定需要去克服和一定需要来进行解决的 好 那么接下来我们说对于Kodaks怎么样来进行安装 这里安装其实并不会特别复杂 基本上就是运行这些命令来进行安装 那么一般来说我们使用这CURL来进行安装的 这个情况是比较多的 这个应该是我们最为常见的一个情况 那么正好我们现在也一边 来给大家来进行一个运行 一边来给大家看一下 到底应该怎么样来进行配置 首先我们说基本上就是这么三行的命令 就可以完成所有的安装 那么一般来说 我们说使用这CURL来进行安装 肯定是最多的 当然我们说如果你安装好了这NPM的话 那么使用NPM来进行安装也是可以的 然后对于MacOS来说 如果你有Home Pro的话 你也可以使用它来进行安装 这三种安装方法其实都是可以的 都是没有什么问题的 那么安装完了之后 接下来你就可以输入 version 来看一下它的版本号 那么目前 codex的click或者 codex命令版本号最多是0.146.0 这个应该是最新版 这个应该问题不大 大家安装好之后 接下来就可以直接来进行使用了 当然安装完了之后 这里其实我们可能还需要做的一个事情 是把deep-seekv4这个模型给它来进行一个接入 那么具体怎么接入 实际上它本质是有两种方法 这个比较简单的是直接用官方的这个方法来进行运行 除此之外呢你也可以使用这个CCSWITCH来进行一个中转也是可以的 当然这个CCSWITCH是什么怎么样来进行一个使用 我们一会儿在后面在这里的时候到时候会给大家看一下 这个CCSWITCH怎么样来进行使用 但是我们现在觉得呢其实使用官方的这个接入CODEX的方法 应该是最简单的一种方式 那么官方怎么样去接入CODEX呢很简单 比如说如果你现在是MacOS的话 macos的话 那么你就直接运行这样的命令 其实就可以了 也就是说在你的命令行里面 你就可以直接 你就可以直接运行 我们现在的这样的命令 然后就可以进入到我们接下来他就他脚本实际上是直接全自动的去完成某一个叫做codex-deep-research-setup 这样的一个脚本的安装和运行 然后呢这个脚本啊 最核心的这个作用啊 实际上就是帮你一键啊 把你当前底层的Codex的所有配置呢 都给你迁移到啊 Deep Seek当中去啊 当然这个如果你需要手动来进行配置的话 实际上非常非常复杂 你需要修改很多很多参数和变量啊 才能够把你底层已经安装好的 这一整个Codex给它迁移到 Deep Seek这个基础环境里面去啊 但是如果你现在使用官方啊 Deep Seek官方给你提供的 这样的脚本的话啊 实际上所有的事情都省啊 他会非常非常的这个便记啊 然后呢当然如果你想看这个脚本里面具体写了什么东西的话 那么这个脚本实际上它是规定了啊 关于当前这个modal啊modal provider啊 然后呢他介入方法啊 对不对 然后他的这个written effort 然后呢我们现在的啊这个chat log啊 就是我们现在这个对话日志保存在哪里 然后等等等等啊 所有的我们说相关的这个配置信息全部都会帮你写进去 当然我们说你运行了这个脚本之后啊 上面其实是呃mac用户啊 是运行这个 然后呢你如果是windows用户的话啊 就是运行下面这个情况 然后你在运行的过程当中 他就会提醒你 是下面这个接测你可以不用管 然后他就会提醒你 你现在是使用Deepseek模型 还是Deepseek Pro模型 还是要去回到原始的Codex环境里面去 他实际上是会给你三个不同的选项的 那么这三个不同选项 你就可以自由的来进行选取了 当然现在DeepseekV4 Pro模型的正式版还没有上线 所以你可能只能去选取这个Flash 就是Deep Stick V4 Flash正式版来进行运行 然后当你输入完成之后 那么接下来它会提醒你输入API Key 然后你再输入API Key 输入完API Key之后 那么接下来它就会显示这Completed这样的按钮 当你当这样的信息 当你如果看到Completed的信息的话 说明你现在配置成功了 就这么样的情况 当然我们说如果你还想继续回到你最一开始的这样的配置 或者你想切换底层模型的话 那么就再次运行这样的命令就可以了 比如说我现在想再切回我们原始的codex这样的环境的话 那么OK你再运行一下这个命令 它又会弹出我们最开始的三个选项 你是使用Deepseek v4的flash这个模型 还是pro这个模型 还是回到你最开始的codex的这样的环境配置 然后你选择回到最开始的codex环境配置就可以了 它就可以让你回到你最开始的codex的配置 当然我们最开始安装好了codex之后 其实还并没有来进行授权 所以其实你这里面如果是需要来进行回到你原始的Codex版本的话 那么其实你是需要重新围绕你Codex来进行授权的 就比如说你可以使用现在的订阅的这样的额度来去完成Codex的运行 这个其实是完全OK的 那么说此之外我们从下面还有一个叫做使用CCSWITCH CCSWITCH实际上最早是Cloudcode的一个编码形式的这样的一个同步映射的这样的工具 我们之前不是说了吗 对你当前这个模型来说 你需要介入各样的不同的 agent里边去 那么你可能就需要 满足不同的agent 它本身的响应格式 对吧 那么在原来的这个情况下 比如很多模型 它响应格式本来不符合 比如说Anthopic 他们的这个要求 那这个时候怎么办呢 这个时候你就可以使用 这个Sysswitch 它是可以帮你把你的 输出的格式来进行转换 转换了之后 就可以介入到 比如Cloud Code 或者是Codex里边去 是这么一回事 但现在我们说DeepSeek 它出了兼容 我们当前的Codex 这个版本的API响应格式之后 现在你也是可以使用这个CCSwitch 因为CCSwitch它有一个goi的这样的页面 它其实是可以直接在我们这个前端 来进行这个运行 就可以也是一个比较简单的 这样的这个运行的这个方法 它是可以在这个goi 它是可以在这个goi里面来进行一个 直接的这个同步的这样的一个运行 这个也是可以的 但只不过呢CCSwitch现在来看 可能并不一定有我们上面所看到的 那样的一个 但是如果之前是使用過SYSWITCH,那確實可以在GUI的頁面裡面直接來進行一個本地的轉換,其實就可以了。 它其实是可以把原始的响应格式来进行转换 然后直接就把它导入到我们当前的Codex里边去 它的流程并不是去修改你Codex本身的 并不是修改你本身Codex这样的一个配置 而是让你现在本地去响应的这样的Deep Seek的 这样的一个模型的API跟输出结果 能够去适配你当前的SitSWitch 是怎么样的一个情况 OK好 那这个呢是我们说的啊 它的一个 基本的一个配置的这个方法 然后啊 接下来比较重要的一点啊 是关于我们的 我们的这codex啊 应该如何来进行一个使用 当然其实对于codex来说啊 稍等我们这给大家看一下哈 关于codex啊 如何来进行使用啊 因为我这边是远程啊 连的啊 连的这个codex啊 然后呢我们来看一下 我们实际上啊 这个codex 应该如何来使用呢 大家稍等一下 大家看一下 其实我们说像Codex 或者是这个 Cloud Code 它的这个使用方法 现在来看已经是 非常的 已经是非常的这个类似了 其实之前一段时间 这个 Codex cloud code封号的那段时间 因为我们团队其实最早 是全部在 使用这个 我们团队 其实使用 cloud code其实使用的是比较多的 在这 大家看一下 然后呢在 codex的这个 在cloud code封号了之后呢 其实我们才全部的 全部的转向了 这个codex 所以在过去一段时间 实际上我们在 使用codex的场景 其实非常多 基本上从头到尾 都是在使用codex 所以在codex里边 我们也是积累了非常多的一些 使用的一些心得和一些方法 那么总的来说 我们这里可以先快速的给大家看一下 如果我们现在接下来要去使用这个Codex的话 那么你到底有哪一些需要去注意的这个事项 那么首先我们说对于这个Codex来说 它的基本的这个项目结构 其实和Cloud Code 或者和其他的一些这个项目 其实很大的这个区别 那么当我们接下来要去使用这个Codex的话 我们这里先给大家补充一轮这个理论基础 那么首先你可能基本的项目结构 可能就长成这个样子 大家现在看到的 对不对 底层它会有一个agents.md 然后它会有一个.cloud .codex这样的文件夹 然后下面可能就是你的一系列的 对应的这样的一些项目文件 那么codex实际上我们在进行开发的时候 仍然是围绕一个又一个独立的完整的项目 去构建对应的项目文件这样的形式来进行开发 那么底层会有一个agents.md这样的文档 那么这个文档实际上是一个非常关键 非常重要的一个全局 涉及到全局的影响 这样的文档 那么这个文档 它在实际的定义的过程当中 就是我们整个项目运行的过程 它需要遵循的最低层的 核心的这样的指令 比如说我们现在如果要去 开发一些项目的话 那么实际上开发的项目的 目标核心功能底层规则 都需要写到agent.md里面去 好那么紧接着 它还有一个.codex 这样的文件夹 那么.codex的文件夹 它的非常核心的功能 是去保存我们现在 在进行整个agent项目运行 你可能免不了 需要去额外定义一些子agent 对不对 那么所有的这些子agent 那么对于Codex来说 它的子agent 是TML这样的格式来进行定义的 那么它全部都是保存在 .Codex的文件夹里面 就一个叫做agents的文件夹里面 它里面有非常非常多的 一些关于你子agent这样的定义 那么什么叫做子agent 那么为什么我们需要单独定义系列的子agent 那么大家现在看到这样的项目录 其实也就是我们之后 去搭建AI数据分析智能体的 完整的项目的目录 所以我们这里现在可以 大概给大家看一下 它是一个什么样的基本结构 那么所谓的agents里面 我们需要定义很多的子agents 原因也是因为你在实际开发过程当中 可能免不了需要去有一些 特定的开发类型的这样的任务 比如说我需要来进行PRD的审查 对不对 或者是我现在需要去围绕一些 项目的功能来编写一些测试脚本 那对应的这不同类型的工作 它实际上是需要有一套自己独立的生下文的 对不对 那这个时候我们就需要给它去创建一系列的agents 一系列的子agents 那到时候遇到这样的问题 我们就可以直接分派给对应的subagents来进行完成 就可以了 是这么样的一个基本功能的定位 然后这个文件夹里面当然就是现在的 我们所有的sqs保存的地方 对不对 然后各式各样sqs都在里边 那么在网上下还有一些profile 和这个skeema 它实际上是我们当前特定的某些项目文件 里面的一些内容 当然还有test 还有readme 当然如果你现在所有的项目文件里面 如果还有紫项目的话 每个紫项目里面可能他也是需要有对应的一些readme 这样的文档 这个是它的一个基本项目结构 那么比较重要的是我们初学者上手来进行使用的时候 你是需要编辑好每一个agents.md这样的文档的 那么agents.md这个文档 稍等我们刷新一下 agents.md这个文档 它实际上不会随着你未来上下文的变化 而变化 它实际上是会始终都会加载到你当前的项目文件里面去 所以它实际上是最为核心 最为永久的项目的记忆 这点你实际上是需要首先给它讲清楚的 那么同时呢 我们实际上每次在进行运行的时候呢 刚刚其实我们看到啊 有一个叫profile这样的这个参数啊 那么profile这个参数呢 它啊核心的这个用途是我们接下来呢 在运行每个不同的这个项目的这个时候啊 那其实你可以导入对应的一些这个profile啊 给他特定的一段提示词啊 是这么一回事 然后呢对于这个codex来说呢 它呢实际上是有上下文的这个啊 它呢是有这个全局的这个记忆啊 并且是有这跨文档的拥有记忆的啊 但是呢我们现在的啊 这个codex的实际上也是可能啊 需要在你的memory参数里 那么除了我们对于Codex来说 它有天然的一些记忆功能之外 其实有的时候我们还需要 接着它的钩子系统 给它人工的设定一些记忆的功能 当然这点会比较复杂 这个我们稍后再说 然后同时对于Codex来说 我们实际上进行运行的时候 它还有很多斜杠命令 那么这些斜杠命令里边用的比较多的 比如说Compact对不对 去亚洲藏小文 然后Model去切换你当前这样的模型 然后Permissions去设置 你当前的对话当中的这样的一个权限 然后这个states是去看你当前绘画运行的这样的基本状态 这里面大家其实都是可以通过一些命令来进行测试的 那么实际上我们在进行复杂任务开发的这个时候 我们往往需要比如说组件多agent这样的系统 对不对 这个时候比较重要的就是我们的profile 我们的agent 我们的skill和我们的subagent这四个对象 当然这里面我们先给大家快速的过一下 大家理解一下是什么样的概念 稍后我们会有具体的操作 那profile实际上指的是 我们每次在开启codex的时候 你其实可以给他输入一个profile 相当于是给他输入一段文本信息 让他接下来是执行什么样的任务 给他临时的人工 给他灌入输入一个上下文 然后同时我们刚刚说了 你的自定义的agent 可以灵活的派发各式各样不同类型的任务 然后我们的skills 他可以灵活的加载对应的 skills加载对应的上下文 对不对 然后我们的subagent 实际上是我们子agent派发的一种方式 我们可以灵活的把你工作拍拍给你自定的agent 是怎么样的一个情况 然后同时我们这里其实接下来是定义了多个的profile 这样的文档 多个profile文档实际上 它是用于不同的agent去执行不同类型的任务 这点我们稍后会看到完整的profile这样的文档 然后如果你现在是要创建一些agent的话 那么每一个agent实际上它都需要有一个名字 需要有个description 需要有一个sendbox的这样的权限设置 和我们的developer instructions 这点其实这个developer instructions非常重要的 它实际上就是我们每次当前对应的agent 对应的特殊的定义好的agent 每次运行的时候 它所加载进去 进去它上下文 是这么一回事 当然我们说对应的 对于codex来说 它的skill创建也是类似的 需要有一个name 需要有一个description 对不对 然后需要有一个当前的skills的这样的证文 用于去描述我们所有的skills 这样的内容差不多 我们说是这样的一些基本的设置 当然除此之外 我们有的时候同学可能还会用到 像exec这样的功能 所谓exec这样的功能就指的是 我们给当前cogex 给他输入一条完整的指令 让他一次性的完成整个完整指令 中途不间断 它实际上是一个一次性的 任务的执行的这样的方法等等 这些实际上是一个基本的 我们说cogex 它的一个使用的过程