Skip to content

01 · 什么是 Agent? ​

🎯 难度:入门⏱ 预计:30 分钟# Agent# ReAct# Workflow

普通聊天:用户问题 → 模型文本。

Agent:用户目标 → 模型决定下一步 → 程序执行工具 → 模型看到结果 → 决定继续或结束。

用一张动态图理解 ​

💬用户提问
🧠LLM 思考
🛠调用工具
👀观察结果
✅最终回答
第 1 轮循环
agent.log
  1. 用户:「帮我查下北京天气,并换算成华氏度」
  2. 思考:我需要先知道北京的天气 → 决定调用 get_weather
  3. 行动:get_weather(city="北京")
  4. 观察:{"temp_c": 22, "desc": "晴"}
  5. 思考:拿到了摄氏度,还需要换算 → 决定调用 calculator
  6. 行动:calculator(expr="22 * 9 / 5 + 32")
  7. 观察:71.6
  8. 思考:信息已经足够,不需要再调用工具了
  9. 回答:北京今天晴,22°C(约 71.6°F),很适合出门 🌤

图里的「思考」是为了教学而写的决策说明,不是读取模型隐藏思维链。程序真正看到的是工具调用、工具返回结果和最终回答。

三个组成部分 ​

  1. 模型:根据当前上下文决定回答还是调用工具。
  2. 工具:应用允许模型使用的操作,通常就是函数或 API。
  3. 运行器:负责循环、参数校验、权限控制、超时和终止。

大模型不会自己执行你的 Python 函数。它生成的是「调用请求」,运行器才真正执行。

Agent 和 Workflow 的区别 ​

WorkflowAgent
谁决定路径开发者提前规定模型在允许范围内选择
示例检索 → 总结 → 邮件草稿模型决定搜什么、是否继续搜
优点易控制、易测试灵活处理开放任务
风险无法应对未设计分支可能绕路、成本高、不收敛

两者可以组合。不是越自主越好:付款、发布、删除等环节适合确定性流程和人工确认,不能只交给模型自由决定。

ReAct 是什么? ​

ReAct 将推理和行动交替进行:看到当前状态 → 选择工具 → 根据结果调整下一步。现代工具调用 API 已经把「行动」结构化,不必用正则解析模型输出的 Action: 文本。

也有「先规划再执行」「固定工作流 + 局部 Agent」等模式。先掌握这个最小循环,再讨论复杂设计。

一句话识别常见误解 ​

  • 加一个 system Prompt 并不自动成为完整 Agent。
  • 接入 RAG 不一定是 Agent;固定检索再回答也可以是普通工作流。
  • 多 Agent 不一定更强,可能只是更多调用和协调成本。
  • 「完成了」不等于真的完成;检查工具结果、文件、测试等证据。

自测 ​

「先分类,再按类别发送固定模板」是哪种?「让模型自己选择搜索词并决定是否补充搜索」呢?

前者是 Workflow,后者具有 Agent 特征。开发时先判断任务是否真的需要自主决策,再选架构。

用心写给每一个想入门 Agent 开发的前端工程师