当代码生成变快,工程师要交付的就不只是代码,而是能让代码可靠发生的系统。
Linus 那句 Talk is cheap. Show me the code. 在 AI 时代并没有失效,只是对象变了。
过去,代码是最硬的交付物。它能编译、运行、测试、上线,也能诚实暴露问题。
但现在,当 agent 可以在几分钟内生成一组实现、补测试、改 bug、跑命令、读文档,真正的工程问题开始从"你能不能写代码"转向:
你能不能定义一个系统,让 agent 稳定地写出代码、验证代码、修改代码,并在错误发生时回到正确路径上?
换句话说,新的 show me the code 可能是:
text
Show me the system.
Show me the boundary.
Show me the prompt.
Show me the tests.
Show me the logs.
Show me the rollback path.
Agent 不是聊天框,而是行动系统
Agent 更像一个由语言驱动的闭环行动系统。它通常包含:
- 目标:要完成什么。
- 上下文:它知道什么。
- 工具:它能调用什么。
- 权限:它能改哪里,不能改哪里。
- 反馈:运行结果、测试结果、用户反馈。
- 记忆:它如何延续任务。
- 停止条件:什么时候算完成,什么时候必须停下。
如果缺少这些边界,agent 很容易把"看起来合理"当成"真的正确"。
这也是为什么很多 AI 编程体验会出现两极分化:简单 demo 非常惊艳,复杂工程却很容易发散。问题不一定是模型不够聪明,而是系统边界没有被定义好。
Prompt 不是一句话,而是工程协议
比如这句:
text
帮我优化这个项目。
它几乎没有工程边界。
什么叫优化?性能、可读性、安全性、包体积、架构、用户体验?能不能改 API?能不能引入依赖?怎么证明有效?失败时继续试还是停止?
更可执行的说法是:
text
目标:降低订单接口 p95 响应时间。
约束:不得改变公开 API,不得修改鉴权逻辑。
优先级:先检查 SQL 查询和缓存路径,再考虑代码结构。
验证:必须运行现有测试,并补充一个 benchmark 或 profiling 结果。
输出:列出变更文件、风险点、验证结果。
停止条件:如果无法证明性能提升,停止并说明原因。
这不是"把 prompt 写长"。这是在定义可执行边界。
好的 prompt 应该同时回答:
- 目标是什么?
- 什么不能做?
- 成功如何判断?
- 失败如何处理?
- 哪些动作需要人类确认?
- 最终交付物是什么?
一个可用的 Agent 系统,应该像小型操作系统
成熟的 agent workflow 至少要有这些能力:
- 任务调度:哪些事情串行,哪些可以并行。
- 权限控制:哪些文件能改,哪些命令不能自动执行。
- 工具接口:搜索、测试、数据库、部署、监控如何调用。
- 上下文管理:只给它需要的信息,避免把噪音塞满窗口。
- 日志记录:每一步为什么发生,结果是什么。
- 错误恢复:失败后如何回滚、重试、降级或求助。
- 验证机制:用测试、类型检查、lint、benchmark、review 证明结果。
操作系统的价值不是替进程思考一切,而是提供稳定边界。进程可以运行,但不能破坏内核;程序可以申请资源,但不能无限占用世界。
Agent 也一样。
我们不能把它当神,也不能只把它当脚本。真正有效的方式,是把它从一团聪明的可能性,逐步熵减成可靠的系统。
程序员的角色会发生什么变化?
程序员当然仍然要懂代码。
不懂代码,就无法判断 agent 生成的实现是否正确、可维护、可扩展,是否只是把 bug 包装得更好看。
但只懂代码已经不够。
未来的程序员会越来越像系统设计者。他设计的不只是函数,还有任务如何拆分;不只是接口,还有 agent 如何理解接口;不只是测试,还有判断标准如何自动执行;不只是产品功能,还有人、模型、工具之间如何协作。
这听起来像工程,也像哲学。因为你必须不断回答这些根问题:
text
什么是这个任务?
什么是正确?
什么是边界?
什么可以交给 agent?
什么必须由人负责?
这些问题并不抽象。它们决定一个 AI 系统是可靠生产力,还是漂亮的混乱。
代码会便宜,判断会更贵
在代码可以被大量生成的时代,稀缺的会是:
- 定义问题的能力。
- 判断方向的能力。
- 设计边界的能力。
- 建立验证的能力。
- 在速度暴涨时知道何时停止的能力。
AI 可以生成很多答案,但它不天然知道哪个答案值得存在。AI 可以写很多代码,但它不天然知道哪个代码符合产品的生命。AI 可以完成很多任务,但它不天然承担后果。
所以 Talk is cheap 仍然成立。
廉价的仍然是空谈。只是今天的 Show me the code,正在变成:
text
Show me the prompt that defines the task.
Show me the context that supports the judgment.
Show me the tools the agent can safely call.
Show me the tests that prove the result.
Show me the logs that explain the process.
Show me the boundary that prevents disaster.
Show me the system that can repeat success.
这才是 AI 时代的 code。
它不是单独存在的源码文件,而是一整套可执行的思想。
结语
维特根斯坦说,语言的边界就是世界的边界。
在 AI agent 时代,也许可以再往前走一步:
语言的边界,就是 agent 的边界;agent 的边界,就是未来工程的边界。
当 coding 的效率百倍千倍推进,人的价值不应被压缩到更快地敲键盘。
人的价值,应该上升到更清醒地定义世界。
推荐标签:AI 编程、Agent、软件工程、程序员、Prompt Engineering、LLM