dungnotnull/Clickbait-and-Fake-News-Detector-agent

GitHub: dungnotnull/Clickbait-and-Fake-News-Detector-agent

基于多 Agent 架构与规则引擎的生产级标题党和假新闻检测技能,支持离线确定性分析和可选的 LLM 深度验证。

Stars: 1 | Forks: 0

# 标题党与假新闻检测器 一个生产级、开源的 **skill**,用于检测标题党标题和假新闻文章。它采用多 Agent 分析流水线、基于规则的模式引擎、可选的 LLM 验证层以及加权评分引擎。 其确定性核心可以**在离线且无 LLM 的情况下运行**(纯模式模式),并能实现优雅降级;可选的 OpenAI/Anthropic 密钥可以通过每次运行的 token 预算管理和自动回退机制来深化分析。 ## 功能特性 - **多 Agent 架构**:思维链路由器将任务分发给五个专门的子 Agent(标题党、假新闻、来源可信度、情感分析、事实核查)。 - **Skill-Registry 工具**:Agent 通过 schema 验证的工具(Ajv)借助 `ToolRegistry` 进行调用,而不是直接调用辅助函数。 - **双重检测模式**:快速的基于规则的模式匹配 + 深度 LLM 分析,并根据 Agent 进行混合。 - **Token 与上下文管理**:每次运行的 `TokenBudget`、prompt 正文预览上限,以及在预算耗尽时的透明回退机制。 - **置信度评分**:带有置信区间和风险分类的加权评分(安全 -> 可疑 -> 极可能是标题党 -> 极可能是假新闻 -> 危险)。 - **灵活的输入**:支持 URL、原始文本、文件或结构化 JSON。 - **结构化输出**:机器可读的 JSON,包含 Agent 细分、证据、建议、置信区间、token 使用情况以及工具列表。 - **优雅降级**:工具/LLM/URL 获取/验证失败都会生成安全且可解释的报告。 - **类型安全的配置**:通过 JSON schema 验证的配置,支持 `CFND_*` 环境变量覆盖。 - **结构化日志**:可配置的级别/格式,支持 JSON 或文本。 - **生命周期钩子**:提供分析前、分析后以及错误处理程序钩子。 - **研究支撑**:每种启发式方法均可追溯至同行评审论文;参见 `RESEARCH-PAPER-KNOWLEDGE-BRAIN.md`(20 多篇论文)及 `analyze.research_features` 工具。 - **结果缓存**:可选的 TTL 结果缓存(以内容哈希为键),接入 `features.caching`,从而在批量摄取时跳过冗余工作。 - **生产级强化**:Prometheus 指标(`/metrics` 服务器)、LLM 速率限制 + 断路器、多语言检测(en/es/fr/de/it/pt)、可选的基于 embeddings 的标题/正文对齐,以及可插拔的内存/文件缓存后端。 - **经过测试**:124 个 `node:test` 测试(单元 + 集成 + 标记的评估语料库),可在 `tsx` 和编译后的 `dist/` 下通过。 ## 快速开始 ``` npm install npm run build # 分析来自 URL 的文章 node dist/scripts/analyze.js --url "https://example.com/article" # 从原始文本分析 node dist/scripts/analyze.js --text "You won't believe what happened next!" # 从文件分析(JSON 或纯文本) node dist/scripts/analyze.js --file ./article.txt # 作为文本摘要输出 node dist/scripts/analyze.js --headline "..." --body "..." --format text # 运行 Prometheus metrics server npm run metrics -- --port 9100 # or: node dist/scripts/metrics-server.js --port 9100 ``` 运行测试套件: ``` npm test # via tsx (source) npm run test:build # against compiled dist/ ``` ## 架构 ``` Input -> Pre-Analysis Hook -> Router Agent (CoT dispatch) +-> clickbait_detector (scan.patterns, analyze.text_stats, LLM) +-> fake_news_detector (scan.patterns, structural heuristics, LLM) +-> source_credibility_analyzer (credibility.lookup, LLM) +-> sentiment_analyzer (analyze.sentiment_lexicon, LLM) +-> fact_checker (extract.claims, LLM) -> Scoring Engine -> Post-Analysis Hook -> Report ``` 有关完整的系统图表,请参见 `assets/diagrams/architecture.md`;有关完整的 skill-registry 契约,请参见 `SKILL.md`。 ## 配置 配置通过 `config/default.json` 管理,支持环境变量覆盖(`CFND_*`),并由 `config/schema.json` 验证。关键变量如下: - `CFND_LLM_PROVIDER` - `openai` | `anthropic` | `none`(默认为 `none`) - `CFND_LLM_API_KEY` - 所选提供商的 API key - `CFND_LLM_MODEL` - 模型标识符 - `CFND_LLM_MAX_TOKENS_PER_RUN` - 每次运行的 token 预算(0 = 不限) - `CFND_LOG_LEVEL` - `debug` | `info` | `warn` | `error` - `CFND_OUTPUT_FORMAT` - `json` | `text` | `both` - `CFND_PARALLEL_AGENTS` - 并行运行 Agent - `CFND_URL_FETCHING` - 启用 URL 内容获取 - `CFND_LLM_RATE_LIMIT_PER_MIN` - 每分钟最大 LLM 请求数(0 = 不限) - `CFND_LLM_CIRCUIT_BREAKER_THRESHOLD` - 触发断路器的连续 LLM 失败次数(0 = 关闭) - `CFND_LLM_EMBEDDING_MODEL` - OpenAI embeddings 模型(留空 = 禁用) - `CFND_CACHE_BACKEND` - `memory` | `file` - `CFND_CACHE_DIR` - 文件缓存目录 ## 项目结构 ``` SKILL.md # Skill-registry contract & schemas PROJECT-detail.md # Mission, scope, design decisions PROJECT-DEVELOPMENT-PHASE-TRACKING.md # Phase tracker (100% complete) DEVELOPMENT-TRACKING.md # Working memory log RESEARCH-PAPER-KNOWLEDGE-BRAIN.md # Scientific grounding (20+ papers) config/ # Type-safe config + JSON schema scripts/ # pipeline, CLI, utils, ingestion, seed, setup hooks/ # pre/post-analysis + error handler tools/ # tool registry + tool definitions evals/ # node:test suite + fixtures + eval corpus references/ # domain knowledge & prompt templates assets/ # JSON schemas + system diagrams agents/ # sub-agent documentation ``` ## 编程式使用 ``` import { loadConfig } from './config/index.js'; import { AnalysisPipeline } from './scripts/pipeline.js'; const pipeline = new AnalysisPipeline(loadConfig()); const result = await pipeline.analyze({ headline: '...', body: '...' }); console.log(result.riskLevel, result.classification, result.overallScore); ``` ## 许可证 MIT - 详见 [LICENSE](LICENSE)。
标签:MITM代理, Naabu, Petitpotam, 人工智能, 内容安全, 多智能体, 标题党识别, 用户模式Hook绕过, 自动化攻击, 自定义请求头, 虚假新闻检测