0. 现象:RAG 的天花板与 Agent 的必然性

你做完前六篇的 RAG,发现模型成了一个“博学的图书管理员”:

问它公司制度,它答得头头是道(RAG)。

问它“帮我查下 A 仓库库存”,它傻了:“对不起,知识库里没有实时库存。”

说“帮我给老板发个请假邮件”,它更傻了:“我只是个语言模型。”

RAG 只能“读”,Agent 才能“做”。

Agent 的第一性原理:LLM + 记忆 + 规划 + 工具 = 自主智能体。

工程上没这么玄乎,Agent 本质上就是:循环调用(Loop) + 工具路由(Router)。

1. 核心解密:ReAct 模式(Reasoning + Acting)

Agent 为什么能自己决定下一步干嘛?全靠一个 Prompt 模式,叫ReAct。

别被学术名词吓到,它的逻辑就像人类思考:

Thought(思考):用户想查库存,我应该先调用“查询库存接口”。

Action(行动):调用 search_inventory(sku=“A001”)。

Observation(观察):接口返回 { “A001”: 50 }。

Thought(再思考):库存查到了,是 50。用户还问能不能发货?我看下规则。

Final Answer(回答):库存充足,可以发货。

工程实现:这不是魔法,是LLM 在一个 while 循环里不断地输出 Thought 和 Action,直到它认为任务完成了。

2. 工程基石:Function Calling(工具定义)

要让 Agent 跑起来,你首先得把你的后端 API 包装成模型能看懂的“工具说明书”。

2.1 定义工具(Schema)

这跟写 Swagger/OpenAPI 文档一模一样。你必须告诉模型:

工具名叫啥?(send_email)

干啥用的?(发送邮件给指定收件人)

参数是啥?(to: string, subject: string, body: string)

示例(OpenAI 格式):

{
"type": "function",
"function": {
"name": "query_inventory",
"description": "查询指定商品的实时库存数量",
"parameters": {
"type": "object",
"properties": {
"sku_code": {
"type": "string",
"description": "商品SKU编码,如 A-101"
}
},
"required": ["sku_code"]
}
}
}

2.2 工具调用的工程坑点

描述(Description)比代码更重要:模型是根据 description 来决定用不用这个工具的。如果你写得含糊,它就不调,或者乱调。

参数校验(Validation):模型传回来的参数可能是错的(比如把日期写成 “tomorrow”)。后端拿到参数后,必须先做校验,不行就把错误信息塞回给模型让它重试(类似第五篇的重试逻辑)。

3. 多租户下的 Agent 架构:权限是个大雷

RAG 的权限在“查”的时候卡住就行,Agent 的权限涉及“改”(发邮件、改库存),风险极大。

3.1 权限透传(User Context Injection)

绝对不能给 Agent 配置一个超级管理员账号。

Agent 调用后端 API 时,必须复用当前操作用户的 Token/Session。

用户 U 发起请求 -> Agent 决定调 get_salary -> Agent 请求后端。

后端检查:Header 里有没有 U 的 Token?U 有没有 get_salary 权限?

无权:后端返回 403。

Agent 收到 403:思考(Thought) -> 回复用户:“对不起,你没权限查工资。”(

这就对了!)

3.2 敏感操作的“人机确认”(Human-in-the-loop)

对于写操作(发邮件、删库、转账),永远不要让 Agent 自动跑完。

架构模式:

Agent 决定调用 transfer_money(to=“Bob”, amount=100)。

系统暂停(Suspend)。

前端弹窗:“Agent 想要转账 100 给 Bob,是否批准?”

用户点“批准”。

系统把“用户已批准”作为 Observation 塞回给 Agent。

Agent 继续执行。

4. 一个可落地的 Agent Loop 代码逻辑(伪代码)

这就是 Agent 的后端核心逻辑,其实就是一个 While 循环。

messages = [{"role": "user", "content": "帮我查下 A001 库存,够的话发个邮件给老板"}]
while True:
1. 调大模型,把工具定义(Schema)传进去
response = llm.chat(messages, tools=[query_inventory, send_email])
# 2. 判断模型是否想调工具
if response.tool_calls:
tool_call = response.tool_calls[0]
func_name = tool_call.function.name
args = json.loads(tool_call.function.arguments)
# --- 权限校验与执行 ---
# 必须带上当前用户的 context
if func_name == "query_inventory":
result = api.query_inventory(sku=args['sku_code'], user=current_user)
elif func_name == "send_email":
# 敏感操作,插入人工确认逻辑
if not user_approved(func_name, args):
result = "User denied the operation."
else:
result = api.send_email(**args, user=current_user)
# 3. 把执行结果(Observation)追加到消息历史
messages.append(response.message) # 把模型的 Action 加上
messages.append({                 # 把结果加上
"role": "tool",
"tool_call_id": tool_call.id,
"content": str(result)        })
# 进入下一轮循环,模型会看到结果,然后决定下一步
else:
# 4. 模型不想调工具了,直接回答用户(Final Answer)
print("Agent 回复:", response.content)
break

5. Agent 的常见死法与救法

5.1 死循环(Looping)

现象:模型不停地查库存,查完了又查,不输出结果。

解法:

设置 max_steps(最大步数,比如 10 步)。超过就强制停止并报错。

System Prompt 里加一句:“如果多次尝试失败,请停止并询问用户。”

5.2 乱调参(Hallucinated Arguments)

现象:调用 search_user(id=“张三”),但接口要求 id 必须是数字。

解法:

把错误信息(Error: id must be integer)塞回给模型(Observation)。

聪明的模型(如 GPT-4)看到报错会自我修正:“对不起,我应该先按名字查 ID。” -> get_user_id(name=“张三”)。

6. 本篇小结(从 Demo 到生产)

Agent = Loop + Tools。核心是 ReAct 循环。

工具定义要像写代码一样严谨。Description 是给模型看的文档。

权限控制必须在后端。Agent 只是一个代理,不能绕过业务鉴权。

敏感操作必须有人工确认(Human-in-the-loop)。

做好容错。把 API 报错喂回给模型,让它自己修。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐