xerify-cli
v0.3.1
Published
Verify before you trust. Cross-provider verification with LLMs and Jev. CLI, library, MCP.
Maintainers
Readme
Xerify 是一个面向 shell 的开源工具,用于有边界的跨提供方提问和验证。它可以使用本机已登录的官方提供方 CLI、直接 API,或显式配置的可执行程序。CLI、JavaScript/TypeScript 库、本地 STDIO MCP 与 Streamable HTTP MCP 共用同一套核心逻辑和 Schema。
Xerify 由 Verhex 开发和维护,并接受社区贡献,以 MIT 许可证发布。它是 Deckent(Verhex 的智能体操作系统)的跨提供方验证层,在本仓库中作为独立工具发布——Xerify 可以独立运行,不依赖 Deckent。它提供的是第二意见,而不是形式化证明、安全认证或真相保证。提供方输出始终被视为不可信数据,绝不会被直接执行。
Xerify 0.3.0 在 LLM 验证之外新增 Jev 类型化决策。经所有者批准,一次宣传文案检查和另外十个 Jev 实时场景均符合预期。请参阅测试结果。这些是集成验证,不是模型通用准确率基准。
Xerify 是面向 AI 系统、独立于模型的验证层:有界证据、不同的调用提供方以及类型化结果。LLM 验证器和 Jev 决策共用 CLI、库和 MCP 合约。
Jev 已作为默认 jev 适配器集成,提供方身份为 typesafe。--to jev 选择 typesafe:jev-latest;--to jev:MODEL_ID 选择具体模型。Jev 仅支持 verify。概率、confidence、返回的模型和策略保存在可选的 decision 字段中。低于配置阈值时,Xerify 返回 unclear。Jev 不生成解释或证据引用。
安装
首次公开发布到 npm 后:
npm install --global xerify-cli@latest
xerify --version
xerify --json health
xerify init固定为项目开发依赖:
npm install --save-dev --save-exact [email protected]
npx xerify --version不保存依赖直接运行:
npx --yes --package=xerify-cli@latest xerify --json health需要 Node.js 20 或更高版本;Node.js 24 是主要发布环境。请阅读简体中文用户指南和规范的英文安装文档。
快速开始
请求开放式第二意见;管道输入会成为有边界的上下文:
git diff --cached | xerify ask \
--to anthropic:MODEL_ID \
--question "这项变更中风险最高的问题是什么?"让不同调用提供方尝试反驳一项具体声明:
git diff --cached | xerify --json verify \
--from openai:AUTHOR_MODEL \
--to anthropic:VERIFIER_MODEL \
--claim "这项变更在不引入回归的情况下修复了竞态条件"--from 和 --to 表示执行调用、计费和控制请求的服务。通过 Cursor Agent 选择的模型始终属于 cursor,即使模型 ID 中包含 GPT、Claude、Gemini 或 Grok。直接 Codex/OpenAI 为 openai,直接 Claude/Anthropic 为 anthropic。同一提供方的 verify 会在模型调用前被拒绝。
这种分离衡量的是调用渠道多样性,并不证明模型权重、训练数据或盲点彼此独立。
结果与退出码
| 结果 | Exit | 调用方应采取的行动 |
| ----------- | ---: | ------------------------------------------ |
| confirmed | 0 | 可作为继续候选;现有证据中未发现实质性反例 |
| refuted | 10 | 阻止该声明 |
| unclear | 11 | 补充证据、重试或进行人工审查 |
超时、提供方失败、无效 Schema 和截断会以各自的非零退出码保持 fail-closed;unclear 不会被转换为成功。
不产生模型费用的诊断
xerify --json health
xerify --json doctor
xerify --json providers list
xerify --json providers probe --all --timeout 5000
xerify --json config validate这些命令不会调用模型。--network 只增加有边界的端点可达性检查。实时 ask 和 verify 可能消耗订阅额度或产生 API 费用。
适配器路径与模型 ID
command 适配器运行在一个私有的空目录中,而不是在你的项目目录里,因此 executable 和 args 中的每一个路径都必须是绝对路径。像 ./tools/verifier.mjs 这样的相对路径会相对该私有目录解析,导致进程无法启动。现在,失败信息会引用解释器给出的原话,其中指明了它实际查找过的目录:
{
"code": "PROVIDER_FAILURE",
"providerMessage": "Error: Cannot find module '/tmp/xerify-command-rBJrxX/tools/verifier.mjs'"
}确切的 ID 来自提供方本身,而不是 Xerify;只有 Cursor 提供列出模型的命令:
| 适配器 | 确切模型 ID 的来源 |
| -------------------------------------------------- | ------------------------------------------------------------------------------------- |
| cursor | agent models |
| codex | 你的 Codex 账户和 CLI 版本;codex --help 会显示 --model,CLI 也会指出它拒绝的模型 |
| claude | 你的 Anthropic 账户和 CLI 版本;claude --help 会显示 --model |
| openai-api、anthropic-api、openai-compatible | 提供方针对你的密钥给出的模型列表 |
当某个提供方拒绝一个模型时,它自己的原话会通过 providerMessage 回传——这通常是了解它到底能接受什么的最快方式。
本地状态与 MCP
xerify init 会以非覆盖方式创建 .xerify/,并为 Git、npm 和 Docker ignore 文件添加保护。活动记录位于 runs/,归档记录位于 archive/;archive/index.jsonl 是供人类和 AI 工具快速搜索的紧凑索引。
固定 npm 版本的本地 STDIO MCP:
{
"mcpServers": {
"xerify": {
"command": "npx",
"args": ["-y", "[email protected]", "xerify", "mcp", "stdio"]
}
}
}全局安装会把 xerify 放到 PATH 上;项目本地安装则不会。这时可以让 host 直接指向入口文件——这样也省去了 npx 这层间接调用,服务器启动更快:
{
"mcpServers": {
"xerify": {
"command": "node",
"args": ["./node_modules/xerify-cli/dist/cli/entry.js", "mcp", "stdio"]
}
}
}服务器提供 xerify_ask、xerify_verify 和 xerify_capabilities。端点地址是 http://127.0.0.1:8787/mcp;根路径会返回 404。该命令启动时会打印完整 URL,请直接读取这个输出,而不要自己拼接地址。HTTP 默认只绑定 127.0.0.1;非 loopback 绑定必须同时使用 --allow-public 和来自命名环境变量的 bearer token。
Xerify 由谁打造
Xerify 由 Verhex 设计、开发和维护。
它起源于 Deckent——Verhex 的智能体操作系统。在 Deckent 中,请第二个提供方核查一条主张,是编排器所依赖的能力之一。Xerify 就是这项能力的独立开源形态:它可以单独安装,不需要 Deckent,也不依赖它。
本仓库中,只有 Xerify 采用 MIT 许可证。Deckent 是 Verhex 的另一款独立产品,不在本仓库的许可范围内。
文档
若翻译与测试过的英文契约冲突,以规范英文 Schema 和文档为准。
