ReAct 自动循环智能体 (LLM + 工具 + 提示词)
ReAct = 推理 (Reason) + 行动 (Act)
自动循环智能体流程:
- 提示词 (Prompt) → 大语言模型推理 (LLM) → 工具 (Tools)
用户:“我的 ORD-001 订单到哪了?”
│
▼
① 推理 (Reason)
模型思考:我需要查询订单信息
│
▼
② 行动 (Act)
调用 getOrderInfo 工具
│
▼
③ 观察 (Observe)
获取结果:{ status: “已发货”, trackingNo: “SF123” }
│
▼
① 推理 (Reason)
模型思考:有快递单号,我再查询物流信息
│
▼
② 行动 (Act)
调用 getLogisticsInfo 工具
│
▼
③ 观察 (Observe)
获取结果:已到达北京分拣中心
│
▼
① 推理 (Reason) → 组织最终回复
输出:“亲,您的 ORD-001 订单已发货,快递单号 SF123 目前在北京分拣中心~”
LangGraph 提供 API:CreateReactAgent(all, tool, prompt),可自动根据提示词分析并调用工具,返回推理结果。
┌─────────────────────────────────────────────────────┐
│ ReAct Agent 工作流程 │
└─────────────────────────────────────────────────────┘
用户输入:“我的 ORD-001 订单到哪了?”
│
▼
┌──────────┐
│ ① 推理 │ ← 大模型(DeepSeek):需要查订单信息
│ Reason │
└────┬─────┘
│ 输出:调用 getOrderInfo(“ORD-001”)
▼
┌──────────┐
│ ② 行动 │ ← 执行工具 → 返回 { status:“已发货”, trackingNo:“SF123” }
│ Act │
└────┬─────┘
│ 工具结果
▼
┌──────────┐
│ ③ 观察 │ ← 模型阅读结果:有快递单号,继续查物流
│ Observe │
└────┬─────┘
│ 需要更多信息? ──Yes──→ 回到 ①(循环)
│ No
▼
┌──────────┐
│ 最终回复 │ → “亲,您的订单已发货,快递 SF123 已到达北京分拣中心~”
└──────────┘
═══════════════════════════════════════
你的代码中对应关系:
═══════════════════════════════════════
createReactAgent({ llm, tools, prompt })
│ │ │ │
│ │ │ └──→ ③ 推理依据(系统提示词)
│ │ └──────────→ ② 可调用的工具
│ └─────────────────→ ① 推理引擎
└──────────────────────────────→ 以上三点拼成一个自动循环 Agent