Agent 01-初识智能体

系统梳理智能体的核心概念、分类方法与任务环境建模,并给出 6 道习题的完整解析。

智能体(Agent)不是"会算就行"的程序,而是一个能够在环境中感知、决策、行动并持续改进的主体。本文先梳理核心概念,再给出习题的标准化解析,确保内容可阅读、可复盘、可用于后续实战。

1. 智能体基础概念

1.1 四个核心要素

一个完整智能体通常包含以下要素:

  • 传感器(Sensors):获取环境信息。
  • 环境(Environment):智能体所处并交互的外部世界。
  • 执行器(Actuators):对环境施加影响的手段。
  • 行动(Action):基于决策实际执行的动作。

1.2 从简单到复杂的智能体类型

类型 特点 局限
简单反射智能体 只基于当前观测做规则匹配,不保留历史 无法应对需要理解上下文的复杂任务
基于模型的反射智能体 维护内部状态/世界模型,弥补"看不全"的问题 模型可能不准确,需要持续校准
基于目标的智能体 以"达到目标状态"为导向做规划 规划开销大,实时性较差
基于效用的智能体 比较不同结果"好到什么程度",最大化期望效用 效用函数设计困难
学习型智能体 通过反馈不断更新策略 需要大量训练数据和反馈信号

强化学习(Reinforcement Learning, RL)是实现学习型智能体最具代表性的路径之一。一个学习型智能体包含一个性能元件(执行决策)和一个学习元件(通过观察结果不断修正策略)。

1.3 常见分类维度

按反应方式分类

  • 反应式智能体:接收到信息后立即行动,追求速度。
  • 规划式智能体:经过深思熟虑的规划再行动,追求最优解。
  • 混合式智能体:结合规划(Reasoning)与反应(Acting & Observing),在速度与质量之间取得平衡。

按知识表示分类

类型 特点 适用场景
符号主义 AI 基于符号和规则,强调逻辑推理和明确的知识表示 结构化问题
亚符号主义 AI 基于连接主义和分布式表示(如神经网络) 复杂、非结构化数据
神经符号主义 AI 结合符号推理与神经网络的学习能力 需要同时处理逻辑与模式识别

按学习能力分类

  • 固定策略智能体:行为规则预先设定,不会随经验改变。
  • 可学习策略智能体:能够从反馈中学习,持续优化决策。

1.4 系统 1 / 系统 2 与神经符号主义类比

卡尼曼的"双系统理论"为理解 AI 架构提供了很好的类比:

  • 系统 1:快速、直觉、并行、模式识别驱动(更接近亚符号主义方法)。
  • 系统 2:缓慢、审慎、基于逻辑、可解释推理驱动(更接近符号主义方法)。

工程上常见的有效做法是"系统 1 快速筛查 + 系统 2 重点复核",既保证效率,又不失准确性。

2. 智能体任务环境建模:PEAS

PEAS 用于精确定义任务环境,是设计智能体的第一步:

维度 问题 示例(自动驾驶)
P(Performance) 如何评价做得好不好 安全性、到达时间、乘车舒适度
E(Environment) 智能体面对什么世界 道路、其他车辆、行人、交通信号、天气
A(Actuators) 它能做什么动作 加速、刹车、转向、转向灯、鸣笛
S(Sensors) 它能看到什么信号 摄像头、雷达、激光雷达、速度传感器、GPS

如果 PEAS 不清晰,后续算法、工具链和评估标准都会失焦。

3. 习题完整解析


题 1:判断主体是否为智能体及其类型

题目:请分析以下四个 case 中的主体是否属于智能体,如果是,属于哪种类型的智能体(可以从多个分类维度进行分析),并说明理由。

Case A:超级计算机(2 EFlop)

结论通常不直接算智能体本体

理由:一台符合冯·诺依曼结构的超级计算机,无论算力多强,本质上仍是高性能计算平台。它本身不具备自主目标、感知-决策-行动闭环;真正的智能体是其上运行的软件系统。智能体的关键在于"自主性"和"与环境的交互",而非计算能力。

Case B:高速场景下的自动驾驶紧急决策

特斯拉自动驾驶系统在高速公路上行驶时,突然检测到前方有障碍物,需要在毫秒级做出刹车或变道决策。

结论是智能体,核心是反应式,同时具备模型与目标约束。

理由

  • 毫秒级避障强调实时反应,符合反应式智能体特征。
  • 但车道保持、速度控制、障碍物轨迹预测等又依赖内部状态估计(基于模型的反射智能体)。
  • 同时还有导航目的地这一目标约束(基于目标的智能体)。
  • 因此实际是混合式智能体,兼顾实时反应与规划能力。

Case C:AlphaGo 对弈

AlphaGo在与人类棋手对弈时,需要评估当前局面并规划未来数十步的最优策略。

结论是智能体,属于规划式 + 学习型智能体。

理由

  • 通过蒙特卡洛树搜索与价值评估规划后续多步(规划式)。
  • 策略网络和价值网络由大量对弈数据训练而成(学习型)。
  • 通过自我对弈持续改进策略(强化学习)。

Case D:ChatGPT 智能客服

ChatGPT 扮演的智能客服在处理用户投诉时,需要查询订单信息、分析问题原因、提供解决方案并安抚用户情绪。

结论是智能体系统(或可演化为智能体系统),属于混合式。

理由

  • 需要多步工具调用(查订单、检索政策、查询库存)。
  • 需要对话推理能力理解用户意图。
  • 需要根据用户反馈调整策略(如安抚情绪)。
  • 单纯的语言模型不是完整智能体,但结合工具调用后可视为智能体系统。

题 2:智能健身教练的 PEAS 与环境特性

题目:假设你需要为一个"智能健身教练"设计任务环境。这个智能体能够:

  • 通过可穿戴设备监测用户的心率、运动强度等生理数据
  • 根据用户的健身目标(减脂/增肌/提升耐力)动态调整训练计划
  • 在用户运动过程中提供实时语音指导和动作纠正
  • 评估训练效果并给出饮食建议

请使用 PEAS 模型完整描述这个智能体的任务环境,并分析该环境具有哪些特性(如部分可观察、随机性、动态性等)。

PEAS 描述

维度 内容
Performance(性能度量) - 训练目标达成率(减脂/增肌/耐力提升)
- 安全性(异常心率、动作风险触发率)
- 用户依从性(计划完成率、持续打卡率)
- 用户体验(满意度、建议采纳率)
Environment(环境) - 用户身体状态(疲劳度、伤病情况)
- 家庭/健身房场景、可用器械
- 时间段、天气(影响户外运动)
- 饮食与睡眠状况
- 网络与设备状态
Actuators(执行器) - 语音指导输出
- 动作纠正提示推送
- 训练计划调整指令
- 推送提醒
- 饮食建议生成
Sensors(传感器) - 心率带/手表数据
- 动作传感器(如加速度计、陀螺仪)
- 摄像头姿态估计
- 历史训练日志
- 用户主观反馈(如问卷、语音)

环境特性分析

特性 说明 示例
部分可观察 无法直接观测某些关键状态 疲劳、疼痛、真实饮食执行情况难以直接测量
随机性 存在不可预测的扰动 生理状态波动、外部干扰、设备噪声
动态性 环境状态随时间快速变化 运动中心率、速度、体能状态实时变化
连续性 状态变量连续变化 心率、速度、负重等是连续量
多目标约束 需要平衡多个目标 效果、安全、体验之间存在权衡

题 3:Workflow vs Agent 在退款审核中的选择

题目:某电商公司正在考虑两种方案来处理售后退款申请:

方案 A(Workflow):设计一套固定流程,例如:

  • A.1 对于一般商品且在 7 天之内,金额 < 100RMB 自动通过;100-500RMB 由客服审核;>500RMB 需主管审批;而特殊商品(如定制品)一律拒绝退款
  • A.2 对于超过 7 天的商品,无论金额,只能由客服审核或主管审批

方案 B(Agent):搭建一个智能体系统,让它理解退款政策、分析用户历史行为、评估商品状况,并自主决策是否批准退款

请分析:

  1. 这两种方案各自的优缺点是什么?
  2. 在什么情况下 Workflow 更合适?什么情况下 Agent 更有优势?
  3. 如果你是该电商公司的负责人,你更倾向于采用哪种方案?
  4. 是否存在一个方案 C,能够结合两种方案,达到扬长避短的效果?

方案 A(Workflow)

优点 缺点
- 可控、可审计、合规实现简单
- 决策一致性高,成本和响应时间可预测
- 规则透明,易于向用户解释
- 对边界案例不灵活
- 规则维护成本随业务复杂度上升
- 无法处理规则之外的情况

方案 B(Agent)

优点 缺点
- 能处理复杂情境与个体差异
- 可融合更多信号(历史行为、商品状态、风险分)
- 适应性强,新场景下可快速调整
- 决策稳定性与可解释性挑战更大
- 需要监控、回放、评估与人工兜底体系
- 错误决策可能造成批量损失

什么时候选谁

  • Workflow 更合适:规则清晰、合规强约束、低风险高并发场景(如标准化商品的小额退款)
  • Agent 更有优势:案例复杂、需个性化、规则难以穷举场景(如大额、定制商品、VIP 用户)

方案 C:分层混合架构

如果是负责人,推荐采用方案 C(分层混合)

1
2
3
4
5
第 1 层:Workflow 处理高频标准单
         ↓ (路由规则)
第 2 层:高风险或疑难单路由给 Agent 评估
         ↓ (不确定或人工复核阈值)
第 3 层:人工复核最终兜底

这个组合通常比"纯 A"或"纯 B"更稳健:

  • 标准case快速处理,降低成本
  • 复杂case由Agent个性化处理
  • 关键决策有人工兜底,控制风险

题 4:在旅行助手中扩展记忆、备选、反思、知识库

题目:在智能旅行助手的基础上,请思考如何添加以下功能(可以只描述设计思路,也可以进一步尝试代码实现):

提示:思考如何修改 Thought-Action-Observation 循环来实现这些功能。

  1. 添加一个"记忆"功能,让智能体记住用户的偏好(如喜欢历史文化景点、预算范围等)
  2. 当推荐的景点门票已售罄时,智能体能够自动推荐备选方案
  3. 如果用户连续拒绝了 3 个推荐,智能体能够反思并调整推荐策略
  4. 当用户接受推荐的景点时,把景点和相关信息加入智能体的"知识库",以便未来推荐时参考

核心思路

把 Thought-Action-Observation 循环升级为"带状态的闭环":

组件 功能
State(状态) user_preferences:用户偏好
rejection_count:连续拒绝计数
knowledge_base:已接受景点的历史记录
Thought(思考) 融合用户偏好、历史接受记录与当前约束生成候选
Action(行动) 查询库存/票务、输出推荐、必要时切换备选
Observation(观察) 记录接受/拒绝反馈;若连续拒绝达到阈值触发策略反思

代码实现

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
class TravelAgent:
    def __init__(self):
        self.user_preferences = {}      # 用户偏好
        self.rejection_count = 0        # 连续拒绝计数
        self.knowledge_base = []        # 已接受景点的知识库

    def recommend(self, user_input):
        """生成推荐,若售罄则生成备选"""
        rec = self.generate_recommendation(user_input)
        if self.is_sold_out(rec):
            rec = self.generate_alternative(user_input)
        return rec

    def receive_feedback(self, feedback, accepted_item=None):
        """接收用户反馈,更新状态"""
        if feedback == "reject":
            self.rejection_count += 1
            if self.rejection_count >= 3:
                self.reflect_and_adjust()
                self.rejection_count = 0  # 重置计数
        elif feedback == "accept" and accepted_item is not None:
            self.rejection_count = 0
            self.update_knowledge_base(accepted_item)

    def generate_recommendation(self, user_input):
        """结合偏好 + 历史行为生成推荐"""
        # 实现逻辑:根据 user_preferences 和 knowledge_base 生成候选
        raise NotImplementedError

    def is_sold_out(self, recommendation):
        """调用票务接口检查库存"""
        raise NotImplementedError

    def generate_alternative(self, user_input):
        """在约束不变时返回备选方案"""
        # 实现逻辑:寻找与原推荐相似但仍有库存的景点
        raise NotImplementedError

    def reflect_and_adjust(self):
        """分析连续拒绝原因,动态调整推荐权重"""
        # 实现逻辑:分析历史拒绝记录,调整推荐策略
        raise NotImplementedError

    def update_knowledge_base(self, accepted_item):
        """记录"被接受方案"的上下文信息"""
        self.knowledge_base.append({
            "item": accepted_item,
            "timestamp": time.now(),
            # 可以附加更多信息,如用户反馈等
        })

题 5:系统 1 / 系统 2 在医疗诊断助手中的分工

题目:卡尼曼的"系统 1"(快速直觉)和"系统 2"(慢速推理)理论为神经符号主义 AI 提供了很好的类比。请首先构思一个具体的智能体的落地应用场景,然后说明场景中的:

  1. 哪些任务应该由"系统 1"处理?
  2. 哪些任务应该由"系统 2"处理?
  3. 这两个系统如何协同工作以达成最终目标?

提示:医疗诊断助手、法律咨询机器人、金融风控系统等都是常见的应用场景。

场景:门诊分诊与辅助诊断助手

系统 1 负责(快速直觉处理)
任务 说明
症状快速归类 根据主诉快速判断科室分类
高危信号初筛 识别胸痛、呼吸困难等紧急症状
候选疾病粗排 基于症状模式匹配给出候选疾病列表
系统 2 负责(慢速推理处理)
任务 说明
结合病史、检验、指南做因果推理 综合多源信息进行诊断
处理冲突证据 当不同检验结果矛盾时做出判断
输出可解释诊断建议与下一步检查计划 给出明确的诊断依据和建议
协同方式
1
2
3
4
5
6
7
患者输入 → 系统1快速筛查 → 低风险/常见病 → 直接输出建议
                  高风险/不确定
                    系统2深度分析 → 诊断建议 + 检查计划
                    反哺系统1(持续校准筛查规则)

目标是在效率、准确性与可解释性之间取得平衡:

  • 系统 1 保证高召回率(不漏掉高危患者)
  • 系统 2 对关键样本投入更多算力
  • 系统 2 的结论持续反哺系统 1,形成闭环学习

题 6:智能体局限与评估

题目:尽管大语言模型驱动的智能体系统展现出了强大的能力,但它们仍然存在诸多局限。请分析以下问题:

  1. 为什么智能体或智能体系统有时会产生"幻觉"(生成看似合理但实际错误的信息)?
  2. 在智能体案例中,我们设置了最大循环次数为 5 次。如果没有这个限制,智能体可能会陷入什么问题?
  3. 如何评估一个智能体的"智能"程度?仅使用准确率指标是否足够?

为什么会出现"幻觉"

原因 说明
训练数据噪声与知识过时 模型学习到的是训练时的知识,可能已经过时或包含错误
检索增强阶段召回错误证据 RAG 召回了"相似但不正确"的证据(向量相似度 ≠ 语义等价)
工具调用失败或返回不完整信息 外部工具异常时,模型可能"编造"答案来补全
长链路推理中的误差累积 多步推理中,每一步的小误差会被放大
奖励目标与真实业务目标不一致 RLHF 的奖励模型可能鼓励某些表面行为而非真实正确性

为什么要限制最大循环次数

若不限制最大循环次数,可能出现:

风险 说明
死循环或无效反复调用工具 智能体可能在无效路径上反复尝试
Token 与时延成本失控 无限增长导致成本和响应时间不可控
上下文被噪声挤占 过长历史导致关键信息被稀释,决策质量下降
陷入局部最优 缺乏"及时止损"机制,无法跳出无效策略

如何评估智能体"智能程度"

仅看准确率不够,应至少加入以下维度:

维度 指标示例
任务成功率 端到端目标是否完成(如客户问题是否解决)
成本与时延 Token 消耗、调用次数、响应时间
稳定性 多次运行结果一致性
鲁棒性 异常输入与边界条件下的表现
安全与合规 是否输出有害内容、是否越权访问
可解释性与可审计性 能否追溯关键决策依据

4. 小结

智能体工程的关键不在"模型参数更大",而在于:

  1. 任务定义是否清晰(PEAS 是第一步)
  2. 决策结构是否匹配场景(反应式/规划式/混合式各有所长)
  3. 评估与兜底是否完善(准确率之外的多维指标 + 人工兜底)

从工程落地看,混合架构通常是最实用路线:规则保底、智能增益、人工兜底。这既保证了系统的可控性,又能在复杂场景下发挥智能体的优势。

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计