欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 资讯 > Agent的6中设计模式

Agent的6中设计模式

2025/7/3 22:56:28 来源:https://blog.csdn.net/u010778229/article/details/147067110  浏览:    关键词:Agent的6中设计模式

智能体的设计模式

目录

  • 1. 反射式智能体 (Reflex Agent)
  • 2. 基于目标的智能体 (Goal-Based Agent)
  • 3. 基于效用的智能体 (Utility-Based Agent)
  • 4. 多智能体系统 (Multi-Agent System)
  • 5. 自主学习智能体 (Learning Agent)
  • 6. 混合智能体架构 (Hybrid Architecture)
  • 总结

1. 反射式智能体 (Reflex Agent)

概念

基于当前感知和预定规则直接做出反应,不考虑历史状态或未来后果。

流程图

感知环境
查询规则库
匹配触发条件
执行对应动作

特点

  • 简单高效
  • 无需内部状态
  • 对环境变化响应快
  • 适合确定性环境

示例

def reflex_agent(perception):if "红灯" in perception:return "停止"elif "绿灯" in perception:return "前进"elif "障碍物" in perception:return "避开"else:return "继续前进"

2. 基于目标的智能体 (Goal-Based Agent)

概念

维护明确的目标,根据目标规划行动路径,评估每一步是否接近目标。

流程图

感知环境
更新内部状态
确定当前目标
规划达成目标的路径
选择最优下一步
执行动作

特点

  • 有明确的目标导向
  • 需要规划能力
  • 能处理多步骤任务
  • 可动态调整计划

示例

from langchain.agents import AgentExecutor, create_react_agent
from langchain.tools import BaseTool# 定义目标
goal = "找到从北京到上海的最便宜机票"# 创建工具
tools = [SearchTool(),ComparePricesTool(),BookTicketTool()
]# 创建基于目标的智能体
agent = create_react_agent(llm, tools, goal_prompt_template)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)# 执行目标
result = agent_executor.invoke({"goal": goal})

3. 基于效用的智能体 (Utility-Based Agent)

概念

通过效用函数评估每个可能状态的"价值",选择能最大化效用的行动。

流程图

感知环境
更新内部状态
预测可能的行动结果
计算每个结果的效用值
选择最大效用的行动
执行动作

特点

  • 可处理多目标和目标冲突
  • 能权衡风险与收益
  • 适合不确定环境
  • 决策更加灵活

示例

def utility_based_agent(state, possible_actions):max_utility = float('-inf')best_action = Nonefor action in possible_actions:# 预测执行action后的结果状态next_state = predict_next_state(state, action)# 计算该状态的效用值utility = calculate_utility(next_state)if utility > max_utility:max_utility = utilitybest_action = actionreturn best_actiondef calculate_utility(state):# 综合考虑多个因素safety = state['safety_score'] * 0.5efficiency = state['efficiency_score'] * 0.3cost = state['cost_score'] * 0.2return safety + efficiency - cost

4. 多智能体系统 (Multi-Agent System)

概念

多个智能体协同工作,各司其职并通过通信协作解决复杂任务。

流程图

任务分解
分配子任务给专用智能体
智能体并行工作
结果协调与整合
冲突解决
生成统一输出

特点

  • 分工协作
  • 可扩展性强
  • 鲁棒性高
  • 支持并行处理

示例

# 创建专门的智能体
research_agent = create_agent(llm, research_tools, "研究专家")
writing_agent = create_agent(llm, writing_tools, "写作专家")
critique_agent = create_agent(llm, critique_tools, "评审专家")# 创建代理人控制器
class AgentController:def __init__(self, agents):self.agents = agentsself.messages = []def run_task(self, task):# 分解任务subtasks = self.decompose_task(task)# 分配并执行子任务results = {}for subtask in subtasks:agent = self.select_agent(subtask)results[subtask] = agent.run(subtask)# 整合结果final_result = self.integrate_results(results)return final_result

5. 自主学习智能体 (Learning Agent)

概念

能够从经验中学习并改进自身性能的智能体,通过反馈调整决策策略。

流程图

感知环境
执行动作
观察结果与反馈
更新内部模型
改进决策策略

特点

  • 持续自我改进
  • 适应性强
  • 可处理未知环境
  • 长期性能提升

示例

import numpy as np
from sklearn.linear_model import LinearRegressionclass LearningAgent:def __init__(self):self.model = LinearRegression()self.experiences = []def act(self, state):if np.random.random() < self.exploration_rate:# 探索: 随机尝试return np.random.choice(self.possible_actions)else:# 利用: 使用学到的模型predicted_rewards = [self.predict_reward(state, a) for a in self.possible_actions]return self.possible_actions[np.argmax(predicted_rewards)]def learn(self, state, action, reward, next_state):# 记录经验self.experiences.append((state, action, reward, next_state))# 定期用积累的经验训练模型if len(self.experiences) % 100 == 0:self.train_model()def train_model(self):X = []  # 状态-动作特征y = []  # 对应的奖励for state, action, reward, _ in self.experiences:X.append(self.feature_vector(state, action))y.append(reward)self.model.fit(X, y)# 随着学习进行,减少探索率self.exploration_rate *= 0.95

6. 混合智能体架构 (Hybrid Architecture)

概念

结合多种设计模式的优点,分层处理不同复杂度的任务,实现既高效又灵活的系统。

流程图

简单反射任务
需要规划的任务
需要学习的任务
输入任务
任务分类器
反射层
规划层
学习层
动作执行器
执行结果

特点

  • 分层处理不同复杂度任务
  • 结合多种设计模式优点
  • 灵活性与效率平衡
  • 适应复杂多变环境

示例

class HybridAgent:def __init__(self):self.reflex_module = ReflexAgent()self.planning_module = GoalBasedAgent()self.learning_module = LearningAgent()def process_task(self, task, environment):# 任务分类if self.is_simple_task(task):# 简单任务用反射式处理return self.reflex_module.act(environment)elif self.needs_planning(task):# 复杂任务需要规划return self.planning_module.plan_and_act(task, environment)elif self.can_learn_from(task):# 新型任务交给学习模块action = self.learning_module.act(environment)# 执行后学习result = self.execute(action)self.learning_module.learn(environment, action, result)return resultelse:# 兜底方案return self.default_behavior(task, environment)

总结

下表总结了各种智能体设计模式的特点和适用场景:

智能体模式核心特点适用场景优势局限性
反射式智能体基于规则直接反应简单、确定性环境高效、低延迟无法处理复杂场景
基于目标智能体规划达成明确目标结构化任务有方向性、可处理多步骤需要明确目标定义
基于效用智能体最大化效用函数多目标或不确定环境灵活、可权衡效用函数设计复杂
多智能体系统协作分工解决问题复杂大型任务可扩展、鲁棒性强协调开销大
自主学习智能体从经验中持续改进动态变化环境适应性强、持续进步初期表现可能较差
混合智能体架构多种模式结合使用复杂多变环境兼具灵活性和效率实现复杂度高

选择合适的智能体设计模式需根据任务复杂度、环境特性、实时性要求和可用资源等因素综合考虑。在实际应用中,这些模式常常被组合使用,以发挥各自优势。随着人工智能技术的发展,智能体设计模式也在不断演进,以应对更加复杂多变的应用场景。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词