Files
agent-park/n8n-workflows/README.md
T

118 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# n8n 工作流文档
本目录包含 Agent Park 的 n8n 工作流配置。
## 工作流清单
| 文件 | 功能 |
| --- | --- |
| `keyword-cloud-workflow.json` | Google Trends → 关键词词云入库 |
| `tag-janitor-workflow.json` | 每日 AI 标签合并与 `nameEn` 补全 |
## 关键词词云工作流
**文件**: `keyword-cloud-workflow.json`
### 功能
自动采集 Google Trends 数据,生成 AI 热点词汇词云。
### 执行流程
1. **Schedule Trigger**: 每季度末最后一天的 23:00 自动触发
2. **Calculate Quarter**: 计算当前季度标识和时间范围
3. **Google Trends**: 采集热门搜索词
4. **Extract Keywords**: 提取关键词和热度分数
5. **Get Visual Rules**: 获取视觉样式规则
6. **Match Visual Rules**: 为关键词匹配视觉样式
7. **Send to API**: 写入数据库
### 环境变量
在 n8n 中设置以下环境变量:
| 变量名 | 说明 | 示例值 |
|--------|------|--------|
| `API_URL` | API 端点 URL | `http://localhost:3000` (本地) 或生产环境 URL |
| `API_KEY` | Webhook API Key | 与项目的 `WEBHOOK_API_KEY` 相同 |
### 配置步骤
1. **导入工作流**
- 打开 n8n 界面
- 点击 "Import from File"
- 选择 `keyword-cloud-workflow.json`
2. **配置 Google Trends 节点**
- 确保已安装 `@gamal.dev/n8n-nodes-google-trends`
- 根据需要调整搜索关键词列表
3. **配置环境变量**
- 在 n8n 设置中添加环境变量
- 或在每个节点的表达式字段中使用具体值
4. **手动执行测试**
- 点击 "Execute Workflow" 按钮
- 检查每个节点的输出
- 验证数据库中的数据
### API 端点
工作流调用以下 API 端点:
- `GET {API_URL}/api/keyword-cloud/rules` - 获取视觉规则
- `POST {API_URL}/api/keyword-cloud/keywords` - 批量写入关键词
## Tag Janitor 工作流
**文件**: `tag-janitor-workflow.json`
### 功能
每日自动拉取标签,按分桶分块交给 AI Agent 处理,并通过结构化输出解析器强制 JSON 格式,最终调用维护 API 执行合并与 `nameEn` 补全。
### 执行流程
1. **Schedule Trigger**: 每日 UTC 03:00 触发
2. **Fetch Tags**: 调用 `GET /api/tags` 获取标签和项目计数
3. **Prepare Chunk Batches**: 预处理并按 bucket + chunk 拆分(默认每块 80
4. **Tag Merge Agent + Structured Output Parser**: Agent 生成计划,Parser 强制输出 schema
5. **Validate Plan**: 校验覆盖率(`reviewedTagIds` 必须覆盖整块)、ID 合法性、自合并
6. **Retry Loop**: 校验失败会自动重试(默认 2 次,可配置)
7. **Execute Maintenance**: 仅对校验通过的块调用 `POST /api/tags/maintenance`
8. **Summarize Results**: 汇总 executed/noop/failed_validation/failed_execute
### API 端点
- `GET {API_URL}/api/tags` - 拉取标签列表(含 `_count.projects`
- `POST {API_URL}/api/tags/maintenance` - 执行批量 updates/merges
### 环境变量
在 n8n 进程环境中配置:
| 变量名 | 说明 | 默认值 |
| --- | --- | --- |
| `SITE_BASE_URL` | 站点地址 | 无 |
| `WEBHOOK_API_KEY` | 维护 API 鉴权密钥 | 无 |
| `TAG_JANITOR_CHUNK_SIZE` | 每块标签数量 | `80` |
| `TAG_JANITOR_MAX_RETRIES` | 校验失败自动重试次数 | `2` |
### 注意事项
1. **不要全量一次喂模型**
- 900+ 标签必须分块,否则大概率返回不完整。
2. **结构化输出是硬约束**
-`Structured Output Parser` 保证格式。
- `Validate Plan` 仍会做二次校验,防止“格式正确但内容不完整”。
3. **失败块不会误执行**
- 校验不通过的块不会调用维护 API,会在 summary 中归类为失败并给出原因。
### 扩展建议
-`failed_*` 摘要接入 Slack/Telegram 告警
-`failed_validation` 块做二次人工审核队列
- 在预处理阶段先做字符串近似聚类,进一步减少 LLM token 消耗