# n8n 串接

本文件提供了如何使用 n8n 工作流自動化工具來串接 MaiAgent 的多個 AI 助理的詳細說明。透過 n8n，您可以輕鬆建立工作流，達到多助理串接的效果。

## 前置條件

1. 已註冊 n8n 帳戶
2. 有效的 MaiAgent API 金鑰
3. 建置完成 AI 助理，並取得助理 ID
4. 基本的 API 和工作流程理解

## 基本概念

MaiAgent API 提供了與 AI 助理進行對話的功能。我們將使用 n8n 來自動化這些流程，並串接多個 AI 助理。

## 工作流程範例

### 範例1：建立簡單的 AI 助理串聯工作流

這個工作流將接收使用者的聊天訊息，然後依序透過兩個不同的 AI 助理處理，形成一個串聯處理的流程。

### 步驟1：設置聊天觸發器節點

1. 在 n8n 工作流中新增一個「When chat message received」節點
2. 這將作為工作流的起點，當使用者發送訊息時觸發

### 步驟2：設置第一個 HTTP 請求節點

1. 新增一個「HTTP Request」節點，連接到「When chat message received」節點
2. 設定以下設置：

   * 方法：POST
   * URL：`https://api.maiagent.ai/api/v1/chatbots/{id}/completions/`
   * id：助理 ID
   * 認證：Headers
   * Headers：新增 `Authorization` 頭，值為 `Api-Key YOUR_API_KEY`（請替換為您的實際 API 金鑰）
   * 請求內容類型：JSON
   * 請求內容：

   ```json
   {
     "conversation": "",
     "message": {
       "content": "{{ $json.chatInput }}",
       "attachments": []
     },
     "is_streaming": false
   }
   ```

### 步驟3：設置第二個 HTTP 請求節點

1. 新增另一個「HTTP Request」節點，連接到第一個 HTTP Request 節點
2. 設定以下設置：

   * 方法：POST
   * URL：`https://api.maiagent.ai/api/v1/chatbots/{id}/completions/`
   * id：助理 ID
   * 認證：Headers
   * Headers：新增 `Authorization` 頭，值為 `Api-Key YOUR_API_KEY`
   * 請求內容類型：JSON
   * 請求內容：

   ```json
   {
     "conversation": "",
     "message": {
       "content": {{ JSON.stringify($json.content) }},
       "attachments": []
     },
     "is_streaming": false
   }
   ```

這個設置將第一個 AI 助理的回應作為輸入傳遞給第二個 AI 助理，實現串聯處理。

## 串接應用場景

### 場景1：多專家意見聚合

透過不同專長助理提供各自觀點，然後聚合成全面回應：

1. 讓法律助理分析法律問題
2. 讓技術助理分析技術可行性
3. 讓商業助理分析商業影響
4. 最後聚合助理提供綜合建議

### 場景2：翻譯改進流程

1. 初始助理進行翻譯
2. 二次助理檢查翻譯品質
3. 最終助理潤飾並優化表達

### 場景3：內容生成與審查工作流

1. 創意助理生成內容
2. 審查助理檢查準確性和適當性
3. 編輯助理進行潤飾和格式優化

## 進階應用：建立多輪對話工作流

### 範例2：使用對話 ID 維持多輪對話

### 步驟1：建立對話初始化節點

1. 新增一個 HTTP Request 節點進行初始對話
2. 設定與之前類似，但儲存對話 ID:

```jsx
// 儲存對話 ID 供後續使用
const conversationId = $json.conversationId;
$workflow.vars.conversationId = conversationId;

return {
  json: {
    ...$json,
    savedConversationId: conversationId
  }
};
```

### 步驟2：設置後續對話節點

1. 新增新的 HTTP Request 節點，設定為使用已保存的對話 ID:

   ```json
   {
     "conversation": "{{$workflow.vars.conversationId}}",
     "message": {
       "content": "繼續上一個問題，請提供更多細節"
     },
     "is_streaming": false
   }
   ```

## 故障排除

常見問題及解決方案：

1. **API 認證錯誤**：確保 API 金鑰格式正確，包括「Api-Key」前綴
2. **請求逾時**：對於複雜查詢，增加 HTTP 請求節點的逾時時間
3. **串流模式處理**：使用 `is_streaming: true` ,回覆模式會更改為串流模式

## 結論

透過 n8n，您可以輕鬆整合和自動化 MaiAgent 的多個 AI 助理，創建強大的 AI 工作流程，讓不同專長的助理協作完成複雜任務。從簡單的對話到複雜的多助理串聯處理，n8n 提供了靈活且強大的自動化能力。

## 附錄：完整工作流 JSON

以下是範例1的完整工作流 JSON 設定，您可以直接匯入到 n8n 中：

```json
{
  "name": "My workflow",
  "nodes": [
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.maiagent.ai/api/v1/chatbots/{id}/completions/",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Api-Key YOUR_API_KEY"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"conversation\": \"\",\n  \"message\": {\n    \"content\": \"{{ $json.chatInput }}\",\n    \"attachments\": []\n  },\n  \"is_streaming\": false\n} ",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        -240,
        -180
      ],
      "id": "dfc1157d-7569-4caf-8b1d-256aa74515ac",
      "name": "HTTP Request"
    },
    {
      "parameters": {
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "typeVersion": 1.1,
      "position": [
        -500,
        -180
      ],
      "id": "82748324-6021-4660-98ef-481bdfc73569",
      "name": "When chat message received",
      "webhookId": "5f833c90-a7f9-4c66-8fff-cecc3568cd2a"
    },
    {
      "parameters": {
        "method": "POST",
        "url": "https://api.maiagent.ai/api/v1/chatbots/{id}/completions/",
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "Api-Key YOUR_API_KEY"
            }
          ]
        },
        "sendBody": true,
        "specifyBody": "json",
        "jsonBody": "={\n  \"conversation\": \"\",\n  \"message\": {\n    \"content\": {{ JSON.stringify($json.content) }},\n    \"attachments\": []\n  },\n  \"is_streaming\": false\n} ",
        "options": {}
      },
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        20,
        -180
      ],
      "id": "f0a80b1f-1bed-491b-bc5e-cddb87ccd2d5",
      "name": "HTTP Request1"
    }
  ],
  "pinData": {},
  "connections": {
    "When chat message received": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "HTTP Request1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request1": {
      "main": [
        []
      ]
    }
  },
  "active": false,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "c914db70-985a-48d0-a1ca-47c2a0d4f244",
  "meta": {
    "instanceId": "2eb51fcaa84ba34149e7fc138f6cac3b20a0038764b284579d6ceaea90b669f8"
  },
  "id": "pvMcKA5hHmwAKuZT",
  "tags": []
}
```

## 匯入結果

<figure><img src="https://github.com/Playma-Co-Ltd/maiagent-tech-gitbook/blob/main/.gitbook/assets/%E6%88%AA%E5%9C%96%202025-03-10%20%E6%99%9A%E4%B8%8A7.45.13.png" alt="" width="563"><figcaption></figcaption></figure>

***

若有任何問題，請參考 [MaiAgent 的官方 API 文件](https://docs.maiagent.ai/api)或 [n8n 的官方文件](https://docs.n8n.io/)。
