关于 Xaip
Xaip 是面向 AI Agent 开发者和策略层的跨提供商执行证据层,可在委派工具前评估候选项。它记录双方签名的回执,并根据已验证的执行历史提供信任视图。
主要功能
- 01双方共同签名的 Ed25519 执行回执
- 02仅记录输入和输出的哈希
- 03基于已验证回执计算信任分数
- 04委派前为候选项排序
- 05通过 SDK 检查工具和 Agent 候选项
适用场景
- 01委派前查看工具执行历史
- 02依据执行证据筛选候选服务
- 03记录 MCP 或其他工具调用
- 04查看未评分候选项而不虚构信任
MCP 相关
Xaip 提供 MCP 服务,可用于列出服务、检查信任、选择候选项和报告回执。其回执系统也支持记录 MCP 工具调用的执行证据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
10收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| network | enum | 否 | testnet | devnet | mainnet |
详细介绍
XAIP — AI Agent 工具调用的签名执行回执
委派前先获取证据。只需包装一次 Agent 的工具调用;今天即可在本地使用回执历史,日后还能将相同的签名回执作为可移植、可独立验证的证据共享。
XAIP 是面向 AI Agent 工具调用的、与提供商无关的签名执行证据层。它会记录共同签署的回执——执行 Agent 和调用方对同一份规范记录进行签名,因此任何一方都无法单方面伪造回执——覆盖 MCP、LangChain.js、兼容 OpenAI 的工具调用循环及其他运行时;随后提供历史执行证据,供 Agent、开发者或策略层在委派前检查。
回执是主要产物。信任评分是基于这些回执得出的视图之一,并非对绝对安全性或正确性的声称。
30 秒了解 XAIP
- 机制——一次工具调用输入,一份回执输出。执行 Agent 和调用方对同一份规范记录签名(基于 JCS 的 Ed25519),因此任何一方都无法单方面伪造或否认回执。只传递输入/输出的哈希值;内容绝不会离开你的设备。
- 第一天即可获得什么——可验证的历史记录,显示你自己的 Agent 工具实际执行了哪些操作,并可在下一次委派前查询(
precheck())。单人使用也有价值;无需其他用户组成网络。 - XAIP 不是什么——不是沙箱,不是审批引擎,不是支付通道,也不提供安全保证。它让执行证据清晰可见;由你决定信任什么。
选择深入程度:
3 分钟——生成你的第一份签名回执 ·
10 分钟——自行验证格式:运行可执行一致性测试向量(node check.mjs,无需依赖),然后浏览其所依据的 Internet-Draft。
在线演示:三个候选服务并排比较启用和未启用 XAIP 时的情况。在浏览器中打开 →
从设计上就与提供商无关。 XAIP 是适用于任何可调用工具的 Agent 的信任层。参考实现和实时数据目前从 MCP(Model Context Protocol)开始——因为如今公开工具服务数量最多的正是 MCP——但回执格式、签名和评分同样适用于 LangChain 工具、OpenAI 函数调用、A2A 及专有 Agent 技术栈。MCP 是首个集成对象,而非唯一对象。
实时仪表板: https://xkumakichi.github.io/xaip-protocol/ — 当前公开的信任评分,自动刷新,无需身份验证。当前公开数据集以 MCP 为主,因为 MCP 是首个集成目标。
入口
- 委派前查看信任证据 — 单屏演示,通过
POST /v1/select实时比较三个差异明显的候选项。 - 付款前证据演示 — 单屏演示:在付费前,Agent 可以看到哪些关于付费闭源技能的信息;对比有无来自
precheck()的执行证据(三个虚构候选项,使用预置数据)。 - 浏览器体验场 — 信任感知选择的只读演示。
- 60 秒概览 — XAIP 致力于解决的问题。
- 未来方向 — 长期假设、待解决问题和当前研究诉求。
- 单一调用方主导案例研究 — 2026-05-13 在 XAIP 自身公开数据集中发现的一种真实故障模式,以及它对调用方多样性的启示。
- Agent Trust Check 设计 — 计划中的诊断概念。
- 分类感知评分设计 — 未来设计说明;不是当前的在线评分行为。
- 从任何系统生成回执 — 如何从任何工具系统生成 XAIP 回执。
- precheck() API 指南 — 用于委派前获取执行证据的 SDK 辅助工具。
- 运行 xaip-caller — 无需运行 MCP,即可贡献签名回执。
立即试用
API 已上线。无需注册,也无需 API 密钥。
# Check trust score for a scored tool server
curl https://xaip-trust-api.kuma-github.workers.dev/v1/trust/context7
# Batch query
curl "https://xaip-trust-api.kuma-github.workers.dev/v1/trust?slugs=context7,sequential-thinking,filesystem"
# Decision engine: rank candidates by available execution evidence
curl -X POST https://xaip-trust-api.kuma-github.workers.dev/v1/select \
-H "Content-Type: application/json" \
-d '{"task":"Fetch React docs","candidates":["context7","sequential-thinking","unknown-server"]}'
/v1/select 响应会告诉你应使用哪个服务、原因,以及没有 XAIP 时会发生什么:
{
"selected": "context7",
"reason": "Highest trust among scored candidates based on current verified receipts",
"rejected": [{ "slug": "unknown-server", "reason": "unscored — no execution evidence available" }],
"withoutXAIP": "Random selection would pick an unscored server 33% of the time — no execution evidence available"
}
问题
没有信任分数,你的 Agent 就是在碰运气:
┌────────────────┬────────────────┬───────────┬──────────────┐
│ Strategy │ Server Hit │ Success │ Latency │
├────────────────┼────────────────┼───────────┼──────────────┤
│ With XAIP │ context7 │ ✓ │ ~3s │
│ Random │ unknown-mcp │ ✗ error │ ~8s (wasted) │
│ Try all (seq) │ 3 servers │ 1/3 │ ~11s total │
└────────────────┴────────────────┴───────────┴──────────────┘
XAIP 帮助 Agent 优先选择具有较强可用执行证据的候选项、酌情跳过未评分的候选项,并减少可避免的调用失败。
工作原理
1. Select POST /v1/select → ranks candidates by available execution evidence
2. Execute Your agent calls the selected tool server
3. Report POST /receipts → signed execution receipt feeds back into trust scores
每条执行回执都经过 Ed25519 签名和验证。信任分数使用带有调用方多样性加权的贝叶斯模型计算,而非依赖自报指标。
快速开始 — 不到 5 分钟生成你的第一条签名回执
最快的方式是使用 Claude Code 钩子:你正常调用 MCP 工具时就会开始 生成签名回执,离开你设备的只有哈希值。基于干净的 Windows 11 配置文件 (Node 24、npm 11)端到端实测——命令总耗时约 8 秒;在 macOS/Linux 上 步骤完全相同。

(终端回放根据该次测量实际捕获的输出渲染而成 — 生成器脚本。)
1. 安装
npm install -g xaip-claude-hook
2. 一条命令
xaip-claude-hook install
✓ XAIP Claude Code hook installed.
C:\Users\you\.claude\settings.json
Next MCP tool call will emit a signed receipt to
https://xaip-aggregator.kuma-github.workers.dev
3. 调用一次工具
打开一个新的 Claude Code 会话,让它调用任意 MCP 工具(例如, 让它使用 context7 查询某个库)。钩子会自动签名并提交回执——你无需进行任何操作。
4. 一条签名回执
cat ~/.xaip/hook.log
2026-07-17T03:41:57.964Z POST context7/resolve-library-id ok=true lat=2402ms → 200 {"ok":true,"agentDid":"did:web:context7","callerVerified":true}
callerVerified: true 表示聚合器已确认你对规范回执载荷所做的 Ed25519 调用方
签名。发送的只有哈希值和元数据(工具名称、延迟、成功状态)——绝不会发送输入、
输出或文件路径,而且日志会准确显示哪些内容离开了设备。
5. 一条验证结果
curl https://xaip-trust-api.kuma-github.workers.dev/v1/trust/context7
{ "slug": "context7", "trust": 0.926, "receipts": 1044,
"source": "xaip-aggregator-1 (single aggregator)" }
6. 一条 precheck 结果 — 不凭空编造信任
curl -X POST https://xaip-trust-api.kuma-github.workers.dev/v1/select \
-H "Content-Type: application/json" \
-d '{"task":"summarize a webpage","candidates":["context7","my-brand-new-server"]}'
{ "selected": "context7",
"reason": "Only eligible candidate (trust 0.926, 1044 verified executions)",
"rejected": [ { "slug": "my-brand-new-server",
"reason": "unscored — no execution evidence available" } ] }
这体现了诚实的冷启动行为:尚无人执行过的服务状态为 unscored,而不是被赋予虚构的
分数。随着回执不断到达,证据会逐渐累积;对于没有执行历史的工具,XAIP 不会捏造信任。
如果无法正常工作
- 钩子从未触发 — Claude Code 启动钩子时,必须能够解析钩子命令:检查 npm 全局 bin 目录(
npm config get prefix)是否位于PATH中,然后启动一个新会话。 - PowerShell 提示“running scripts is disabled” — Windows 的默认执行策略会阻止 npm 的
.ps1shim 用于交互式命令。请使用xaip-claude-hook.cmd,在cmd中运行它,或执行Set-ExecutionPolicy -Scope CurrentUser RemoteSigned。收据提交不受影响(钩子通过.cmdshim 运行)。 - 关闭它 —
export XAIP_DISABLED=1可暂时禁用;xaip-claude-hook uninstall可移除钩子(~/.xaip/下的密钥/日志会保留,直到你将其删除)。收据采用假名:你的调用方 DID 是每次安装生成的密钥,不会关联到其他信息。
运行端到端演示
git clone https://github.com/xkumakichi/xaip-protocol.git
cd xaip-protocol/demo
npm install
npx tsx dogfood.ts
此演示:
- 请求 XAIP 根据可用的执行证据,为“获取 React hooks 文档”排序候选服务
- 连接到选定的 MCP 服务并执行真实工具调用
- 向 Aggregator 提交已签名的执行收据
- 显示更新后的信任分数
决策质量演示
使用静态信任快照和固定候选集,比较盲选策略与 XAIP 引导的选择:
cd demo
npm run blind-vs-xaip
这是确定性的本地回放。它不会执行实时工具调用、提交收据或调用任何外部 API。 有关范围、指标和限制,请参阅 docs/blind-vs-xaip-demo.md。
在随附的快照回放中:
| 策略 | 高风险选择率 | 符合条件的选择率 |
|---|---|---|
| 随机 | 71.4% | 28.6% |
| 固定顺序 | 85.7% | 14.3% |
| XAIP | 14.3% | 85.7% |
risky_pick = 所选候选项在快照中的状态为 low_trust 或 unscored。fixed-order 模拟不使用运行时信任数据、直接接受上游规划器候选顺序的 Agent。此结论仅适用于这一固定候选集和静态信任快照,并不保证现实世界中的执行效果会有所改善。
成为独立调用方
希望信任图不只依赖一个运营方?自己运行一个调用方。无需账户、审批或 API 密钥——聚合器会验证来自任何有效密钥对的签名。
最快方式——无需安装,30 秒:
npx xaip-caller
为少量真实 HTTP 工具调用签署收据并发送 POST 请求。演示 XAIP 的适用范围不止于 MCP——任何 HTTP 工具都可以参与。请参阅 clients/caller。 有关 Windows 说明和外部收据贡献详情,请参阅 运行 xaip-caller。
完整流程——MCP 服务,5 分钟:
克隆仓库,并针对真实 MCP 服务运行自动收集器。你的调用方 DID 有助于提升每个已评分 MCP 工具的多样性。请参阅 docs/contributor/run-a-caller.md。
使用 SDK
npm install xaip-sdk
import { precheck } from "xaip-sdk";
const result = await precheck({
task: "Fetch React documentation",
candidates: ["context7", "memory", "unknown-server"],
includeDecision: true,
});
console.log(result.selected); // e.g. "memory" or null
console.log(result.decision); // "allow", "warn", or "unknown"
precheck() 是对 POST /v1/select 的轻量 SDK 封装。它会在你的代码决定委派任务之前,返回工具、技能或 Agent 候选项的可用执行证据。
有关边界、策略选项、结果格式和错误,请参阅 precheck() API 指南。
MCP 服务
可直接在 Claude、Cursor 或任何兼容 MCP 的 AI Agent 中使用 XAIP:
npx xaip-mcp-trust
4 个工具:xaip_list_servers、xaip_check_trust、xaip_select、xaip_report
添加到 Claude Code(~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"xaip-trust": {
"command": "npx",
"args": ["-y", "xaip-mcp-trust"]
}
}
}
npm:xaip-mcp-trust
API 参考
| 方法 | 端点 | 描述 |
|---|---|---|
GET | /v1/servers | 列出所有已评分的服务及其信任数据 |
GET | /v1/trust/:slug | 单个已评分服务的信任分数 |
GET | /v1/trust?slugs=a,b,c | 批量查询信任分数(最多 50 个) |
POST | /v1/select | 决策引擎 — 根据可用的执行证据为候选项排序 |
GET | /health | 存活探针 |
基础 URL: https://xaip-trust-api.kuma-github.workers.dev
信任分数响应
| 字段 | 类型 | 描述 |
|---|---|---|
trust | number | null | 0.0–1.0 分数;未评分时为 null |
verdict | string | trusted ≥0.7 · caution 0.4–0.7 · low_trust <0.4 · unscored |
receipts | number | 已验证执行凭据总数 |
confidence | number | null | 统计置信度:min(1, receipts/100) |
riskFlags | string[] | 检测到的风险指标 |
computedFrom | string | 数据来源说明 |
决策引擎(POST /v1/select)
请求:
{
"task": "description of what your agent needs to do",
"candidates": ["server-a", "server-b", "server-c"],
"mode": "relative"
}
mode: "relative"(默认)— 始终选择可用候选项中的最佳项,即使其低于阈值mode: "strict"— 拒绝所有低于 caution 阈值的候选项
架构
┌──────────────────────────────────────────────────────────┐
│ Your AI Agent │
│ ┌──────────┐ ┌───────────┐ ┌─────────────────────┐ │
│ │ Select │──▶│ Execute │──▶│ Report Receipt │ │
│ │ (Trust │ │ (MCP call)│ │ (Ed25519 signed) │ │
│ │ API) │ └───────────┘ └──────────┬──────────┘ │
│ └────┬─────┘ │ │
└───────┼────────────────────────────────────┼────────────┘
│ │
▼ ▼
┌───────────────┐ ┌──────────────────────┐
│ Trust API │◀────────────────│ Aggregator (BFT) │
│ + Decision │ Service │ Cloudflare D1 │
│ Engine │ Binding │ Ed25519 verification│
└───────────────┘ │ Bayesian scoring │
└──────────────────────┘
信任模型:
- 贝叶斯 Beta 分布(先验值因 DID 方法而异)
- 调用方多样性加权(防止单一调用方操纵结果)
- 联署因素(双重 Ed25519:Agent + 调用方)
- 支持 BFT 的联邦架构,并在聚合器节点间进行 MAD 离群值检测;当前的公开部署是一个单一聚合器节点(API 响应显示
single aggregator;quorum 相关措辞仅出现在实际的多节点部署中)
基础设施:
- Cloudflare Workers(全球边缘网络,延迟 <50ms)
- Cloudflare D1(边缘端 SQLite),用于存储凭据
- 用于 Worker 间通信的 Service Bindings
可选的账本支持身份
XAIP 不是区块链协议,也不是支付通道。
当前身份模型支持多种 DID 方法,包括 did:key、did:web 以及 did:xrpl 等基于账本的标识符。信任分数根据已签名的执行凭据得出,而非代币持有量、支付或链归属。
以下默认先验值属于部署策略,并非普遍适用的信任判断:
| DID 方法 | 默认先验值 | 用例 |
|---|---|---|
did:xrpl | [5, 1] | 基于账本的 Agent(一种外部锚定选项) |
did:web | [2, 1] | 经域名验证的服务 |
did:key | [1, 1] | 匿名 / 新 Agent |
当 Agent 需要外部锚定身份时,基于账本的身份可能会有帮助。XAIP 本身不要求使用任何账本。
数据
信任分数根据真实执行数据计算,而非合成基准测试:
- 截至 2026-06-12,10 个已评分 MCP 服务共有约 4,500 份已签名凭据:context7、sequential-thinking、memory、filesystem、everything、fetch、sqlite、git、puppeteer、playwright
- 通过 GitHub Actions 自动每日收集数据
- 每有新的执行凭据,分数都会更新;当前数值请参阅实时仪表板/API
# See all scored servers
curl https://xaip-trust-api.kuma-github.workers.dev/v1/servers
兼容
| 运行时 / 集成 | 状态 | 方式 |
|---|---|---|
| MCP(Model Context Protocol) | 正式公开数据集(截至 2026-06-12,包含 10 个服务和约 4,500 条签名回执) | xaip-claude-hook、xaip-sdk、xaip-mcp-trust |
| LangChain.js | 已测试的预览版,已收到正式回执 | xaip-langchain 回调处理器 |
| OpenAI 兼容的工具调用循环 | 已测试的预览版,已收到正式回执 | xaip-openai 封装器 |
| HTTP 工具 / A2A / 专有运行时 | 支持回执流程 | xaip-sdk 或直接发出签名回执 |
回执模式有意设计为与工具系统无关:agentDid、callerDid、taskHash、resultHash、success、latencyMs、failureType、timestamp。任何能够对输入/输出进行哈希处理并使用 Ed25519 签名的 Agent 框架,都可以提交回执。
请参阅从任何环境发出 XAIP 回执,了解与提供方无关的回执流程。
状态
v0.4.0 已上线;v0.5 草案正在开发中(工具类别分类体系 + 观测/展示机制)。
-
v0.5 类别元数据机制已上线,用于观测/展示。
-
类别感知评分仍是设计说明,不用于当前信任分数或
/v1/select选择行为。 -
信任分数 API(Cloudflare Worker,已上线)
-
决策引擎(
POST /v1/select) -
支持 BFT 联邦的聚合器(当前公开部署仅包含单个聚合器节点)
-
Ed25519 回执签名与验证
-
支持调用方多样性的贝叶斯信任模型
-
截至 2026-07-12,约有 6,700 条签名回执(主要由项目自身的每日收集器生成——外部调用方多样性是当前的不足,详见“数据”部分)
-
自动每日数据收集(GitHub Actions)
-
已发布预览版回执生成器:xaip-langchain、xaip-openai
-
MCP 服务:xaip-mcp-trust
-
v0.5 规范草案(工具类别分类体系;类别感知评分仅为设计说明)
-
多调用方多样性机制已验证(2 个或更多调用方身份,指标在 8 个服务中均有响应)
-
v0.5 类别元数据机制(仅用于观测/展示——不影响评分或
/v1/select) -
类别感知评分(仅为设计说明——尚未上线)
-
零安装调用方路径:
npx xaip-caller(30 秒即可首次提交,展示 XAIP 在 MCP 之外的应用) -
外部运营方调用方(机制已上线,等待外部采用——运行
npx xaip-caller或参阅完整指南)
Internet-Draft
XAIP 收据线格式以独立 Internet-Draft 的形式发布于 IETF Datatracker:
draft-xkumakichi-xaip-receipts-03(当前修订版;工作副本)- https://datatracker.ietf.org/doc/draft-xkumakichi-xaip-receipts/
- 可执行的符合性测试向量:
docs/spec/test-vectors/— 所有哈希、规范化载荷和签名都是真实的;node check.mjs会重新推导所有结果(Node ≥ 18,无依赖)
这是一个独立的 Internet-Draft。它不是 IETF 标准,未经 IETF 批准,在 IETF 标准流程中也不具有正式地位。本草案仅涉及收据线格式——评分、聚合和决策逻辑属于部署策略,不在草案本身的范围内。
引用格式(正在编写中——为确保可复现性,请引用具体修订版):
xkumakichi, "Signed Execution Receipts for AI Agent Tool Calls (XAIP Receipts)", Work in Progress, Internet-Draft, draft-xkumakichi-xaip-receipts-03, 2 July 2026, https://datatracker.ietf.org/doc/draft-xkumakichi-xaip-receipts/.
BibTeX 和 BibXML 导出文件可从上方链接的 Datatracker 页面获取。
写作
- Portable Trust — 为什么 AI Agent 的信任基础设施必须独立于提供商,并以行为为依据(dev.to · Zenn 日语版)
- Evidence Before Payment — Agent 支付技术栈描述当前交易;对手方过往执行情况的可移植证据仍然匮乏。本文界定了这一设计问题,不依赖任何单一实现(文章)
相关内容
- xaip-caller — 零安装命令行工具:运行
npx xaip-caller,为信任图谱做贡献 - xaip-mcp-trust — 供 AI Agent 查询信任评分的 MCP 服务
- xaip-langchain — 可发出 XAIP 收据的 LangChain.js 回调处理程序
- xaip-openai — 带签名收据的 OpenAI 工具调用包装器
- Veridict — 较早的运行时执行日志记录实验,为 XAIP 以收据为先的设计提供了参考。此前曾作为 npm 包发布;目前不再作为独立产品维护。
- XAIP Specification v0.4 — 当前协议规范
- XAIP Specification v0.5 RC — 候选发布版(工具类别分类法)
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
