目标: 为 Data-governance 工作流添加检查和创建元数据的工具
日期: 2025-11-04
GET http://192.168.3.143:5000/api/meta/check?name_zh=元数据中文名
Response:
{
"code": 200,
"data": {
"exists": true/false,
"name_zh": "元数据中文名"
},
"msg": "查询成功"
}
POST http://192.168.3.143:5000/api/meta/node/add
Content-Type: application/json
{
"name_zh": "元数据中文名",
"data_type": "string",
"describe": "描述信息",
"source": "data-governance-workflow",
"status": true
}
Response:
{
"code": 200,
"data": { ... },
"msg": "success"
}
AI Agent 现在已配置为:
访问: https://n8n.citupro.com
登录账号
1. 进入 Workflows 页面
2. 找到 "Data-governance" 工作流
3. 点击打开编辑器
1. 点击 "+" 添加节点
2. 搜索 "HTTP Request Tool"
3. 选择 "HTTP Request Tool" (LangChain类别)
基本配置:
check_metadataDescription:
检查元数据中文名是否已经存在。需要参数:name_zh(元数据中文名)。返回exists字段表示是否存在(true/false)
HTTP Request 配置:
GEThttp://192.168.3.143:5000/api/meta/check?name_zh={{ $parameter.name_zh }}NonePlaceholder Definitions (参数定义): 点击 "Add Placeholder" 添加:
name_zh元数据中文名1. 将 "HTTP Request Tool" 节点拖动到 AI Agent 旁边
2. 从 "HTTP Request Tool" 的输出点拖线到 "AI Agent"
3. 在弹出的连接类型选择中,选择 "ai_tool" 连接类型
1. 再次点击 "+" 添加节点
2. 搜索 "HTTP Request Tool"
3. 选择 "HTTP Request Tool" (LangChain类别)
基本配置:
create_metadataDescription:
创建新的元数据。需要参数:name_zh(中文名,必填), data_type(数据类型,默认string), description(描述信息,选填)。返回创建结果
HTTP Request 配置:
POSThttp://192.168.3.143:5000/api/meta/node/addNoneJSONJSON Body:
{
"name_zh": "={{ $parameter.name_zh }}",
"data_type": "={{ $parameter.data_type || 'string' }}",
"describe": "={{ $parameter.description || '' }}",
"source": "data-governance-workflow",
"status": true
}
Placeholder Definitions (参数定义): 点击 "Add Placeholder" 三次添加:
name_zh, Description: 元数据中文名(必填)data_type, Description: 数据类型(string/int/float等,默认string)description, Description: 描述信息(选填)```
选择 "ai_tool" 连接类型
### 步骤 5: 清理旧节点(可选)
如果工作流中还有这些节点,可以删除它们(它们已经不需要了):
- "判断用户意图" (IF节点)
- "调用元数据新增API" (HTTP Request节点)
- "设置确认消息" (Set节点)
- "设置拒绝消息" (Set节点)
**注意**: 只保留以下核心节点:
- Chat Trigger
- AI Agent
- DeepSeek Chat Model
- check_metadata (HTTP Request Tool)
- create_metadata (HTTP Request Tool)
### 步骤 6: 保存并激活
点击右上角 "Save" 保存工作流
如果工作流未激活,点击 "Active" 开关激活
---
## 🧪 测试工作流
### 测试场景 1: 完整流程
访问: https://n8n.citupro.com/chat/tWfjLZE1FmMfQAIn
用户: "是,我要创建元数据" 预期: AI 询问元数据信息
用户: "中文名:测试字段001,类型:string,描述:这是一个测试字段" 预期:
返回成功消息
### 测试场景 2: 元数据已存在
用户: "是,我要创建元数据" AI: "好的!请提供元数据信息..."
用户: "中文名:测试字段001,类型:string" 预期: AI 提示该元数据已存在
### 测试场景 3: 信息不完整
用户: "是,我要创建元数据" AI: "好的!请提供元数据信息..."
用户: "类型是string" 预期: AI 提示需要提供中文名
---
## 📊 工作流最终结构
┌────────────────┐ │ Chat Trigger │ └───────┬────────┘
│
↓
┌────────────────┐ ┌─────────────────────┐ │ AI Agent │◄─────│ DeepSeek Chat Model │ └───────┬────────┘ └─────────────────────┘
│
│ (ai_tool连接)
├──────────────────────┐
│ │
↓ ↓
┌────────────────┐ ┌─────────────────┐ │ check_metadata │ │ create_metadata │ │ (HTTP Tool) │ │ (HTTP Tool) │ └────────────────┘ └─────────────────┘
**关键连接**:
- `Chat Trigger` → `AI Agent` (main 连接)
- `DeepSeek Chat Model` → `AI Agent` (ai_languageModel 连接)
- `check_metadata` → `AI Agent` (ai_tool 连接)
- `create_metadata` → `AI Agent` (ai_tool 连接)
---
## ⚠️ 重要注意事项
### 1. 连接类型
**ai_tool 连接** 是特殊的连接类型:
- 不是普通的 main 连接
- 表示该节点是 AI Agent 可以使用的工具
- AI Agent 会根据用户输入自动决定何时调用哪个工具
### 2. Tool Description 很重要
Tool 的 Description 会告诉 AI:
- 这个工具的功能是什么
- 需要什么参数
- 返回什么结果
**AI 根据 Description 来决定是否调用该工具**。
### 3. 参数传递
Tool 的参数 (placeholders) 由 AI Agent 从对话中提取:
- 用户说:"中文名是用户姓名"
- AI 提取: `name_zh = "用户姓名"`
- 调用: `check_metadata(name_zh="用户姓名")`
### 4. JSON Body 中的表达式
使用 n8n 表达式语法:
- `={{ $parameter.name_zh }}` - 获取参数值
- `={{ $parameter.data_type || 'string' }}` - 默认值
- 需要用双花括号 `={{ }}`
---
## 🔧 调试技巧
### 查看工具调用日志
检查 Tool 是否被正确调用
### 测试单个工具
在编辑器中点击 Tool 节点
点击 "Test node"
手动输入参数值
查看返回结果 ```
| 问题 | 原因 | 解决 |
|---|---|---|
| AI 不调用工具 | Description 不清晰 | 优化 Description,明确说明功能和参数 |
| 工具调用失败 | API 不可达 | 检查 192.168.3.143 的网络连接 |
| 参数未传递 | Placeholder 未定义 | 检查 Placeholder Definitions |
| 返回格式错误 | API 返回不符合预期 | 检查后端 API 返回格式 |
工作流配置完成后,应该满足:
预计配置时间: 15-20 分钟
难度: ⭐⭐⭐ (中等)
祝您配置顺利!🚀