初识智能体Agent定义、类型、运行原理与 5 分钟实战——hello-agents 第一章精读【免费下载链接】hello-agents 《从零开始构建智能体》——从零开始的智能体原理与实践教程项目地址: https://gitcode.com/GitHub_Trending/he/hello-agents导读本文是《从零开始构建智能体》hello-agents第一章的深度精读围绕智能体是什么、有哪些类型、如何运行、怎样快速上手四条主线展开。文中不仅完整还原了智能体的经典定义、传统范式演进与 LLM 新范式对比还基于仓库源码 FirstAgentTest.py 与 FirstAgentTest.ipynb手把手带你在 5 分钟内实现一个由真实大模型驱动的智能旅行助手掌握Thought-Action-Observation循环的完整落地方法。读完本文你将具备从理论认知到代码实现的端到端能力为后续章节的框架开发、记忆检索与上下文工程打下坚实基础。图 1智能体通过感知Perception接收环境信息通过行动Action改变环境状态形成闭环图 1.11.1 什么是智能体1.1.1 经典定义感知、执行与自主性在人工智能领域智能体Agent被定义为任何能够通过传感器Sensors感知其所处环境Environment并自主地通过执行器Actuators采取行动Action以达成特定目标的实体。这个定义蕴含了智能体存在的四个基本要素环境智能体所处的外部世界。对自动驾驶汽车而言环境是动态变化的道路交通对交易算法而言环境则是瞬息万变的金融市场。感知智能体通过传感器持续感知环境状态。摄像头、麦克风、雷达以及各类应用程序编程接口API返回的数据流都是其感知能力的延伸。行动智能体通过执行器改变环境状态。执行器既可以是物理设备如机械臂、方向盘也可以是虚拟工具如执行一段代码、调用一个服务。自主性Autonomy真正赋予智能体智能的核心。智能体并非被动响应外部刺激或严格执行预设指令的程序而是能够基于感知和内部状态进行独立决策以达成设计目标。从感知到行动的闭环构成了所有智能体行为的基础。1.1.2 传统视角五类智能体的演进路线在大语言模型热潮之前人工智能先驱们已对智能体进行了数十年探索形成了一条从简单到复杂、从被动反应到主动学习的清晰演进路线简单反射智能体Simple Reflex Agent决策核心由工程师明确设计的条件-动作规则构成。经典案例是自动恒温器——若传感器感知室温高于设定值则启动制冷。它完全依赖当前感知输入不具备记忆或预测能力像一种数字化的本能可靠高效但无法应对需要理解上下文的复杂任务。基于模型的反射智能体Model-Based Reflex Agent针对环境当前状态不足以作为决策全部依据的问题引入内部**世界模型World Model**来追踪无法直接感知的方面。例如隧道中行驶的自动驾驶汽车即便摄像头暂时看不到前方车辆内部模型依然维持对该车存在、速度和位置的判断。这个内部模型赋予了智能体初级的记忆。基于目标的智能体Goal-Based Agent行为不再被动反应而是主动选择能够导向特定未来状态的行动。经典例子是 GPS 导航——你的目标是到达公司智能体基于地图数据世界模型通过 A* 等搜索算法规划出最优路径。其核心能力是对未来的考量与规划。基于效用的智能体Utility-Based Agent现实目标往往多元且相互冲突最短时间、最省油、避开拥堵。这类智能体为每个可能的世界状态赋予效用值满意度高低核心目标不再是达成某个特定状态而是最大化期望效用学会在冲突目标间权衡决策更接近人类的理性选择。学习型智能体Learning Agent核心思想是不依赖预设通过与环境互动自主学习。它包含性能元件前述各类智能体与学习元件学习元件通过观察性能元件行动的结果不断修正决策策略。**强化学习RL**是实现这一思想最具代表性的路径AlphaGo Zero 通过大量自我对弈在围棋中发现了许多超越人类既有知识的有效策略。从恒温器到拥有内部模型的汽车从能规划路线的导航到懂得权衡利弊的决策者再到能自我进化的学习者——这条演进之路为理解更前沿的智能体范式打下了坚实基础。1.1.3 LLM 驱动的新范式以 GPTGenerative Pre-trained Transformer为代表的大语言模型正在显著改变智能体的构建方法与能力边界。两者的核心区别在于对比维度传统智能体LLM 智能体核心引擎工程师显式编程的规则、模型或效用函数在海量数据上预训练的大语言模型知识来源显式编码与知识构建隐式世界模型与涌现能力交互方式结构化、确定性的接口高层级、模糊、充满上下文信息的自然语言行为模式确定性、有边界灵活、通用能处理复杂任务这种差异使 LLM 智能体可以直接处理规划一次厦门之旅这样的模糊指令其工作方式体现为三点规划与推理将高层级目标分解为逻辑子任务如[确认出行偏好] - [查询目的地信息] - [制定行程草案] - [预订票务住宿]这是模型驱动的内在规划过程。工具使用识别信息缺口后主动调用外部工具补全。例如调用天气查询接口获取实时天气并基于预报有雨在后续规划中倾向于推荐室内活动。动态修正将用户反馈如这家酒店超出预算视为新约束据此调整后续行动。查天气 → 调行程 → 订酒店的完整流程展现了根据上下文动态修正行为的能力。总而言之我们正从开发专用自动化工具转向构建能自主解决问题的系统——核心不再是编写代码而是引导一个通用的大脑去规划、行动和学习。1.1.4 智能体的三种分类维度1基于内部决策架构的分类这一视角在《Artificial Intelligence: A Modern Approach》[1] 中系统性提出。传统智能体的演进路径本身构成了最经典的分类阶梯从简单的反应式智能体到引入内部模型的模型式智能体再到更具前瞻性的基于目标和基于效用的智能体。此外学习能力是一种可赋予上述所有类型的元能力。2基于时间与反应性的分类关注智能体是立即行动还是深思熟虑后行动揭示出设计中追求速度的反应性Reactivity与追求最优解的规划性Deliberation之间的核心权衡。反应式智能体对环境刺激做出近乎即时的响应决策延迟极低通常遵循从感知到行动的直接映射。简单反应式与基于模型的智能体属于此类。其优势是速度快、计算开销低车辆安全气囊必须在碰撞毫秒内反应高频交易机器人依赖反应式决策捕捉稍纵即逝的机会代价是短视——缺乏长远规划容易陷入局部最优。规划式智能体行动前先利用内部世界模型系统探索未来可能性、评估不同行动序列的后果。基于目标和基于效用的智能体是典型代表其决策过程如同棋手预想对手的应对并规划后续棋路。优势在于战略性与远见代价是高昂的时间和计算成本——在瞬息万变的环境中最佳行动时机可能稍纵即逝。混合式智能体现实任务往往既需即时反应也需长远规划。经典混合架构是分层设计底层是快速反应模块处理紧急情况上层是审慎规划模块负责长远目标。现代 LLM 智能体展现出更灵活的混合模式在思考-行动-观察循环中融合两种模式**思考Reasoning**阶段是审议过程**行动与观察Acting Observing**阶段是反应过程从而将宏大任务分解为一系列规划-反应微循环。3基于知识表示的分类这是更根本的维度源于人工智能领域持续半个多世纪的辩论。亚符号主义 AI连接主义知识并非显式规则而是内隐分布在大规模神经网络中的统计模式。神经网络和深度学习是其代表。优势在于模式识别能力强、对噪声数据鲁棒、能轻松处理图像声音等非结构化数据代价是通常被视为黑箱——能识别猫却无法解释为什么且纯逻辑推理能力弱有时产生看似合理却事实错误的幻觉。符号主义 AI传统人工智能智能源于对符号词语、概念等人类可读实体的逻辑操作遵循严格逻辑规则如同图书管理员把世界知识整理为规则库和知识图谱。优势是透明可解释决策过程可完整追溯在金融医疗等高风险领域至关重要阿喀琉斯之踵是脆弱性——依赖完备规则体系任何未覆盖的新情况都可能导致系统失灵即知识获取瓶颈。神经符号主义 AI旨在融合两大范式优点创造既能像神经网络一样从数据中学习、又能像符号系统一样逻辑推理的混合智能体。丹尼尔·卡尼曼在《思考快与慢》[2] 中提出的双系统理论提供了绝佳类比系统 1快速、凭直觉、并行类似亚符号主义的模式识别能力系统 2缓慢、有条理、基于逻辑恰如符号主义的推理过程神经符号主义则将二者结合协同工作。大语言模型驱动的智能体正是神经符号主义的极佳实践其内核是巨大的神经网络提供模式识别与语言生成能力工作过程中又会生成思想、计划、API 调用等一系列结构化中间步骤——这些是明确的、可操作的符号。它将神经网络的模式识别与符号的逻辑推理结合了起来。1.2 智能体的构成与运行原理1.2.1 任务环境PEAS 模型要理解智能体运作必须先理解其任务环境。人工智能领域通常使用PEAS 模型精确描述任务环境即分析四个要素性能度量Performance、环境Environment、执行器Actuators、传感器Sensors。以智能旅行助手为例可以对其任务环境作如下规约示意PEAS 要素智能旅行助手的定义性能度量Performance行程推荐的合理性、对用户偏好的满足度、信息查询的准确性与及时性环境Environment天气数据源、景点/票务/住宿信息源、用户需求本身执行器Actuators调用天气查询工具、景点推荐工具、向用户输出最终答复传感器Sensors用户输入的自然语言指令、各 API 返回的数据流在实践中LLM 智能体所处的数字环境展现出若干直接影响设计的复杂特性部分可观察旅行助手查询航班时无法一次性获取所有航空公司的全部实时座位信息只能看到所调用 API 返回的部分数据因此必须具备记忆记住已查询过的航线和探索尝试不同查询日期能力。确定性 vs 随机性旅行助手的环境是典型的随机环境——两次相邻调用返回的机票价格和余票可能不同要求智能体具备处理不确定性、监控变化并及时决策的能力。多智能体Multi-agent其他用户的预订行为、其他自动化脚本、航司的动态调价系统都是环境中的其他智能体它们的行动会直接改变环境状态。序贯且动态序贯意味着当前动作影响未来动态意味着环境可能在智能体决策时自行变化。这要求感知-思考-行动-观察循环能快速灵活地适应持续变化的世界。1.2.2 核心运行机制Agent Loop智能体并非一次性完成任务而是通过持续循环与环境交互这个核心机制被称为智能体循环Agent Loop。图 2Agent Loop 包含感知、思考规划与工具选择、行动三个阶段并以观察形成闭环图 1.5循环包含以下几个相互关联的阶段感知Perception循环的起点。智能体通过传感器如 API 的监听端口、用户输入接口接收来自环境的输入信息即观察Observation——它既可以是用户的初始指令也可以是上一步行动导致的环境状态变化反馈。思考Thought核心决策阶段。对 LLM 智能体而言这是由大语言模型驱动的内部推理过程可细分为两个关键环节规划Planning基于当前观察和内部记忆更新对任务与环境的理解制定或调整行动计划可能涉及将复杂目标分解为一系列子任务。工具选择Tool Selection从可用工具库中选择最适合执行下一步骤的工具并确定调用所需的具体参数。行动Action通过执行器执行具体行动通常表现为调用选定的工具如代码解释器、搜索引擎 API意图改变环境状态。行动并非循环终点——智能体的行动引起环境状态变化环境随即产生新的观察作为结果反馈在下一轮循环中被感知系统捕获形成持续的感知-思考-行动-观察闭环。智能体正是通过不断重复这一循环逐步推进任务从初始状态向目标状态演进。1.2.3 感知与行动Thought-Action-Observation 交互协议在工程实践中为了让 LLM 有效驱动这个循环需要一套明确的**交互协议Interaction Protocol**规范其与环境之间的信息交换。在许多现代智能体框架中这一协议体现在对智能体每次输出的结构化定义上——输出不再是单一的自然语言回复而是一段遵循特定格式、明确展示内部推理过程与最终决策的文本。它通常包含两个核心部分Thought思考内部决策的快照以自然语言阐述智能体如何分析当前情境、回顾上一步观察结果、进行自我反思与问题分解并最终规划下一步行动。Action行动基于思考决定对环境施加的具体操作通常以函数调用形式表示。例如一个正在规划旅行的智能体可能生成如下格式化输出Thought: 用户想知道北京的天气。我需要调用天气查询工具。 Action: get_weather(北京)这里的Action字段构成对外部世界的指令一个外部的**解析器Parser**会捕捉该指令并调用相应的get_weather函数。行动执行后环境返回结果如包含详细天气数据的 JSON 对象但原始机器可读数据通常包含 LLM 无需关注的冗余信息且格式不符合其自然语言处理习惯。因此感知系统的一个重要职责是扮演传感器的角色将原始输出处理并封装成简洁清晰的自然语言文本即观察Observation: 北京当前天气为晴气温25摄氏度微风。这段Observation文本被反馈给智能体作为下一轮循环的主要输入供其进行新一轮的Thought和Action。通过这个严谨循环LLM 智能体得以将内部语言推理能力与外部环境的真实信息和工具操作能力有效结合。1.3 动手体验5 分钟实现第一个智能体本节将引导你用几行简单 Python 代码从零构建一个可工作的智能旅行助手。待解决问题的用户任务为你好请帮我查询一下今天北京的天气然后根据天气推荐一个合适的旅游景点。要完成该任务智能体必须先调用天气查询工具将获得的观察结果作为下一步依据再调用景点推荐工具得出最终建议。完整可运行代码见仓库 FirstAgentTest.py交互式讲解版见 FirstAgentTest.ipynb。1.3.1 准备工作依赖安装与 API 配置首先安装三个 Python 依赖pip install requests tavily-python openairequestsPython 社区最流行的 HTTP 库用于访问网络 API。tavily-pythonAI 搜索 API 客户端用于获取实时网络搜索结果需注册获取 API Key。openaiOpenAI 官方 Python SDK用于调用 GPT 等大语言模型服务。API 密钥配置运行本案例共需要两类密钥——大语言模型的API_KEY/BASE_URL/MODEL_ID以及 Tavily 的TAVILY_API_KEY。仓库的 环境配置指南 给出了完整说明LLM 服务可选择 AIHubmixBase URL 形如https://aihubmix.com/v1、ModelScope 或 Ollama 等任何兼容 OpenAI 接口规范的服务环境变量可写入项目根目录的.env文件或通过系统环境变量方式注入。Notebook 版本使用python-dotenv的load_dotenv()加载环境变量这是更推荐的生产实践。1指令模板——提示工程驱动真实 LLM 的关键在于提示工程Prompt Engineering。需要设计一个指令模板告诉 LLM 它应扮演什么角色、拥有哪些工具、如何格式化思考与行动。这份说明书将作为system_prompt传递给 LLMAGENT_SYSTEM_PROMPT 你是一个智能旅行助手。你的任务是分析用户的请求并使用可用工具一步步地解决问题。 # 可用工具: - get_weather(city: str): 查询指定城市的实时天气。 - get_attraction(city: str, weather: str): 根据城市和天气搜索推荐的旅游景点。 # 输出格式要求: 你的每次回复必须严格遵循以下格式包含一对Thought和Action Thought: [你的思考过程和下一步计划] Action: [你要执行的具体行动] Action的格式必须是以下之一 1. 调用工具function_name(arg_namearg_value) 2. 结束任务Finish[最终答案] # 重要提示: - 每次只输出一对Thought-Action - Action必须在同一行不要换行 - 当收集到足够信息可以回答用户问题时必须使用 Action: Finish[最终答案] 格式结束 请开始吧 2工具 1查询真实天气使用免费天气查询服务wttr.in它以 JSON 格式返回指定城市的天气数据import requests def get_weather(city: str) - str: 通过调用 wttr.in API 查询真实的天气信息。 # API端点我们请求JSON格式的数据 url fhttps://wttr.in/{city}?formatj1 try: # 发起网络请求 response requests.get(url) # 检查响应状态码是否为200 (成功) response.raise_for_status() # 解析返回的JSON数据 data response.json() # 提取当前天气状况 current_condition data[current_condition][0] weather_desc current_condition[weatherDesc][0][value] temp_c current_condition[temp_C] # 格式化成自然语言返回 return f{city}当前天气{weather_desc}气温{temp_c}摄氏度 except requests.exceptions.RequestException as e: # 处理网络错误 return f错误查询天气时遇到网络问题 - {e} except (KeyError, IndexError) as e: # 处理数据解析错误 return f错误解析天气数据失败可能是城市名称无效 - {e}注意两点工程细节一是通过response.raise_for_status()检查 HTTP 状态码二是分别捕获网络异常RequestException与数据解析异常KeyError/IndexError并将错误以自然语言字符串返回——这样 LLM 才能在下一轮循环中读到并理解失败原因。3工具 2搜索并推荐旅游景点定义新工具get_attraction根据城市和天气状况在互联网上搜索合适景点import os from tavily import TavilyClient def get_attraction(city: str, weather: str) - str: 根据城市和天气使用Tavily Search API搜索并返回优化后的景点推荐。 # 1. 从环境变量中读取API密钥 api_key os.environ.get(TAVILY_API_KEY) if not api_key: return 错误未配置TAVILY_API_KEY环境变量。 # 2. 初始化Tavily客户端 tavily TavilyClient(api_keyapi_key) # 3. 构造一个精确的查询 query f{city} 在{weather}天气下最值得去的旅游景点推荐及理由 try: # 4. 调用APIinclude_answerTrue会返回一个综合性的回答 response tavily.search(queryquery, search_depthbasic, include_answerTrue) # 5. Tavily返回的结果已经非常干净可以直接使用 # response[answer] 是一个基于所有搜索结果的总结性回答 if response.get(answer): return response[answer] # 如果没有综合性回答则格式化原始结果 formatted_results [] for result in response.get(results, []): formatted_results.append(f- {result[title]}: {result[content]}) if not formatted_results: return 抱歉没有找到相关的旅游景点推荐。 return 根据搜索为您找到以下信息\n \n.join(formatted_results) except Exception as e: return f错误执行Tavily搜索时出现问题 - {e}最后将所有工具函数放入一个字典供主循环按名字查找调用# 将所有工具函数放入一个字典方便后续调用 available_tools { get_weather: get_weather, get_attraction: get_attraction, }1.3.2 接入大语言模型当前许多 LLM 服务提供商OpenAI、Azure以及 Ollama、vLLM 等开源模型服务框架都遵循与 OpenAI API 相似的接口规范。智能体的自主决策能力来源于 LLM因此实现一个通用的OpenAICompatibleClient即可连接到任何兼容 OpenAI 接口规范的 LLM 服务from openai import OpenAI class OpenAICompatibleClient: 一个用于调用任何兼容OpenAI接口的LLM服务的客户端。 def __init__(self, model: str, api_key: str, base_url: str): self.model model self.client OpenAI(api_keyapi_key, base_urlbase_url) def generate(self, prompt: str, system_prompt: str) - str: 调用LLM API来生成回应。 print(正在调用大语言模型...) try: messages [ {role: system, content: system_prompt}, {role: user, content: prompt} ] response self.client.chat.completions.create( modelself.model, messagesmessages, streamFalse ) answer response.choices[0].message.content print(大语言模型响应成功。) return answer except Exception as e: print(f调用LLM API时发生错误: {e}) return 错误调用语言模型服务时出错。实例化该类需要提供三个信息API_KEY、BASE_URL和MODEL_ID具体值取决于所用服务商。配置细节可参考仓库的 环境配置。值得注意的是streamFalse与非流式调用、系统消息与用户消息的分层构造这正是标准 Chat Completions 接口的基本形态。1.3.3 执行行动循环把一切串起来下面的主循环将整合所有组件通过格式化 Prompt 驱动 LLM 决策import re # --- 1. 配置LLM客户端 --- # 请根据您使用的服务将这里替换成对应的凭证和地址 API_KEY YOUR_API_KEY BASE_URL YOUR_BASE_URL MODEL_ID YOUR_MODEL_ID os.environ[TAVILY_API_KEY] YOUR_TAVILY_API_KEY llm OpenAICompatibleClient( modelMODEL_ID, api_keyAPI_KEY, base_urlBASE_URL ) # --- 2. 初始化 --- user_prompt 你好请帮我查询一下今天北京的天气然后根据天气推荐一个合适的旅游景点。 prompt_history [f用户请求: {user_prompt}] print(f用户输入: {user_prompt}\n *40) # --- 3. 运行主循环 --- for i in range(5): # 设置最大循环次数 print(f--- 循环 {i1} ---\n) # 3.1. 构建Prompt full_prompt \n.join(prompt_history) # 3.2. 调用LLM进行思考 llm_output llm.generate(full_prompt, system_promptAGENT_SYSTEM_PROMPT) # 模型可能会输出多余的Thought-Action需要截断 match re.search(r(Thought:.*?Action:.*?)(?\n\s*(?:Thought:|Action:|Observation:)|\Z), llm_output, re.DOTALL) if match: truncated match.group(1).strip() if truncated ! llm_output.strip(): llm_output truncated print(已截断多余的 Thought-Action 对) print(f模型输出:\n{llm_output}\n) prompt_history.append(llm_output) # 3.3. 解析并执行行动 action_match re.search(rAction: (.*), llm_output, re.DOTALL) if not action_match: observation 错误: 未能解析到 Action 字段。请确保你的回复严格遵循 Thought: ... Action: ... 的格式。 observation_str fObservation: {observation} print(f{observation_str}\n *40) prompt_history.append(observation_str) continue action_str action_match.group(1).strip() if action_str.startswith(Finish): final_answer re.match(rFinish\[(.*)\], action_str).group(1) print(f任务完成最终答案: {final_answer}) break tool_name re.search(r(\w)\(, action_str).group(1) args_str re.search(r\((.*)\), action_str).group(1) kwargs dict(re.findall(r(\w)([^]*), args_str)) if tool_name in available_tools: observation available_toolstool_name else: observation f错误未定义的工具 {tool_name} # 3.4. 记录观察结果 observation_str fObservation: {observation} print(f{observation_str}\n *40) prompt_history.append(observation_str)这个循环的核心设计值得拆解Prompt 历史累积prompt_history按顺序累积用户请求 → Thought/Action → Observation → …每轮把完整历史拼接成full_prompt再交给 LLM这正是智能体记忆的最小实现——LLM 通过上下文窗口看见此前每一步。输出截断模型可能一次输出多对 Thought-Action用正则re.search(r(Thought:.*?Action:.*?)(?\n\s*(?:Thought:|Action:|Observation:)|\Z), ...)截取第一对保证循环按单步推进。动作解析通过正则分别提取工具名(\w)\(与参数(\w)([^]*)构造 kwargs 后从available_tools字典中查表调用实现从自然语言动作到真实函数调用的解析器Parser角色。终止条件for i in range(5)设定最大循环次数防止模型陷入无限循环解析到Finish[...]时输出最终答案并break。仓库 FirstAgentTest.ipynb 中的实现更进一步将助手封装为TravelAssistant类含add_user_message、add_assistant_message、add_observation等历史管理方法并抽取parse_action解析函数、run_assistant主循环函数支持max_iterations参数与display开关还提供了interactive_travel_assistant交互式命令行与quick_test快速测试函数。从源码结构看这种工具函数 提示模板 循环解析器的组合正是当前主流智能体框架如 LangChain、LlamaIndex的设计精髓——本案例相当于手写了一个最简框架内核。1.3.4 运行案例分析以下输出完整展示了一次成功的智能体执行流程来自 FirstAgentTest.py 的三轮循环用户输入: 你好请帮我查询一下今天北京的天气然后根据天气推荐一个合适的旅游景点。 --- 循环 1 --- 正在调用大语言模型... 大语言模型响应成功。 模型输出: Thought: 首先需要获取北京今天的天气情况之后再根据天气情况来推荐旅游景点。 Action: get_weather(city北京) Observation: 北京当前天气:Sunny气温26摄氏度 --- 循环 2 --- 正在调用大语言模型... 大语言模型响应成功。 模型输出: Thought: 现在已经知道了北京今天的天气是晴朗且温度适中接下来可以基于这个信息来推荐一个适合的旅游景点了。 Action: get_attraction(city北京, weatherSunny) Observation: 北京在晴天最值得去的旅游景点是颐和园因其美丽的湖景和古建筑。另一个推荐是长城因其壮观的景观和历史意义。 --- 循环 3 --- 正在调用大语言模型... 大语言模型响应成功。 模型输出: Thought: 已经获得了两个适合晴天游览的景点建议现在可以根据这些信息给用户提供满意的答复。 Action: Finish[今天北京的天气是晴朗的气温26摄氏度非常适合外出游玩。我推荐您去颐和园欣赏美丽的湖景和古建筑或者前往长城体验其壮观的景观和深厚的历史意义。希望您有一个愉快的旅行] 任务完成最终答案: 今天北京的天气是晴朗的气温26摄氏度非常适合外出游玩。我推荐您去颐和园欣赏美丽的湖景和古建筑或者前往长城体验其壮观的景观和深厚的历史意义。希望您有一个愉快的旅行这个简单案例集中演示了基于Thought-Action-Observation范式的智能体四项基本能力任务分解将查天气推荐景点拆为两步、工具调用自主选择并传参调用get_weather与get_attraction、上下文理解将上一轮的天气观察作为下一轮推荐的依据、结果合成综合两轮观察输出人性化最终答案。正是通过循环的不断迭代智能体才得以将模糊的用户意图转化为具体、可执行的步骤并最终达成目标。值得一提的是FirstAgentTest.ipynb 中记录了实际运行的另一组输出北京冬季实测模型根据气温-1°C的观察不仅推荐了颐和园还主动补充了穿厚外套、带帽子和手套、鞋子防滑防水、优先乘地铁等出行建议并指出若更倾向室内参观故宫等室内空间同样值得一看——这直观展示了 LLM 智能体基于实时信息动态推理的自主性。同一 Notebook 中对广州的测试还展示了一个有价值的失败恢复场景模型在循环 2 重复调用了get_attraction未立即 Finish直到循环 4 才正确输出最终答案说明设置最大循环次数5作为安全阀的必要性。1.4 智能体应用的协作模式在更广泛的应用场景中基于智能体在任务中的角色与自主性程度其协作模式主要分为两类作为深度融入工作流的高效工具或作为与其他智能体协作完成复杂目标的自主协作者。1.4.1 作为开发者工具的智能体此模式下智能体被深度集成到开发者工作流中作为强大的辅助工具——增强而非取代开发者通过自动化繁琐重复的任务让开发者专注于创造性核心工作。目前市场上有多种代表性 AI 编程辅助工具GitHub Copilot由 GitHub 与 OpenAI 联合开发深度集成于 Visual Studio Code 等主流编辑器以强大代码自动补全能力闻名可实时提供整行甚至整个函数块的建议近年通过 Copilot Chat 扩展了对话式编程能力。Claude CodeAnthropic 开发的 AI 编程助手通过自然语言指令在终端中高效完成编码任务能理解完整代码库结构执行代码编辑、测试、调试等操作并支持无交互headless模式适用于 CI、pre-commit hooks、构建脚本等自动化场景。Trae新兴 AI 编程工具通过深度学习分析代码模式提供精准代码建议与自动化重构方案特色是轻量级设计与快速响应适合频繁迭代和快速原型开发。CursorAI 原生代码编辑器在设计之初就将 AI 交互作为核心而非在现有编辑器上叠加 AI 功能强调让 AI 理解整个代码库上下文实现更深层次的问答、重构和调试。它们共同指向一个明确趋势AI 正在深度融入软件开发全生命周期通过高效人机协同工作流重塑软件工程的效率边界。1.4.2 作为自主协作者的智能体第二种交互模式将自动化程度提升到全新层次我们不再逐步指导 AI而是将一个高层级目标委托给它。智能体像真正的项目成员一样独立规划、推理、执行和反思直到交付成果。这标志着我们与 AI 的关系从命令-执行演变为目标-委托。当前实现自主协作的架构范式可归纳为几个主流方向单智能体自主循环早期典型范式如 AgentGPT 所代表的模式。核心是一个通用智能体通过思考-规划-执行-反思闭环不断自我提示与迭代完成开放式高层级目标。多智能体协作当前最主流的探索方向通过模拟人类团队协作解决复杂问题。可细分为角色扮演式对话如 CAMEL为两个智能体设定程序员产品经理等角色与沟通协议在结构化对话中协同任务组织化工作流如 MetaGPT、CrewAI模拟分工明确的虚拟团队每个智能体有预设职责与工作流程 SOP以层级化或顺序化方式产出完整代码库或研究报告等高质量成果AutoGen 与 AgentScope 则提供更灵活的自定义对话模式。高级控制流架构如 LangGraph将智能体执行过程建模为状态图State Graph能更灵活可靠地实现循环、分支、回溯以及人工介入等复杂流程。这些不同架构范式共同推动自主智能体从理论构想走向更广泛的实际应用。本仓库后续章节如框架开发实践、低代码平台搭建、多智能体协作等将逐一体验不同类型框架的差异与优势。1.4.3 Workflow 与 Agent 的差异理解工具与协作者两种模式后有必要辨析 Workflow 与 AgentWorkflow 是让 AI 按部就班地执行指令而 Agent 则是赋予 AI 自由度去自主达成目标。图 3Workflow 是预定义的静态流程图Agent 是自主的目标导向系统图 1.6Workflow工作流是传统自动化范式核心是对一系列任务或步骤进行预先定义的、结构化的编排——本质上是一个精确、静态的流程图规定了在何种条件下、以何种顺序执行哪些操作。典型案例是企业费用报销审批流程员工提交报销单触发→ 金额小于 500 元由部门经理直接审批 → 金额大于 500 元先经部门经理再流转至财务总监审批 → 审批通过后通知财务部打款。每一步、每个判断条件都被精确预设。Agent智能体是基于大语言模型的自主、目标导向系统不仅能执行预设指令还能理解环境、推理、制定计划并动态采取行动。LLM 在其中扮演大脑角色。以 1.3 节的智能旅行助手为例当收到查询北京天气并推荐景点指令时规划与工具调用将任务拆解为① 查询天气② 基于天气推荐景点自主选择并调用天气查询 API传入北京参数。推理与决策假设 API 返回晴朗微风LLM 大脑推理晴天适合户外活动再从知识库或通过搜索引擎筛选故宫、颐和园、天坛公园等户外景点。生成结果综合信息给出完整人性化回答如今天北京天气晴朗微风非常适合户外游玩。为您推荐前往【颐和园】……。在这个过程中没有任何写死的if 天气晴天 then 推荐颐和园规则——如果天气是雨天Agent 会自主推理并推荐国家博物馆、首都博物馆等室内场所。这种基于实时信息进行动态推理和决策的能力正是 Agent 的核心价值所在。1.5 本章小结本章共同踏上了探索智能体的初识之旅什么是大语言模型驱动的智能体明确了定义——现代智能体是具备能力的实体不再是执行预设程序的脚本而是能自主推理和使用工具的决策者。智能体如何工作深入探讨了智能体与环境交互的运行机制——持续闭环是智能体处理信息、做出决策、影响环境并根据反馈调整行为的基础。如何构建智能体以智能旅行助手为例亲手构建了一个完整的、由真实 LLM 驱动的智能体。智能体有哪些主流的应用范式探讨了两种主流交互模式——以 GitHub Copilot 和 Cursor 等为代表的开发者工具以及以 CrewAI、MetaGPT、AgentScope 等框架为代表的自主协作者并讲解了 Workflow 与 Agent 的差异。习题提示以下部分习题没有标准答案重点在于培养对智能体系统批判性的深入思考和动手实践能力。请分析以下四个case中的主体是否属于智能体。如果是属于哪种类型的智能体可从多个分类维度分析并说明理由case A一台符合冯·诺依曼结构的超级计算机拥有高达每秒 2 EFlop 的峰值算力case B特斯拉自动驾驶系统在高速公路上行驶时突然检测到前方有障碍物需要在毫秒级做出刹车或变道决策case CAlphaGo 在与人类棋手对弈时需要评估当前局面并规划未来数十步的最优策略case DChatGPT 扮演的智能客服在处理用户投诉时需要查询订单信息、分析问题原因、提供解决方案并安抚用户情绪假设你需要为一个智能健身教练设计任务环境。这个智能体能够通过可穿戴设备监测用户的心率、运动强度等生理数据根据用户的健身目标减脂/增肌/提升耐力动态调整训练计划在用户运动过程中提供实时语音指导和动作纠正评估训练效果并给出饮食建议。请使用 PEAS 模型完整描述这个智能体的任务环境并分析该环境具有哪些特性如部分可观察、随机性、动态性等。某电商公司正在考虑两种方案处理售后退款申请方案 AWorkflow设计固定流程例如一般商品 7 天内金额 100 RMB自动通过、100-500 RMB由客服审核、 500 RMB需主管审批、特殊商品如定制品一律拒绝超过 7 天的商品无论金额只能由客服审核或主管审批。方案 BAgent搭建智能体系统让它理解退款政策、分析用户历史行为、评估商品状况并自主决策是否批准退款。请分析两种方案各自的优缺点什么情况下Workflow更合适、什么情况下Agent更有优势是否存在方案 C 能结合两者扬长避短在 1.3 节的智能旅行助手基础上思考如何添加以下功能可只描述设计思路也可尝试代码实现添加记忆功能让智能体记住用户偏好如喜欢历史文化景点、预算范围等当推荐的景点门票已售罄时智能体能自动推荐备选方案如果用户连续拒绝 3 个推荐智能体能够反思并调整推荐策略提示思考如何修改Thought-Action-Observation循环来实现这些功能。卡尼曼的系统 1快速直觉和系统 2慢速推理理论为神经符号主义 AI 提供了很好的类比。请构思一个具体的智能体落地应用场景如医疗诊断助手、法律咨询机器人、金融风控系统并说明哪些任务应由系统 1处理哪些任务应由系统 2处理两个系统如何协同工作以达成最终目标尽管大语言模型驱动的智能体系统展现强大能力但仍存在诸多局限。请分析为什么智能体系统有时会产生幻觉生成看似合理但实际错误的信息在 1.3 节的案例中设置了最大循环次数为 5没有这个限制智能体可能陷入什么问题如何评估一个智能体的智能程度仅使用准确率指标是否足够参考文献[1] RUSSELL S, NORVIG P. Artificial Intelligence: A Modern Approach[M]. 4th ed. London: Pearson, 2020.[2] KAHNEMAN D. Thinking, Fast and Slow[M]. New York: Farrar, Straus and Giroux, 2011.【免费下载链接】hello-agents 《从零开始构建智能体》——从零开始的智能体原理与实践教程项目地址: https://gitcode.com/GitHub_Trending/he/hello-agents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考