Day01 | 什么是Agent?

一、 核心定义与四大组件

1. Agent 的本质公式

Agent 是一个能够自主完成任务的系统,其核心逻辑可以归纳为:

Agent = 大模型 (大脑) + 工具 (双手) + 执行循环 (思考-行动-观察-再思考)

2. 四大核心组件(缺一不可)

Agent 的运作依赖于以下四个组件的紧密协作:

组件 角色 核心功能与细节
大模型 (LLM) 大脑 推理中心:负责理解用户意图、分析当前状态、决定下一步动作。所有的"思考"(如判断该查什么、如何解读结果)都在这里发生。
工具 (Tools) 双手 执行接口:提供与外部世界交互的能力。如搜索、数据库读写、API 调用等。大模型不直接操作,而是通过生成指令调用工具,工具结果返回给大模型。
记忆 (Memory) 记事本 上下文管理 :• 短期记忆 :存储当前会话的对话历史和工具调用结果(Context Window),确保多步骤任务的连贯性。• 长期记忆:通过外部数据库存储跨会话信息,需要时检索注入。
执行循环 (Loop) 节拍器 驱动引擎:不断重复"思考→行动→观察→再思考"的过程。这是 Agent 与普通大模型一次性问答(One-shot)最根本的区别。

二、 Agent 的两种主流工作范式

ReActPlan and Execute

1. ReAct 模式(边想边做)

这是目前最主流的范式,全称 Reasoning + Acting。

  • 工作流

    1. Think(思考) :基于当前上下文,决定下一步动作。
    2. Act(行动) :调用工具。
    3. Observe(观察) :获取结果。
    4. Loop:将结果纳入上下文,回到思考阶段。
  • 关键机制

    • 结果回流:每一步的结果都追加到 Context Window,让大模型"记得"历史。
    • 动态决策:路径不固定。例如:发现是慢查询就查日志,发现是网络问题就查网络工具。
  • 适用场景:步骤较少(3步以内)、目标模糊、需要随机应变的任务。

  • 局限性(长任务困境)

    • 迷路:步骤过多时,上下文过长,大模型容易忘记最终目标。
    • 绕路:缺乏全局规划,像走迷宫一样可能走回头路。
    • 成本高:每轮循环都携带全部历史,Token 消耗随步骤线性增长。

2. Plan and Execute 模式(先规划,后执行)

为了解决 ReAct 的长任务痛点而生。

  • 核心逻辑

    1. 第一阶段:Planner(规划) 。大模型拿到任务,不调用工具,而是先生成一份完整的子任务清单。
    2. 第二阶段:Executor(执行) 。按清单一步步执行。每个步骤可以是简单调用,也可以是一个小的 ReAct 循环。
    3. 机制:Re-planning(重新规划) 。如果执行中遇到意外(如计划查慢查询,结果发现是锁等待),Executor 可反馈给 Planner 重新生成后续计划。
  • 类比

    • ReAct = 边开车边看导航(走到路口才决定拐哪)。
    • Plan and Execute = 出发前规划好全程路线(哪里转弯、预计几点到都定好)。
  • 适用场景:步骤多(5步以上)、目标明确、需要全局把控的复杂任务。

3. 范式对比与选型决策表

维度 ReAct Plan and Execute
决策时机 实时决策(走一步看一步) 事前决策(全局规划)
全局视野 弱(仅关注当前步) 强(提前看到全貌)
灵活性 高(随时调整路径) 较低(依赖计划调整)
Token 消耗 随步数增加,后期昂贵 规划阶段集中消耗,执行阶段可控
最佳实践 外层用 Plan and Execute 做框架,内层子任务用 ReAct 做执行

三、 Agent vs. Workflow(工作流)

这是初学者最容易混淆的概念,核心区别在于控制权

  • Workflow(工作流)

    • 控制者开发者(代码)
    • 逻辑:硬编码。先做 A,再做 B,如果 B 结果是 X 走 C,否则走 D。
    • 特点:路径固定,可预测性强,成本低。
    • 适用:步骤明确、重复性高的标准化流程。
  • Agent(智能体)

    • 控制者大模型(实时推理)
    • 逻辑:动态生成。给目标,模型自己决定怎么走。
    • 特点:路径动态,每次运行可能不同。
    • 适用:开放域任务、情况多变、需要自主判断的场景。

架构建议 :两者不是互斥关系。最稳健的生产架构通常是 "Workflow 做骨架,Agent 做血肉" 。即用 Workflow 控制主流程,只在需要复杂决策的环节插入 Agent。


四、 Agent 开发的四大挑战与应对

  1. 幻觉传导

    • 问题:第一步推理出现幻觉(错误判断),后续所有步骤都基于这个错误假设,导致结论完全跑偏。
    • 应对 :对工具返回结果进行验证;对高风险操作(如删除数据、发通知)增加人工确认环节。
  2. 工具调用失败

    • 问题:网络超时、权限不足、返回格式异常等,可能导致 Agent 卡死。
    • 应对:工具需定义明确的错误返回格式;在 System Prompt 中预设"如果工具报错,应该如何处理"的逻辑。
  3. 成本与速度

    • 问题:每一轮循环都是一次 LLM 调用,Token 消耗和延迟随步骤叠加。
    • 应对 :严格设置最大循环轮数;能用 Workflow 解决的绝不强行用 Agent。
  4. 循环风险

    • 问题:陷入死循环(例如:查 A 需要查 B,查完 B 又觉得需要查 A)。
    • 应对:强制结束机制;让模型在每一步推理时自我审视:"当前信息是否已足够得出结论?还有没有必要继续?"

五、 Agent 的极简代码逻辑(伪代码)

Agent 的核心骨架其实非常简单,本质上就是一个 While True 循环:

python 复制代码
def run_agent(user_input):
    # 1. 初始化消息列表(包含System Prompt和用户输入)
    messages = [system_prompt, user_input]
    
    while True:
        # 2. 调用大模型,让它思考下一步
        response = llm.chat(messages)
        
        # 3. 判断是否为最终答案
        if response.is_final_answer:
            return response.content  # 任务完成,退出循环
            
        # 4. 执行工具
        tool_result = execute_tool(response.tool_name, response.arguments)
        
        # 5. 将工具结果追加到消息列表(实现记忆/结果回流)
        messages.append({"role": "tool", "content": tool_result})
        
        # 6. 继续循环,让模型基于新结果再思考

总结:Agent 的核心在于利用大模型的推理能力,在"思考"与"行动"之间形成闭环,从而将 AI 从"聊天机器人"升级为"能够自主完成复杂任务的数字员工"。

相关推荐
吴声子夜歌1 小时前
Java面试——Flink原理及应用(二)
java·面试·flink
小江的记录本1 小时前
【ORM 框架】MyBatis-Plus 核心特性、条件构造器、分页插件、乐观锁插件(附《思维导图》、《问题排查与实践清单》和《面试高频考点汇总》)
java·windows·spring boot·python·spring·面试·mybatis
_明月2 小时前
汇川技术股份有限公司面试--Java外包岗
java·面试·职场和发展
水管在开花.2 小时前
RAG:知识库问答系统教学②-零基础保姆级教程
人工智能·面试·agent·rag
LccKyI2 小时前
C#基础编程 面试题汇总(二)
java·面试·c#
黄敬峰3 小时前
从零搭建 Next.js 单词管理系统:Supabase + Drizzle ORM + shadcn/ui 全栈实战
javascript·面试
吴声子夜歌14 小时前
Java面试——HBase原理及应用
java·面试·hbase
吴声子夜歌14 小时前
Java面试——ElasticSearch原理及应用
java·面试·es
吴声子夜歌14 小时前
Java面试——Spring原理及应用(一)
java·spring·面试
liangshanbo121515 小时前
Nginx 进程管理命令深度面试题解析
java·nginx·面试