
Faultline
io.github.nxtg-ai由 GitHub 账号 nxtg-ai 发布v0.12.1更新于 Nov 6, 2026
Checks the most important factual claims in AI output against live web sources by default.
概览
Faultline 将 AI 生成内容拆解为原子论断,对照实时网络来源逐条核查,给出判定、置信度与整体风险等级。
- 可以做什么
- 核查论断:把 AI 输出拆成原子论断,逐条对照实时证据,返回支持、反驳、混合或未核实及置信度
- 评估风险:给出整体风险等级,并找出最削弱论证的“最弱一环”论断
- 对比与点评:比较两段文本或两次扫描的新增、删除与判定变化,并对失败论断给出点评和改进提示词
- 扫描文档:提交文本、PDF 或图片(含 OCR),结果可输出为 JSON、markdown、HTML 或 SARIF
- CI 门禁:风险为高或严重、或报告分数低于阈值时让构建失败
- 适用场景
- 适合在 AI 生成的事实性内容发布、交付或合并前需要核查时使用,也适合为 AI 撰写的发布说明、报告和文档设置自动门禁。需要逐条证据与置信度而非单一通过/失败评分的流水线同样适用。
- 运行要求
- 需要远程 Streamable HTTP 端点,清单指向托管 API,README 另说明同一主机上的托管 MCP 路由。必须提供 Faultline API 密钥,通过 X-API-Key 请求头发送。扫描在托管服务上用服务端供应商密钥执行,受套餐额度限制(免费版每月 5 次扫描)。
安装
在 SourceWeft 中
- 打开 控制台中的 Faultline,将其添加到工作区。
- 连接 X-API-Key 凭据。它们会被私密存储,绝不会在公开页面上展示。
- 为需要使用其工具的对话启用该服务。
Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。
交给智能体安装
把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。
阅读 https://sourceweft.com/mcp/io.github.nxtg-ai%2Ffaultline/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。其他 MCP 客户端
把它添加到你客户端的 mcpServers 配置中。
{
"mcpServers": {
"faultline": {
"type": "http",
"url": "https://faultline-api.fly.dev/mcp",
"headers": {
"X-API-Key": "<YOUR_API_KEY>"
}
}
}
}README
Faultline — We check the receipts on AI output.
Future-proof your agent stack. Independent of every model vendor: NXTG.ai does not build the models Faultline checks.
Faultline decomposes AI-generated output into atomic claims, verifies each against live evidence, and can fail a CI build on the result.
[Release stage: alpha] [CI] [npm] [Tests] [TypeScript] [License]
Release stage: alpha. Usable today, with sharp edges. No accuracy figure is claimed: verdict accuracy has not yet been re-graded independently. Anything may change before 1.0.
Governance records the API produces
The hosted API ships three governance records as code: a risk register export (POST /scan/risk-register), a tamper-evident audit log manifest (GET /audit/log/manifest, admin keys only), and human sign-off records (POST /scans/:id/approve, GET /scans/:id/approvals). In the manifest, each chain hash is the SHA-256 of the entry hash followed by the previous chain hash. You can recompute the chain with openssl dgst -sha256 alone, with no Faultline tooling.
Current Status (checked 2026-10-01)
What It Does
Features
Providers
Switch providers with --provider <name>. No code changes required. With no provider key and no FAULTLINE_API_KEY, the CLI says nothing was checked and exits instead of inventing a verdict (since v0.10.1). With FAULTLINE_API_KEY set, guard and the MCP server run the scan on the hosted API with server-side provider keys.
Document Ingestion
- PDF + image upload with OCR —
faultline scan --file document.pdforPOST /scan/upload; powered bypdf-parse+tesseract.js - Text files —
--input doc.txt - Directories —
--dir ./docs --glob "*.md"
Reports and Rules
- Scan reports (PDF) via
POST /scan/report - Rules engine — YAML-defined rules: PII detection, bias indicators, toxicity flags, custom rules
Output Formats
json— programmatic processing, CI pipelinesmarkdown— PRs, reports, documentationhtml— browser-readable audit reportssarif— VS Code Problems panel, GitHub Code Scanning (--sarifshorthand writesresults.sarif)
Enterprise API
- API key management — full lifecycle:
POST /keys,GET /keys,GET /keys/:id,PATCH /keys/:id,DELETE /keys/:id; soft-disable/enable; scoped permissions (scan / report / upload / admin / pro) - Key hygiene — dormant key detection (
GET /keys/dormant), expiry notifications (7d/1d thresholds), bulk delete/disable/enable, usage analytics (GET /keys/usage), hygiene dashboard (GET /keys/usage/view) - Audit trail — SHA-256 input hash logged on every request;
GET /audit/log(query + filter),GET /audit/log/stats,GET /audit/log/export(NDJSON); tenant-scoped view - Usage metering: per-key daily scan counts and monthly quota position via
GET /usage(admin keys also see the provider-spend budget) - Rate limiting — per-tier per-minute limits: free 10/min, pro 100/min, admin 10,000/min;
X-RateLimit-*headers - Spend and quota gates: a per-key monthly scan quota (
402) and a fleet provider-spend cap (503), both dormant until switched on; the spend ledger records every managed scan and/critiquecall either way - Multi-tenant — tenant CRUD (
POST /tenants); all resources scoped by tenant: scan history, notifications, webhooks, audit log;GET /tenants/:id/usage - Cost tracking — per-scan token/cost estimates by provider rate;
GET /costs(keyId/provider/date filters + aggregate) - Usage dashboard —
GET /dashboard: live scan feed, provider health, active keys, scan counts (today/week/month), risk distribution - Webhooks —
POST /webhooks;scan.complete/scan.failed/job.completeevents; HMAC-SHA256 signing; per-webhook retry config (maxAttempts 1–5, retryDelayMs); rate limiting (FAULTLINE_WEBHOOK_RATE_LIMIT); circuit breaker (FAULTLINE_WEBHOOK_CIRCUIT_THRESHOLD/COOLDOWN_MS); delivery log + dashboard - Batch scanning —
POST /scan/batch(1–10 texts, concurrent, partial failure semantics); see docs/ci-integration.md - Scan comparison —
POST /scan/compare: diff two scan results (new/removed claims, verdict changes, trust score delta) - Caching — SHA-256 content-hash cache; 24h TTL (env
FAULTLINE_CACHE_TTL_MS);X-Cache: HIT/MISSheader;GET /cache/stats,DELETE /cache - Scheduled jobs —
POST /jobs: recurring scans on a*/N * * * *cron schedule; results dispatched towebhookUrl - Provider failover — automatic chain Gemini → OpenAI → Claude → Perplexity → Mock; circuit breaker trips after 5 failures, resets after 5 minutes;
503when all providers down - Scan history — private per API key (the admin key sees all);
GET /scans/search?q=full-text; stale scan detection (GET /scans/stale); usage analytics (GET /scans/usage); bulk pruning (DELETE /scans/stale); hygiene dashboard;faultline scansCLI - Rule templates (HIPAA, SOX, FERPA, Gov) — HIPAA / SOX+FINRA / FERPA / Government;
POST /scan/compliance/:template; custom template upload - Bulk import —
POST /scan/bulk(ZIP of documents → async job);GET /jobs/:id/progress(percentage + per-file status + summary) - Monitoring —
GET /health/deep(subsystem status + provider config flags),GET /metrics(Prometheus text),GET /status(HTML) - Swagger UI —
GET /docs(interactive OpenAPI 3.0),GET /docs/json,GET /docs/yaml - Claim search —
GET /claims?text=&verdict=&from=&to=&source=full-text claim index search - GDPR data requests (Article 15 export, Article 17 erasure) —
GET /tenants/:id/export(Article 15, admin-gated): ZIP archive with manifest, scan-history, audit-log (NDJSON), notifications, webhooks, usage, costs, schedules;DELETE /tenants/:id/data(Article 17, admin-gated): erases all PII across 8 data categories for a tenant; idempotent; tenant record preserved - i18n — send
Accept-Language: esorAccept-Language: frfor localized error messages; defaults to English
Quick Start (CLI)
Step 1: Get a free Gemini key (no credit card): aistudio.google.com/apikey
Step 2:
Expected output (excerpt):
Other providers:
Scan a PDF or image:
Check piped agent output:
CI gate (no API key required, synthetic verdicts, wiring test only):
API Quick Start
Start the server:
Scan a text payload:
Upload a PDF or image for OCR scanning:
Generate a PDF report of a scan:
Create an API key:
Register a webhook:
View the usage dashboard:
Hosted API: https://faultline-api.fly.dev (GET /health needs no key). Interactive docs at GET /docs on a running server.
Check consensus gating (needs an API key; the mock provider spends nothing):
Route reference: packages/api/README.md. The spec at packages/api/docs/openapi.yaml declares version 0.7.0 and has 48 paths, so it covers only part of the current routes.
Architecture
Monorepo layout:
The production web app at https://faultline.nxtg.ai is a separate repo (faultline-web, Next.js on Vercel). It is not in this monorepo.
Stores (API layer):
CLI Commands
SDKs and Integrations
TypeScript / Node.js
There is no TypeScript SDK package in this repo and @nxtg/faultline-sdk is not on npm (npm view returned 404 on 2026-10-01). Call the REST API directly, or use the CLI (@nxtg/faultline).
Python
Source is in sdks/python (pyproject name faultline-sdk, version 0.5.0, zero runtime dependencies). Install from a checkout:
Do not run pip install faultline-sdk. On 2026-10-01 that name on PyPI (version 0.24.0) is an unrelated project (ML training checkpoints for "Faultline Cloud"). Whether this package was ever published to PyPI under a different name was not verified.
MCP server
packages/mcp (@nxtg/faultline-mcp 0.12.1) exposes a verify_claims tool to Claude Code, Cursor and other MCP clients. It was not published to npm as of 2026-10-01 (npm view returned 404), so run it from a checkout. See packages/mcp/README.md.
Hosted, with nothing to install: the API serves the same tool at POST /mcp (Streamable HTTP, header x-api-key), once deployed at https://faultline-api.fly.dev/mcp; every scan gate applies. See docs/INTEGRATION.md §13.
GitHub Action
The action lives in its own repo, nxtg-ai/faultline-action (tag v1 exists).
CI Integration
See docs/ci-integration.md for:
- GitHub Actions workflow (real provider + mock)
- GitLab CI example
- Pre-commit hook for staged files
- API-based batch scanning with CI gate logic
- Risk level reference table
Quick GitHub Actions example:
What Makes This Different
Promptfoo tests your prompts. DeepEval scores your RAG pipeline. Faultline audits what the AI actually said.
Tests and Quality
Measured 2026-10-01 with npx vitest run in each package (all passing):
Mutation scores are listed in the feature table above and were not re-measured on 2026-10-01.
Built by NextGen AI
来源:README.md,提交 21a2c14
工具
0版本历史
1- v0.12.1最新Nov 6, 2026
评分
已满足适用检查项的 85%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通必需25 分
- 已声明认证方式必需10 分
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分