现在似乎所有人都在做AI Agent。但随机问十个开发者"什么是AI Agent",你会得到十种不同的答案。有人说,只要有工具调用能力的LLM就是Agent;有人强调自主行动的能力;还有人随手一指某个聊天机器人,说这就是Agent。

这种定义的模糊不只是学术问题——它直接导致了安全问题。你无法精确描述一个系统,又怎么能保护它?

打开网易新闻 查看精彩图片

抛开那些强调自主决策程度的通用定义,我更倾向一个偏技术向的定义。这个定义来自微软,与OWASP的定义高度一致:

"AI Agent是一种灵活的软件程序,使用生成式AI模型来解释输入、推理问题,并决定最合适的行动。Agent建立在五个核心组件之上。"

与传统基于固定规则的应用不同,Agent通过根据实时上下文动态编排工作流,获得了超越传统软件能力的适应性和复杂性管理能力。

这个定义可以可视化为一张架构图:除输入、输出和外部资源外,Agent的核心是指令集、LLM和Agent Core。

LLM是Agent的大脑,负责必要的推理和决策。Agent Core则是编排LLM与外部世界交互的软件组件——也就是你用Python、JavaScript、C#等语言编写的、与LLM交互的那部分代码。

在Agent Core内部,有两个关键组件被特别标注:Agent Control和Tools。Agent Control是Agent的心脏,协调LLM与外部世界的所有交互。Tools组件代表向LLM开放的所有功能,如计算函数、文件系统访问等,也是连接外部工具和资源的接口。

Agent Control与Tools的组合构成了Agent Core——本质上就是传统的代码,没有任何智能功能。

从这张图中可以观察到两个关键事实,而它们正是理解AI Agent本质及其安全机制的基础:

第一,AI Agent的两个核心组件性质截然不同:一个是传统的确定性应用,另一个是非确定性的LLM。

Agent Core通过确定性代码向LLM发送输入、提供功能、处理输出。你可以分析它、测试它,知道它的工作原理,也知道给定输入必然得到相同输出。

LLM则完全不同:给定相同的输入,它不会给出确定性的响应。