33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
"""RISK-008 代理人行为链扫描(建议 30min 周期;RISK_AGENT_BEHAVIOR_SCAN_MINUTES 可配)。
|
||||
|
|
|
|||
|
|
初期独立脚本 + 系统 cron;结构对齐 scripts/cron/escalation_scan.py:
|
|||
|
|
sys.path 引导 → new_trace → 扫描 → 打印 JSON 摘要(供 cron 日志 / 演示走查)。
|
|||
|
|
审计写库失败由 service 内降级留底,不阻塞下次扫描(红线 5 口径)。
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
from __future__ import annotations
|
|||
|
|
|
|||
|
|
import json
|
|||
|
|
import sys
|
|||
|
|
from pathlib import Path
|
|||
|
|
|
|||
|
|
# ① sys.path 引导项目根(escalation_scan 先例)
|
|||
|
|
ROOT = Path(__file__).resolve().parents[2]
|
|||
|
|
sys.path.insert(0, str(ROOT))
|
|||
|
|
|
|||
|
|
from app.service.risk.agent_behavior_service import scan_and_alert # noqa: E402
|
|||
|
|
from app.utils.trace import new_trace # noqa: E402
|
|||
|
|
|
|||
|
|
|
|||
|
|
def main() -> int:
|
|||
|
|
# ② 显式生成 trace(无 HTTP 上下文,service 内 current_trace 复用)
|
|||
|
|
new_trace()
|
|||
|
|
# ③ 扫描 → 打印 JSON 摘要
|
|||
|
|
summary = scan_and_alert()
|
|||
|
|
print(json.dumps(summary, ensure_ascii=False, default=str, indent=2))
|
|||
|
|
return 0
|
|||
|
|
|
|||
|
|
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
sys.exit(main())
|