ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;display: table;padding: 0px 0.2em;color: rgb(255, 255, 255);background: rgb(85, 201, 234);">引言ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">与那些只能按既定流程执行工作的传统软件不同,ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(85, 201, 234);">Agent 能够在复杂、多变的情况下独立思考和决策。 这篇文章是一份如何构建智能体(Agent)的基础知识,了解如何开始构建你的第一个 Agent。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;display: table;padding: 0px 0.2em;color: rgb(255, 255, 255);background: rgb(85, 201, 234);">什么是 Agent?ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">Agent 是能代表用户(ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(85, 201, 234);">做决策)独立完成任务的系统。传统软件通常是基于预设的操作流程,而 Agent 是体现于ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(85, 201, 234);">执行过程中进行判断、做出决策,并根据情况调整策略。ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">它有两个核心特点:ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 14px;text-indent: -1em;display: block;margin: 0.2em 8px;color: rgb(63, 63, 63);">1.ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: inherit;color: rgb(85, 201, 234);">智能决策:利用LLM管理工作流执行,能够识别任务完成状态,在失败时主动纠正或移交控制权- 2.工具调用:可以访问各种外部系统工具,根据工作流状态动态选择合适的工具,始终在明确的护栏范围内操作
何时需要构建 Agent?并非所有场景都适合使用 Agent。传统的确定性解决方案在许多情况下仍然是更好的选择。Agent主要适用于以下三类场景: - 1.复杂决策制定:需要细致判断、处理异常情况或上下文敏感决策的工作流,比如客服中的退款审批。
- 2.难以维护的规则系统:由于规则集过于庞大和复杂,导致更新成本非常高或容易出错,比如不同类型的供应商有不同的账单格式,需要统一内部的格式。
- 3.重度依赖非结构化数据:需要解释自然语言、从文档中提取含义或进行对话交互的场景,比如从特定文件中提取关键信息或者结构化数据。
在你决定要构建一个 Agent 之前,一定要确认你的应用场景确实符合这些场景。如果不符合,传统的确定性解决方案可能就足够了。 Agent 设计基础一个最基础的 Agent 形态包含三个核心部分: - 1.模型:驱动 Agent 进行推理和决策的大语言模型(LLMs)。
- 2.工具:Agent 可以用来执行动作的外部功能或 API。
- 3.指令:定义 Agent 行为的明确指导和护栏。
选择模型不同的模型在处理任务的复杂性、延迟和成本方面有各自的优缺点。在一个工作流里,可能需要根据不同任务使用不同的模型组合。不是所有任务都需要最聪明的模型。 一个比较好的做法是: - 1. 先用能力最强的模型构建 Agent 原型,以此建立一个性能基线。
- 2. 然后,尝试换用更小、更快的模型,看它们是否仍然能达到可接受的效果,以此优化成本和延迟
定义工具工具通过调用底层应用或系统的 API 来扩展 Agent 的能力。通常有这三种类型的工具: - 1.数据:用于检索信息(如查询数据库、读取PDF文档)。
- 3.编排:Agent 本身也可以作为其他 Agent 的工具
每个工具都应该有一个标准化的定义,文档要清晰,经过充分测试,并且是可重用的。 配置指令指令你可以理解为就是提示词。想要编写高质量的指令你通常可以: - 1.利用现有文档:用已有的操作流程、政策文件作为上下文
- 2.分解任务:把复杂任务拆分成更小、更清晰的步骤一步一步执行。
- 3.定义清晰的行动:确保每一步都对应一个具体的动作或输出。。
- 4.覆盖边缘情况:像编程一样处理边缘情况,比如用户输入的内容不明确怎么办。
编排模式的选择根据复杂程度的不同,可以选择不同的编排模式: 单 Agent 系统:一个 Agent 配备了所需的工具和指令,然后再循环中执行工作,直到满足条件推出循环。 多 Agent 系统:当逻辑非常复杂,包含了大量的条件分支、工具数量非常多可以考虑多 Agent 系统。 多 Agent 系统多 Agent 系统就是将任务拆分,每个任务由一个 Agent 完成,这些 Agent 组成一个系统。有两种常见的模式: - 1.管理者模式:有一个中心的“管理者” Agent 和 N 个特定任务的 Agent,管理者 Agent 决策协调让哪个 Agent 执行任务。
- 2.去中心化模式:多个 Agent 以平等身份相互交接任务。
构建安全护栏就像开发软件需要考虑各种安全情况一样,Agent 也需要考虑安全问题。比如数据隐私风险(防止系统提示泄露)或声誉风险(强制执行符合品牌形象的模型行为)。有效的护栏应该采用多层防护机制。 常见的护栏类型: - 1.相关性分类器:确保 Agent 的响应在预定范围内。
- 2.安全分类器:检测不安全的输入,如越狱或提示词注入(有点像防止 SQL 注入)。
- 3.PII 过滤器:防止不必要的个人身份信息 (PII) 泄露。
- 4.内容审核:标记有害或不当的输入(如仇恨言论、骚扰、暴力)。
- 5.工具安全防护:根据工具的读写权限、可逆性、所需权限和财务影响评估风险等级,对高风险操作触发人工审核。
- 6.基于规则的保护:使用简单的确定性措施(如黑名单、输入长度限制、正则表达式过滤器)来阻止已知威胁。
- 7.输出验证:通过提示工程和内容检查,确保 Agent 的响应符合品牌价值,防止输出损害品牌形象。
构建护栏的策略- 2. 根据遇到的真实世界的边缘案例和失败情况,添加新的护栏。
- 3. 随着 Agent 的发展,不断调整护栏,以优化安全性和用户体验。
规划人工干预在两种情况下应该转交人工处理: - 1.超出失败阈值:为 Agent 的重试或操作次数设置限制。比如多次尝试后仍无法理解用户意图。
- 2.高风险操作:对于敏感、不可逆或风险高的操作,如取消订单、授权大额退款等。
|