# Data-governance 工作流 Tools 添加状态报告

**完成时间**: 2025-11-04 17:30  
**工作流ID**: `tWfjLZE1FmMfQAIn`

---

## ✅ 已完成的工作

### 1. 成功添加了两个 HTTP Request Tool 节点

#### 检查元数据工具 ✅
- **节点名称**: 检查元数据工具
- **节点类型**: `@n8n/n8n-nodes-langchain.toolHttpRequest`
- **配置**:
  ```
  Description: 检查元数据中文名是否已经存在。需要参数：name_zh（元数据中文名）。返回exists字段表示是否存在（true/false）
  Method: GET
  URL: http://192.168.3.143:5000/api/meta/check?name_zh={name_zh}
  Authentication: None
  Placeholder: name_zh (元数据中文名, type: string)
  ```
- **位置**: (680, 250)
- **连接**: 已连接到 AI Agent

#### 创建元数据工具 ✅
- **节点名称**: 创建元数据工具
- **节点类型**: `@n8n/n8n-nodes-langchain.toolHttpRequest`
- **配置**:
  ```
  Description: 创建新的元数据。需要参数：name_zh（中文名，必填）, data_type（数据类型，默认string）, description（描述信息，选填）。返回创建结果
  Method: POST
  URL: http://192.168.3.143:5000/api/meta/node/add
  Authentication: None
  Send Body: true
  Body Type: JSON
  JSON Body: {
    "name_zh": "{name_zh}",
    "data_type": "{data_type}",
    "describe": "{description}",
    "source": "data-governance-workflow",
    "status": true
  }
  Placeholders: 
    - name_zh (元数据中文名，必填, type: string)
    - data_type (数据类型，默认string, type: string)
    - description (描述信息，选填, type: string)
  ```
- **位置**: (680, 450)
- **连接**: 已连接到 AI Agent

---

## 📊 工作流验证结果

### 验证状态: ✅ VALID

- **总节点数**: 9
- **已启用节点**: 9
- **触发器节点**: 1
- **有效连接**: 7
- **无效连接**: 0
- **错误数**: 0
- **警告数**: 15

### 工作流结构

```
Chat Trigger (聊天触发器)
    ↓
AI Agent (AI代理) ←── DeepSeek Chat Model (语言模型)
    ↑                   ↑
    |                   |
    ├── 检查元数据工具 (HTTP Request Tool)
    └── 创建元数据工具 (HTTP Request Tool)
    
(还有一些旧节点未清理：判断用户意图、调用元数据新增API、设置确认消息、设置拒绝消息)
```

---

## ⚠️ 发现的问题

### 问题 1: Internal Server Error (聊天界面)

**症状**: 访问 `https://n8n.citupro.com/chat/tWfjLZE1FmMfQAIn` 返回 Internal Server Error

**可能原因**:
1. Chat Trigger 仍然无法识别正确的 webhook 路径
2. AI Agent 后面可能还有未清理的节点连接
3. Tools 的连接类型可能不正确

**警告信息**:
- "AI Agent has no ai_tool connections. Consider adding tools to enhance the agent's capabilities."
- 这表明虽然工具已添加，但可能没有通过正确的 `ai_tool` 连接类型连接

### 问题 2: 旧节点未清理

工作流中仍然保留了以下旧节点（这些节点已不需要）:
- 判断用户意图 (IF节点)
- 调用元数据新增API (HTTP Request节点)
- 设置确认消息 (Set节点)
- 设置拒绝消息 (Set节点)

这些节点虽然不会影响功能，但会让工作流变得复杂。

---

## 🔧 推荐的下一步操作

### 方案 1: 在 n8n 界面手动检查和修复（推荐）⭐⭐⭐

#### 步骤 1: 检查工具连接

1. 登录 n8n 界面：https://n8n.citupro.com
2. 打开 Data-governance 工作流
3. 检查两个工具节点的连接：
   - 点击连接线查看连接类型
   - 应该显示为 `ai_tool` 而不是 `main`
   - 如果不是，重新连接：
     - 删除现有连接
     - 从工具节点拖线到 AI Agent
     - 在弹出菜单中选择 `ai_tool` 连接类型

#### 步骤 2: 清理旧节点（可选）

删除以下不再需要的节点：
- 判断用户意图
- 调用元数据新增API
- 设置确认消息
- 设置拒绝消息

保留核心节点：
- Chat Trigger
- AI Agent
- DeepSeek Chat Model
- 检查元数据工具
- 创建元数据工具

#### 步骤 3: 重新激活工作流

1. 停用工作流（关闭 Active 开关）
2. 等待 2-3 秒
3. 重新激活（打开 Active 开关）
4. 确认工作流状态为激活

#### 步骤 4: 测试

访问：https://n8n.citupro.com/chat/tWfjLZE1FmMfQAIn

测试对话：
```
用户: "是，我要创建元数据"
预期: AI 询问元数据信息

用户: "中文名：测试字段123，类型：string，描述：这是测试"
预期: AI 检查后创建元数据
```

---

### 方案 2: 创建新的简化工作流（如果方案1失败）⭐⭐

如果上述方案无法解决问题，建议创建一个全新的简化工作流：

#### 最小化工作流结构

```yaml
节点:
  1. Chat Trigger
     - public: true
     - title: "数据治理助手 🤖"
     - responseMode: "lastNode"
  
  2. DeepSeek Chat Model
     - model: "deepseek-chat"
     - temperature: 0.7
     - credentials: DeepSeek account
  
  3. AI Agent
     - systemMessage: [当前配置]
  
  4. 检查元数据工具 (HTTP Request Tool)
     - [当前配置]
  
  5. 创建元数据工具 (HTTP Request Tool)
     - [当前配置]

连接:
  Chat Trigger → AI Agent (main)
  DeepSeek → AI Agent (ai_languageModel)
  检查元数据工具 → AI Agent (ai_tool) ⚠️ 重要
  创建元数据工具 → AI Agent (ai_tool) ⚠️ 重要
```

---

## 📝 技术说明

### LangChain Tools 的连接方式

在 n8n 中，LangChain Tools 必须通过特殊的 `ai_tool` 连接类型连接到 AI Agent：

**正确连接**:
```
Tool → AI Agent (连接类型: ai_tool)
```

**错误连接**:
```
Tool → AI Agent (连接类型: main)  ❌
```

### ai_tool 连接的特点

1. **不是数据流**: `ai_tool` 连接不传递数据流，而是告诉 AI Agent "这个工具可用"
2. **AI 自动调用**: AI Agent 根据对话内容自动决定何时调用哪个工具
3. **参数提取**: AI 从对话中提取工具需要的参数
4. **结果反馈**: 工具执行结果会自动反馈给 AI Agent

### 为什么 MCP API 可能无法正确建立 ai_tool 连接

n8n 的 MCP API 在处理 LangChain 特殊连接类型时存在限制：
- API 可能将 `ai_tool` 连接识别为 `main` 连接
- 图形界面可以正确识别和建立 `ai_tool` 连接
- 因此手动操作更可靠

---

## ✅ 当前状态总结

### 已完成 ✅
- [x] 后端 API `/api/meta/check` 已创建
- [x] AI Agent 系统消息已更新
- [x] 检查元数据工具已添加
- [x] 创建元数据工具已添加
- [x] 工具已连接到 AI Agent

### 待确认 ⏳
- [ ] 工具连接类型是否为 `ai_tool`
- [ ] Chat Trigger 是否能正常工作
- [ ] AI Agent 是否能调用工具

### 待操作 📋
- [ ] 在 n8n 界面检查工具连接类型
- [ ] 如需要，重新建立 `ai_tool` 连接
- [ ] 清理旧节点（可选）
- [ ] 重新激活工作流
- [ ] 测试完整流程

---

## 📞 需要帮助？

### 检查连接类型的方法

1. 在 n8n 界面打开工作流
2. 点击工具节点和 AI Agent 之间的连接线
3. 查看连接信息面板
4. 确认连接类型显示为 `ai_tool`

### 重新建立 ai_tool 连接

1. 删除现有连接：
   - 点击连接线
   - 按 Delete 键或点击删除按钮

2. 创建新连接：
   - 从工具节点的输出点拖线到 AI Agent
   - 在弹出的连接类型菜单中
   - 选择 `ai_tool` 选项

3. 确认：
   - 连接线应该显示特殊的颜色或标记
   - AI Agent 面板应该显示已连接的工具

---

## 🎯 最终目标

工作流正常运行后，应该实现：

```
用户: "是，我要创建元数据"
  ↓
AI: "好的！请提供以下信息：
     1. 元数据中文名（必填）
     2. 数据类型（选填，默认string）
     3. 描述信息（选填）"
  ↓
用户: "中文名：用户年龄，类型：int，描述：用户的年龄"
  ↓
AI: [调用 check_metadata 检查 "用户年龄"]
  ↓
AI: [如果不存在，调用 create_metadata 创建]
  ↓
AI: "✅ 元数据创建成功！
     - 中文名：用户年龄
     - 类型：int
     - 描述：用户的年龄"
```

---

**状态**: 工具已添加，待在 n8n 界面确认连接类型  
**下一步**: 登录 n8n 界面检查和修复工具连接  
**预计时间**: 5-10 分钟







