跳转到内容

AI Agent 节点 · 自主调用工具的智能体

第 5 章 · 第 2 节

AI Agent 节点是 Part 5 的主角。它把 LLM 从”只会聊天的脑子”升级成”能用工具的执行者”。这一节讲它内部到底怎么工作——理解原理后,你 prompt 怎么写、Tool 怎么描述都会有方向。

🔄 react-loop.txt
Agent 收到用户输入 → 进入"思考-行动"循环: ┌──────────────────────────────────────┐ │ Thought (思考): │ │ "用户问 GitHub 用户 torvalds 的资料 │ │ 我需要调 HTTP 工具查一下" │ │ │ │ Action (行动): │ │ 调用 HTTP Tool with URL=... │ │ │ │ Observation (观察): │ │ 收到 JSON 响应 { name: ..., ... } │ └──────────────────────────────────────┘ ↓ 继续循环(最多 N 次) ↓ Final Answer:整理回答给用户

这就是 ReAct (Reason + Act) 模式。Agent 的每一步都是”先想再做”,每个 Action 的结果会反馈回下一轮思考。

agent-params.txt
AI Agent 节点 Parameters: ▸ Agent Type: Tools Agent(默认,最强) ▸ Source for Prompt: Define below / From previous node ▸ Prompt: 用户输入(通常 ={{ $json.chatInput }}) ▸ System Message: 全局指令,定义 Agent 的角色和约束 ▸ Max Iterations: 5 (循环最多几轮,防死循环) ▸ Return Intermediate Steps: false (调试时开)

这是 Agent 的”使用说明书”——告诉它自己是谁、能做什么、不能做什么

📜 system-prompt-example.txt
你是一个专业的电商客服助手。你的职责: 1. 用户问订单状态 → 调 get_order_status 工具 2. 用户想退款 → 调 process_refund 工具(先确认订单号) 3. 用户问产品信息 → 调 search_products 工具 边界规则: - 不讨论与电商无关的话题 - 涉及金额超过 1000 元的操作,回答"需要人工审核" - 始终用礼貌的中文回答 - 不要捏造订单信息——查不到就说查不到 输出格式:先回答用户问题,最后附一句"还有什么可以帮您?"

好 System Message 的结构:角色 + 能力清单 + 边界规则 + 输出格式。

每个挂上去的工具都有一个 Description 字段。LLM 看这段描述决定要不要调它:

📝 tool-description.txt
❌ 烂描述(Agent 用不好): Name: http_call Description: 发 HTTP 请求 ✅ 好描述(Agent 知道何时用): Name: get_user_profile Description: 根据用户邮箱查询用户的基本资料和积分。 输入:email (用户邮箱) 返回:name, points, level, vip_status 差异: - 用动词清楚说明"做什么" - 列输入参数 - 说明返回内容 - 不写实现细节(Agent 不需要知道你调的是哪个 API)

新手最大的困惑:“Agent 为啥不调我那个工具?”

打开 Agent 节点的 Return Intermediate Steps 开关——再运行就能看到 Agent 每一步的 Thought / Action / Observation

🔍 intermediate-steps.txt
输出中会多一个 intermediateSteps 字段: [ { "action": { "tool": "get_user_profile", "toolInput": { "email": "alice@x.com" } }, "observation": "{ \"name\": \"Alice\", \"points\": 200, ... }" }, { "action": { "tool": "send_email", "toolInput": { ... } }, "observation": "..." } ] 看到这些就知道 Agent 想了什么、调了什么、得到了什么。
🎯 full-agent.txt
场景:客服 Bot 能查订单 + 估算退款时间 [Chat Trigger] 入口 ↓ [AI Agent] Chat Model: [OpenAI gpt-4o-mini] Memory: [Window Buffer Memory] (size=10) Tool 1: [Postgres Tool "get_order"] Description: 按订单号查订单详情 Tool 2: [HTTP Tool "estimate_refund"] Description: 估算退款到账时间,输入金额返回天数 System Message: 你是 XYZ 电商客服... (前面那段) ↓ [Respond to Chat] 回复给用户 对话举例: 用户:订单 #1234 的退款大概几天到? Agent → 调 get_order(1234) → 收到 {amount: 500} → 调 estimate_refund(500) → 收到 {days: 3} → "您的订单 #1234 退款 ¥500,预计 3 天到账。还有什么可以帮您?"
  • Agent 内部 = ReAct 循环(Thought → Action → Observation)
  • System Message:角色 + 能力 + 边界 + 输出格式
  • Tool Description 是 LLM 决策的依据——写好它比改 prompt 更重要
  • 调试用 Return Intermediate Steps 看每一步
  • Max Iterations 防死循环
  • 用 gpt-4o-mini 起步省钱

下一节Memory 记忆——让 Agent 记得多轮对话。