关于 Faultline
Faultline 会将 AI 生成的文本拆分为事实主张,并依据证据逐项核查,供评估 AI 输出的团队使用。它提供 CLI 和 API 工作流,也可用于 CI 构建门禁。
主要功能
- 01提取并分类原子主张
- 02依据证据和置信度核查主张
- 03比较扫描结果并追踪判定变化
- 04根据风险和报告条件拦截 CI 构建
- 05导出 JSON、Markdown、HTML 和 SARIF 报告
- 06应用 YAML 规则和合规模板
适用场景
- 01核查 AI 生成报告中的事实主张
- 02风险超过阈值时使 CI 失败
- 03查看两次扫描之间的变化
- 04对文档集合应用策略检查
MCP 相关
项目包含 MCP 服务。设置 FAULTLINE_API_KEY 后,MCP 服务会通过托管 API 使用服务端提供方密钥运行扫描。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://faultline-api.fly.dev/mcpclaude mcp add --transport http nxtg-ai-faultline https://faultline-api.fly.dev/mcp{"mcpServers":{"nxtg-ai-faultline":{"type":"http","url":"https://faultline-api.fly.dev/mcp"}}}在 Cursor 中打开{"servers":{"nxtg-ai-faultline":{"type":"http","url":"https://faultline-api.fly.dev/mcp"}}}在 VS Code 中打开{"mcpServers":{"nxtg-ai-faultline":{"type":"http","url":"https://faultline-api.fly.dev/mcp"}}}{"mcpServers":{"nxtg-ai-faultline":{"serverUrl":"https://faultline-api.fly.dev/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://faultline-api.fly.dev/mcp需要授权工具
详细介绍
Faultline — 我们会核验 AI 输出的依据。
让你的 Agent 技术栈面向未来。与所有模型厂商无关:NXTG.ai 不构建 Faultline 所核验的模型。
Faultline 会将 AI 生成的输出拆解为原子化声明,逐条对照实时证据进行核验,并可根据核验结果使 CI 构建失败。
发布阶段:alpha。 目前可用,但仍有不少需要打磨之处。我们不宣称任何准确率:判定准确率尚未经过独立重新评估。1.0 版本发布前,任何内容都可能发生变化。
API 生成的治理记录
托管 API 提供三种以代码形式生成的治理记录:风险登记表导出(POST /scan/risk-register)、防篡改审计日志清单(GET /audit/log/manifest,仅限管理员密钥)以及人工签核记录(POST /scans/:id/approve、GET /scans/:id/approvals)。在清单中,每个链哈希都是条目哈希后接前一个链哈希所得到内容的 SHA-256。无需使用任何 Faultline 工具,你只需用 openssl dgst -sha256 就能重新计算整个哈希链。
当前状态(检查于 2026-10-01)
| 项目 | 状态 | 检查方式 |
|---|---|---|
| npm 上的 CLI | @nxtg/faultline 0.11.1 | npm view @nxtg/faultline version |
| 托管 API | https://faultline-api.fly.dev,版本 0.11.1 | curl https://faultline-api.fly.dev/health |
| Web 应用 | https://faultline.nxtg.ai(独立仓库 faultline-web,部署在 Vercel 上) | 2026-10-01 查看在线定价页面 |
| 套餐 | Free:每月 5 次扫描。Personal:$19/月,100 次扫描。Pro:$49/月,500 次扫描。Enterprise:定制,扫描额度在合同中设定 | https://faultline.nxtg.ai/pricing |
| 多模型共识 | 仅限 Enterprise。 对所有低于 Enterprise 套餐的调用方,API 都会在数据流打开前返回 403 consensus_not_in_plan | packages/api/src/plugins/consensus-entitlement.ts;fp 于 2026-10-01 在线检查(pro、personal 和 free 均返回 403,enterprise 返回 200,使用 mock provider) |
POST /critique | 需要 API 密钥。受速率限制。纳入 provider 支出上限,并记录到支出账本 | packages/api/src/routes/critique.ts |
| Provider 支出上限 | $100/月。账本会记录每次托管扫描和 critique。该机制默认未启用(设置 FAULTLINE_PROVIDER_SPEND_CAP=on 可启用),且在生产环境中处于关闭状态 | docs/provider-spend-cap.md;2026-10-01 的 GET /usage 显示 providerBudget.enforced=false |
| 每个密钥的月度扫描上限(API 端) | 未启用(FAULTLINE_USAGE_CAP)。上方的套餐限额由 faultline-web 强制执行 | docs/usage-cap.md |
功能介绍
| 能力 | 描述 |
|---|---|
| 原子化声明提取 | 将 AI 输出拆解为事实/观点/解读,并评估重要性 |
| 逐条声明验证 | 判定结果:支持/矛盾/混合/未验证,并提供置信度评分 |
| 扫描对比 | POST /scan/compare + faultline compare — 新增/移除的声明、判定结果变化、信任评分变化 |
| CI 门禁 | faultline compliance-report --ci:当扫描的总体风险为高或严重、报告中的文章检查未通过、报告的领域清单项未通过,或报告评分低于 --threshold 时,退出码为 1;--strict 还会在文章检查部分通过以及清单项未经评估时判定失败。否则退出码为 0 |
| 最弱环节检测 | 逐条声明脆弱性评分 — 找出最削弱论证的声明 |
| 声明依赖关系图 | Mermaid 和 Graphviz DOT 可视化 |
| 规则引擎 | 使用 YAML 定义规则;内置 PII、偏见、毒性规则集 |
| CI 门禁 | --fail-on high 返回退出码 1;支持输出 SARIF,供 GitHub Code Scanning 使用 |
| 企业级 API | REST API(约 190 个路由),包含密钥管理、审计跟踪、速率限制、webhook、批量扫描和缓存 |
| 提供商故障转移 | 自动按 Gemini → OpenAI → Claude → Perplexity 顺序切换;熔断器冷却时间为 5 分钟 |
| 监控 | GET /health/deep、GET /metrics(Prometheus)、GET /status(HTML 仪表板) |
| 定时任务 | POST /jobs — 按 cron 计划定期扫描,并通过 webhook 发送结果 |
| 集成 | Python 客户端源码位于 sdks/python,MCP 服务位于 packages/mcp,Terraform 提供程序位于 packages/terraform-provider,GitHub Action 为 nxtg-ai/faultline-action(参见 SDK 和集成) |
| 多租户 | 租户 CRUD、API 密钥关联、按租户汇总用量 |
| 成本跟踪 | 估算每次扫描的 token 数和成本;GET /costs 支持按提供商/租户/日期筛选 |
| 扫描历史 | GET /scans/search — 对 API 密钥过往扫描进行全文搜索(管理员密钥:搜索全部),支持游标分页 |
| 规则模板(HIPAA、SOX、FERPA、Gov) | HIPAA / SOX / FERPA / Gov 模板;POST /scan/compliance/:template |
| 批量导入 | POST /scan/bulk — 上传 ZIP 格式的文档,创建异步任务;使用 GET /jobs/:id/progress 查看进度 |
| Swagger UI | GET /docs — 交互式 OpenAPI 3.0 规范,每个端点均可试用 |
| 声明可解释性 | GET /claims/:id/explain — 推理链、发现的证据、可执行的建议 |
| 扫描差异 | POST /scan/diff — 扫描两段文本,生成内联差异(新增/移除/更改/未更改) |
| 截止日期列表 | GET /compliance/deadlines — 列出即将到来的法规日期及距每个日期的天数;不进行评估 |
| 截止日期关键词检查 | POST /compliance/scan-check — 将声明文本与关联到这些日期的关键词匹配 |
| 国际化 | Accept-Language: es/fr/en — 本地化错误消息和报告标签(EN/ES/FR) |
| 基于属性的测试 | fast-check oracle 覆盖:置信度边界、去重不变量、成本汇总、排序稳定性 |
| GDPR 数据请求(第 15 条导出、第 17 条删除) | 第 15 条导出(GET /tenants/:id/export → ZIP)+ 第 17 条删除(DELETE /tenants/:id/data),涵盖扫描历史、审计日志、通知、webhook、成本和计划任务 |
| 多模型共识 | 使用 pipelineConfig.consensus: true 调用 POST /scan/stream。仅限企业版,由服务端强制执行(企业版以下返回 403) |
| 声明批评 | POST /critique:针对未通过的声明提供批评和改进后的提示词;适用 API 密钥、速率限制和提供商支出上限 |
| 实时扫描流式传输 | GET /scan/stream?text=...&provider=mock — 服务器发送事件;通过 onClaimVerified 回调逐条渐进式传送已验证声明;依次流式传送 start → claim_verified × N → complete;无需轮询 |
| 经变异测试的核心代码 | Stryker 门禁(CRUCIBLE Gate 6,阈值 80%):cli/scan.ts 81.97%,stream.ts 88.64%,compliance-report.ts 80.81%,GDPR 存储为 80.94% 至 96.81%。根据 docs/mutation-testing.md,最近测量时间为 2026-03-21 至 2026-04-17;此后未重新运行 |
功能
提供方
| 提供方 | 所需项 | 适用场景 |
|---|---|---|
| Gemini | GEMINI_API_KEY | 实时联网验证(可获取免费密钥) |
| Perplexity | PERPLEXITY_API_KEY | 基于实时搜索的验证 |
| OpenAI | OPENAI_API_KEY | 训练数据验证、GPT 生态系统 |
| Claude | ANTHROPIC_API_KEY | 训练数据验证、注重推理的文档 |
| Mock | 无 | CI 流水线、单元测试、离线开发。返回合成判定,不验证任何内容;CLI 不会静默回退到此提供方 |
使用 --provider <name> 切换提供方。无需修改代码。如果没有提供方密钥,也没有设置 FAULTLINE_API_KEY,CLI 会提示未检查任何内容并退出,而不是捏造判定(自 v0.10.1 起)。设置 FAULTLINE_API_KEY 后,guard 和 MCP 服务会通过托管 API 执行扫描,并使用服务端提供方密钥。
文档摄取
- PDF 和图像上传并进行 OCR —
faultline scan --file document.pdf或POST /scan/upload;由pdf-parse+tesseract.js提供支持 - 文本文件 —
--input doc.txt - 目录 —
--dir ./docs --glob "*.md"
报告和规则
- 扫描报告(PDF),通过
POST /scan/report生成 - 规则引擎 — 使用 YAML 定义的规则:PII 检测、偏见指标、毒性标记、自定义规则
输出格式
json— 程序化处理、CI 流水线markdown— PR、报告、文档html— 可在浏览器中查看的审计报告sarif— VS Code Problems 面板、GitHub Code Scanning(--sarif简写会写入results.sarif)
企业级 API
- API 密钥管理 — 完整生命周期:
POST /keys、GET /keys、GET /keys/:id、PATCH /keys/:id、DELETE /keys/:id;软禁用/启用;范围权限(scan / report / upload / admin / pro) - 密钥卫生管理 — 检测休眠密钥(
GET /keys/dormant)、到期通知(7d/1d 阈值)、批量删除/禁用/启用、使用情况分析(GET /keys/usage)、卫生管理仪表板(GET /keys/usage/view) - 审计跟踪 — 每次请求都会记录 SHA-256 输入哈希;
GET /audit/log(查询 + 筛选)、GET /audit/log/stats、GET /audit/log/export(NDJSON);按租户限定视图 - 使用量计量:通过
GET /usage查看每个密钥的每日扫描次数和月度配额使用情况(管理员密钥还可查看服务提供商支出预算) - 速率限制 — 按层级设置每分钟限制:free 为 10/min,pro 为 100/min,admin 为 10,000/min;提供
X-RateLimit-*标头 - 支出与配额门控:每个密钥的月度扫描配额(
402)和全体服务提供商支出上限(503)默认均未启用;无论是否启用,支出台账都会记录每次托管扫描和/critique调用 - 多租户 — 租户 CRUD(
POST /tenants);所有资源均按租户限定:扫描历史、通知、webhook、审计日志;GET /tenants/:id/usage - 成本跟踪 — 按服务提供商费率估算每次扫描的令牌数/成本;
GET /costs(按 keyId/provider/date 筛选 + 汇总) - 使用情况仪表板 —
GET /dashboard:实时扫描动态、服务提供商健康状态、活跃密钥、扫描次数(今天/本周/本月)、风险分布 - Webhooks —
POST /webhooks;scan.complete/scan.failed/job.complete事件;HMAC-SHA256 签名;每个 webhook 的重试配置(maxAttempts 1–5、retryDelayMs);速率限制(FAULTLINE_WEBHOOK_RATE_LIMIT);熔断器(FAULTLINE_WEBHOOK_CIRCUIT_THRESHOLD/COOLDOWN_MS);投递日志 + 仪表板 - 批量扫描 —
POST /scan/batch(1–10 段文本,并发处理,部分失败语义);参见 docs/ci-integration.md - 扫描比较 —
POST /scan/compare:比较两项扫描结果的差异(新增/移除的声明、判定变化、信任评分差值) - 缓存 — SHA-256 内容哈希缓存;TTL 为 24h(环境变量
FAULTLINE_CACHE_TTL_MS);X-Cache: HIT/MISS标头;GET /cache/stats、DELETE /cache - 计划任务 —
POST /jobs:按*/N * * * *cron 计划定期扫描;结果发送到webhookUrl - 服务提供商故障转移 — 自动按 Gemini → OpenAI → Claude → Perplexity → Mock 的顺序切换;失败 5 次后触发熔断器,5 分钟后重置;所有服务提供商均不可用时返回
503 - 扫描历史 — 每个 API 密钥的历史彼此隔离(管理员密钥可查看全部);
GET /scans/search?q=全文搜索;检测过期扫描(GET /scans/stale);使用情况分析(GET /scans/usage);批量清理(DELETE /scans/stale);卫生管理仪表板;faultline scansCLI - 规则模板(HIPAA、SOX、FERPA、Gov) — HIPAA / SOX+FINRA / FERPA / Government;
POST /scan/compliance/:template;支持上传自定义模板 - 批量导入 —
POST /scan/bulk(文档 ZIP → 异步任务);GET /jobs/:id/progress(百分比 + 单文件状态 + 摘要) - 监控 —
GET /health/deep(子系统状态 + 服务提供商配置标志)、GET /metrics(Prometheus 文本)、GET /status(HTML) - Swagger UI —
GET /docs(交互式 OpenAPI 3.0)、GET /docs/json、GET /docs/yaml - 声明搜索 —
GET /claims?text=&verdict=&from=&to=&source=全文搜索声明索引 - GDPR 数据请求(第 15 条导出、第 17 条删除) —
GET /tenants/:id/export(第 15 条,需管理员权限):ZIP 归档,包含清单、扫描历史、审计日志(NDJSON)、通知、webhook、使用情况、成本、计划任务;DELETE /tenants/:id/data(第 17 条,需管理员权限):删除某租户在 8 类数据中的所有个人身份信息(PII);具备幂等性;保留租户记录 - 国际化 — 发送
Accept-Language: es或Accept-Language: fr以获取本地化错误消息;默认使用英语
快速开始(CLI)
步骤 1: 获取免费的 Gemini 密钥(无需信用卡):aistudio.google.com/apikey
步骤 2:
export GEMINI_API_KEY="your-key"
npx @nxtg/faultline scan --input your-ai-output.txt --provider gemini
预期输出(节选):
Provider: Google Gemini
Overall Risk: HIGH
--- Claim Verifications ---
[OK] c1: supported — Confirmed by census data. (confidence: 0.82)
[!!] c2: contradicted — Audit found significant bias. (confidence: 0.91)
[??] c3: mixed — Evidence varies by region. (confidence: 0.63)
其他提供商:
export ANTHROPIC_API_KEY="..."
npx @nxtg/faultline scan --input doc.txt --provider claude
export OPENAI_API_KEY="..."
npx @nxtg/faultline scan --input doc.txt --provider openai
export PERPLEXITY_API_KEY="..."
npx @nxtg/faultline scan --input doc.txt --provider perplexity
扫描 PDF 或图像:
npx @nxtg/faultline scan --file report.pdf --provider gemini
npx @nxtg/faultline scan --file screenshot.png --provider gemini
检查通过管道传入的 Agent 输出:
claude -p "..." | npx @nxtg/faultline guard --fail-on refuted
CI 门禁(无需 API 密钥,使用合成判定结果,仅测试接线):
npx @nxtg/faultline scan --input doc.txt --provider mock --fail-on high
# exit 0 = pass, exit 1 = HIGH or CRITICAL findings found
# --provider mock verifies nothing; use a real provider for a real gate
API 快速开始
启动服务:
cd packages/api
FAULTLINE_API_KEY=your-key npm run dev
# Server listening on http://localhost:3010
扫描文本载荷:
curl -X POST http://localhost:3010/scan \
-H "x-api-key: your-key" \
-H "Content-Type: application/json" \
-d '{"text": "GPT-4 has 1 trillion parameters.", "provider": "mock"}'
上传 PDF 或图像进行 OCR 扫描:
curl -X POST http://localhost:3010/scan/upload \
-H "x-api-key: your-key" \
-F "[email protected]"
生成扫描结果的 PDF 报告:
curl -X POST http://localhost:3010/scan/report \
-H "x-api-key: your-key" \
-H "Content-Type: application/json" \
-d '{"text": "AI system processes medical records.", "provider": "mock"}' \
--output scan-report.pdf
创建 API 密钥:
curl -X POST http://localhost:3010/keys \
-H "x-api-key: your-admin-key" \
-H "Content-Type: application/json" \
-d '{"name": "ci-pipeline", "tier": "pro", "permissions": ["scan", "report"]}'
注册 webhook:
curl -X POST http://localhost:3010/webhooks \
-H "x-api-key: your-admin-key" \
-H "Content-Type: application/json" \
-d '{"url": "https://your-service.example.com/hooks/faultline", "events": ["scan.complete"]}'
查看使用情况仪表板:
curl http://localhost:3010/dashboard -H "x-api-key: your-key"
托管 API:https://faultline-api.fly.dev(GET /health 无需密钥)。运行中的服务可通过 GET /docs 访问交互式文档。
检查共识门控(需要 API 密钥;mock 提供商不会产生任何费用):
curl -X POST http://localhost:3010/scan/stream \
-H "x-api-key: your-key" -H "Content-Type: application/json" \
-d '{"text": "x", "provider": "mock", "pipelineConfig": {"consensus": true}}'
# below Enterprise: 403 {"error":"consensus_not_in_plan", ...}
路由参考:packages/api/README.md。packages/api/docs/openapi.yaml 中的规范声明版本为 0.7.0,包含 48 个路径,因此仅覆盖当前路由的一部分。
架构
Input: AI-generated text / PDF / image
│
▼ Extract
Atomic claims (fact / opinion / interpretation, importance 1–5)
│
▼ Verify
Per-claim verdict (supported / contradicted / mixed / unverified)
Confidence score (0.0–1.0)
│
▼ Synthesize
Weakest-link detection — which claim collapses the argument?
Claim dependency graph — how do failures propagate?
│
▼ Refine
Critique of failed claims + improved prompt generation
Monorepo 目录结构:
packages/
├── cli/ # @nxtg/faultline (npm 0.11.1): CLI + scan engine
│ ├── cli/ # Commands: scan, guard, report, watch, critique, graph, weakest, compare…
│ ├── providers/ # Gemini, Claude, OpenAI, Perplexity, Mock adapters
│ ├── compliance/ # EU AI Act risk categories
│ ├── rules/ # Rule engine (PII, bias, shell injection…)
│ ├── analysis/ # Weakest-link scoring, claim graph
│ ├── history/ # Scan history store
│ ├── consensus/ # Multi-model consensus engine
│ └── templates/ # Red-team prompt template library
├── api/ # @nxtg/faultline-api (not published to npm): Fastify v5 REST API, deployed on Fly
│ ├── src/routes/ # /scan, /scan/stream, /critique, /keys, /usage, /jobs…
│ ├── src/store/ # KeyStore, AuditLogger, CircuitBreaker, ScanCache, provider-spend ledger…
│ ├── src/plugins/ # Auth, rate limit, usage cap, provider-spend cap, consensus entitlement
│ └── docs/ # openapi.yaml (partial, version 0.7.0)
├── mcp/ # @nxtg/faultline-mcp 0.12.1: MCP server (not on npm as of 2026-10-01)
├── terraform-provider/ # Go Terraform provider
└── web/ # @nxtg/faultline-web: original React/Vite visualization app (Kaggle origin)
sdks/
└── python/ # Python client source (pyproject name faultline-sdk 0.5.0; not confirmed on PyPI, see SDKs)
位于 https://faultline.nxtg.ai 的生产 Web 应用是一个独立仓库(faultline-web,使用 Vercel 上的 Next.js)。它不属于此 monorepo。
存储(API 层):
| 存储 | 职责 |
|---|---|
KeyStore | API 密钥 CRUD、权限范围控制 |
AuditLogger | SHA-256 请求哈希、仅追加日志 |
UsageMeter | 每个密钥的每日扫描次数 |
ScanAnalytics | 汇总风险分布、趋势数据 |
RateLimiter | 每个层级每分钟的限流 |
WebhookStore | 端点注册、HMAC 密钥管理 |
ScanCache | SHA-256 内容哈希缓存、可配置 TTL、命中率统计 |
CircuitBreaker | 按提供商统计故障次数、冷却管理 |
JobStore + JobScheduler | 定期扫描任务 CRUD、基于 cron 的后台执行 |
TenantStore | 租户 CRUD、API 密钥 → 租户关联 |
CostStore | 每次扫描的令牌数/费用记录、提供商费率表、汇总查询 |
ProviderSpend(store/provider-spend.ts) | 仅追加的 USD 账本和月度汇总,用于执行每月 100 美元的提供商支出上限 |
ScanHistoryStore | 最近 1000 次扫描(最新在前)、全文与筛选搜索、游标分页 |
ComplianceTemplateStore | HIPAA/SOX/FERPA/Gov 模板 + 自定义模板注册表 |
BulkJobStore | 异步 ZIP 扫描任务:进度跟踪、逐文件结果、摘要报告 |
CLI 命令
# Scan
faultline scan --input doc.txt --provider gemini
faultline scan --input doc.txt --provider claude --output-format markdown
faultline scan --input doc.txt --sarif # writes results.sarif
faultline scan --input doc.txt --fail-on high # exit 1 if high/critical
faultline scan --file document.pdf # PDF/image via OCR
faultline scan --dir ./docs --glob "*.md" # batch scan directory
# Compare two texts side-by-side
faultline compare --before "old-doc.txt" --after "new-doc.txt" --provider mock
faultline compare --before "old text" --after "new text" --output-format json
# Forensics
faultline weakest --input doc.txt --provider gemini # weakest-link claim
faultline graph --input doc.txt --format mermaid # claim dependency graph
faultline critique --input doc.txt --provider gemini # critique + improved prompt
# Agent output
claude -p "..." | faultline guard --fail-on refuted # verify piped text, gate on the verdict
# Red-team
faultline scan --templates injection,bias # template library
faultline templates list --category injection
# History + trends
faultline history
faultline trend --file doc.txt
# Utilities
faultline stats # npm download stats
faultline stats --costs --api-url http://localhost:3010 --api-key <key>
faultline rules # list detection rules
faultline init # generate .faultlinerc.json
faultline --version
faultline --help
SDK 和集成
TypeScript / Node.js
此仓库中没有 TypeScript SDK 包,且 @nxtg/faultline-sdk 未发布到 npm(npm view 于 2026-10-01 返回 404)。可直接调用 REST API,或使用 CLI(@nxtg/faultline)。
const res = await fetch('https://faultline-api.fly.dev/scan', {
method: 'POST',
headers: { 'x-api-key': process.env.FAULTLINE_API_KEY!, 'Content-Type': 'application/json' },
body: JSON.stringify({ text: 'GPT-4 has 1 trillion parameters.', provider: 'gemini' }),
});
const result = await res.json();
console.log(result.overallRisk); // 'low' | 'medium' | 'high' | 'critical'
Python
源代码位于 sdks/python(pyproject 名称为 faultline-sdk,版本 0.5.0,运行时依赖为零)。从代码检出目录安装:
pip install ./sdks/python
不要运行 pip install faultline-sdk。截至 2026-10-01,PyPI 上的该名称(版本 0.24.0)属于无关项目(“Faultline Cloud”的 ML 训练检查点)。尚未核实此软件包是否曾以其他名称发布到 PyPI。
from faultline_sdk import FaultlineClient
client = FaultlineClient(api_key="your-key", base_url="http://localhost:3010")
result = client.scan("GPT-4 has 1 trillion parameters.")
print(result.overall_risk) # 'low' | 'medium' | 'high' | 'critical'
MCP 服务
packages/mcp(@nxtg/faultline-mcp 0.12.1)向 Claude Code、Cursor 和其他 MCP 客户端提供 verify_claims 工具。截至 2026-10-01,该包尚未发布到 npm(npm view 返回 404),因此请从代码检出目录运行。请参阅 packages/mcp/README.md。
托管版本,无需安装:部署到 https://faultline-api.fly.dev/mcp 后,API 会通过 POST /mcp 提供相同的工具(Streamable HTTP,标头 x-api-key);每次扫描都会应用门控。请参阅 docs/INTEGRATION.md §13。
GitHub Action
该 Action 位于独立仓库 nxtg-ai/faultline-action(已存在标签 v1)。
- uses: nxtg-ai/faultline-action@v1
with:
input: docs/release-notes.md
fail-on: high
env:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
CI 集成
请参阅 docs/ci-integration.md,了解:
- GitHub Actions 工作流(真实提供方 + 模拟提供方)
- GitLab CI 示例
- 针对暂存文件的 pre-commit 钩子
- 使用 CI 门禁逻辑的基于 API 的批量扫描
- 风险等级参考表
GitHub Actions 快速示例:
- name: Faultline Claim Audit
env:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
run: |
npx @nxtg/faultline scan \
--input docs/release-notes.md \
--provider gemini \
--fail-on high \
--output-format sarif > results.sarif
有何不同
Promptfoo 测试你的提示词。DeepEval 为你的 RAG 流水线评分。Faultline 审计 AI 实际说了什么。
| Faultline | Promptfoo | DeepEval | |
|---|---|---|---|
| 将 AI 输出分解为原子声明 | 是 | 否 | 否 |
| 根据实时证据验证声明 | 是 | 否 | 否 |
| 针对每项声明进行置信度校准 | 是 | 否 | 否 |
| 检测最薄弱环节 | 是 | 否 | 否 |
| 声明依赖关系图 | 是 | 否 | 否 |
| 扫描对比(对比两项输出) | 是 | 否 | 否 |
| 与 FM 无关(Gemini / Claude / OpenAI / Perplexity) | 是 | 是 | 否(Python) |
| 提供方自动故障切换 + 断路器 | 是 | 否 | 否 |
| 带审计跟踪 + 缓存的企业级 API | 是 | 否 | 否 |
| Python 客户端 + MCP 服务 | 是 | 否 | 否 |
测试与质量
2026-10-01 在每个软件包中通过 npx vitest run 测得(全部通过):
| 软件包 | 测试文件 | 测试 |
|---|---|---|
packages/api | 137 | 2,450 |
packages/cli | 83 | 2,371 |
packages/mcp | 3 | 49 |
packages/web | 1 | 39 |
根目录 npm test(以上全部) | 224 | 4,909 |
sdks/python(pytest) | n/a | 100 |
变异测试分数列于上方的功能表中,且未在 2026-10-01 重新测量。
由 NextGen AI 构建
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。