AI

把AI当实习生而非软件:斯坦福教授的AI协作指南

在日常使用AI工具时,你是否经历过这样的挫败时刻:AI能轻易生成一个精致的超级马里奥3D模型,却无法为你家扫地机器人设计一个简单的楔形坡道?这种看似矛盾的现象,揭示了当前大语言模型(LLM)的一个核心特质。斯坦福大学的 Jeremy Utley 教授和 Mihail Eric 等专家近期不约而同地指出:阻碍我们发挥AI真正潜力的,往往不是技术本身的瓶颈,而是我们的心智模型。当我们把AI当作一台输入指令就输出完美结果的“软件”时,注定会失望;而当我们把它当作一个“人”来协作时,奇迹才会发生。本文将深入探讨“把AI当实习生而非软件”这一理念,并结合斯坦福的最新课程与前沿研究,为你提供一套系统的人机协作指南。

重新定义心智模型:为什么AI是“糟糕的软件”,却是“好的人”?

要理解如何与AI高效协作,首先需要打破对“软件”的传统认知。传统软件(Software 1.0)是确定性的,代码逻辑严密,输入A必然得到B。而基于大语言模型的软件3.0本质上是概率性的,它的行为由注意力机制和上下文动态生成。

Jeremy Utley 教授提出了一个精妙的悖论:“AI是糟糕的软件,但它是优秀的人(AI is bad software but it’s good people)。”

AI作为“实习生”的特质

把AI想象成一个“超级热情、超级 enthusiastic(充满热情)的实习生”。这个实习生不知疲倦、永远想帮忙、拥有海量的知识库。但它也有明显的缺陷:它不擅长反驳、不懂得设定边界,更致命的是,它很少承认自己“做不到”。

这就是为什么AI有时会“gaslight(煤气灯效应/误导)”你,比如信誓旦旦地让你“过几天再来检查”一个它根本无法完成的任务。这不是软件的Bug,而是它被设定为总是回答“Yes”的必然结果。

从“确定性预期”到“概率性协作”

如果你用对待传统软件的预期(即“绝对精确、无需解释”)来对待AI,你会因为它的“幻觉”和逻辑跳跃而愤怒。但如果你用对待人类实习生的耐心——提供清晰的背景、允许它犯错、引导它迭代——你就能将它的概率性转化为创造力。正如AI先驱 Andrej Karpathy 所言,LLM是“有缺陷的超人”,我们需要在认知不对称的基础上建立协作。

从“氛围编程”到“人机协作工程”:斯坦福的实战指南

在斯坦福大学备受瞩目的 CS146S(现代软件开发者)课程中,Mihail Eric 提出了一个核心原则:“Human-agent engineering, not vibe coding(人机协作工程,而非氛围式编程)。” 纯粹靠“感觉”让AI生成代码,无法产出生产级的软件。真正的现代开发者,必须学会管理这群“热情但稚嫩的AI实习候选人”。

1. 上下文获取与主动推理

AI的表现完全取决于你提供的上下文。最新研究(如 Active Inference as Context Acquisition)表明,AI Agent 在面临模糊指令时,会消耗大量 Token 去猜测或试错。因此,管理实习生的第一步是“喂”给它最小且最准确的上下文。不要只告诉它“做什么”,要告诉它“为什么做”以及“约束条件是什么”。

2. 结构化的任务拆解

不要试图用一个 Prompt 解决所有问题。将复杂任务拆解,就像给实习生分配阶段性工作。

  • 低效指令:“帮我写一个用户登录模块。”
  • 高效指令:“我们正在开发一个面向Z世代的潮玩电商App。请帮我设计用户登录模块的架构,要求支持手机号验证码和微信一键登录,并考虑高并发下的 Token 刷新机制。先给出设计方案,不要直接写代码。”

3. 可复用的协作启动 Prompt

为了规范“实习生”的行为,我们可以使用结构化的 Prompt 来设定协作基调。以下是一个在实际工程中可以直接复用的启动 Prompt 示例:

# Role
你是一名严谨且经验丰富的后端工程搭档(高级实习生)。

# Context
我们正在进行一个电商订单系统的重构。当前系统是单体架构,我们需要将订单模块拆分为微服务。
技术栈:Java 17, Spring Boot 3, MySQL 8, Redis。

# Task
请协助我完成订单状态机的设计与代码实现。

# Rules
1. 先理解需求:在动手写代码前,先复述你对订单状态流转的理解,并向我确认。
2. 暴露风险:如果发现我的设计有并发问题或性能瓶颈,请直接指出,不要盲目顺从。
3. 分步执行:先输出状态机枚举类和核心接口定义,等我 Review 通过后,再实现具体逻辑。
4. 事实与推测分离:对于不确定的业务逻辑,请明确标注为“推测”,并给出你的假设依据。

# Action
请先确认你已理解上述背景,并给出你对订单状态机初步设计的思考。

协作进阶:从“派发任务”到“共同解题”

把AI当实习生,能解决“执行”层面的效率问题,但容易陷入“你写我改”的单向指令循环。要实现真正的生产力跃升,我们需要将协作模式升级为“工程搭档”。

共同澄清与方案比较

当遇到中等以上复杂度的任务时,不要急于让AI给出最终答案。优秀的搭档会和你一起拆解问题。

  • 从“给出答案”到“比较选择”:你可以要求AI:“针对这个需求,请提供三种不同的实现方案,并对比它们在开发成本、运行性能和后期维护上的优劣。”
  • 共同验证:让AI为你生成的代码编写单元测试,或者让它扮演“代码审查者(Code Reviewer)”的角色,寻找自己代码中的漏洞。

建立信任与验证机制

在AI时代,开发者的角色正在从“代码实现者”转变为“系统描述者”和“质量审核者”。正如 Karpathy 在 Y Combinator 演讲中强调的,自然语言正在成为新的编程接口。但这也意味着,你必须具备更强的系统架构能力和批判性思维。

永远记住:LLM的上限就是你的上限(LLMs are only as good as you are)。如果你的代码库本身缺乏清晰的结构,AI也会一头雾水。因此,把有效的人机对话沉淀为团队的 Prompt 资产和架构规范,是高级开发者的必修课。

总结与未来展望

“把AI当实习生而非软件”,不仅是一句生动的比喻,更是AI时代人机交互的底层逻辑。它要求我们放弃对“完美工具”的幻想,拥抱“概率性协作”的现实。通过提供清晰的上下文、结构化的指令以及迭代式的反馈,我们能够将AI的“幻觉”转化为“灵感”,将它的“盲目顺从”引导为“精准执行”。

展望未来,随着 AI Agent(如自主社交网络 Agent2Creator 中的智能体)的快速发展,AI的自主规划和工具调用能力将越来越强。但无论技术如何演进,人类作为“机长”的决策、审核与架构设计能力依然不可替代。掌握人机协作工程,不仅是为了提高效率,更是为了在软件3.0时代,重新定义我们作为创造者的核心价值。


参考来源

  1. Jeremy Utley, Treat AI Like an Intern, Not Software: A Stanford Professor’s Guide, Pixelum’s Substack.
  2. Mihail Eric, CS146S: The Modern Software Developer, Stanford University.
  3. Andrej Karpathy, AI时代软件的第三次革命, Y Combinator 2025 演讲.
  4. Sanchayan Dutta et al., Active Inference as Context Acquisition for AI Agents, arXiv:2608.19202.
  5. Hacker News 讨论: Why can AI generate Super Mario but not a wedge ramp for my robot vacuum?
  6. 全栈弄潮儿, 周复盘:把 AI 当实习生,还是当工程搭档?, CSDN博客.
更早的文章

双流Transformer:解耦主预填充路径与额外解码计算

欢迎在评论区留下您的见解~