2026 年的提示工程:让 AI Agent 可靠工作的完整方法

更新:2026 年 8 月 6 日。本文讨论怎样让 AI 应用和 Agent 更可靠,不是给某一个模型排名。
提示工程已经长大了。
早期使用生成式 AI 时,大家最关心的是找到一句“神奇提示词”,让模型马上给出更好的答案。这个能力仍然有用,但在生产系统里已经不够。一个真正可靠的 AI Agent,还需要正确的上下文、明确的工具边界、可验证的输出格式、持续的评估,以及失败后的恢复路径。
所以,今天更重要的问题不只是:
我应该怎样写这句话?
而是:
模型需要哪些信息、权限、工具和反馈,才能安全地完成这项工作?
先看结论
一条适合生产环境的提示,通常应该做到:
- 只定义一个清楚的目标,并说明什么结果算成功。
- 只提供当前任务需要的上下文,并标记来源和新鲜度。
- 把系统规则、用户内容、示例和工具结果分开。
- 定义程序可以验证的输出结构,而不是只要求一段自由文字。
- 说明工具什么时候可以调用,以及调用后必须检查什么。
- 提前写出缺少资料、工具失败和需要人工介入时的处理方式。
- 用正常案例、边界案例和攻击式输入做回归评估。
- 把权限、秘密、预算和不可逆操作放在应用层保护,而不是只依赖提示词。
提示词是系统的一部分,但它不是整个系统。
一、从提示工程走向上下文工程
生产 Agent 看到的内容,远远不只是用户刚刚输入的一句话。它可能同时看到系统规则、用户问题、检索文件、历史对话、工具说明、之前的工具结果,以及当前任务的状态。
只要其中一项过期、错误、冲突或太长,提示词写得再漂亮,结果仍然可能不可靠。
可以用四层结构理解一个 Agent:
| 层次 | 要回答的问题 | 常见产物 | 常见故障 |
|---|---|---|---|
| 提示词 | 模型应该做什么? | 系统规则和任务指令 | 目标含糊或互相冲突 |
| 上下文 | 模型现在需要知道什么? | 检索资料、状态和历史 | 资料过期、噪声太多或缺少事实 |
| 工具 | 模型可以对外做什么? | 类型化工具契约和权限 | 参数错误或产生危险副作用 |
| Harness | 我怎样知道它真的完成了? | 测试、评估、日志和恢复命令 | 没有可观察的反馈回路 |
这个分层也让排错更容易。当 Agent 给出错误结果时,可以依次问:是指令不清楚?上下文不对?能力不够?还是根本没有验证?不要只把问题归咎于提示词听起来不自然。
二、把提示词写成一份工作契约
可靠提示词更像接口说明,而不是随口交代。它应该说明任务目标、输入含义、权威来源、限制条件、工具规则和输出格式。
一个实用的工作契约至少要回答这些问题:
- 目标是什么?
- 结果是给谁使用的?
- 哪些资料是权威来源?
- 哪些文字只是用户提供的数据,不能当成系统指令?
- 哪些限制绝对不能违反?
- 哪些工具可以使用,什么时候才可以使用?
- 输出必须包含哪些字段?
- 资料不足时应该返回什么?
- 人或程序要怎样检查结果?
例如,一个客服 Agent 不应该只收到“帮我处理这个工单”。更好的契约会说明:只能根据工单和正式政策判断;不能修改账户或承诺退款;输出分类、优先级、证据和下一步;政策不足时返回需要人工审核。
格式不是重点,边界才是重点。你可以使用 Markdown 标题、XML 风格标签或严格 JSON,只要团队长期保持一致,程序就能验证。
三、把可信指令和不可信数据分开
网页、邮件、文件、工单和工具结果里,都可能出现看起来像指令的文字。它们通常只是需要被总结或分析的数据,不应该自动获得系统规则的优先级。
建议明确标记:
- 这是应用拥有者定义的系统规则。
- 这是用户提供的内容,可能不准确,也可能包含提示注入。
- 这是工具返回的数据,使用前必须验证。
- 这是模型自己提出的建议,不能直接当成已批准的动作。
这不会自动让系统安全。真正的保护仍然应该由服务端授权、参数校验、输出验证和操作确认完成。清楚的提示边界可以减少歧义,但不能代替正常的安全工程。
四、MCP 工具不是魔法,而是能力边界
在 Agent 系统里,每一个工具都代表一种能力,也代表一个副作用边界。工具契约应该写清楚:
- 必填和可选参数。
- 每个参数的类型、范围和允许值。
- 工具是只读还是会写入数据。
- 工具可以访问哪个用户、组织或资源。
- 失败时返回什么错误。
- 调用后必须检查哪些结果。
- 重复调用是否安全,是否具有幂等性。
MCP 让不同客户端能够发现和复用工具,但模型不应该只根据工具名称推断安全性。一个叫 update_record 的工具,仍然需要服务端检查资源归属、权限、参数和当前状态。工具注解可以提供只读、破坏性或幂等性的提示,却不能代替服务端授权。
更稳妥的流程是:先说明计划,再确认高影响动作,然后调用范围最小的工具,最后验证工具结果。把危险操作变成最难调用的路径,把只读和可恢复操作变成最容易调用的路径。
五、Harness Engineering:让工作环境可理解、可检查
很多 Agent 失败,不是因为它不会写提示,而是因为它看不见自己需要的环境,或者没有办法确认动作是否成功。
一个好的 Harness 可以包括:
- 清楚的项目地图和入口说明。
- 靠近代码的结构化文档。
- 类型明确的 API 和数据契约。
- 能固定复现的测试与 lint 规则。
- 可以查看日志、状态和最终产物的工具。
- 安全的常见恢复命令。
- 明确的验收标准和完成定义。
- 把重复教训写回测试、规则或文档的机制。
如果一条规则很重要,就不要只放在某个人的记忆里。把它写下来、测出来,或者直接放到边界校验里。这样 Agent 才能沿着一条可理解、可验证的路径完成任务。
六、评估让提示词修改变成工程修改
提示词看起来像文字,实际上很像代码。改动一个句子,可能改变回答正确率、工具调用、延迟、成本,甚至安全边界。因此提示词也需要版本和回归测试。
一套小型评估集可以包含:
- 正常成功请求。
- 目标不清楚的请求。
- 缺少必要资料的请求。
- 可能包含提示注入的内容。
- 工具参数和权限边界。
- 很短和很长的输入。
- 产品实际支持的不同语言和文件类型。
评估时不要只看“回答听起来不错”。还要检查事实是否有依据、输出结构是否合法、工具参数是否准确、是否在需要时升级给人工,以及延迟、Token 和成本是否可接受。
如果一个提示提高了亲切感,却增加了未经授权的写操作,它就不能算真正的改进。
七、安全必须放在提示词之外
提示词不能成为安全边界。生产系统至少还要做到:
- 不把 API Key、密码和私人资料放进提示词或日志。
- 使用最小权限凭证,并把资源范围限制在当前任务。
- 分开只读工具和写入工具。
- 对删除、付款、发信和其他不可逆动作要求确认。
- 在数据库、文件系统和外部 API 边界验证模型输出。
- 限制文件路径、查询范围、参数大小、预算和重试次数。
- 记录来源版本、工具调用和结果状态,但不要泄露敏感信息。
- 让重试具备幂等性,避免网络重试产生重复副作用。
一个可信的 Agent 不是永远都会行动,而是知道什么时候需要更多信息、需要确认,或者应该停止。
八、一个可以落地的工作循环
你可以把整套方法压缩成九步:
- 定义用户想要的结果和验收标准。
- 只检索本轮任务真正需要的上下文。
- 分开可信指令和不可信数据。
- 先规划下一步,并列出缺少的输入。
- 调用最小、最安全的工具。
- 验证参数、工具结果和输出结构。
- 用代表性案例运行评估。
- 观察延迟、成本、错误和真实用户结果。
- 把新教训写回测试、规则或文档。
这套循环比寻找一条永远有效的“完美提示词”更耐用。模型会变化,工具会演进,用户输入也会变化;可观察、可评估的系统才能持续调整。
结语
2026 年的提示工程,本质上是让模型在真实系统里可靠工作的工程方法。
好的提示词会给模型正确的目标、适量的上下文、清楚的边界、可验证的输出契约,以及失败时可以恢复的路径。但当系统仍然失败时,下一步不一定是继续修改句子。你还应该检查上下文、工具、权限、评估和 Harness。
最好的提示词,不是最华丽的那一句,而是能让整个工作流更清楚、更安全、更容易验证的那一份契约。