n8n 構建一個 ReAct AI Agent 示例
- 0. 引言
- 1. 詳細步驟
- 創建一個 "When Executed by Another Workflow"
- 創建一個 "Edit Fields (Set)"
- 再創建一個 "Edit Fields (Set)"
- 創建一個 HTTP Request
- 創建一個 If 節點
- 在 true 分支創建一個 "Edit Fields (Set)"
- 在 true 分支創建一個 "Edit Fields (Set)"
- 在 true 分支再創建一個 "Edit Fields (Set)"
- 創建一個 If 節點
- 在 true 分支創建一個 "Edit Fields (Set)"
- 在創建一個 Markdown 節點
- 在創建一個 "Edit Fields (Set)"
- 創建一個 Chat Trigger node
- 創建一個 AI Agent 節點
- 在 AI Agent 節點添加一個 OpenAI Chat Model node
- 在 AI Agent 節點添加一個 Call n8n Workflow Tool node
- 2. 測試
0. 引言
接下來使用 n8n 構建一個 ReAct AI Agent,通過 AI Agent 調用 Sub-Workflow,代用 HTTP Request 抓取網頁內容,通過后處理對網頁內容進行清洗。
1. 詳細步驟
這個 Workflow 有 2 大部分,第一個部分是一個 Sub-Workflow,第二個部分是 Call 這個 sub-Workflow 的 AI Agent。
我們先創建 Sub-Workflow,然后創建 Call 這個 sub-Workflow 的 AI Agent。
創建一個 “When Executed by Another Workflow”
這個節點是 Sub-Workflow 的入口,
- Input data mode:Accept all data
將輸入數據模式設置為選擇如何定義子工作流的輸入數據:
- 使用下方字段定義:選擇此模式以定義調用工作流需要提供的個體輸入名稱和數據類型。調用工作流中的執行子工作流節點或調用n8n工作流工具節點會自動拉取此處定義的字段。
- 使用JSON示例定義:選擇此模式以提供一個示例JSON對象,展示預期的輸入項及其類型。
- 接受所有數據:選擇此模式以無條件接受所有數據。子工作流將不會定義任何必需的輸入項。此子工作流必須處理任何輸入不一致或缺失值。
創建一個 “Edit Fields (Set)”
這個節點將輸入的 query 整理成一個 json 對象。
query 的輸入表達式,
{{ $json.query.substring($json.query.indexOf('?') + 1).split('&').reduce((result, item) => (result[item.split('=')[0]] = decodeURIComponent(item.split('=')[1]), result), {}) }}
再創建一個 “Edit Fields (Set)”
設置一個最大長度,
que