网页
综合
更新时间 2026-11-14 01:06:18
AI Agent 工作原理 | 菜鸟教程
自动蜘蛛
www.runoob.com
正文约 1961 字
前面我们已经介绍了 AI Agent 的基本概念和核心组件。接下来看看这些组件是如何协同工作的,以及如何使用 Python 实现一个简单的 Agent。
传统的大语言模型(LLM)主要根据输入的上下文生成回答。如果没有连接外部工具,它通常无法直接读取本地文件、查询实时数据或操作其他软件。
AI Agent 则在模型基础上结合工具调用、任务状态管理和执行控制,使程序能够根据目标执行多个操作步骤,并利用执行结果决定下一步做什么。
例如,用户提出"读取 Excel 文件,统计销售额并生成图表"。Agent 可以读取文件、调用 Python 处理数据、生成图表,最后将结果保存到指定目录。
AI Agent 的关键在于:模型负责决策,工具负责执行,程序根据执行反馈持续推进任务。
一个典型的 LLM Agent 通常包含模型、工具和任务状态管理等部分。
其中,模型通常负责生成决策,工具负责与外部环境交互,执行程序则负责组织整个任务流程。
对于简单任务,Agent 可能不需要复杂的规划系统或长期记忆;对于多步骤任务,则需要保存任务状态,以便根据执行结果继续工作。
Agent 并不都是通过大语言模型实现的。在人工智能研究中,智能体可以根据决策机制和系统架构分为不同类型。
上述类型并不完全互斥。例如,一个目标导向 Agent 也可以具有学习能力,多智能体系统中的每个 Agent 也可以采用不同的决策机制。
目前常见的 LLM Agent,通常围绕用户目标,利用大语言模型选择工具、处理反馈并执行任务。
理解 Agent 工作原理,最重要的是理解它的执行循环(Agent Loop)。
一种常见的实现方式是 ReAct(Reasoning and Acting),即将推理和行动结合起来。
Agent 不一定一次完成所有决策,而是可以根据工具执行结果,持续判断下一步应该做什么。
例如,用户要求"查找某个 Python 库的最新版本,并生成安装命令"。
如果查询失败,Agent 可以根据错误信息重试,也可以选择停止任务并报告失败原因。
需要注意,ReAct 只是 Agent 的一种执行模式。实际系统也可以使用预定义工作流、任务规划器或其他编排机制。
帮我计算商品总价,单价 89 元,购买 6 件,再减去 30 元优惠券。
模型识别出单价、数量和优惠金额,判断需要执行数值计算。
假设系统提供了名为 calculate_total 的计算工具,模型可以生成以下参数:
Agent 的执行程序接收参数,调用实际的 Python 函数:
商品总价为 89 × 6 = 534 元,减去 30 元优惠券后,实际需要支付 504 元。
这个过程展示了 Agent 中模型与工具的分工:模型负责理解任务和选择操作,执行程序调用函数,工具计算结果,最后再由模型整理回答。
下面使用 Python 实现一个简单的 Agent 工作流程。
为了方便初学者理解,我们先使用普通 Python 函数分别模拟感知、决策、行动和记忆模块,再将它们组合成一个可以运行的程序。
注意:下面的基础示例使用关键词匹配进行决策,没有连接真正的大语言模型,因此属于 Agent 工作流程的教学模拟,而不是完整的 LLM Agent。
在命令行程序中,最简单的感知方式就是使用 Python 的 input() 函数读取用户输入。
这里的感知模块只处理文本输入。对于其他 Agent,还可以通过 API 获取数据、读取文件或者使用多模态模型处理图片和音频。
决策模块负责分析输入,决定执行什么操作。
真实的 LLM Agent 通常利用模型进行任务理解和工具选择。这里先通过关键词判断模拟这一过程。
该示例只负责识别任务类型,并没有理解完整的数学表达式。
在实际 Agent 系统中,模型可以根据工具说明和用户指令,生成更具体的操作参数。
工具可以是普通 Python 函数,也可以是外部 API、数据库接口或代码执行环境。
下面定义一个简单的计算器工具,支持加、减、乘、除运算。
在这个例子中,calculator() 就是一个工具。Agent 可以根据任务需要调用它,并使用其返回结果。
相比直接使用 eval(),这种明确指定运算符的方式更容易限制允许执行的操作。
对于更复杂的计算器,可以使用 Python 的 ast 模块解析受限制的数学表达式,但不应该直接使用 eval() 执行不可信的用户输入。
记忆模块用于保存对话历史、任务状态以及工具调用结果。
对于简单的命令行 Agent,可以使用 Python 列表保存当前会话内容。
这里的历史记录是预先写入的示例数据,仅用于演示保存方式,并不表示程序已经能够理解"再乘以 2"这样的上下文指令。
本页为82搜索生成的网页快照,内容来自站内索引;演示数据的原文链接仅作示例。