
一步步教你如何构建一个通用的大模型智能体(LLM Agent)
为什么要构建一个通用的 Agent?因为它是一个出色的工具,可以用来原型化你的用例,并为设计你自己的定制 Agent 架构奠定基础。在我们深入讨论之前,先简单介绍一下LLM Agent。你可以选择跳过这一部分。
LLM Agent(智能体)的高级概述:
为什么要构建一个通用的 Agent?因为它是一个出色的工具,可以用来原型化你的用例,并为设计你自己的定制 Agent 架构奠定基础。
在我们深入讨论之前,先简单介绍一下LLM Agent。你可以选择跳过这一部分。
什么是LLM Agent?
LLM Agent 是一个程序,它的执行逻辑由其底层模型控制。
从单独的 LLM 到 Agentic 系统:
LLM Agent 与 few-shot 提示或固定工作流等方法的不同之处在于,它能够自主定义并调整执行用户查询所需的步骤。
在具备一组工具(如代码执行或网页搜索)的情况下,Agent 可以决定使用哪个工具、如何使用,并根据输出结果进行迭代优化。
这种适应性使系统能够以最少的配置处理各种不同的用例。
Agentic 架构存在一个从固定工作流的可靠性到自主Agent的灵活性的连续频谱。
例如,RAG(检索增强生成)这样的固定工作流可以通过自反思(self-reflection)循环进行增强,使程序在初始响应不足时能够进行迭代优化。另一方面,ReAct Agent 可以将固定工作流作为工具来使用,从而提供一种既灵活又结构化的方法。最终,架构的选择取决于具体的使用场景,以及在可靠性和灵活性之间的权衡。
从零开始构建一个通用 LLM Agent !
第 1 步:选择合适的 LLM
选择合适的模型对于实现预期的性能至关重要。你需要考虑多个因素,例如许可协议、成本和语言支持。
对于LLM Agent来说,最重要的考量因素是模型在关键任务(如代码生成、工具调用和推理)上的表现,评估基准包括:
-
MMLU(Massive Multitask Language Understanding)
(用于推理能力评估)
-
Berkeley’s Function Calling Leaderboard
(用于工具选择与调用评估)
-
HumanEval 和 BigCodeBench
(用于代码能力评估)
另一个关键因素是模型的上下文窗口大小。Agentic 工作流可能会消耗大量 token,有时甚至超过 100K,因此更大的上下文窗口会带来极大便利。
可考虑的模型(截至2025年3月1日)
-
闭源模型:GPT-4.5、Claude 3.7
-
开源模型:Qwen 2.5、DeepSeek R1、Llama 3.2
通常来说,更大的模型通常表现更佳,但能够在本地运行的小型模型仍然是不错的选择。如果选择小型模型,Agent 可能只能用于较简单的场景,并且只能连接一两个基础工具。
第 2 步:定义 Agent 的控制逻辑(即通信结构)
LLM 与 Agent 之间的主要区别在于系统提示(system prompt)。在 LLM 的上下文中,系统提示是一组指令和上下文信息,在模型处理用户查询之前提供给它。
Agent 预期的行为可以在系统提示中进行编码,从而定义其 Agentic 行为模式。这些模式可以根据具体需求进行定制,常见的 Agentic 模式:
-
工具调用(Tool Use)
Agent 决定何时将查询传递给合适的工具,或直接依赖自身知识回答。
-
自反思(Reflection)
Agent 在回应用户之前,会先检查并修正自己的回答。大多数 LLM 系统都可以加入一个反思步骤。
-
推理后执行(Reason-then-Act,ReAct)
Agent 逐步推理如何解决查询,执行某个操作,观察结果,并决定是继续采取行动还是直接给出答案。
-
规划后执行(Plan-then-Execute)
Agent 先将任务拆解成多个子步骤(如果有必要),然后逐步执行每个步骤。
其中,ReAct 和 Plan-then-Execute 是构建通用单Agent最常见的起点。
要有效实现这些行为,你需要进行Prompt Engineering(提示工程),也可能需要使用结构化生成(structured generation)技术。结构化生成的核心思想是引导 LLM 输出符合特定格式或模式,确保 Agent 的回复风格一致,并符合预期的沟通方式。
示例:Bee Agent Framework 中的 ReAct 风格 Agent 的系统提示片段:
中文:
👉[CSDN大礼包🎁:全网最全《LLM大模型入门+进阶学习资源包》免费分享(安全链接,放心点击)]()👈
第 3 步:定义 Agent 的核心指令
我们通常认为 LLM 具备许多开箱即用的功能,但其中一些可能并不符合你的需求。要让 Agent 达到理想的性能,你需要在系统提示中明确规定哪些功能应该启用,哪些应该禁用。
可能需要定义的指令包括:
-
Agent 名称与角色
Agent 的名称及其职责。
-
语气与简洁性
Agent 交流时应正式还是随意?应尽量简短还是提供详细信息?
-
何时使用工具
何时依赖外部工具,何时直接使用 LLM 知识回答?
-
错误处理方式
如果工具调用失败,Agent 应该如何应对?
示例:Bee Agent Framework 的部分指令:
中文:
第 4 步:定义并优化核心工具
工具赋予了 Agent 强大的能力。通过一组精心设计的工具,你可以实现广泛的功能。关键工具包括:
✅ 代码执行
✅ Web 搜索
✅ 文件读取
✅ 数据分析
每个工具都应包含以下定义,并作为系统提示的一部分:
-
工具名称(Tool Name)
清晰描述该工具的功能。
-
工具描述(Tool Description)
解释工具的用途,以及何时使用它,以帮助 Agent 选择合适的工具。
-
工具输入模式(Tool Input Schema)
定义输入参数,包括必填项、可选项、类型和约束。
-
工具执行方式
如何运行工具,以及 Agent 该如何调用它。
示例:Langchain 社区的 Arxiv 工具,以下是 Arxiv API 实现的部分代码,该工具可用于检索物理学、数学、计算机科学等领域的论文:
在某些情况下,你可能需要优化工具以提升性能,例如:
-
通过Prompt Engineering(提示工程)调整工具名称或描述,提高匹配度。
-
设定高级配置,处理常见错误。
-
过滤工具输出,确保结果符合期望。
第 5 步:制定记忆管理策略
LLM 的上下文窗口(context window)是有限的,它决定了模型可以“记住”的内容量。例如:多轮对话、长文本工具输出和额外的上下文信息都会快速占满上下文窗口。因此,合理的记忆管理策略至关重要。
在 Agent 的语境中,记忆是指系统存储、回忆和利用过去交互信息的能力。这使 Agent 能够随着时间的推移保持上下文,根据以前的交流改进其响应,并提供更个性化的体验。
常见的记忆管理策略
1️⃣ 滑动窗口记忆(Sliding Memory):保留最近的k 轮对话,丢弃旧内容。
2️⃣ Token 记忆(Token Memory):仅保留最近的 n 个 token,其余丢弃。
3️⃣ 摘要记忆(Summarized Memory):每轮对话后,使用 LLM 生成摘要,然后丢弃具体对话内容。
4️⃣ 关键点存储(Key Moment Storage):让 LLM 识别关键事实并存入长期记忆,使 Agent 能“记住”重要信息,为用户提供更个性化的体验。
目前,我们已经覆盖了 Agent 构建的五个核心步骤:
✅ Step 1:定义 Agent 任务与行为模式(ReAct、Plan-then-Execute)
✅ Step 2:Prompt Engineering(确保 Agent 行为符合预期)
✅ Step 3:编写核心指令(定义角色、风格、工具使用策略等)
✅ Step 4:定义并优化核心工具(如 Web 搜索、数据库查询等)
✅ Step 5:制定内存管理策略(防止上下文溢出)
那么,如果我们现在让 LLM 直接处理用户查询,会发生什么? 🚀
举个例子,可能会发生:
此时,Agent 生成的是原始文本输出。那么,如何让它执行下一步操作呢?这就需要解析(Parsing)和编排(Orchestration)。
第 6 步:解析 Agent 的原始输出
解析器(Parser)是一种将原始数据转换为应用程序可理解格式(例如带有属性的对象)的函数。
对于我们正在构建的 Agent,解析器需要识别第 2 步中定义的通信结构,并返回结构化输出(如 JSON)。这样,应用程序就能更容易地处理和执行 Agent 的下一步操作。
注意:部分模型提供商(如 OpenAI)默认支持可解析的输出。而对于其他模型(特别是开源模型),可能需要手动配置此功能。
第 7 步:编排 Agent 的下一步操作
最后一步是设置编排逻辑,用于决定 LLM 在生成结果后的处理方式。根据输出内容,你可能需要:
-
执行工具调用(如运行 Python 代码、调用 API)。
-
返回答案,即向用户提供最终响应,或请求额外信息以进一步完成任务。
如果触发了工具调用,则工具的输出将发送回 LLM(作为其工作记忆的一部分)。然后,LLM 将确定如何处理这些新信息:执行另一个工具调用或向用户返回答案。
以下是此编排逻辑在代码中的样子:
大功告成! 你现在已经构建了一个可以处理多种场景的系统——无论是竞争分析、深度研究,还是自动化复杂的工作流,都能轻松应对。
Multi-Agent 系统的作用?
尽管当前一代的 LLM 功能强大,但它们仍然存在一个核心限制:难以处理信息过载。
如果上下文信息过多,或使用的工具过于复杂,模型可能会因超载而导致性能下降。单个通用 Agent 迟早会遇到这个瓶颈,尤其是当它大量消耗 token 时。
对于某些应用场景,采用 Multi-Agent**(多 Agent)**方案可能更合理。通过将任务拆分到多个 Agent 之间,可以减少单个 LLM 需要处理的上下文,从而提高整体效率。
不过,从单 Agent 入手仍然是一个绝佳的起点,尤其是在原型阶段。它能帮助你快速测试应用场景,并发现系统的瓶颈所在。
在此过程中,你可以:
-
理解任务的哪些部分真正需要 Agent 来执行。
-
识别可以拆分成独立流程的子任务,以便构建更大的工作流。
从单个 Agent 开始,你可以逐步获取有价值的信息,为未来扩展到更复杂的系统打下基础。
读者福利:如果大家对大模型感兴趣,这套大模型学习资料一定对你有用
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
包括:大模型学习线路汇总、学习阶段,大模型实战案例,大模型学习视频,人工智能、机器学习、大模型书籍PDF。带你从零基础系统性的学好大模型!
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓
👉AI大模型学习路线汇总👈
大模型学习路线图,整体分为7个大的阶段:(全套教程文末领取哈)
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉大模型实战案例👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉大模型视频和PDF合集👈
观看零基础学习书籍和视频,看书籍和视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费
】🆓
更多推荐
所有评论(0)