本章关键词:AI Agent、Tool Calling、Function Calling、Tools、Planning、Memory、Workflow、RAG、ERP、CRM、WMS、API、权限、安全
一、RAG之后,为什么还需要Agent?
上一篇我们完成了一个企业RAG知识库:
它可以解决一个非常重要的问题:
让AI能够理解企业知识。
例如用户问:
WMS系统中,库存盘点出现差异应该怎么处理?RAG可以检索:
《库存盘点管理制度》 《盘点异常处理SOP》 《库存调整管理规范》然后让LLM生成答案。
但是,企业员工接下来很可能会问:
“帮我查询一下SKU-10086现在有多少库存。”这时候RAG就不够了。
因为:
知识库中的库存数据可能不是实时数据。
真正需要的是:
用户 ↓ AI Agent ↓ 调用WMS API ↓ 查询实时库存 ↓ 返回结果进一步,用户可能说:
“帮我把SKU-10086的库存调整100件。”这就不再是:
回答问题。
而是:
执行任务。
这正是Agent解决的问题。
二、什么是AI Agent?
AI Agent可以简单理解为:
能够理解目标、决定下一步行动、调用工具、观察结果,并持续执行直到完成任务的AI系统。
普通Chatbot:
用户 ↓ LLM ↓ 答案RAG Chatbot:
用户 ↓ LLM ↓ RAG ↓ 企业知识 ↓ 答案AI Agent:
所以可以简单理解:
LLM = 大脑 RAG = 知识 Tool = 手 Agent = 能够使用大脑、知识和工具完成任务的执行者三、Chatbot、RAG和Agent有什么区别?
这是FDE必须理解的一个核心问题。
| 类型 | 核心能力 | 能否访问企业知识 | 能否调用系统 | 能否执行任务 |
|---|---|---|---|---|
| Chatbot | 对话 | ❌ | ❌ | ❌ |
| RAG | 知识问答 | ✅ | 通常❌ | ❌ |
| Tool Calling | 工具调用 | 可选 | ✅ | 部分 |
| Agent | 自主执行 | ✅ | ✅ | ✅ |
| Workflow | 流程执行 | 可选 | ✅ | ✅ |
可以把它理解成一个逐步升级过程:
Chatbot ↓ RAG ↓ Tool Calling ↓ Agent ↓ Workflow ↓ 企业AI应用四、Agent最重要的能力:Tool Calling
Agent之所以能够执行任务,关键原因之一就是:
Tool Calling。
例如我们给AI提供一个工具:
get_inventory(sku)工具说明:
名称: get_inventory 功能: 查询SKU实时库存 参数: sku 返回: 库存数量用户:
查询SKU-10086的库存。LLM判断:
这个问题需要实时库存数据 ↓ 调用get_inventory生成:
{ "tool": "get_inventory", "arguments": { "sku": "SKU-10086" } }系统执行:
get_inventory("SKU-10086")WMS返回:
{ "sku": "SKU-10086", "available": 1250, "locked": 100 }然后结果重新交给LLM:
Tool Result ↓ LLM ↓ 自然语言答案最终:
SKU-10086当前库存: 可用库存:1250件 锁定库存:100件这就是Tool Calling。
五、Function Calling和Tool Calling是什么关系?
在不同AI平台和框架中,经常会看到:
Function Calling Tool Calling两者在实际应用中高度相关。
核心思想都是:
让模型输出结构化的工具调用请求,由程序真正执行工具。
例如:
LLM ↓ 决定调用工具 ↓ 输出结构化参数 ↓ Application ↓ 执行函数/API ↓ 返回结果 ↓ LLM需要注意一个关键点:
LLM本身通常并不是直接操作企业数据库。
而是:
LLM ↓ 提出工具调用 ↓ 应用程序 ↓ 权限校验 ↓ 真正执行API这对于企业安全非常重要。
六、Tool到底是什么?
Tool本质上就是:
AI可以调用的一个能力接口。
例如WMS:
查询库存 查询订单 查询库位 查询SKU 创建入库单 创建出库单 创建盘点任务ERP:
查询采购订单 查询销售订单 查询供应商 查询物料 创建采购申请CRM:
查询客户 查询联系人 查询商机 创建跟进记录 查询销售机会甚至可以是:
天气API 地图API 邮件 Excel 数据库 搜索引擎 企业内部API因此:
Tool = AI可以调用的外部能力七、Tool设计是Agent项目的核心工作
很多人做Agent时,把注意力全部放在LLM上。
实际上企业Agent能否稳定运行,很大程度上取决于:
Tool设计。
一个好的Tool应该:
职责单一 参数清晰 返回结构化 权限明确 错误可控 可审计 可重试例如不要设计:
do_wms_everything()而应该拆成:
get_inventory() get_order() get_location() create_count_task() create_outbound_order()这样Agent更容易正确选择。
八、一个标准Tool定义
例如:
{ "name": "get_inventory", "description": "查询指定SKU在指定仓库中的实时库存", "parameters": { "type": "object", "properties": { "warehouse_code": { "type": "string" }, "sku": { "type": "string" } }, "required": [ "warehouse_code", "sku" ] } }这里包含三个重要部分:
Tool Name Tool Description Tool Parameters尤其是:
Description非常重要。
因为Agent需要根据工具描述判断:
“什么时候应该使用这个工具?”九、Agent的基本运行循环
一个简单Agent可以抽象成:
这就是Agent的基本循环。
十、Think → Act → Observe
很多Agent架构可以抽象成:
例如:
用户:
“帮我找出库存低于安全库存的SKU,并创建补货申请。”Agent可能需要:
这就是Agent与普通Chatbot最大的区别。
十一、Agent + RAG
Agent并不意味着RAG消失了。
恰恰相反:
Agent + RAG是企业AI非常重要的组合。
例如:
例如:
用户: “按照公司的库存管理制度, 帮我检查一下SKU-10086是否需要补货。”Agent需要:
第一步
通过RAG查询:
库存管理制度 安全库存规则 补货规则第二步
通过Tool查询:
SKU-10086实时库存第三步
综合判断:
当前库存 + 安全库存规则 + 补货策略第四步
返回:
SKU-10086当前库存低于安全库存, 建议创建补货申请。这就是真正的:
知识 + 数据 + 推理。
十二、Agent + WMS
对于FDE来说,WMS是非常适合Agent落地的场景。
可以设计:
Tools可以包括:
查询库存 查询订单 查询库位 查询SKU 查询批次 查询库存状态 创建盘点任务 创建补货任务十三、一个完整的WMS Agent案例
用户:
“帮我检查一下A仓库库存不足的商品。”
Agent:
① 查询A仓库库存 ↓ ② 查询安全库存规则 ↓ ③ 计算库存差异 ↓ ④ 找出低于安全库存SKU ↓ ⑤ 生成结果例如:
SKU 当前库存 安全库存 -------------------------------- SKU001 80 100 SKU002 30 50 SKU003 500 100Agent判断:
SKU001 → 需要补货 SKU002 → 需要补货 SKU003 → 正常然后用户继续:
“那就帮我创建补货任务。”
Agent:
用户确认 ↓ 权限检查 ↓ 创建补货任务Tool ↓ WMS API ↓ 返回任务号 ↓ AI反馈最终:
已创建2个补货任务: SKU001 → 补货任务 RT20260905001 SKU002 → 补货任务 RT20260905002这已经不是简单的AI问答。
而是:
AI参与真实业务流程。
十四、Agent + ERP
ERP同样可以提供大量Tools。
例如:
采购订单查询 销售订单查询 供应商查询 物料查询 库存查询 财务数据查询 采购申请创建例如用户:
“帮我查询最近30天采购金额最高的10家供应商。”Agent可以:
理解问题 ↓ 确定时间范围 ↓ 调用采购数据Tool ↓ 获得数据 ↓ 排序 ↓ 生成报告如果进一步连接RAG:
采购制度 + 实时采购数据 + Agent就可以回答:
“为什么这个供应商不能直接下采购订单?”十五、Agent + CRM
CRM场景同样非常适合Agent。
例如:
客户查询 ↓ 商机查询 ↓ 客户历史跟进 ↓ 合同查询 ↓ 生成客户分析用户:
“帮我整理一下这个客户最近的销售情况。”
Agent:
查询客户 ↓ 查询商机 ↓ 查询订单 ↓ 查询跟进记录 ↓ 汇总 ↓ 生成客户画像进一步:
“帮我给这个客户创建一次跟进任务。”Agent可以:
调用CRM API ↓ 创建跟进任务 ↓ 返回任务结果十六、Agent不是“无限自由”的AI
企业环境下不能让Agent想干什么就干什么。
例如:
查询库存可以自动执行。
但是:
删除订单 修改财务数据 创建付款 删除客户 调整库存可能必须:
人工确认因此企业Agent应该设计:
低风险操作 ↓ 自动执行 中风险操作 ↓ 权限检查 高风险操作 ↓ 人工确认 ↓ 执行十七、Human-in-the-Loop
这就是:
人在回路中。
例如:
用户: “帮我把SKU-10086库存增加1000件。”Agent不能直接执行。
应该:
Agent ↓ 生成操作计划 ↓ 发现这是高风险操作 ↓ 要求用户确认提示:
即将执行: 仓库:WH01 SKU:SKU-10086 库存调整:+1000 该操作会修改实际库存。 是否确认执行?用户:
确认然后:
权限校验 ↓ 调用API ↓ 执行 ↓ 记录审计日志这才是企业级Agent。
十八、Agent权限设计
Agent的权限不能等同于系统管理员权限。
应该采用:
用户权限 ↓ Agent权限 ↓ Tool权限 ↓ 业务数据权限例如:
仓库操作员 可以: ✓ 查询库存 ✓ 查询库位 ✓ 查询订单 不能: ✗ 删除库存 ✗ 修改财务数据 ✗ 修改系统配置因此Agent调用Tool之前:
十九、Agent Memory:记忆
Agent还需要处理上下文。
例如用户:
“查询一下A仓库。”Agent:
好的。用户:
“再看看库存不足的。”这里的:
“再看看”依赖前面的上下文。
因此Agent需要保存:
Conversation History Task State User Preference Execution State可以简单理解为:
Memory ↓ 让Agent知道 “刚才发生了什么”二十、Agent State:状态
企业任务往往不是一次完成。
例如:
创建采购申请可能经历:
DRAFT ↓ SUBMITTED ↓ APPROVED ↓ PROCESSING ↓ COMPLETEDAgent需要知道当前任务处于什么状态。
因此可以设计:
Agent State task_id user_id current_step tool_result approval_status error retry_count这样才能支持复杂任务。
二十一、Agent错误处理
真实环境中Tool不可能永远成功。
例如:
WMS API超时 数据库连接失败 权限不足 SKU不存在 库存不足 参数错误Agent需要处理这些情况。
例如:
例如:
API Timeout ↓ Retry ↓ 成功如果:
Permission Denied则不能无限重试。
应该:
停止 ↓ 提示用户权限不足二十二、Agent为什么容易“失控”?
Agent比普通Chatbot复杂很多。
因为它可以:
思考 + 调用工具 + 执行动作 + 继续调用工具如果设计不好,就可能出现:
无限循环 错误调用 重复执行 错误参数 权限越权 数据污染 成本失控因此:
Agent必须有边界。
二十三、Agent Guardrails
企业Agent应该增加Guardrails。
例如:
还应该限制:
最大执行步数 最大Token 最大调用次数 Tool白名单 API权限 金额限制 数据范围二十四、Agent + Workflow
很多人会问:
Agent和Workflow是不是一样?
不是。
Workflow:
流程预先定义 ↓ Step 1 ↓ Step 2 ↓ Step 3 ↓ Step 4Agent:
目标 ↓ AI自主判断下一步 ↓ 选择Tool ↓ 执行 ↓ 根据结果继续判断简单来说:
Workflow = 路线提前规划好 Agent = 根据现场情况动态决定路线二十五、什么时候用Workflow?
如果业务流程非常固定:
订单创建 ↓ 订单审核 ↓ 库存检查 ↓ 出库 ↓ 发货就适合Workflow。
如果问题变化很大:
“帮我分析一下这个客户为什么最近订单下降。”可能需要Agent动态决定:
查询客户 ↓ 查询订单 ↓ 查询销售趋势 ↓ 查询历史记录 ↓ 分析原因因此实际企业应用往往是:
Agent + Workflow二十六、企业级Agent整体架构
可以把完整架构设计成:
在外层再增加:
Authentication Authorization Guardrails Evaluation Audit Log Monitoring形成企业级架构。
二十七、FDE如何做一个最小Agent?
建议不要一上来做:
超级企业AI Agent而应该先做:
一个Agent + 三个Tools。
例如WMS:
Tool 1 get_inventory() Tool 2 get_order() Tool 3 get_location()然后:
用户 ↓ Agent ↓ 选择Tool ↓ 调用API ↓ 返回结果先完成:
查询型Agent。
二十八、第二阶段:加入RAG
然后加入:
Agent ├── RAG ├── get_inventory ├── get_order └── get_location此时AI同时具备:
企业知识 + 实时数据例如:
“按照公司制度, SKU-10086库存低于多少需要补货? 它现在是否需要补货?”Agent:
RAG ↓ 获得安全库存规则 Tool ↓ 获得实时库存 LLM ↓ 综合判断二十九、第三阶段:加入执行能力
最后加入:
create_replenishment_task()架构变成:
Agent │ ├── RAG ├── 查询库存 ├── 查询订单 ├── 查询库位 └── 创建补货任务这样:
查询 ↓ 分析 ↓ 决策 ↓ 执行就完整了。
三十、FDE Agent项目开发流程
一个真实项目可以按照:
其中最重要的一步是:
确定Agent场景。
不是所有业务都需要Agent。
三十一、什么场景适合Agent?
非常适合:
复杂查询 跨系统查询 多步骤任务 异常处理 业务分析 智能客服 运营助手 销售助手 仓库助手 IT运维助手例如:
“帮我分析这个订单为什么没有发出去。”可能需要:
查询订单 ↓ 查询库存 ↓ 查询拣货任务 ↓ 查询波次 ↓ 查询异常日志 ↓ 综合分析这就是典型Agent场景。
三十二、什么场景不适合Agent?
如果流程非常简单:
查询订单 ↓ 返回订单直接API就可以。
如果流程高度固定:
A ↓ B ↓ C ↓ DWorkflow通常更加稳定。
如果只是企业知识问答:
制度问题 ↓ RAG ↓ 答案也没必要强行使用Agent。
所以FDE应该学会:
不是为了Agent而Agent,而是根据业务复杂度选择技术。
三十三、Agent项目最重要的三个问题
FDE做项目时,可以一直问:
第一个问题
AI需要知道什么?
答案可能是:
RAG 数据库 企业知识第二个问题
AI需要做什么?
答案可能是:
Tool Calling API Workflow第三个问题
AI能做到什么程度?
答案取决于:
权限 安全 业务规则 人工审批 系统能力最终形成:
Knowledge + Action + Permission = Enterprise Agent三十四、FDE真正需要掌握的Agent能力
FDE不一定要成为AI算法专家。
但应该能够:
这才是:
FDE Agent工程能力。
三十五、从RAG到Agent的完整演进
到这里,我们已经完成了:
可以总结为:
三十六、FDE的最终目标不是“做一个Agent”
这是本章最重要的一句话:
FDE不是为了证明自己会做Agent,而是要利用Agent解决真实业务问题。
例如客户说:
“仓库主管每天都要花两个小时检查库存异常。”
FDE应该思考:
最终:
人工检查2小时 ↓ AI辅助 ↓ 20分钟这才是FDE真正创造的价值。
三十七、FDE Agent完整技术路线
最终可以形成:
外层增加:
Security Permission Guardrails Evaluation Monitoring Audit最终才是完整的企业Agent平台。
三十八、本章总结
本章从RAG继续向前一步。
上一篇:
RAG ↓ 让AI知道企业知识这一篇:
Tool Calling ↓ 让AI能够调用企业系统进一步:
Agent ↓ 让AI能够自主完成多步骤任务最终:
构成企业级AI Agent的核心技术体系。
对于FDE来说,最值得记住的是:
三十九、下一篇预告
下一篇进入一个非常重要的主题:
《FDE前沿部署工程师实战教程》09 - Agent工具设计:从API到Tool Calling的企业系统集成
我们将进一步解决一个实际问题:
Agent到底如何连接ERP、CRM、WMS、MES?
重点学习:
并进一步实践:
如何把REST API变成AI Tool
Tool Schema如何设计
Function Calling完整流程
GET / POST / PUT / DELETE如何封装
数据库查询Tool
WMS库存查询Tool
ERP订单查询Tool
CRM客户查询Tool
Tool权限控制
Tool参数校验
Tool错误处理
Tool超时与重试
Tool审计日志
Agent多Tool协作
企业系统集成实战
最终形成:
这一步,将真正把FDE从“AI应用开发”带入“企业AI系统集成”。