你的 AI Agent,该交代到什么程度?
想让 LLM Agent 稳定地跑完几十个小时、上百轮工具调用,系统提示词的「具体程度」是关键——写得太细会绑住模型的手脚,写得太粗又容易跑偏。这篇指南拆解了 Claude Sonnet 4.5 发布后,开发者如何为长时运行 Agent 拿捏指令分寸。
一场 30 小时的马拉松?
9 月 29 日,Anthropic 发布 Claude Sonnet 4.5,并宣称这款模型可以一口气连续工作 30 小时。
但对大多数正在开发多工具、多轮 LLM Agent 的开发者来说,这种程度的自主性很难编排,也很难编程实现——哪怕模型本身确实有这个能力。
问题来了:怎么才能让 Agent 在一个循环里稳定干活、不犯错?给它什么样的系统提示词,才能让它跑很多轮也表现良好?
先想清楚:什么才叫「读懂」系统提示词
在讨论「具体程度」之前,得先分清一个概念:你的模型是「看到了」系统提示词,还是「遵循」了系统提示词?
很多人在调试 Agent 时会遇到这样的场景——你怀疑模型没有遵守某个指令,于是反复重写提示词,加上各种强调。但实际上,模型可能早就「读到」了你的指令,只是没有「服从」它。因为指令之间一旦互相冲突,模型会自动选择一个它认为最优的平衡点,哪怕这个选择违背了你的本意。
这不是提示词写得不够清楚,而是指令之间在互相打架。想清楚这一点,再谈「具体程度」才有意义。
该交代到什么程度?
「具体程度」指的是:你花多少笔墨明确列出模型能做什么,又留多少空间让模型自己去推断能做什么。
来看三种典型的写法:
- 过于列举:「先做 X,再做 Y,再做 Z;除非遇到 A,那就做 B;除非遇到 C……」
- 过于隐含:「按照我们的原则行事」
- 平衡:给出足够明确的指令,让模型能正确处理你没有列举到的情况
很多人在这件事上会踩同一个坑:一开始过于隐含,然后立刻跳到过于列举的极端。
之所以这么难拿捏,是因为早期模型(Sonnet 4 / GPT-5 之前的模型)确实要求你尽可能把步骤列全,才能得到好结果。但现在的模型更强了,能自己制定和调整计划——我们不再需要替模型一步步做规划。
对当前的前沿模型来说,过度列举反而有害:它会把 Agent 约束住,哪怕只是稍微偏离列举范围的情况,它也处理不了。
所以,找到恰当的「具体程度」,才是写好 Agent 提示词的关键。
为什么不能只给「明确指令」?
模型在数百轮迭代和数百次工具调用中,会逐渐偏离原来的指令——哪怕这些指令本身非常具体。原因在于:Agent 的每轮决策都会改变上下文,之前跳过的步骤、中途发现的新信息,都会让模型对原始指令的解读产生偏移。
更关键的是,提示词中的任何一条指令,都不能独立于其他指令生效。即便你在系统提示词里写了非常具体的规则,模型也可能会因为上下文冲突而「选择性失明」——它明明看到了,但在这个语境下觉得「没必要执行」。
那执行细节呢?
你可能还是想问:如果我不能告诉 Agent 一步步来,那循环的部分怎么办?怎么让我的 LLM Agent 把一大堆需要多次工具调用的活儿干好?
你当然可以给一两个带明确步骤的具体示例。但要注意:随着 Agent 迭代次数增加,你对其具体步骤的可预测性会变得非常低。
换句话说,你可以给示例,但必须接受一个事实——模型不会严格按照你给的那一套步骤来走。它不是自动驾驶,而是一个会自己找路的执行者。
那到底该交代到哪一步?
这里给你一个非常具体的检查清单:
- 步骤必须短:每个步骤之间要解耦,否则前面失败、后面全乱
- 不能太依赖上一步的产物:否则中间任何一步偏离,整个链条就崩了
- 给原则,而不是给流程:明确「遇到未知情况时如何处理」比「列出所有可能情况」更可靠
真正有效的 Agent 提示词,写的是「在什么情况下、以什么顺序做什么事」,而不是把每个动作都拆成一条条机械指令。
模型在变,提示词方式也得跟着变
在 Claude 3.5 Sonnet 时代,开发者倾向于在提示词里塞满各种「If-Then」规则,因为当时模型不够聪明,你需要把所有能想到的情况都写进去。
但到了 Claude Sonnet 4.5 这个级别,模型的推理能力让它可以处理更模糊的指令——这也意味着,你可以用更少的文字交代更多的意图,把「怎么做」的空间留给模型自己去发挥。
这是一个分水岭:过去的提示词是「说明书」,现在的提示词更像是「任务书」。