告诉 agent「为什么」,而不只是「怎么做」

给 agent 写 prompt 时,说清「为什么」比写详细规格更有用:交代优先级和意图,它才能在没被覆盖的情况里做出你想要的判断,而不是替你瞎猜。

中文
复制

早期的 AI agent 基本上就是热情高涨的笨蛋。跟它们协作,你得精确告诉它你想让它做什么(比如“A 方法存在于 B 类上,请给 C 到 F 类各加一个等价的方法”)。否则它就会跑偏,做出完全错误的事。但随着 AI agent 不断进步,情况变了。

如今前沿模型跑偏做错事,不是因为它们糊涂,而是因为它们对你的目标或优先级做出了错误假设。比如 GPT-6-Astra 以为是在给自己写代码时,就会产出压缩过的代码。它完全有能力写出人类可读的代码——至少在 Golang 上是这样,我用这个模型写出过几千行可接受的代码——但你必须告诉它,代码是给人看的1。

这是我最想给大多数给 agent 写 prompt 的人的一条建议:给 agent 提供关于你优先级的上下文,而不只是你想要它完成的具体任务。下面是我最近用来启动 Deckard 的一条 prompt。

你好。你应该可以通过 MCP 访问 Runpod(如果没有,告诉我,我来处理)。 我有一个长期目标:做一个本地程序或浏览器扩展,自动扫描我加载的页面中的 AI 内容并把它隐藏起来。短期目标是找出能在我的 macbook 上运行、又不会把电池榨干或让机器发烫的最佳 AI 检测模型,以及(相关的)如何最高效地运行这个模型。我猜 Pangram 的 EditLens 3B 或更小的 Roberta 模型可能是个不错的起点,不过它们可能需要量化,而且肯定需要花些功夫才能在我的 macbook 上尽可能高效地运行。 我希望你用我的 Runpod 账号开始回答这些问题。最终我们会转到这台 macbook pro 上做事,但我希望 Runpod 能帮忙跑一些本地跑起来太烫/太久/太慢的实验。你是个聪明的模型;如果你能看到更好的方式来实现我的目标,请告诉我,我们讨论一下。祝好运。

这个提示词里大约一半的篇幅都在交代宽泛的背景:我想做的整体项目是什么、这是个人用途而非工作、我的优先级排序(比如让笔记本保持低温)。如果我写一份明确的规格说明,就会错过一堆改进:比如本地模型改用 native messaging,或者选 Gradient 模型而不是 EditLens。

工作中我也这么干,只是会更强调自己的技术价值取向。我常常写上一段话,说明避免 bug、可观测性、优雅融入现有代码、性能这些事之间的相对优先级。注意是「相对」优先级:我不是把这些统统列出来说它们都重要,而是明确告诉模型哪些我没那么在乎、因此可以牺牲掉来更好地实现其他目标。

模型现在已经足够聪明,能在你的宏观目标上给出有意义的意见。如果你只用一份具体的技术规格去提示它,那就犯了和 XY 问题一样的错误:向专家请教,却不给专家所需的背景。


  1. 顺带一提,如果代码库是人写的,你不需要特意让它写出「像人写的」代码。它足够聪明,能自己学会周围代码的风格。 ↩

来源: Sean Goedecke← 返回首页