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绕过, 自动化攻击, 自定义请求头, 虚假新闻检测