LLM 变身智能 Agent 的核心原理(超详细实操版)
前言
大家好,今天跟大家拆解一个核心知识点——LLM(大语言模型)如何从“只能聊天”的工具,升级成“能自主解决问题”的智能 Agent。其实核心逻辑特别简单,一句话就能概括:
给 LLM 提供:明确的指令 + 可用的工具 + 多次尝试的机会 = 智能 Agent
很多同学觉得 Agent 很高深,其实本质就是对 LLM 做了4个关键模块的改进,再配合合理的工作流程,就能实现“自主思考、自主调用工具、自主验证结果”的能力。下面从核心模块、工作流程、代码位置、实操示例四个维度,手把手教大家搞懂,新手也能轻松get!
一、核心改进的4个模块(重中之重!)
这4个模块是 Agent 能“自主工作”的关键,每一个都有明确的代码对应位置,大家可以直接对照自己的项目查看、修改,实操性拉满。
1️⃣ 提示词模块(最关键!决定 Agent 行为边界)
代码文件:backend/core/system_prompt.py
核心作用:明确告诉 LLM “你是谁”、“你能做什么”、“你应该怎么做”,相当于给 Agent 定规矩、立身份。
关键改进对比:
-
普通提示词(仅聊天):“你是一个助手”
-
智能 Agent 提示词(能自主调用工具):“你是一个助手,当用户问数据库问题时,必须调用 query_oracle_data 工具验证,不要瞎猜”
改进效果:LLM 不再凭记忆瞎回答,而是明确知道“遇到什么问题该调用什么工具”,从“被动回答”变成“主动解决”。
2️⃣ 推理模块(核心引擎,决定 Agent 思考深度)
代码文件:backend/core/graph.py
核心作用:允许 LLM 进行多轮思考、多次调用工具,而不是一次回答就结束。
关键改进对比:
-
普通模式:max_iterations = 1(只能调用1次工具,甚至不调用)
-
Agent 模式:max_iterations = 20(最多可调用20次工具,支持多轮迭代)
改进效果:LLM 能像人一样“逐步排查问题”,比如:
-
第1次:调用工具查询基础数据
-
第2次:发现结果不对,再次调用工具补充查询
-
第3次:调用工具验证修正后的数据
-
... 直到得出正确答案,彻底解决问题
3️⃣ 工具模块(扩展能力,给 Agent 装“手”和“眼睛”)
代码文件:backend/tools/*.py(所有工具相关文件)
核心作用:打破 LLM “只能靠记忆回答”的局限,给它提供实时查询、执行操作的能力(比如查数据库、查知识库、调用接口等)。
关键改进对比:
-
没有工具:LLM 只能靠训练时的记忆回答,比如“客户 ID 17247 的数据是...”(大概率是错的,尤其是实时数据)
-
有工具:LLM 可以调用工具实时查询,比如执行
query_oracle_data("SELECT * FROM customers WHERE id=17247"),直接返回真实的实时数据
改进效果:LLM 不再“瞎猜”,所有涉及真实数据、实时信息的问题,都能通过工具验证,回答准确率大幅提升。
4️⃣ 参数调整(行为控制,决定 Agent 的“性格”)
代码文件:backend/services/agent_service.py
核心作用:通过调整 LLM 的关键参数,控制它的思考方式(谨慎/大胆),适配 Agent 的工作需求。
关键改进对比:
-
普通模式:temperature=0.7(性格大胆、有创造性,但容易瞎猜),回答常出现“我觉得可能是这样...”
-
深度思考模式(Agent 专用):temperature=0.1(性格谨慎、注重准确),回答常出现“让我先查一下...”,更倾向于调用工具验证
改进效果:LLM 从“大胆猜测”变成“谨慎验证”,彻底摆脱“一本正经地胡说八道”,更符合 Agent 自主解决问题的核心需求。
二、普通 LLM vs 智能 Agent 工作流程对比(一眼看懂差距)
光说模块不够直观,我们用一个“SQL 问题排查”的场景,看两者的核心区别:
❌ 普通 LLM 工作流程(低效、易出错)
-
用户提问:“这个 SQL 有问题吗?”
-
LLM 凭记忆回答:“可能有性能问题,建议加索引”
-
流程结束(没有验证,大概率是错的,比如表结构不同、数据不存在等)
✅ 智能 Agent 工作流程(高效、准确、自主)
-
用户提问:“这个 SQL 有问题吗?”
-
LLM 思考:“我需要先查一下表结构,确认字段和索引情况”
-
调用工具:search_knowledge_base(查询表结构)
-
工具返回:表结构详情(含字段类型、现有索引)
-
LLM 思考:“表结构没问题,我需要执行 SQL 看看实际结果”
-
调用工具:query_oracle_data(执行 SQL)
-
工具返回:NULL(执行结果为空)
-
LLM 思考:“结果是空的,可能数据不存在,需要进一步验证数据是否存在”
-
继续调用工具排查,直到找到问题根源(比如 SQL 条件错误、数据未录入等)
三、代码位置速查表(新手必存!)
很多同学看完模块,不知道去哪里找对应代码,这里整理了一份速查表,直接对照查找即可,不用再翻遍项目文件夹:
|
功能 |
对应文件 |
行数范围 |
核心作用 |
|---|---|---|---|
|
系统提示词(Agent 规则) |
system_prompt.py |
40-214 |
告诉 LLM 角色、工作规则和行为边界 |
|
深度思考提示词 |
system_prompt.py |
217-307 |
引导 LLM 进行多步推理、自主排查问题 |
|
多轮推理引擎 |
graph.py |
110-285 |
允许 LLM 多次调用工具,支持多轮迭代思考 |
|
工具定义 |
tools/*.py |
全部 |
给 LLM 提供查询、执行等能力(核心工具集合) |
|
参数调整(temperature) |
agent_service.py |
813-831 |
控制 LLM 的思考风格(谨慎/大胆) |
|
工具绑定 |
agent_service.py |
107-118 |
将工具注册到 LLM,让 LLM 能调用工具 |
四、最小可复现示例(直接复制就能用!)
如果大家想快速体验 Agent 的效果,不用搭建复杂项目,下面这个最小示例,复制到本地就能运行,核心就是“定义工具+写对提示词”:
# 1. 定义工具(这里以数据库查询工具为例)
@tool
def query_database(sql: str) -> str:
"""执行 SQL 查询,返回查询结果(真实场景中替换为实际数据库连接逻辑)"""
return "查询结果(真实场景中返回数据库查询到的真实数据)"
# 2. 编写 Agent 专用系统提示词
system_prompt = """
你是一名专业的数据库专家,你的核心工作是解决用户的数据库相关问题。
当用户问任何数据库相关问题(包括 SQL 排查、数据查询、表结构分析等),必须调用 query_database 工具进行验证,绝对不要凭记忆瞎猜。
如果工具返回结果不明确,需要再次调用工具补充查询,直到得出准确答案。
"""
# 运行效果:LLM 会自动识别数据库问题,调用 query_database 工具,不再瞎猜!
五、关键疑问解答(为什么这样就能工作?)
很多同学会疑惑:“为什么加了提示词、工具和参数,LLM 就变成 Agent 了?” 核心原因就2点:
-
LLM 本身就有推理能力:像 GPT-4、DeepSeek 等主流大模型,本身就具备“思考链”能力,它们能理解“不确定的事情需要查询验证”,只是没有明确的规则和工具,无法发挥出来。
-
我们只是“激活”了它的能力:我们提供的4个模块,本质是给 LLM 搭了一个“框架”:
-
明确的指令(提示词):告诉它“什么时候该调用工具”
-
可用的工具:给它提供“查询验证的能力”
-
多次机会(推理引擎):允许它“反复排查,直到正确”
-
正确的参数:让它“谨慎思考,不瞎猜”
-
而 LLM 自己会决定:什么时候调用工具、调用哪个工具、如何处理工具返回的结果、是否需要再次调用——这就是 Agent 的“魔力”!
六、一张图总结核心逻辑(一目了然)
最后用一张图,帮大家梳理普通 LLM 和智能 Agent 的核心区别,记住这张图,就能快速掌握 Agent 的核心原理:
-
普通 LLM:只能回答 → 可能瞎猜 → 一次回答 → 不够准确
-
智能 Agent:能调用工具 → 能验证结果 → 多轮推理 → 更加可靠
更多推荐



所有评论(0)