AI智能体提示:告诉它为什么,不只是怎么做
早期AI智能体基本上就是一群热心的蠢货。和它们合作,你得精确告诉它们你想让它们做什么(比如,“方法A存在于类B上,请为类C到F添加等价方法”)。否则它们就会跑偏,去做完全错误的事。但随着AI智能体的改进,这种情况已经改变。
如今,当前沿模型跑偏做错事时,它们不是因为困惑,而是因为对你的目标或优先级做出了错误的假设。例如,当GPT-6-Astra以为它在为自己写代码时,它会产出压缩代码。它完全有能力编写人类可读的代码——至少在用Golang时是这样,我用这个模型写了几千行可接受的代码——但你必须告诉它,人类会阅读这些代码[1]。
这是我想给大多数使用智能体提示的人的主要建议:给智能体提供关于你优先级的背景,而不只是关于你想让它们做的具体任务。下面是我最近用作Deckard起始点的一条提示词。
你好。你应该能通过MCP访问Runpod(如果不能,请告诉我,我来修复)。
我的长期目标是构建一个本地程序或浏览器扩展,自动扫描我加载页面中的AI内容并将其隐藏。我的短期目标是想出我能在MacBook上运行的最佳AI检测模型——既不会耗尽电池,也不会让它发烫——以及(与此相关)想出如何最高效地运行该模型。我猜Pangram的EditLens 3B或更小的Roberta模型可能是不错的起点,不过它们可能需要量化,而且肯定需要做一些工作,才能在我的MacBook上尽可能高效地运行。
我希望你使用我的Runpod账户开始回答这些问题。最终我们会转移到这台MacBook Pro上干活,但我希望Runpod能帮助做一些本地跑起来太烫、太久或太慢的实验。你是个聪明的模型;如果你看到更好的方法来实现我的目标,请告诉我,我们来讨论。祝你好运。
这条提示词大约有一半是在分享宽泛的背景,比如我瞄准的整体项目、这是给我个人用而不是工作用,以及我的优先级(例如让笔记本不发热)。如果我写了明确的规格说明,我就会错过很多改进:例如,为本地模型使用原生消息传递,或者选择Gradient模型而不是EditLens。
我在工作中也这样做,但通常会更强调我的技术价值观。我经常会写一段话,解释避免bug、可观测性、优雅融入当前代码、性能等方面的相对优先级。注意,我说的是“相对的”优先级:我不是简单地把这些全都列出来然后说它们很重要,而是明确告诉模型其中哪些我不太在意,因此可以为了更好实现其他目标而做出取舍。
模型现在已经足够聪明,能够对你更广泛的目标提供有意义的意见。如果你只是用一个具体的技术规格来提示它们,你就犯了和XY问题一样的错误:向专家征求意见,却不给专家所需的背景信息。
[1] 顺便说一句,如果它在一个人类编写的代码库中工作,你不需要告诉它编写人类可读的代码。它足够聪明,能学会周围代码的风格。