Skip to main content

AI影响下的工程开发的提示


  1. 注重文档的编写和生成

    1. 因为Agent的特性,只能理解上下文内的东西
    2. 文档是Agent能快速上手的一个关键的途径
  2. vibe

    1. 不要焦虑,你的工作窗口就是对话框+少量的文档diff
    2. 不需要去关注所有的文件、代码的实际内容,人不用去看代码、文档,有什么问题就让Agent帮你总结后回答你
  3. 需要明确的提示

    1. 所有的任务的前后,一定要说清楚关键的输入,和期望的输出,和中间的明确路径
    2. 不清楚的地方,可以先讨论,写文档
    3. 可以要求Agent和你讨论,一直讨论清楚所有的可能的理解问题
  4. 欠缺比较高层次的设计能力

    1. 虽然能很好得完成任务,很容易输出一个合格水平,但是不能很好得设计一个功能

    2. 你给的输入和输出,Agent总是会给出一个可行的解决方法,但是一定不是一个很优秀的设计

    3. 不能直接设计一个比较创新的、比较优秀的架构设计,抽象,比如

      1. 一种更合理的编程语言
      2. 对一堆的规则进行综合思考之后形成少数的几个抽象的原则
      3. 能修复好复杂多线程程序的内存依赖问题,但是不能设计出一个巧妙的多线程仿真平台
    4. 从头,从一个小的点子开始,一步步和AI进行对话,讨论出一个比较高层次的概念的抽象,会是一个比较顺利的过程

      1. 因为AI拥有足够的信息,足够的前后因果,特别是AI直接拿到了最核心的抽象等级
      2. 如果把这个概念进行实践后,形成代码后,让AI看着已经有的代码来继续工作,就比较困难了,因为AI很难自动理解,抽象出代码里面的核心的,高层次的设计概念。
      3. 就算是把这个设计概念写成很详细的文档,AI读了之后也不能很清晰得Get到最原始的理念,经常是丢三落四,不自洽。
      4. 只有像最开始的一步一步的讨论,纠正,设计演进的这个过程才能给AI的上下文有足够的深度理解。
    5. 改进思路是

      1. 尽量指导AI一步一步得进行抽象,不要指望一下子把全局都优化了
      2. 你可能也不知道最好的设计是什么样子,但是可以先提出现在的明显的问题
  5. 一个比较好的初始状态

    1. 找到一个设计比较合理的工程代码作为AI工作的基础,能比较有效得进行迭代
    2. 先写文档,把整个设计的文档都写得完整,再开始让AI工作
  6. 适合AI和人一起写作的环境

    1. Python应该是最适合的人机编程语言

      1. 存在大量的代码,AI生成质量好
      2. 语法简单,简明,不罗嗦(ts js 非常罗嗦),节省token
      3. 便于人类阅读
    2. vscode

      1. 作为开发代码的最流行IDE
      2. 可定制性强,方便AI开发工具,插件系统,配置,设置
  7. 适合AI的工程架构

    1. 拆分成适合LLM上下文大小的工程独立功能的模块
    2. 适合LLM工作的流程(中间代码生成,信息格式定义,脚本开发)
  8. 重要的是设计

    1. 因为代码能力、工程实现能力已经接近任何领域的高级水平
    2. 有价值的是整体系统架构的设计、重要的API接口、功能的定义
  9. 尽量不要让AI进行信息不全的工作

    1. 不要每一步很大,AI容易脱离原来的设计
    2. 每次一小步,解决一个小问题
  10. 架构设计工作的重要性

    1. 要像一个非常成功的tech leader一样,对AI的工作要求非常的明确,对输出有非常清晰的预期
  11. 中文能力差

    1. 在专业的领域问题讨论,经常给的中文但是还是英语的逻辑直接单词翻译后拼凑
    2. “概念不能变化了“->"概念锁了"
    3. "xxx作为开头"->"xxx作起首"
    4. "泛指占位词作槽值" -> 槽 应该是slot直接翻译的,槽值 的描述也很难理解
    5. "既然主 [P] 没有 closed-set 主-only 了" 主-only 很难理解
    6. “两者天然互斥,不需要靠 closed-set 维护位置三分。“ 三分???
    7. “列不完。→ 主 [P] 完全 open。“ 经常使用英语单词直译的方式来表达,汉语不是一个字词能表达完整意思的。