近期看了一些大佬对AI时代软件形态的探讨,记录一些感悟。
编写软件不再只是程序员可以做的酷酷的事。
过去几十年的发展,“机器”的形态发生了巨大变化,现在,LLM本身也变成了“机器”。
“编写软件”这件事的本质是使用机器实现定制化的需求。因此,过去通过写代码编译成机器码,现在又多了一种方式:通过prompt交给LLM。
编写一个趁手的软件工具,满足人哪怕只有一次的使用需求,这在以前是极其奢侈的,而现在有了LLM将成为可能。这是软件进一步发扬光大的机会。这也是软件之美,才是软件造福人类的意义所在。
在软件大众化的历史进程中,要做出一个App分享给别人,Coding本身不是最麻烦的部分。API Keys, Domain Names, Deployment, Authentication, Payment…接入这些才是最麻烦的。怎么解决这个困难?
过去的软件基建、文档信息都是围绕人类友好而建设的。怎么改造为对LLM agent也友好?
像写FAQ这样的内容反而会很有用,因为刚好对应了用户可能会问的那些问题,而能被LLM所引用。
- 基于LLM的软件要考虑的几个点:如何让LLM“看见”所有人类能看见的信息?如何让LLM“做出”所有人类能执行的操作?如何让人持续的、便捷的参与到LLM的工作流中?
再从这个视频中提炼一些来自 Andrej Karpathy 的几个观点:
软件1.0 → 软件2.0:过去我们写规则(代码)来驱动机器,如今我们更多在“写数据”。模型通过学习数据“自己写出”隐含的程序,梯度下降成了新的编译器。对产品而言,代码仍重要,但数据与反馈回路是决定性资产。
Prompt 是新型“编程接口”:自然语言提示、少样本示例、系统提示合在一起,构成对模型的“高阶API”。很多时候,我们不必追求一次性完美提示,而是把交互当作 REPL,逐步对齐目标与约束。
模型+工具+编排是新的运行时:检索(RAG)、函数调用、代码执行、浏览/数据库/私有API 接入,把模型从“回答器”升级为“行动器”。工程工作重心迁移到“编排”与“可靠性”,如超时/重试、回退策略、缓存、成本与延迟预算。
数据驱动的开发闭环:埋点→收集真实用例→构建数据集(成功/失败/边界)→离线评测集→在线对照试验→改进提示/工作流/微调→再次发布。评测不只看损失和准确率,还要覆盖帮助性、安全性、一致性、可控性等维度。
工程师角色的变化:从主要写业务逻辑,转为设计系统边界、数据与评测。好的产品团队会把“数据策展”和“评测设计”当成一等公民,把日志当金矿,把失败用例当测试资产,把小型定制微调当常规手段。