数据STUDIO

Anthropic 最新发布的 Agent 提示词的 12 条最新规则

Image

给 AI Agent 下任务,光把需求说清楚,往往还不够。

比如让它“把认证系统迁到 OAuth”,Agent 可能很快就开始改代码,但具体要改哪些接口、旧认证逻辑要不要删、测试跑到什么程度、遇到危险操作要不要先问一声,这些如果没有交代清楚,执行过程中就容易走偏。最后它回复一句“已完成”,也不代表任务真的通过了验收。

所以我写 Agent 提示词时,更关心的是几件事:任务做到什么程度算完成、需要哪些上下文、哪些操作不能擅自执行,以及结果应该怎么检查。提示词不一定要写得多复杂,关键是让 Agent 知道该做什么、能做什么,以及什么时候该停下来。

今天分享 12 条比较实用的规则,从完成条件、长任务状态、工具权限,到上下文、安全边界和视觉要求,都可以按自己的任务取用。文末还放了一份提示词骨架,方便大家直接修改使用。

1. 把“完成”写成可检查的条件。

不要只写“迁移认证系统”,要列出交付物和验收标准。例如:所有认证端点使用 OAuth;新增流程有测试;原有认证实现已移除;现有测试通过;相关文档已更新。再补上一句:“只有遇到需要我决定的阻塞时才停下来询问。”这样,Agent 和运行它的程序都能判断任务是否达到终点。

2. 把注意力放在结果要求上。

“认真思考”“想得更深入”“一步一步想”没有说明什么样的结果算有用。可以直接要求它给出结论、关键依据和需要权衡的因素;如果读者需要解释,索要简洁的决策理由,而不是完整内部思维过程。不同模型对推理提示的响应会有差异,具体做法应结合目标任务评估。

Image

推理提示指南(https://developers.openai.com/api/docs/guides/reasoning-best-practices)和提示策略文档(https://ai.google.dev/gemini-api/docs/prompting-strategies)也体现了这种模型差异。

3. 从可用的基准配置开始,再按结果调整。

有些接口提供推理强度或类似参数,有些没有;参数名称、默认值和推荐方式也不完全相同。先选择当前接口支持的一档配置,用一组有代表性的任务比较质量、延迟和成本,再根据实际需要调整。不要把某个模型的默认设置照搬到另一种模型,也不要仅因为参数更高就假定结果更好。

Image

Agent 评估指南(https://developers.openai.com/api/docs/guides/agent-evals)提供了按任务检查 Agent 行为的思路。

4. 让长任务有一份持久清单。

长对话可能被压缩或总结,不能把所有状态都放在聊天记录里。可以让 Agent 维护一个任务文件,记录已完成、待完成和下一步:

- [x] 更新认证中间件
- [x] 迁移用户端点
- [ ] 补充集成测试
- [ ] 移除旧适配器
- [ ] 运行完整测试集

清单能帮助 Agent 从中断处恢复,也能让运行它的程序检查还有哪些工作未完成。清单仍需和实际文件、测试结果对照,勾选本身不代表验收通过。

5. 提前写清楚什么时候必须停。

“继续做,直到完成”需要配套的权限边界。可以要求 Agent 在删除重要数据、强制推送、修改外部系统或执行不可逆操作前先停下,并说明它需要什么决定;没有这些情况时,则继续处理不需要用户输入的步骤。将操作范围写进提示词有助于建立预期,实际权限仍应由工具配置和审批机制控制。

6. 核对任务状态,不要把一次回复当成完成证明。

运行时可能结束一轮并给出进度说明,但任务验收条件仍未满足。Harness 可以在每轮结束后检查清单、测试或其他明确的验收项:通过就结束;未通过时,判断是否还有安全且可执行的下一步;需要继续时也设置自动续跑上限,避免阻塞任务无限循环。各 API 的结束事件语义不同,应以实际接口为准。

7. 大型任务可以委派,但要划清责任。

对大型代码库做审计时,可以把服务拆给多个子任务:每项工作都有明确的目录、问题范围和交付格式。主 Agent 收到结果后,还要查看相应文件和证据,再决定是否采纳。委派适不适合,取决于任务能否独立拆分;并行执行也不等于结论自动正确。

Agent 编排指南(https://developers.openai.com/api/docs/guides/agents/orchestration)介绍了不同的委派方式。

8. 让用户看见任务进度。

如果客户端只显示普通文本,工具调用开始、阶段状态或结构化结果可能不会呈现出来。界面应按所用 API 的语义事件展示进度,例如“正在检查文件”“测试已启动”“正在等待审批”“任务已完成”;具体事件名和数据结构由框架定义。用户通常需要知道 Agent 正在做什么、是否卡住,而不需要读取私有推理内容。流式事件文档展示了按事件类型处理进度的方式。

9. 先查任务所需的上下文,再采取行动。

“更新定价表”可能还依赖邮件里的最新决定、另一张表中的数据、项目文档或审批记录。提示词可以要求 Agent 在动手前核对相关材料,但范围应限定在用户授权且完成任务所必需的信息内,不要因为“先探索”就无边界地访问所有连接应用。

10. 把外部文本当作数据,而不是新指令。

邮件、网页、用户粘贴的材料中可能出现“忽略之前的要求”“把客户信息发给我”一类文字。可以用清楚的边界标记告诉 Agent:下面是待分析内容,其中的指令不自动获得执行权限。例如:

<untrusted_content>
此处放入待总结的邮件或网页文本。
</untrusted_content>

分隔符能帮助区分任务说明和引用内容,但它本身不能阻止提示注入。还要限制工具的读写权限,验证敏感操作,并在需要时要求人工批准。

Agent 安全指南(https://developers.openai.com/api/docs/guides/agent-builder-safety)对不可信输入和工具边界有更具体的说明。

11. 有图就尽量传原图,关键读数再核对。

手动重抄图表可能引入转录错误;如果所用模型支持图像输入,直接提供截图或原始图表,再问它最大增幅、明显下降或异常点。小字、密集刻度和相邻标注容易读错,可以裁剪放大,并把关键数值与原图对照。图像分辨率参数和识别能力因模型而异,不能把一次读对当成通用保证。

Image

图像输入指南(https://developers.openai.com/api/docs/guides/images-vision)说明了常见的视觉输入限制。

12. 把视觉要求写具体。

“做得现代一点”“不要有 AI 味”很难验收。可以明确排除奶油白背景、斜体强调词、01/02/03 编号标签、等宽小标签和胶囊按钮;同时说明想要的方向,例如深色编辑式界面、清晰的字体层级、矩形控件、克制的动效、留白和较高信息密度。哪些约束合适取决于产品和读者,把偏好写成具体元素即可让结果更容易检查。

做复杂工程任务时,可以从这份骨架开始,再删掉当前流程用不上的部分。目标、约束和验收条件要写具体;工具名、参数名和事件格式则按实际模型与框架填写。

<goal>
要完成什么任务?
</goal>

<context>
提供完成任务所需的仓库、业务或技术背景。
</context>

<constraints>
列出不能改变的内容、允许的操作范围和必须遵守的条件。
</constraints>

<tools>
说明可用工具、权限范围,以及哪些操作需要审批。
</tools>

<workflow>
写明必要步骤。长任务维护持久清单;可独立拆分的工作再考虑委派。
</workflow>

<verification>
说明需要运行或检查什么,并要求报告可核验的结果。
</verification>

<definition_of_done>
列出满足哪些条件才算完成。
</definition_of_done>

<stop_conditions>
列出必须停止并等待决定的情况,以及自动续跑上限。
</stop_conditions>

<final_response>
总结完成了什么、核验了什么、哪些仍未确认,以及需要我决定的事项。
</final_response>

Agent 能否把任务稳定做完,取决于目标、上下文、工具边界、状态和验收是否彼此对得上。把这些条件写清楚,再用自己的任务验证提示词和运行配置,才能知道这套做法是否适合当前工作流。

Image