paper2skills Playbook

Argos — Agentic时序异常检测

Skill-Argos-Agentic-Anomaly-Detection · 09-DataAgent-LLM

causalexperimentoptimizationmulti_agentfraud_detection广告与投放供应链与补货客服与VOCMAS与智能体工程WF-A 智能补货WF-B 广告优化WF-C 客服分诊WF-E Review监控
年化 ROI5-10万
业务视角
适用角色数据分析师 / 运营负责人 · CEO · 供应链负责人
适用平台Amazon SP API · Shopify · TikTok Ads API · 多平台数据整合
什么情况下用数据需求太多,数据团队排期 2 周;非技术人员(采购/客服/运营)有数据问题但不会 SQL;重复报表占用大量时间
成功是什么样的业务方用自然语言自助查数据,常规报表自动化,数据驱动决策响应速度从「天」变「分钟」
业务痛点
数据需求排期太长不会 SQL 只能等数据团队老板临时要数据没法马上出分析师时间都花在取数上

1. 解决的问题

Argos 解决的核心矛盾是:LLM能生成异常检测规则,但无法同时保证可解释性、可复现性和准确率。

2. 核心算法逻辑

Argos 解决的核心矛盾是:LLM能生成异常检测规则,但无法同时保证可解释性、可复现性和准确率。

3. 业务应用场景

背景:母婴品牌在Amazon US、Amazon EU、Shopify、SHEIN四平台销售,需要监控每日销量、广告ROI、退货率等指标异常。现有阈值规则误报率高,深度学习模型不可解释。

Argos应用: 1. 加载历史90天销售数据(分平台、分SKU) 2. Detection Agent为每个指标生成异常检测规则: 3. Repair Agent验证语法,Review Agent在验证集上评估 4. Aggregator融合已有统计基线,保证不误报 5. 部署后实时检测,异常触发告警

预期效果:F1提升9.5%~28.3%,推理速度提升3x~34x,规则可解释(业务人员能看懂触发条件)。

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

  • 假设监控20个核心指标,人工调参1人天/月
  • 异常漏检导致库存断货或积压,单次损失¥5-10万
  • Argos提升F1 9.5%~28.3%,直接减少漏检损失
  • 年节省:人工 ¥3-5万 + 异常损失减少 ¥20-50万

7. 代码模板

代码块数量:9 · 路径:未检测到

"""
Argos-inspired Agentic Time-Series Anomaly Detection
基于三Agent协作的简化版实现

⚠️ 安全警告:本原型使用 exec() 编译并执行LLM生成的代码。
生产环境必须:
1. 使用 Docker 沙箱或 RestrictedPython 限制执行环境
2. 仅暴露白名单API(禁止文件系统写操作、网络访问)
3. 设置执行超时(如30秒)
4. 禁用危险内置函数(__import__, open, eval, exec)
"""

import os
import re
import io
import contextlib
import textwrap
from typing import Optional, Tuple, List, Callable
from dataclasses import dataclass

import numpy as np
import pandas as pd
from openai import OpenAI


@dataclass
class DetectionRule:
    """异常检测规则"""
    code: str
    description: str
    f1_score: float = 0.0
    is_valid: bool = False


class ArgosAnomalyDetector:
    """
    Agentic时序异常检测器

    三Agent协作:
    1. Detection Agent: 生成异常检测规则
    2. Repair Agent: 修正语法错误
    3. Review Agent: 评估准确率
    """

    CODE_TEMPLATE = '''import numpy as np

def inference(sample: np.ndarray, threshold: float) -> np.ndarray:
    """
    检测时序数据中的异常点

    Args:
        sample: 时序样本,shape (n_samples, n_features)
        threshold: 异常检测阈值

    Returns:
        labels: 异常标签,1表示异常,0表示正常,shape (n_samples,)
    """
    values = sample[:, 0]  # 取第一个特征
    labels = np.zeros(len(values), dtype=int)

8. 论文来源

  • 2501.14170