LLM + RAG + Function Calling 不等于 AI Agent
许多人将任何 AI 应用都称为 Agent。他们看到一个使用 RAG 和 Function Calling 的 LLM,就直接贴上这个标签。
这是错误的。
这些工具提供的是能力,而不是自主性。没有自主性,你就没有 Agent。
你必须将系统的“能力”与其“行为方式”区分开来。
LLM 根据上下文生成文本。它并不控制系统的流程。
RAG 检索信息以优化回答。它不进行规划或做出决策。
Function Calling 让模型请求执行某个动作。但系统仍然决定了存在哪些函数以及何时运行它们。模型仅仅是提出请求。
你可以将这三者结合起来,但仍然称不上是一个 Agent。你缺少的是对动作序列的控制权。
大多数目前的应用程序使用的是预定义的流水线。代码决定了:
- 何时使用 RAG
- 何时调用 LLM
- 何时触发函数
- 如何处理最终结果
这是一种受限的工作流。模型在既定路径内运行。它遵循一个序列,然后停止。它不会进行规划。
AI Agent 的工作方式不同。它不遵循既定路径。它根据过程中的实际情况来决定下一步。
标准系统说:遵循这个工作流。 Agent 系统说:实现这个目标。
Agent 是由其行为定义的,而不是由其工具定义的。一个 Agent 必须:
- 决定下一步动作
- 动态选择工具
- 迭代执行多个步骤
- 根据结果改变策略
- 持续进行直到达成目标
区别在于责任归属。
在 LLM 应用中,是系统告诉模型该做什么。 在 Agent 中,是系统告诉模型目标。模型决定如何实现它。
RAG 提供上下文。 Function Calling 实现动作。 LLM 提供推理。
但只有当模型能够控制自身的动作序列时,Agent 才真正存在。
Source: https://dev.to/rohith_kn/llm-rag-function-calling-is-not-an-ai-agent-5459
Optional learning community: https://t.me/GyaanSetuAi
