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