# 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 分钟