这三个词今年出现频率极高,而且很多人混着用。我试着用最直白的方式说清楚它们的区别。
先理解一个大前提:大模型本身只能"说话"。你问它什么,它基于训练数据回答。它不会查数据库,不会发邮件,不会调API,不会操作你的电脑。它只是一个超级会聊天的引擎。
所有让你觉得AI"能干事情"的能力——订机票、查天气、分析报表——都是靠额外的机制实现的。Function Calling、RAG、Agent就是三种不同的机制。
Function Calling:给模型一个"工具箱"。
最简单的例子:你让ChatGPT查今天的天气。模型本身不知道今天天气,但你可以给它一个工具函数get_weather(city),告诉它"遇到查天气的需求时,调用这个函数"。
流程是这样的:
1. 用户说"北京今天天气怎么样?"
2. 模型识别出需要调用get_weather,参数是city="北京"
3. 你的代码执行get_weather("北京"),拿到结果"晴,25°C"
4. 把结果返回给模型
5. 模型把结果转成自然语言:"北京今天晴天,25度左右"
关键:模型不执行函数,它只"决定调用哪个函数"。执行函数的是你的代码。模型和你的代码之间通过固定的格式(JSON)来传递调用意图和结果。
Function Calling适合简单场景:一次调用→一次返回。比如查天气、发邮件、创建日程。
RAG:给模型一个"参考书"。
RAG(检索增强生成)解决的是"模型不知道你不知道的事"这个问题。你的公司内部文档、产品手册、FAQ——这些东西模型训练时没见过。
RAG的做法:
1. 把你的文档切成小块,转成向量(就是前面那篇向量数据库里说的东西),存进向量数据库。
2. 用户提问时,先去向量数据库里检索最相似的几个文档片段。
3. 把这些片段和用户的问题一起喂给模型:"根据以下参考资料,回答用户的问题:参考资料……用户的问题……"
4. 模型基于这些资料生成答案。
RAG本质上是给模型的外挂记忆。适合做企业知识库问答、客服机器人、产品文档助手。
Agent:给模型"自主权"。
Agent是Function Calling的进阶版。它不只是执行一个工具,而是能"规划"——根据当前情况自己决定下一步做什么。
比如你让Agent"帮我调研一下竞品A最近三个月的动作,汇总成报告发我邮箱":
1. Agent决定:先搜索竞品A的最新新闻
2. 拿到搜索结果后,Agent判断:需要深入阅读其中3篇文章
3. 读完文章后,Agent判断:信息够了,开始生成报告
4. 生成报告后,Agent决定:调用发邮件工具
Agent的核心是"推理-行动-观察"循环。每一步之后都会重新评估当前状态,决定下一步。它比Function Calling多了一个"自主规划"的能力。
三者的关系可以用一句话总结:
Function Calling = 模型用工具(被动)
RAG = 模型查资料(被动)
Agent = 模型做决策(主动)
实际产品里,这三者经常混着用。比如一个客服Agent,用RAG查产品手册,用Function Calling调取订单状态,用Agent逻辑决定先回答哪个问题、是否需要转人工。
理解这三个概念的区别,就不会被AI产品的宣传文案绕晕了。
标签: Agent RAG Function Calling AI术语
还木有评论哦,快来抢沙发吧~