问题: 设计Agent智能体系统提示词的关键要素是什么

👇 点击展开/折叠 面试背诵模板(建议先背这个) 设计Agent系统提示词的核心要素包括:① 明确的角色与目标定义(“你是谁”+“你要做什么”),界定能力边界;② 清晰的工具调用规范,包括工具名称、参数格式、调用时机,并对每个工具的副作用和限制做说明;③ 标准的推理-行动-观察循环格式(如ReAct风格的Thought/Action/Observation),确保模型行为可追踪;④ 明确的错误处理策略,约定“失败时重试/放弃/求助人类”的决策规则;⑤ 安全围栏,限制不可操作范围、禁止执行的高风险动作,以及退出机制。高级设计还需包含计划分解能力(多步任务拆分)和自我反思机制(执行后评估效果并修正策略)。
---

一、角色与能力边界定义

Agent提示词需在开头明确以下内容:① 身份设定(如“你是一个数据分析助手,负责查询和汇总销售数据”);② 可用工具的清单和用途(如“你拥有这三个工具:search_db、calculate、send_email”);③ 明确的能力边界(如“你无法访问客户隐私数据,也无法修改生产配置”)。角色定义的目的是约束模型不要超出能力范围,避免虚构工具或执行未授权的操作。

二、工具调用规范(结构化描述)

每个工具的描述需包含以下字段:

  • 名称:工具的唯一标识符
  • 功能描述:该工具“做什么”,何时使用
  • 输入参数:参数名、类型、是否必填、合法取值范围
  • 输出格式:返回结果的格式及含义
  • 副作用:是否产生持久化变更、是否耗时长(需提示模型同步/异步处理)

三、推理-行动-观察(ReAct)循环格式化

强制模型按固定格式输出每一步,保证流程的可追踪性和可调试性。标准模板:

1
2
3
4
5
Thought: 分析当前状态,决定下一步做什么。
Action: 调用工具名称和参数。
Observation: 工具返回的结果。
(重复上述循环,直到任务完成)
Final Answer: 最终输出给用户的答案。

四、错误处理与回退机制

明确约定当工具调用失败、超时或返回异常结果时的处理规则:

  • 重试策略:自动重试几次,间隔多久。
  • 降级策略:无法获取数据时,告知用户并建议替代方案,而非编造结果。
  • 边界阻断:超过最大尝试次数后,终止循环并输出“当前无法完成请求”等标准话术。

五、安全围栏与退出条件

  • 高风险操作确认机制:涉及修改、删除、支付等操作,要求模型向用户二次确认,而非直接执行。
  • 循环终止条件:定义最大迭代次数(如 5 轮),防止模型陷入死循环或过度消耗 token。
  • 隐私合规约束:禁止模型输出真实用户身份信息,若工具返回包含此类信息,要求自动脱敏。

六、高级设计要素(面向复杂Agent)

计划分解能力:对多步骤复杂任务,要求Agent先输出执行计划(Plan),经用户确认后再执行,而非直接开始行动。这能提高大型任务的成功率,也让用户获得预知能力。

自我反思机制:在循环中加入“反思”步骤(如 Thought: 刚才的执行结果是否满足了用户需求?如果未满足,还需要补充什么?),让Agent在执行过程中主动评估自己的输出质量。

记忆管理:对于多轮对话Agent,需要显式规划短期记忆(当前轮次上下文)、中期记忆(对话摘要)和长期记忆(向量检索外部信息库),并在提示词中定义读取和写入的规则。

七、示例Agent提示词骨架(简化版)

1
2
3
4
5
6
7
8
9
10
11
12
13
你是一个智能运维助手,你的目标是帮助用户排查服务器异常。
你有以下工具:query_metric(查询监控指标)、get_log(拉取日志片段)、restart_service(重启服务,需用户确认)。

请严格按以下格式运行:
Thought: ...
Action: ...
Observation: ...
当你认为用户目标已达成时,以 Final Answer: 输出总结和建议。

约束条件:
1. 每次重启服务前必须征求用户确认。
2. 最多执行 5 次工具调用,若仍未解决则告知用户信息不足。
3. 不得输出任何内部凭据或敏感配置。

八、设计核心原则(总结)

  1. 防御式设计:永远假设模型会犯错,用提示词限制其行为空间。
  2. 工具描述与执行逻辑分离:提示词中只描述工具做什么,不描述底层实现。
  3. 明确“拒绝”的规则:定义明确边界,让模型敢于说“我无法执行此操作”。
  4. 考虑鲁棒性:测试各种异常输入,确保Agent能够优雅地失败和退出。