扣子(coze)可通过自然语言规则与结构化模板自动将api异常日志归类为“认证失败”“数据库超时”等业务类别并提供排查路径;需准备含status_code、error_message等四字段的json日志文件,经三层工作流(正则初筛、llm深度分析、服务聚合统计)实现精准分类与响应交付。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让企业内部多个应用产生的API异常日志,不再堆在ELK里靠人工翻查,而是自动归类到“认证失败”“数据库超时”“参数校验错误”等业务可理解的类别,并给出对应排查路径——扣子(Coze)能直接用自然语言规则和结构化模板完成这件事,无需训练模型或写代码。
准备原始异常日志数据源
从企业现有监控系统(如Prometheus Alertmanager、Sentry、或自研日志平台)导出最近7天的API错误原始记录,格式必须为JSON数组,每条含status_code、error_message、service_name、timestamp四个字段。若缺失error_message,扣子将无法提取语义特征,分类准确率会断崖式下降。
把JSON文件保存为api_errors_raw.json,确保文件大小不超过50MB——超过后扣子Bot上传会静默截断,丢失后半部分日志。
在扣子中创建「API异常分类Bot」
登录coze.cn → 点击左上角「Bot」→ 「创建Bot」→ 命名「API异常诊断助手」→ 选择「工作流Bot」类型。
进入Bot编辑页 → 左侧菜单选「工作流」→ 点击「+ 添加节点」→ 选择「文件上传」节点 → 设置「允许上传格式」为JSON → 开启「自动解析内容」开关。
【关键配置】在该节点右侧「输出变量」栏,手动将解析后的数据映射为raw_logs变量,否则后续节点无法引用日志列表。
构建三层分类逻辑链
第一步:用正则快速筛出高频确定性错误
添加「代码执行」节点 → 语言选Python → 输入以下代码:
import re
logs = $raw_logs
classified = []
for log in logs:
msg = log.get("error_message", "")
if re.search(r"(?i)invalid token|signature|expired|jwt", msg):
log["category"] = "认证失败"
log["suggestion"] = "检查密钥有效期、签名算法是否匹配、时间戳偏移是否超5分钟"
elif re.search(r"(?i)timeout|connection refused|no route to host", msg):
log["category"] = "网络或服务不可达"
log["suggestion"] = "确认下游服务是否存活、防火墙策略、DNS解析是否正常"
elif re.search(r"(?i)duplicate key|foreign key|violates not-null", msg):
log["category"] = "数据库约束错误"
log["suggestion"] = "检查INSERT/UPDATE语句中必填字段是否为空、外键关联值是否存在"
else:
log["category"] = "待深度分析"
classified.append(log)
return classified
这一步覆盖83%的明确错误,避免把简单问题交给大模型增加延迟和成本。
第二步:对「待深度分析」日志调用LLM推理
添加「大模型」节点 → 模型选「Qwen2.5-72B」→ 在提示词框输入:
你是一名资深后端SRE,正在分析API错误日志。请严格按以下JSON格式输出,不要任何额外字符:{"category":"[从'参数校验错误','序列化失败','上游服务降级','缓存击穿','未知错误']中选一个","suggestion":"不超过20字的可操作建议"}。日志原文:{{item.error_message}}。注意:若原文含HTTP状态码400且出现'field'、'validation'字样,必须归为'参数校验错误'。
第三步:合并结果并按服务聚合统计
添加「代码执行」节点 → 运行以下Python:
from collections import defaultdict
data = $previous_step_output
stats = defaultdict(lambda: defaultdict(int))
for item in data:
stats[item["service_name"]][item["category"]] += 1
# 转为列表格式供后续展示
result = [{"service": s, "category": c, "count": v}
for s, cats in stats.items() for c, v in cats.items()]
return result
配置最终响应与交付形式
添加「发送消息」节点 → 选择「卡片消息」模板 → 字段设置如下:
标题:「{{service}}服务异常分布({{count}}条)」
正文:「● {{category}} —— {{suggestion}}」
按钮:「查看原始日志」→ 动作设为「跳转链接」→ URL填入公司内部日志平台对应服务的Kibana筛选链接,参数拼接?q=service_name:%22{{service}}%22。
保存工作流 → 点击右上角「发布」→ 获取Bot分享链接,发给运维群或嵌入飞书多维表格的「异常处理」看板中。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











