当大模型开始控制设备:我是怎么理解 Agent 架构的

最近两年 Agent 这个词越来越火。

一开始我其实是有点懵的。

RAG、Memory、Tool、Planning、Multi-Agent......各种概念一股脑冒出来,看起来像是很多新东西。

但如果你真的去做一些 Agent 系统,很快就会发现一件事:

这些概念看起来很多,但背后的逻辑其实并没有那么复杂。

我自己也是一边折腾,一边在项目里做了一些尝试,慢慢才把这些东西串起来。

尤其是在做一个工业设备控制系统 的时候,我突然意识到:

Agent 其实可以用一个非常简单的方式理解。


Agent 本质是在解决什么问题

普通的大模型其实只会一件事:

根据输入生成文本。

所以你问它问题,它回答;
你让它写文章,它写文章。

但现实世界的大多数任务,并不是一句话就能完成的。

比如:

写一份 AI 行业调研报告

如果是人来做,一般会这样:

  1. 先去搜资料
  2. 看几篇报告
  3. 总结关键观点
  4. 想一个文章结构
  5. 最后把文章写出来

这其实是一个多步骤任务

而 Agent 想解决的事情其实很直接:

让 AI 也可以按这种方式完成任务。

换句话说:

Agent 不只是回答问题,而是可以持续推进一个任务,直到完成。


Agent 的核心其实是一个循环

看了一些 Agent 框架之后,我慢慢发现一件事情:

它们其实都在实现同一个结构。

一个循环。

可以简单理解成:

很多论文会把这个过程描述得很复杂,但工程上看其实就是这四件事。

举个简单例子。

如果用户说:

帮我总结最近的 AI Agent 技术趋势

一个 Agent 可能会这样运行:

第一步:思考
"这个任务需要先找资料。"

第二步:行动
调用搜索工具。

第三步:观察
拿到搜索结果。

第四步:再思考
"需要整理这些信息。"

然后循环继续,直到任务完成。

当这个循环跑起来以后,你会发现 AI 的行为开始有点像人在做事情了:
不断获取信息、做判断、再采取行动。


Tools:让 AI 能动手

如果只有大模型,其实很多事情是做不了的。

因为模型只能输出文本。

所以 Agent 系统通常都会给模型提供一些可以调用的能力,也就是所谓的 Tools

比如:

在推理过程中,模型可以决定:

现在应该调用哪个 Tool。

不同系统的叫法不太一样:

  • Tools
  • Functions
  • Skills
  • Plugins

名字不同,本质其实是一件事:

给 AI 一些可以调用的能力。


在工业系统里的一个实践

在我们做的一个工业控制系统里,这个概念会变得非常具体。

我们的目标其实很简单:

让 AI 可以通过自然语言控制设备。

例如用户可以直接说:

把 Stage 移动到 X=100,Y=50

但设备本身只提供一些比较底层的接口,比如:

复制代码
StageMove(x, y)
StageHome()
RobotPick()
RobotPlace()
LoadPortDock()

如果让模型直接操作这些接口,其实会有两个问题:

第一,模型很难理解这些接口的语义。
第二,直接调用设备接口风险非常高。

所以系统里做了一层抽象:

把设备能力封装成 Tool。

例如:

复制代码
stage_home
stage_move
robot_pick
robot_place
loadport_dock

每一个 Tool 对应一个明确的设备能力。

这样 Agent 在决策的时候,只需要判断一件事:

当前任务应该调用哪个 Tool。

底层设备控制仍然由系统负责。


Memory:否则 AI 每一步都会"失忆"

如果没有记忆,AI 每一步都会忘记之前发生了什么。

所以 Agent 系统通常都会有一个 Memory 机制。

最简单的一种记忆就是:

对话历史。

但在实际系统里,还会有更多类型的记忆,例如:

很多 RAG 系统,本质上也是在解决这个问题:
让模型可以查询外部信息。

在设备控制系统里,Memory 其实更加关键。

例如:

  • 当前设备状态
  • Stage 是否已经 Home
  • 机械臂当前位置
  • 当前执行步骤

这些信息都会作为上下文提供给模型。

否则 AI 可能会做出一些奇怪的决策,比如:

  • 在设备未初始化时直接运动
  • 重复执行已经完成的操作

很多工程工作其实在做 Context Engineering

一开始很多人会觉得 Agent 的核心是:

  • 自动任务
  • 复杂规划
  • 多 Agent

但真正做过系统之后会发现:

很多工程工作其实都在做一件事情------设计上下文。

因为大模型每一次推理时,只能看到当前输入。

所以 Agent 每执行一步,系统其实都在重新组织上下文。

例如在我们的系统里,每次模型推理时通常会包含这些信息:

这些信息共同构成了 Agent 当前的"世界"。

如果上下文设计不好,模型很容易:

  • 调用错误的 Tool
  • 忽略设备状态
  • 做出不合理的操作

很多时候问题并不在模型,而在于系统给模型提供了什么信息。


Multi-Agent:像一个 AI 团队

当任务变复杂之后,一个 Agent 有时候不太够。

于是很多系统开始采用 Multi-Agent 架构。

可以简单理解为一个 AI 团队:

不同 Agent 负责不同任务。

在工业系统里,这种模式也有一定价值。

例如可以拆分成:

复制代码
Planner Agent    负责任务拆解
Execution Agent  负责调用设备 Tool
Safety Agent     负责安全检查

这样可以把复杂控制逻辑拆成多个职责比较清晰的模块。


从系统角度看 Agent

如果从系统角度看,一个 Agent 控制系统其实就是这样一个循环:

在我们的系统里,大致可以对应成:

  • LLM 负责理解任务和做决策
  • Tool 负责执行设备能力
  • Memory 记录系统状态
  • Context 提供决策信息

整个系统持续运行在一个 Agent Loop 里。


Agent 其实是一种新的软件架构

如果从软件架构角度看,这件事情其实也挺有意思。

传统软件通常是这样设计的:UI->Service->Business Logic->Device API

程序流程基本是由代码控制的。

而在 Agent 系统里,结构开始发生变化:UI->LLM Reasoning->Tool->Device System
系统行为不再完全由程序写死,而是由模型在运行时做决策。

换句话说:

软件开始从"程序控制流程"转向"模型决策流程"。


最后

现在再回头看 Agent,其实会觉得它没有一开始想象的那么神秘。

LLM 更像是 AI 的大脑

而 Agent 做的事情其实很简单:

给这个大脑加上:

  • 记忆
  • 手脚
  • 工作流程

当这些东西组合在一起时,AI 就不再只是聊天机器人,而更像一个可以持续完成任务的系统。

在工业软件里,这种映射其实也很自然:

复制代码
设备接口  → Tool
控制流程  → Agent
设备状态  → Memory

当这些模块组合起来之后,系统的设计方式就开始发生变化:

AI 不只是辅助工具,而开始参与系统决策。

这也是我觉得 Agent 技术最有意思的地方。