【从环境搭建到组员上手】记录下公司推行AI编程的方案,零AI编程基础快速上手Codex

起因:前段时间领导无意间发现我在用Codex,于是问我这是什么东西,我就隐晦的说了下,然后要求我全公司推广 ,领导下令:开发效率提升30%;没办法了,只能硬着头皮先在组内试点,因为时间有限,只能最短时间让组内小伙伴先上手,于是就有了下边这一堆内容。 最终反响很好,对领导的冲击挺大的,我只希望别触发裁...
【从环境搭建到组员上手】记录下公司推行AI编程的方案,零AI编程基础快速上手Codex
【从环境搭建到组员上手】记录下公司推行AI编程的方案,零AI编程基础快速上手Codex

起因:前段时间领导无意间发现我在用Codex,于是问我这是什么东西,我就隐晦的说了下,然后要求我全公司推广 :joy:,领导下令:开发效率提升30%;没办法了,只能硬着头皮先在组内试点,因为时间有限,只能最短时间让组内小伙伴先上手,于是就有了下边这一堆内容。

最终反响很好,对领导的冲击挺大的,我只希望别触发裁员buff:folded_hands:

目前情况:

  1. 人员配置:组内开发4人,基本都处于会用deepseek、豆包阶段;
  2. 公司项目:ERP开发组,业务需求非常复杂,技术要求不高,有前后端分离项目(SpringBoot+Vue2)、有03年的老SSH项目
  3. 编程套餐:ChatGPT Plus × 3,应该不够,效率提升明显的话可以继续加

暂不上任何工作流,一是组员接受能力有限,二是token拮据,待经费充足后再上Trellis

以下就是AI编程培训的整个过程。


一、环境准备

1. 安装PowerShell 7

  1. 安装 PowerShell-7.6.1-win-x64.msi

  2. Win + R 输入 pwsh 回车,输入

    New-Item -Type File -Path $PROFILE -Force
    
    notepad $PROFILE
    

    会弹出文本框,复制以下内容,粘贴后保存

    [Console]::InputEncoding = [System.Text.Encoding]::UTF8
    [Console]::OutputEncoding = [System.Text.Encoding]::UTF8
    $OutputEncoding = [System.Text.Encoding]::UTF8
    $PSDefaultParameterValues['*:Encoding'] = 'utf8'
    
  3. 命令行默认配置,选择刚安装的Powershell 7

    image
    image

  4. 如果没有,在设置页左下角的打开JSON文件中打开配置文件list中加入下面配置,替换commandline:

    {
        "name": "PowerShell 7",
        "commandline": pwsh.exe的全路径,
        "icon": "ms-appx:///ProfileIcons/pwsh.png",
        "startingDirectory": "%USERPROFILE%"
    }
    
  5. VS Code中Ctrl + Shift + P 搜索 Open User Settings (JSON)追加配置:

    "terminal.integrated.defaultProfile.windows": "PowerShell",
    "terminal.integrated.profiles.windows": {
        "PowerShell": {
            "source": "PowerShell",
            "icon": "terminal-powershell"
        }
    }
    

2. 安装Typora(建议)

  1. 安装 typora-setup-x64.exe
  2. md文件编辑器,试用15天,到期后可以选择续费或寻找破解版
  3. 常见用法:#(标题)、- (列表)、```(代码块)、1.(序号)

3. 安装Codex

  1. VS Code插件市场搜索Codex,安装,可能要几分钟

    image

  2. 使用API密钥

    image

  3. 将CPA的key填入API密钥

    image

  4. 修改codex配置文件,C:\Users\用户名\.codex\config.toml

    model = "gpt-5.5"
    model_reasoning_effort = "high"
    preferred_auth_method = "apikey"
    personality = "pragmatic"
    model_provider = "cpa"
    [windows]
    sandbox = "elevated"
    [model_providers.cpa]
    name = "cpa"
    base_url = "https://xx.xxx.com/v1"
    wire_api = "responses"
    
    [mcp_servers.context7]
    command = "npx"
    args = ["-y", "@upstash/context7-mcp@latest"]
    startup_timeout_sec = 40
    
  5. 验证codex使用的是不是ps7:
    输入:

    执行:$PSVersionTable.PSVersion
    告诉我输出
    

    输出:

    Major  Minor  Patch  PreReleaseLabel  BuildLabel
    -----  -----  -----  ---------------  ----------
    7      6      1
    

    输入:

    执行:\[Console\]::OutputEncoding
    

    输出:

    BodyName : utf-8
    EncodingName : Unicode (UTF-8)
    WebName : utf-8
    CodePage : 65001
    

4. 安装vscode-idea跳转插件

  1. VS Code插件市场搜索EditorJumper,安装Ctrl + Shift + P 搜索 Open User Settings (JSON),添加以下配置

    "editorjumper.ideConfigurations": [
        {
            "name": "IDEA",
            "isCustom": false,
            "hidden": false,
            "commandPath": "F:\\work\\IntelliJ IDEA 2023.2.5\\bin\\idea64.exe"
        }
    ]
    
  2. IDEA插件市场搜索EditorJumper,安装
    Settings-Tools-EditorJumper配置

    image

  3. 这样就可以在VS Code/IDEA间互相跳转了
    IDEA:

    image

    VS Code:

    image

二、基础概念

1. 名词解释

  • Token:词元,大模型输入输出的基础单位,比如:我,喜欢,吃,苹果
  • Prompt:提示词,它的质量决定代码输出的质量,重中之重,下面单独讲
  • MCP:大模型与外部服务的标准化接口,常见:Context7(获取最新官方文档)、Playwright(模拟浏览器操作)
  • SKILL:动态加载的外置 Prompt,常见:superpowers(AI编程工作流)、frontend-design(前端去AI味)、skill-creator、backend2frontend(个人自研,前后端分离项目用于关联前后端)
维度 Skill (技能包) MCP (工具协议) 形象类比 说明书 管道 核心本质 动态加载的外置 Prompt 跨服务的标准化接口 解决的问题 减少上下文干扰,精准约束 解决"手短"问题,连接数据 存在形态 .md 格式的指令集 + 描述 运行在本地/远程的工具服务器

2. AGENTS.md

  • 用户级:C:\Users\用户名\.codex\AGENTS.md,所有项目都遵循这里面的规范,记得修改作者标记
  • 项目级:在每个项目的根目录下,也是AGENTS.md,是这个项目独立的规范,非常重要

分别展示各个应用的AGENTS.md

3. 推理过程

image

image

三、Prompt

1. 理念

Prompt=设计文档+我们要让他做的事情

AI 不是许愿池,不能有什么想法直接提出要求进行实现。

不合理的 Prompt = 跳过"构建推理条件",直接索要结果。

例如下面这种提问方式:“帮我设计一个公司的预核算系统。”

缺少:

  • 使用场景是什么?
  • 最终目的是什么?
  • 业务边界是什么,跟系统中的其他业务有什么关联关系?
  • 你希望它"实现"到什么程度?

一定要有结构化的需求描述,目前我们的设计文档大多数符合这个要求,稍微改动即可使用

关键点:

  • 要有主要业务表的表结构
  • 要说明前端、后端代码要生成在哪个模块中
  • 如果有需要参考的文件,可以添加到上下文中
  • 如果需要修改现有的功能,要说明要改哪个类的哪个方法,代码位置最好也写上

2. 模板

  1. 开发新需求:

    • 大功能:

      将设计文档加入到上下文
      - 请仔细分析设计文档,先不要修改代码,给出方案后交由我确认,没问题之后再进行编码
      - 代码放在:xx
      - 需求中提到的后端相关内容,不要罗列在类及方法的注释上,要对应在对应的业务代码行上
      
    • 小功能:

      直接将你的需求粘在输入框中
      - 需求中提到的后端相关内容,不要罗列在类及方法的注释上,要对应在对应的业务代码行上
      - 完整实现上述需求
      
  2. 修改已有功能:

    1. 将涉及到变更的主要文件加入到上下文中
    2. 将你的需求粘在输入框中或者@设计文档的路径
    请仔细分析上述需求,
    - 先不要修改代码,给出方案后交由我确认,没问题之后再进行编码(自己判断是否需要加这一句,如果需求很明确可以直接编码)
    - 需求中提到的后端相关内容,不要罗列在类及方法的注释上,要对应在对应的业务代码行上
    - 完整实现上述需求
    
  3. 如果需求包含前端和后端,使用skill根据后端生成前端任务清单

    • 功能实现完成并review没有问题之后执行:

      使用skill:backend2frontend,生成本次需求涉及功能的API文档和前端任务清单,文档放在docs/某某需求/

    • docs/某某需求/下会出现API文档、前端功能清单

    • 复制API文档、前端功能清单到前端项目,并加入到上下文中

      请基于当前前端项目、API 文档和前端功能清单完成本次需求。
      - 代码生成位置:xx/xx/xx
      要求:
      1. 先识别本次功能清单实际涉及哪些模块。
      2. 只实现清单明确涉及的内容。
      3. 不强制补全清单未提到的页面、查询区、列表、表单、按钮或接口。
      5. 不新增清单外功能。
      6. API 字段、请求方式、响应结构严格按照 API 文档。
      8. 信息缺失不要猜测,列入“待确认项”。
      9. 遵循当前项目代码风格,不修改无关文件。
      
      如果有待确认项,需要输出,我确认后再写代码。
      
  4. 修复bug模板:

    修复当前问题:
    现象:
    报错:
    复现步骤:
    
    要求:
    1. 不影响现有逻辑
    2. 增加日志(可选)
    3. 输出根因分析
    
  5. 如果是创新性需求(几乎很少用到):

    使用PLAN模式,我们把想法告诉他,他会给我们输出一套方案,然后我们不断去完善这个方案,最后让它编码

四、实战演示

  1. 复杂新需求案例
  2. 旧需求改动案例
  3. 屎山代码优化案例
  4. BUG修复案例
  5. 独立系统搭建案例

五、注意事项

一定要检查AI生成的每一行代码!

一定要检查AI生成的每一行代码!

一定要检查AI生成的每一行代码!

  • 不要一次性实现所有需求,一个功能实现之后,新开一个窗口实现剩余需求(具体根据功能大小、剩余可用上下文而定)
  • 如果上下文即将超过90%,检查当前窗口AI生成的代码,再开新窗口实现剩余需求
  • 如果发现生成的代码可读性不好,可适当修改
  • 如果发现生成的代码经常出现相同的问题,在群里及时反馈,我会整合到AGENTS.md里
  • 如果是简单需求,一次性描述清楚,如果它做错了,重新来(彻底重新开始,不要纠正它让他改错),把避免这个错误放到原始 prompt后面。如此反复直到你在三轮对话内完成这个需求
  • 严令禁止问一些网络安全、逆向、敏感话题相关的内容,可能会触发封号
  • 如果是非常简单的需求改动,可以用网页端的豆包、Deepseek去解决,尽量节省编程工具的用量

六、其他

  1. 开发需求工作量的评估标准继续沿用原评估标准,这样方便统计效率实际提升多少。
  2. 过程记录:记录下使用AI前后,在开发效率、代码质量、Bug数量等方面的具体数据对比。比如:“未使用AI,预估10个工作日;使用AI后,实际花费4个工作日,并且代码一次性通过率提升了50%。”

结语:AI只是辅助工具,不可能替代人

7 个帖子 - 6 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文