关于 Deus Witness
Deus Witness 是用于 AI Agent 工具调用的 MCP 代理,会依据签署的授权规则检查调用,并交由外部见证服务作出决定。它面向需要通行密钥审批和可离线验证签名回执的运营者;项目目前处于早期阶段,尚未经过审计。
主要功能
- 01代理 MCP 工具调用
- 02按授权规则允许、拒绝或暂缓
- 03通行密钥审批流程
- 04签名且仅追加的决策回执
- 05JavaScript 和 Swift 离线验证器
适用场景
- 01要求高风险工具调用先获审批
- 02检查调用是否符合签署的授权规则
- 03无需连接服务即可验证决策回执
MCP 相关
stdio MCP 代理位于另一个 MCP 服务前,将工具调用提交给托管的 Witness API 作出决定。项目还包含可本地运行的 MCP 服务,但处理审批和签名日志的 API 单独托管。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Deus Witness
用于 AI Agent 工具调用的见证服务。 Agent 在执行操作前会先询问;Agent 外部的见证服务会根据你签署的授权规则检查调用,并回复 allow、deny 或 defer(等待你决定)。根据你的授权规则作出的决定会生成签名的仅追加收据,你可以离线验证(少数自动拒绝,例如尚未设置任何授权规则时的调用,或超过速率限制的调用,仅保存在服务端数据库中)——这样,对于“Agent 做了什么,以及是谁批准的”,你无需盲目信任他人就能找到答案。
安装并试用(一条命令): uvx --from deus-witness deus-witness try——或者在 Claude Code 中运行 /plugin marketplace add sipkigroup/witness,然后运行 /plugin install deus-witness@sipkigroup。
作为 MCP 代理(stdio;在 -- 后放入你希望接受见证的 MCP 服务;捆绑的演示服务会将调用记录到文件中,不会执行实际操作):设置 DEUS_WITNESS_KEY(dwk_...,可从你在托管服务上的账户获取)后运行 uvx deus-witness -- deus-witness-demo-tools。
- 托管服务:https://witness.sipkigroup.com - 在线演示:https://witness.sipkigroup.com/demo
- 本仓库:开源部分——收据规范、两个独立验证器、TypeScript 客户端、Python 客户端以及 HTTP API 契约(仅含数据的 OpenAPI)。
状态:早期(0.x)。 该规范是
spec/中的个人草案(不是 IETF 标准,也尚未提交给 IETF)。 目前的证据来自我们自己的模拟,以及由一位作者根据规范编写的独立实现;尚无外部审计或部署。 请将其视为需要测试和攻击的对象,而非经过认证的安全边界。绕过报告是你能提供给我们的最有价值的信息。
在 Claude Code 中试用
需要 Claude Code 2.1.295+ 和 uv(curl -LsSf https://astral.sh/uv/install.sh | sh);支持 macOS、Linux、WSL。
/plugin marketplace add sipkigroup/witness
/plugin install deus-witness@sipkigroup
/deus-witness:try
try 会创建一个试用账户,并在浏览器中打开页面。第一次需要你处理的工具调用会等待;页面会要求你触碰两次通行密钥(一次创建通行密钥,一次签署推荐规则),然后系统会对该调用作出决定——允许、拒绝,或提示你再触碰一次。在你第一次触碰之前,调用最多等待 90 s,之后会被拒绝(TRIAL_NOT_CLAIMED):完成触碰后请重新发起调用。试用账户不会发送手机通知:调用会在该页面等待你处理。不再保留的试用账户会在 7 天后删除。
/plugin install 会打开插件面板:选择范围并安装;如果页面提示,请运行 /reload-plugins。
不使用插件:uvx --from deus-witness deus-witness try(仅在 Python 3.10+ 的虚拟环境中使用 pip install deus-witness)。
内容
| 路径 | 说明 | 许可证 |
|---|---|---|
spec/ | 操作回执的规范草案(draft-deus-aar-05,以及历史记录和勘误)与测试向量(spec/vectors) | Apache-2.0 |
verifier_js/ | 根据规范编写的 JavaScript 验证器 | Apache-2.0 |
verifier_swift/ | 根据规范编写的 Swift 验证器(源代码;使用 ./build.sh 构建) | Apache-2.0 |
sdk-ts/ | @deus-witness/sdk(npm):TypeScript 客户端,无依赖项 | Apache-2.0 |
python/ | deus-witness(PyPI):Python 轻量客户端 - MCP 代理、Claude Code 钩子、doctor、SDK。注册表名称 io.github.sipkigroup/witness | Apache-2.0 |
contract/ | HTTP API 契约(OpenAPI)、WebAuthn 签名配置文件、契约存根 | Apache-2.0 |
plugins/deus-witness/ + .claude-plugin/marketplace.json | Claude Code 插件:通过一条安装命令安装钩子 | Apache-2.0 |
integrations/ | 示例:Vercel AI SDK、curl | Apache-2.0 |
docs/ | 团队、恢复、锚点、验证回执 | Apache-2.0 |
**此仓库中的所有内容均采用 Apache-2.0 许可且可在本地运行:**完整的 MCP 服务(deus-witness-mcp,一个放在任意 MCP 服务前面的 stdio 代理)、Claude Code 钩子和插件、离线验证器以及规范。
**此仓库不包含:**托管版 Witness API,MCP 服务会像调用任何 API 一样调用它(通行密钥批准、签名日志)。该 API 由作者运行,不受此许可证覆盖;它签发的包可使用此处的验证器离线检查,因此你无需信任它。
你可以根据 spec/ 和 contract/ 实现自己的见证服务。
使用方法
Claude Code:使用上面的三个命令(Claude Code 2.1.275 或更高版本也支持一步安装命令 /plugin install deus-witness --marketplace sipkigroup/witness);详见 plugins/deus-witness/README.md。
托管服务地址为 https://witness.sipkigroup.com。使用 TypeScript:npm install @deus-witness/sdk(详见 sdk-ts/README.md)。使用 Python,或将任意 MCP 服务接入见证服务:pip install deus-witness(在 venv 中使用 Python 3.10+),或者无需安装,运行 uvx deus-witness -- <your MCP server command>(MCP 注册表:io.github.sipkigroup/witness;详见 python/README.md;设置指南:https://witness.sipkigroup.com/dl/docs/quickstart.html)。
其他语言:通过 HTTP 调用,详见 contract/openapi.yaml 和 integrations/。
明确的限制
- 见证服务无法得知某个操作的实际效果,只能依据工具映射和操作员的描述;它会检查调用是否符合你的授权。未经过见证服务的路由不受覆盖。
- TypeScript 客户端目前尚未验证回执签名(此处的验证器可以)。请勿将通过该客户端看到的
allow视为已通过密码学验证。 - 如果无法连接见证服务,应阻止调用(故障时默认拒绝)。这是安全方面的选择,但会牺牲可用性。
自行验证回执
python3 spec/vectors/check_vectors.py # the abstract spec vectors through the reference model of the spec (no dependencies)
(cd verifier_js && npm ci && npm test) # the same vectors through the JavaScript verifier
(cd verifier_swift && ./build.sh && ./aarc --quiet --extra extra-vectors)
如果两个实现对某个向量得出的结果不一致,其中一个(或规范)就有错误——请附上该向量提交问题。
安全、贡献与许可证
- 漏洞:
SECURITY.md([email protected])。贡献:CONTRIBUTING.md。 - Apache License 2.0(
LICENSE、NOTICE)。版权所有 2026 Sipki LLC。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。