01
引言
智能体架构是定义AI智能体各组件组织与交互方式的蓝图,使其能够感知环境、进行推理并采取行动。本质上,它就像智能体的数字大脑——通过整合"眼睛"(传感器)、"大脑"(决策逻辑)和"手"(执行器)来处理信息并执行动作。
选择正确的架构对构建高效AI智能体至关重要。该架构决定了智能体的响应速度、处理复杂任务的能力、学习适应性及资源需求等核心能力。例如,基于简单反射的智能体可能擅长实时反应但缺乏长期规划能力,而慎思型智能体虽能处理复杂目标却需更高计算成本。理解这些权衡关系,工程师才能为特定应用领域匹配最佳架构,实现性能与可靠性的最优化。
02
智能体架构主要分为以下几类:
反应式(Reactive)
慎思式(Deliberative)
混合式(Hybrid)
神经符号式(Neural-Symbolic)
认知式(Cognitive)
接着我们分章节来逐步介绍不同的架构。
03
应用场景
反应式架构非常适合需要瞬间决策且响应可预测、明确定义的领域。典型的例子包括机器人技术和游戏:如一台机器人吸尘器或无人机,在传感器检测到障碍物后立即反应避让;或者视频游戏中的非玩家角色(NPC),它们会根据预设脚本对玩家的动作做出即时反应(比如,敌方守卫在玩家进入视线时立即攻击)。
在工业环境中,简单的监控智能体可能会在传感器超出范围时触发报警或关闭设备。这类智能体在实时控制系统中表现出色,但由于缺乏全局规划,它们通常用于相对简单或受严格限制的任务中,在这些任务中可以预先定义所有情况的规则。
这类架构在实时控制系统中表现突出,但由于缺乏全局规划能力,仅适用于规则可预先明确定义的简单或强约束任务。
-
样例实现:
from dotenv import load_dotenvfrom openai import OpenAI_ = load_dotenv()client = OpenAI()
class Agent:def __init__(self, system=""):self.system = systemself.messages = []if self.system:self.messages.append({"role": "system", "content": system})def __call__(self, message):self.messages.append({"role": "user", "content": message})result = self.execute()self.messages.append({"role": "assistant", "content": result})return resultdef execute(self):completion = client.chat.completions.create(model="gpt-4o",temperature=0,messages=self.messages)return completion.choices[0].message.content
import openaiimport reimport httpximport osprompt = """You run in a loop of Thought, Action, PAUSE, Observation.At the end of the loop you output an AnswerUse Thought to describe your thoughts about the question you have been asked.Use Action to run one of the actions available to you - then return PAUSE.Observation will be the result of running those actions.Your available actions are:calculate:e.g. calculate: 4 * 7 / 3Runs a calculation and returns the number - uses Python so be sure to use floating point syntax if necessaryaverage_dog_weight:e.g. average_dog_weight: Colliereturns average weight of a dog when given the breedExample session:Question: How much does a Bulldog weigh?Thought: I should look the dogs weight using average_dog_weightAction: average_dog_weight: BulldogPAUSEYou will be called again with this:Observation: A Bulldog weights 51 lbsYou then output:Answer: A bulldog weights 51 lbs""".strip()def calculate(what):return eval(what)def average_dog_weight(name):if name in "Scottish Terrier":return("Scottish Terriers average 20 lbs")elif name in "Border Collie":return("a Border Collies average weight is 37 lbs")elif name in "Toy Poodle":return("a toy poodles average weight is 7 lbs")else:return("An average dog weights 50 lbs")known_actions = {"calculate": calculate,"average_dog_weight": average_dog_weight}prompt = """You run in a loop of Thought, Action, PAUSE, Observation.At the end of the loop you output an AnswerUse Thought to describe your thoughts about the question you have been asked.Use Action to run one of the actions available to you - then return PAUSE.Observation will be the result of running those actions.
abot = Agent(prompt)def query(question, max_turns=5):i = 0bot = Agent(prompt)next_prompt = questionwhile i < max_turns:i += 1result = bot(next_prompt)print(result)actions = [action_re.match(a)for a in result.split('\n')if action_re.match(a)]if actions:# There is an action to runaction, action_input = actions[0].groups()if action not in known_actions:raise Exception("Unknown action: {}: {}".format(action, action_input))print(" -- running {} {}".format(action, action_input))observation = known_actions[action](action_input)print("Observation:", observation)next_prompt = "Observation: {}".format(observation)else:returnquestion = """I have 2 dogs, a border collie and a scottish terrier. \What is their combined weight"""query(question)Thought: I need to find the average weight of a Border Collie and a Scottish Terrier, then add them together to get the combined weight.Action: average_dog_weight: Border ColliePAUSE-- running average_dog_weight Border CollieObservation: a Border Collies average weight is 37 lbsAction: average_dog_weight: Scottish TerrierPAUSE-- running average_dog_weight Scottish TerrierObservation: Scottish Terriers average 20 lbsThought: Now that I have the average weights of both dogs, I can calculate their combined weight by adding them together.Action: calculate: 37 + 20PAUSE-- running calculate 37 + 20Observation: 57Answer: The combined weight of a Border Collie and a Scottish Terrier is 57 lbst
如示例所示,该智能体成功调用两种工具分别获取了边境牧羊犬和苏格兰梗的平均体重数据,并最终完成求和计算。
核心优势
极速响应:反应式架构决策耗时恒定,没有复杂推理开销,特别适合实时机器人控制、高频交易等毫秒级应用场景
设计透明:行为完全由预定义规则驱动,系统可验证性强
固有局限
适应性缺陷:缺乏学习与规划能力,既无法应对意外场景,也不能执行需要多步骤协同的目标型任务
短视行为:可能陷入局部优化(例如未配置战略逻辑的机器人会持续在小范围内循环移动)
这些局限性推动了具有内部状态存储与推理能力的进阶架构发展。研究表明,不同设计模式适用于不同任务场景。开发者无需从零构建,可直接采用针对特定问题验证过的成熟方案——例如LangGraph文档就提供了多种经过验证的多智能体架构方案。
04
Sense → Model → Plan → Act
感知(Perceive):从环境中接收新的输入信息。
建模(Model):更新内部的世界模型(例如符号状态、语义地图)。
深思(Deliberate):生成可能的计划并模拟/评估它们的结果。
行动(Act):执行最优计划或朝着目标的下一步行动。
这种方式类似于国际象棋AI提前策划几步,而不是逐步反应。
# Pseudocode for a deliberative agent with goal-oriented planninginitialize_state()while True:perceive_environment(state)options = generate_options(state) # possible plans or actionsbest_option = evaluate_options(options) # deliberation: select best plancommit_to_plan(best_option, state) # update intentionsexecute_next_action(best_option)if goal_achieved(state):break
反应层:对感知输入即时响应(如避障行为)
慎思层:基于内部模型进行目标驱动规划(如路径规划)
各层级通常并行运作,在快速反应与长期策略间实现动态平衡。
混合型智能体架构结合了反应式和深思熟虑式系统,以在动态环境中实现速度和智能的兼顾。
反应层:即时响应感知输入(例如,避障)。
深思熟虑层:利用内部模型进行目标驱动的规划(例如,路径规划)。
这些层通常协同运行,甚至同时作用,以在快速反应和长远策略之间取得平衡。
percept = sense_environment()if is_urgent(percept):action = reactive_module(percept)else:update(world_model, percept)action = deliberative_planner(world_model, current_goal)execute(action)
神经网络:擅长模式识别(如图像、语音)
符号系统:精于逻辑推理与可解释性
融合目标:通过神经感知与符号理解的协同,实现兼具智能性与可解释性的决策
神经符号架构主要有两种集成策略:
串行式:神经网络模块处理原始输入(如目标检测),符号模块对解析后的输出进行推理。
并行式:神经模块与符号模块同步工作,由决策模块融合双方输出。
percept = get_sensor_data()nn_insights = neural_module.predict(percept) # Perception (e.g., detect anomaly)sym_facts = symbolic_module.update(percept) # Translate data to logical factssym_conclusions = symbolic_module.infer(sym_facts) # Apply domain knowledgedecision = policy_module.decide(nn_insights, sym_conclusions)execute(decision)
其设计特点包括:
受人类认知机制启发
遵循"感知-思考-行动"循环:
感知环境信息
更新工作记忆
运用产生式规则进行推理决策
通过执行器输出动作
-
旨在打造能够学习、规划、解决问题和适应的智能体,就像人类一样。
SOAR 架构
1980年代为实现通用智能行为而开发
• 工作记忆:存储当前状态信息
• 产生式记忆:保存"条件-动作"规则集
• 采用通用子目标机制——遇阻时自动分解子目标
• 学习机制:运用"组块化"技术——将经验转化为新规则
• 典型应用:AI飞行员、人形机器人、决策智能体
ACT-R 架构
植根于认知心理学理论
• 模块化设计:包含视觉、运动、记忆等专用模块
• 各模块配备独立缓冲区处理临时工作记忆
• 通过产生式规则管理模块间数据流
• 混合架构:符号推理与亚符号机制(如记忆激活)相结合
共同特征
模块化设计(感知/记忆/行动模块)
多记忆系统:
陈述性记忆(事实存储)
程序性记忆(技能/规则)
情景记忆(可选,存储过往事件)
内置学习机制(SOAR的组块化/ACT-R的参数调优)
-
样例实现:
percept = perceive_environment()update_working_memory(percept)action = cognitive_reasoner.decide(working_memory)execute(action)
LangGraph将这些智能体架构归纳为三大类别:
多智能体系统
• 协作网络:实现两个及以上智能体的任务协同
• 监督调度:利用大语言模型进行任务编排与个体调度
• 层级团队:通过嵌套式智能体团队解决问题
规划型智能体
• 计划执行:基础型规划与执行智能体实现
• 无观察推理:将观测存储为变量以减少重复规划
• LLM编译器:流式处理并动态执行规划器生成的任务有向无环图
反思与批判
• 基础反思:触发智能体对输出进行自省与修正
• 反射式改进:通过缺失/冗余细节批判引导后续步骤
• 思维树搜索:基于评分树结构对候选解决方案进行搜索
• 语言智能体树搜索:结合反思与奖励机制驱动蒙特卡洛树搜索
• 自我发现智能体:分析具备能力自认知的智能体架构
-
多智能体网络架构
多智能体监督架构
该架构与网络架构高度相似,其核心区别在于:采用监督型智能体(而非路由机制)来协调各智能体的运作。
分层智能体团队架构
该架构源于一个核心思考:"当单个智能体不足以解决特定任务时,该如何应对?"其解决方案是:监督智能体不再直接协调多个独立智能体,而是统筹由多个智能体组成的协作团队。
计划与执行
在这种架构中,首先智能体(agent)会根据给定的任务依次生成子任务。然后,单任务(专业化的)智能体解决这些子任务,如果子任务完成,结果将被发送回规划智能体(planner agent)。规划智能体会根据结果制定不同的计划。如果任务完成,规划智能体将对用户做出响应。
无观察下的推理
在ReWOO中研究者引入了一种智能体,它将一个多步骤规划器与变量替换相结合,以优化工具的使用。这种方法与计划与执行架构非常相似。然而,与传统模型不同的是,ReWOO架构在每次行动之后没有包含观察步骤。相反,整个计划是预先制定好的,并且保持固定,不受任何后续观察的影响。
规划智能体构建了一个包含子任务的计划来解决任务,而工作智能体只需完成子任务,然后对用户做出响应。
-
LLMCompiler
-
规划器(Planner):流式传输任务的有向无环图(DAG) -
任务获取单元(Task Fetching Unit):在任务可执行时立即调度并执行任务 -
合并器(Joiner):对用户做出响应或触发第二个计划。
点击上方小卡片关注我
添加个人微信,进专属粉丝群!

