告诉 AI Agent 为什么,而不是怎么做

早期的人工智能助手基本上就是一群热情但笨拙的“傻瓜”。与它们协作时,你必须精确地告诉它们该做什么——比如,“类B中存在方法A,请在类C到F中添加一个等效的方法”。

否则,它们就会自行其是,做出完全错误的事情。但随着人工智能助手的能力不断提升,这种情况已经发生了改变。

如今,前沿模型即便犯错,也并非因为困惑,而是由于对你的目标或优先级做出了错误的假设。例如,当GPT-6-Astra以为自己在为自己编写代码时,它就会生成压缩代码

它完全有能力写出人类可读的代码——至少在Go语言领域,我用这个模型已经生成了数千行质量尚可的代码——但你必须明确告知它,这些代码是要给人类阅读的。

这也是我想给大多数使用AI助手的人的主要建议:除了具体任务本身,还要向助手提供关于你优先事项的背景信息。以下是我最近为德卡德项目所使用的提示模板:

你好。你应该已经通过MCP获得了Runpod的访问权限(如果没有,请告诉我,我会帮你解决)。我的长期目标是开发一款本地程序或浏览器扩展,能够自动检测我浏览的页面中是否存在AI生成的内容并将其隐藏。短期目标则是找到一款能在我的MacBook上运行、既不会耗尽电量又不会让机器过热的最佳AI内容检测模型,并相应地研究如何以最高效的方式运行该模型。我猜测Pangram的EditLens 3B或较小的Roberta模型可能是不错的起点,不过它们可能需要量化处理,而且为了在MacBook上实现最佳性能,肯定还需要做一些优化。我希望你利用我的Runpod账户来着手解答这些问题。最终我们会在本机上开展工作,但我期待Runpod能帮助完成一些在本地运行时过于耗电、耗时或速度太慢的实验。你是一个很聪明的模型;如果你能找到更好的实现路径,请告诉我,我们可以一起讨论。祝顺利。

这段提示中大约有一半都在交代项目的整体背景,比如我想要达成的总体目标、这是一项个人而非工作的需求,以及我的优先考量(如保持笔记本电脑低温)。

如果我只是给出一份明确的技术规格,就会错过许多改进机会:例如,为本地模型采用原生消息机制,或者选择Gradient模型而非EditLens。

我在工作中也会这样做,只不过通常会更强调我的技术价值观。我常常会写一段说明,阐述避免缺陷、可观测性、与现有代码优雅集成、性能等方面的相对优先级。

需要注意的是,我说的是“相对”优先级:我并不是简单地列出所有这些要素并声称它们都很重要,而是明确告诉模型哪些方面可以适当妥协,以便更好地实现其他目标。

现在的模型已经足够智能,能够在你的更高层次目标上提出有价值的建议。如果你只是单纯地提供一份具体的技术规范,那就犯了与XY问题案例中相同的错误:寻求专家意见,却未向专家提供其所需的背景信息。


  1. 顺便一提,如果是在一个人类编写的代码库中工作,你不必特意要求它写出“人类风格”的代码。它足够聪明,能够自然地融入周围代码的风格。
添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论