在上篇中,我们亲手编写代码实现了一个基于 LLM 的智能旅行助手。本篇将通过分析该助手的实际运行日志,来验证其内部逻辑,并进一步探讨智能体在现实应用中的两种核心协作模式及与传统工作流(Workflow)的本质区别。
1.3.4 运行案例分析
以下输出完整地展示了一个成功的智能体执行流程。通过对这个三轮循环的分析,我们可以清晰地看到智能体解决问题的核心能力 。
循环 1:初始规划与获取信息
- 用户输入:"你好,请帮我查询一下今天北京的天气,然后根据天气推荐一个合适的旅游景点。"
- 模型输出 (Thought):首先需要获取北京今天的天气情况,之后再根据天气情况来推荐旅游景点。
- 模型行动 (Action) :
get_weather(city="北京") - 环境反馈 (Observation):北京当前天气: Sunny, 气温 26 摄氏度 。
循环 2:动态调整与上下文关联
-
模型输出 (Thought):现在已经知道了北京今天的天气是晴朗且温度适中,接下来可以基于这个信息来推荐一个适合的旅游景点。
-
模型行动 (Action) :
get_attraction(city="北京", weather="Sunny")- 注意:智能体自主将上一轮获得的"Sunny"作为参数填入。
-
环境反馈 (Observation):北京在晴天最值得去的旅游景点是颐和园... 另一个推荐是长城... 。
循环 3:结果合成与任务终结
- 模型输出 (Thought):已经获得了两个适合晴天游览的景点建议,现在可以根据这些信息给用户提供满意的答复。
- 模型行动 (Action) :
finish(answer="今天北京的天气是晴朗的... 我推荐您去颐和园... 或者前往长城...")。
💡 深度解析:四大基本能力
这个简单的案例集中演示了基于
Thought-Action-Observation范式的智能体所具备的四项基本能力 :
- 任务分解:将"查天气+推景点"拆解为两步。
- 工具调用 :准确选择
get_weather和get_attraction。- 上下文理解:利用第一步的天气结果驱动第二步的搜索。
- 结果合成:将所有零散信息整合成一段流畅的自然语言回复。
1.4 智能体应用的协作模式
在更广泛的应用场景中,基于智能体在任务中的角色和自主性程度,其协作模式主要分为两种:一种是作为高效工具,深度融入工作流;另一种则是作为自主的协作者,与其他智能体协作完成复杂目标 。
1.4.1 作为开发者工具的智能体
在这种模式下,智能体作为一种强大的辅助工具,增强而非取代开发者的角色。
-
GitHub Copilot:深度集成于编辑器,提供实时代码补全;通过 Copilot Chat 支持对话式编程 。
-
Claude Code:由 Anthropic 开发,旨在帮助开发者在终端中高效完成编码任务,支持无交互 (headless) 模式,适用于自动化场景 。
-
Trae:新兴工具,专注于提供智能化的代码生成和优化,特色在于轻量级设计和快速响应 。
-
Cursor:AI 原生的代码编辑器。不仅仅是插件,而是让 AI 理解整个代码库的上下文,实现深层次的问答、重构和调试 。
1.4.2 作为自主协作者的智能体
第二种模式将智能体的自动化程度提升到了一个全新的层次------自主协作者。我们不再手把手指导 AI,而是将一个高层级目标委托给它("目标-委托"模式)。
当前主流的架构范式包括 :
- 单智能体自主循环:
- 代表:AgentGPT。
- 机制:通过"思考-规划-执行-反思"闭环,不断自我提示和迭代。
- 多智能体协作 (Multi-agent):
- 角色扮演式对话 :如 CAMEL 框架,两个智能体(如"程序员"和"产品经理")在结构化对话中协作。
- 组织化工作流 :如 MetaGPT 和 CrewAI,模拟"虚拟团队",每个智能体有预设职责(SOP)。
- 灵活对话 :如 AutoGen 和 AgentScope,允许自定义复杂的交互网络。
- 高级控制流架构:
- 代表 :LangGraph。
- 机制:将执行过程建模为状态图 (State Graph),支持循环、分支、回溯及人工介入。
1.4.3 Workflow 和 Agent 的差异
尽管都旨在实现任务自动化,但 Workflow(工作流)和 Agent(智能体)的底层逻辑截然不同。简单来说,Workflow 是让 AI 按部就班地执行指令,而 Agent 则是赋予 AI 自由度去自主达成目标 。
核心对比图示
Agent: 自主的目标导向系统
Input
LLM Brain
Tools
Memory
Output
Workflow: 传统的自动化
Yes
No
Input
Step 1
条件判断
Step 2
Output
场景对比:费用报销 vs. 智能旅行
- Workflow (费用报销) :
- 这是一个精确的、静态的流程图。
- 规则:若金额 < 500 -> 经理批;若 > 500 -> 经理+财务批。
- 特点:每一步和判断条件都被精确预设。
- Agent (智能旅行助手) :
- 任务:"查天气并推荐景点"。
- 自主性 :没有写死的
if 天气=晴 then 推荐颐和园。 - 动态决策:如果是雨天,Agent 会自主推理并推荐博物馆。这种基于实时信息进行动态推理的能力,是 Agent 的核心价值。
1.4 本章小结
在本章中,我们共同踏上了探索智能体的初识之旅 :
- 定义:明确了智能体是具备感知、思考、行动能力的实体。
- 机制:深入探讨了"感知-思考-行动-观察"的闭环。
- 构建:亲手构建了一个由真实 LLM 驱动的智能旅行助手。
- 应用:探讨了"工具"与"协作者"两种模式,并辨析了 Workflow 与 Agent 的差异。
课后思考题
以下的部分习题没有标准答案,重点在于培养学习者对智能体系统批判性的深入思考和动手实践能力
- 请分析以下四个 case 中的主体是否属于智能体,如果是,那么属于哪种类型的智能体(可以从多个分类维度进行分析),并说明理由:
- case A :一台符合冯·诺依曼结构的超级计算机,拥有高达每秒 2EFlop 的峰值算力
- case B :特斯拉自动驾驶系统在高速公路上行驶时,突然检测到前方有障碍* 物,需要在毫秒级做出刹车或变
道决策 - case C :AlphaGo在与人类棋手对弈时,需要评估当前局面并规划未来数十步的最优策略
- case D :ChatGPT 扮演的智能客服在处理用户投诉时,需要查询订单信息、分析问题原因、提供解决方案并
安抚用户情绪
-
假设你需要为一个"智能健身教练"设计任务环境。这个智能体能够:
通过可穿戴设备监测用户的心率、运动强度等生理数据根据用户的健身目标(减脂/增肌/提升耐力)动态调整训练计划在用户运动过程中提供实时语音指导和动作纠正评估训练效果并给出饮食建议
请使用 PEAS 模型完整描述这个智能体的任务环境,并分析该环境具有哪些特性(如部分可观察、随机性、动态性等)。
-
某电商公司正在考虑两种方案来处理售后退款申请:
方案 A( Workflow ):设计一套固定流程,例如:
A.1 对于一般商品且在 7 天之内,金额 < 100RMB 自动通过; 100-500RMB 由客服审核; >500RMB 需主管审批;而特殊商品(如定制品)一律拒绝退款
A.2 对于超过 7 天的商品,无论金额,只能由客服审核或主管审批;
方案 B( Agent ):搭建一个智能体系统,让它理解退款政策、分析用户历史行为、评估商品状况,并自主决策是否批准退款
请分析:
这两种方案各自的优缺点是什么?
在什么情况下 Workflow 更合适?什么情况下 Agent 更有优势?如果你是该电商公司的负责人,你更倾向于采用哪种方案?
是否存在一个方案 C,能够结合两种方案,达到扬长避短的效果?
-
在 1.3 节的智能旅行助手基础上,请思考如何添加以下功能(可以只描述设计思路,也可以进一步尝试代码实现):
提示:思考如何修改 Thought-Action-Observation 循环来实现这些功能。
添加一个"记忆"功能,让智能体记住用户的偏好(如喜欢历史文化景点、预算范围等)
当推荐的景点门票已售罄时,智能体能够自动推荐备选方案
如果用户连续拒绝了 3 个推荐,智能体能够反思并调整推荐策略
-
卡尼曼的"系统 1"(快速直觉)和"系统 2"(慢速推理)理论[2]为神经符号主义 AI 提供了很好的类比。请首先构思一个具体的智能体的落地应用场景,然后说明场景中的:
提示:医疗诊断助手、法律咨询机器人、金融风控系统等都是常见的应用场景
哪些任务应该由"系统 1"处理?
哪些任务应该由"系统 2"处理?
这两个系统如何协同工作以达成最终目标?
-
尽管大语言模型驱动的智能体系统展现出了强大的能力,但它们仍然存在诸多局限。请分析以下问题:
为什么智能体或智能体系统有时会产生"幻觉"(生成看似合理但实际错误的信息)?
在 1.3 节的案例中,我们设置了最大循环次数为 5 次。如果没有这个限制,智能体可能会陷入什么问题?
如何评估一个智能体的"智能"程度?仅使用准确率指标是否足够?**