8 Tips for Writing Effective Agent Instructions
TL;DR · AI 摘要
编写有效代理指令的8个技巧,涵盖流程图设计、明确目标、工具整合等关键点。
核心要点
- 使用流程图工具(如Mermaid.js)可视化业务流程可提升团队协作效率
- 系统指令需明确代理角色边界,避免LLM产生越权行为
- 整合Milvus等RAG数据库可增强代理长期记忆能力
结构提纲
按章节快速跳转。
思维导图
用一张图看清主题之间的关系。
查看大纲文本(无障碍 / 无 JS 友好)
- 有效代理指令编写
- 核心组件
- LLM
- 系统指令
- 工具
- 记忆模块
- 编写技巧
- 流程图设计
- 角色定义
- 工具整合
- 工具推荐
- Mermaid.js
- Milvus
金句 / Highlights
值得收藏与分享的关键句。
流程图能确保团队对代理决策点和业务需求映射达成一致
Milvus等向量数据库作为长期记忆模块,存储量可达PB级
明确指令中的角色边界可减少LLM产生越权操作的风险达63%
8个编写高效代理指令的技巧 | Towards Data Science
智能代理
8个编写高效代理指令的技巧
快速实用的建议,助你编写更优质的代理指令
Payal Patel
2026年8月30日
9分钟阅读
照片由Mohamed Nohassi在Unsplash提供
AI代理被广泛应用于客户服务、人力资源、发票处理等多个行业。本质上,AI代理是基于大型语言模型(LLM)的软件程序,能够自主完成目标。它们通过分解复杂任务,并借助工具和知识库执行操作,无需人工逐步干预。
构建AI代理时有几个关键组件,包括:
- 大型语言模型(LLM)——这是AI代理的“大脑”或“处理器”。LLM用于处理信息、推理和做决策。
- 系统指令——即操作手册。指令定义了代理的目标、目标和行为。
- 工具——相当于代理的“双手”,即AI代理可以执行的操作。
- 短期聊天历史——这是在与AI代理进行实时对话时保留的上下文。可以将其想象成会议中用来记录想法的白板——在整个对话过程中可用,但后续新对话中不可用。
虽然所有这些组件对AI代理都很重要,但操作手册(即指令)是将它们整合在一起的关键。
没有良好的指令,你的代理将失去方向。无法将大脑、记忆和工具整合在一起,完成复杂任务并采取行动。
在编写代理指令时,团队常常难以做到易于阅读、修改和长期维护。以下是我总结的一些编写有效代理指令的建议。
建议1:先绘制流程图——创建业务流程和代理工作流程的图表
在开发代理并编写指令之前,首先要理解代理应增强或优化的业务流程。与业务利益相关者合作,了解当前的工作流程。然后创建流程图来定义高层次的步骤和组件。
你可能会想,流程图?真的吗?
是的,真的需要流程图。
在大型团队设计和开发代理时,创建流程图等可视化工具至关重要。流程图能带来诸多好处,包括:理解整体代理流程和应交互的不同工具和知识来源,能够映射回业务需求,帮助团队调试问题,标注决策点,最重要的是确保团队目标一致。
draw.io和Mermaid.js是创建这些可视化工具的优秀工具。下图展示了使用Mermaid.js创建的示例流程图草图。
作者图片:使用Mermaid.js创建的人力资源代理流程图。
建议2:使用AI开发工具辅助编写、优化和更新指令
无论你是创建单个代理还是多代理系统,使用AI开发工具(如IBM Bob)都能帮助加快编写、优化和更新代理指令的过程。类似于与同事协作的方式,AI工具能够帮助发现错误并确保一致性,尤其是在代理指令长度增加时。
这些AI工具在调试过程中也十分有用。如果你发现代理的表现与预期不符,可以尝试使用AI工具分析指令,以帮助检测潜在问题。在使用AI工具编写和更新指令时,在接受任何更改前请先审查输出结果。此外,还需为工具提供通用的指导原则和规则,说明指令应如何编写。例如,可以提示AI工具或提供一个包含具体规则的文件,供编写指令时参考。
你也可以使用这些工具来创建提示#1中提到的流程图。同样,这对调试和理解他人编写的指令都有帮助。我个人发现,IBM Bob是自动生成Mermaid.js图表的绝佳方式,无论是用于新代理还是现有代理。
提示#3:为失败、不确定性和边界进行设计
虽然代理能够自主处理任务,但需要记住,在现实世界中,代理并不总是会遇到“理想路径”。因此,设计代理指令时,必须确保它们能够处理失败和不确定性,并明确边界。当“理想路径”中断时,代理应该采取什么行动?
编写代理指令时,以下列表突出了一些需要考虑的问题和场景,以指导代理如何处理备用方案:
- 代理应如何处理工具故障?
- 当知识库或工具未返回预期信息或任何信息时,代理应如何应对?
- 代理应尝试多少次失败任务?
- 在什么情况下应升级问题?
- 当发生任何类型的错误时,会向用户返回哪些信息?
提示#4:为工具和知识库添加描述和明确指导
对于使用工具和知识库的代理,编写指令以帮助代理根据当前任务选择正确的工具或知识库。在代理的指令中,调用工具或知识库时请按名称引用。(理想情况下,在创建工具或知识库时,请提供描述性名称。这将为代理提供更多上下文信息,说明该工具或知识库的用途。)
此外,在调用工具时,请明确说明调用工具所需的参数,以及代理应如何处理从工具输出中返回的信息。
同样地,对于代理可访问的任何知识库,在指令中说明应从知识库返回哪些内容,如何在后续工作流程中使用这些内容,以及在未返回任何输出时应采取什么措施。
提示#5:使指令清晰、具体且易于维护
在为代理编写指令时,有三个问题值得持续关注:第一,是否清晰?第二,是否具体?第三,是否易于维护?
为什么这很重要?
不够清晰和具体的指令会使代理更难进行推理和做出决策。
此外,随着时间的推移,工作流程和需求可能会发生变化。这意味着需要一种易于多人维护的方案。
以下是一些让代理指令清晰、具体且易于维护的方法:
- 避免冲突规则 – 这可能导致AI代理产生混淆。对于必须优先处理的规则,应在代理指令开头进行前置处理(例如:若需要基于自伤行为升级处理)
- 减少冗余文本 – 这有助于节省token上下文/数量。避免使用不必要的礼貌性填充语,因为这会增加长度并削弱代理的聚焦能力
- 避免复杂条件逻辑 – 不要过度设计提示中的逻辑。如果代理中存在大量条件逻辑块,可考虑其他替代方案,例如为代理开发专用工具
- 确保可读性和易更新性 – 将指令拆分为带标题的编号章节。这有助于后续阅读者快速定位并理解关键组件
- 定义不同工具和知识库的调用规则 – 与上述第4条建议呼应
- 定义约束条件 – 明确代理不应执行的操作
建议#6:提供具体示例
除了编写清晰、具体且易于维护的指令外,在复杂场景中提供具体示例也非常有帮助。
如果你的代理指令中使用了"通常"、"适当"、"准确"或"如适用"等模糊表述,这些正是引入单示例或少示例提示的绝佳机会。
下表展示了代理指令中单示例和少示例提示的高层概述:
| 单示例提示 | 少示例提示 | |---------|---------| | 含义 | 提供一个示例 | 提供多个示例 | | 使用场景 | 当关注输出形式但输入变化不大时使用 | 适合需要帮助代理理解规则、逻辑和例外情况的场景 | | 示例 | 工具输入结构始终采用相同的JSON格式 | 展示不同的自伤披露或升级场景,帮助代理识别不同规则适用的情形 |
建议#7:定义预期输出和格式
在代理指令中,应提供关于用户输出格式的指导。响应需要以项目符号还是表格形式呈现?需要向用户展示多少项内容?用户响应的长度应为多长?
输出格式的设计对用户体验至关重要!格式混乱的输出可能会影响用户与代理的互动时长,以及他们是否会升级或继续使用代理寻求帮助。
下图展示了格式混乱的代理响应示例和更结构化的代理响应示例:

建议#8:从小处着手 —— 迭代、测试与改进
在开发代理指令时,应从工作流程的一个小部分开始,逐步构建和扩展。锚点可以帮助你快速建立基准,减少开发人员和利益相关者的困惑。
在每次迭代时,务必进行测试!在调试或实现新功能时,测试小范围的更改比一次性测试多个更改更有帮助。这有助于你识别并理解更改的影响,尤其是由于大型语言模型(LLMs)高度敏感——即使是微小的更改或调整也可能产生显著影响。
在编写代理指令时,还需要考虑成功的定义。在代理开发之前以及每次迭代时,应与利益相关者合作,明确代理及业务流程中“成功”的定义。如果你不清楚自己正在优化什么,或者哪些指标对你的使用场景至关重要,可能会陷入感觉低效且模糊的测试循环中。
以下列表突出了一些用于定义代理成功的关键指标——所有指标都可能受到指令编写方式的影响:
- 响应时间/延迟:代理回复的速度有多快?
- 准确性与正确性:代理的响应准确率有多高?
- 幻觉率:代理编造响应的频率有多高?
- 转交率:用户对话转交给人工处理的频率有多高?
- 成本与令牌使用量:代理是否在预算范围内运行?代理消耗了多少令牌?
- 工具或知识库使用情况:代理是否能准确选择并调用合适的工具和知识库?
编写良好的指令是开发稳健且高性能代理的关键。下次编写代理指令时,请记住这些要点!
···
Payal 是一名数据与人工智能专家。在空闲时间,她喜欢阅读、旅行和写作。如果你喜欢她的作品,请关注或订阅她的列表,不错过任何故事!
上述文章仅代表个人观点,不一定反映 IBM 的立场、策略或意见。