关于 DeadBolt by NextEleven
DeadBolt 是嵌入软件 Agent 执行路径的本地执行门控,可在动作分派时依据策略和操作员控制决定是否执行。提供 Rust 嵌入、其他语言调用的本地 sidecar,以及可信 stdio MCP 服务代理接入方式。
主要功能
- 01按工具和目标执行策略检查
- 02暂停、限额及操作员终止控制
- 03固定运行期限与继承策略约束
- 04拒绝时阻止执行回调
- 05SQLite 证据、JSONL 镜像及事件导出
适用场景
- 01在应用分派函数前检查动作是否获准
- 02通过 sidecar 为 Python 或其他语言的执行路径加门控
- 03代理可信 stdio MCP 服务的工具调用
- 04记录执行拒绝与事件证据
MCP 相关
DeadBolt 可作为代理包装可信 stdio MCP 服务,并为其工具调用设置策略门控;也可通过桌面 MCP 客户端配置接入。其门控不覆盖 MCP 子进程启动及非工具方法。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
DeadBolt
使用 Agent 参与贡献?请阅读 AGENTS.md,了解设置、本地检查和项目边界。
软件 Agent 的本地执行门控。 将 DeadBolt 接入执行操作的代码中,再由策略和操作员控制决定是否执行该操作。 可嵌入 Rust,在其他语言中调用其本地 sidecar,或包装可信的 stdio MCP 服务。基于 Apache-2.0 许可免费使用。
近期评测证据:ProtocolProbe 的只读设置检查,以及 NextEleven 独立的 Swarm 原生集成实验室,包含各自已测试的范围和剩余限制。
版本 2.0.0
此源代码以 engine 2.0.0 和 Python 客户端 2.0.0 为目标,范围锁定为经过测试的 RC3 行为。版本化发布列出可用下载、确切源代码和校验和;安装则分别跟踪包管理器、捆绑包和编辑器的可用情况。合并源代码不会发布软件包,也不会更新目录列表。
版本 2 要求 Unix 和 TCP sidecar 进行经过身份验证的操作员设置,会创建私有状态,默认让新建根目录采用主管续期,并强制执行祖先策略和固定运行时限。现有存储的续期模式保持不变。替换旧版安装前,请阅读主版本迁移和私有状态。
固定构件的 RC3 复测在 macOS arm64 上通过了对冲突目标的拒绝、对损坏存储的 Cursor Reload 拒绝,以及固定截止时间后实际模型调用的测试。底层 Auto 模型未知。单独的 Linux 无头检查涵盖其记录的范围。这些是执行记录,并非认证;稳定构件和已安装使用方的检查与 RC3 结果彼此独立。
连接 Agent 前先试用
无需模型账户、API 密钥、Harness、云服务或数据库服务。请在安装指南中选择经过校验和验证的原生归档文件。 在 macOS/Linux 上进入解压后的目录:
chmod 0755 deadbolt
./deadbolt --version
./deadbolt drill
python3 examples/evaluate.py --binary ./deadbolt
在 Windows 上,运行 .\deadbolt.exe --version、.\deadbolt.exe drill 和
python examples/evaluate.py --binary .\deadbolt.exe。
预期结果:所选版本、deadbolt drill ok,以及包含 "passed": true 的 JSON。
此评测会启动一个私有 sidecar,写入无害的临时文件,检查策略、审批、终止和服务中断是否会阻止操作产生影响,并在之后清理。
还需要 Python 3.9+ 作为额外运行时。了解报告。
对于经过审查的源代码检出,需要 Rust 1.85+ 和原生 C 编译器/链接器:
cargo install --path . --locked --bin deadbolt
deadbolt --version
deadbolt drill
对应的 Python 客户端 2.0.0 已发布。 对应的 Rust 包 2.0.0 也已发布。 请通过 Cargo 安装 CLI,或在应用环境中安装 Python 客户端:
cargo install n11-deadbolt --version 2.0.0 --locked --bin deadbolt
# In your application's virtual environment:
python -m pip install 'n11-deadbolt-client==2.0.0'
嵌入 Rust 时,请使用 deadbolt = { package = "n11-deadbolt", version = "=2.0.0" },
并提交应用自己的 lockfile。Python wheel 包含客户端,不包含引擎。Node 仍作为捆绑源模块提供。安装并验证。
选择你的集成方式
| 你的执行器 | 最小集成方案 | 从这里开始 |
|---|---|---|
| Rust 应用 | 嵌入式存储,并在实际调度时进行检查 | Rust |
| Python 应用 | 本地 sidecar,并在实际函数外层调用 dispatch | Python |
| OpenAI Agents SDK 函数工具 | Sidecar,并为每个受保护函数添加 @protected_tool | SDK adapter |
| 你拥有的 FastMCP 服务 | Sidecar,并在受保护的工具函数体内调用 dispatch_async | 离线方案 |
| Node 或其他语言 | 本地 sidecar;使用 Node 客户端源代码或 HTTP 协议 | Sidecar |
| 可信的 stdio MCP 服务 | deadbolt mcp-proxy … -- SERVER | MCP |
| 桌面 MCP 客户端 | 已验证的本地 bundle 和私有操作员配置 | Bundle 和编辑器接入方式 |
| 通过 Docker 启动的 MCP 客户端 | 从源码构建的 stdio 容器和可信的下游服务 | Docker |
安装前,先选择准确的 bundle 和与之匹配的配置。空白配置会开放两个只读设置工具,且不提供任何有效保护。已配置的工具来自你信任的下游服务。版本 2 bundle 运行要求设置固定截止时间、明确续期模式,并审核离线例外。Bundle 使用范围较广的一次性工具批准,不会配置精确操作授权。配置 · 编辑器指南。
通过 Smithery 和官方 MCP Registry查找带版本号的 bundle。检查每个条目的版本和校验和。发现条目不代表提供托管操作员访问、接受其他提交的市场,也不代表背书。
在产生实际影响的位置设置关卡
你的可信执行器会先创建运行并配置策略。安装匹配的 Python 客户端并配置好 sidecar 后:
from pathlib import Path
from deadbolt_client import dispatch
outcome = dispatch(
"executor-run-001", "write_file",
lambda: Path("output.txt").write_text("allowed work"),
)
if not outcome["executed"]:
print("Action blocked:", outcome["decision"]["code"])
每次准入都会在回调前重新检查;若被拒绝,则不会调用函数体。完整设置指南涵盖资源配置、策略、凭据、传输和错误。为每个受保护的路由都添加包装。绝不要缓存允许结果,也不要将一次性准入检查与执行拆开。ensure 只能确认记录存在,不能确认其仍然有效。
控制与限制
- 工具和目标策略、报告支出上限、暂停、限额剪辑和操作员终止。
- 默认空闲 TTL 为 60 秒。独立的监控器会维持运行状态;也可使用显式活动模式。两种模式都无法延长固定截止时间,也无法恢复已过期或已终止的状态。存活状态 · 截止时间。
- 子级遵守祖先级限制。子级策略不能扩大其父级的权限。
- 范围较广的一次性工具批准,以及供可信集成使用、基于内容绑定 API 的精确操作授权。
- 范围受限的准入凭据将调度与操作员控制分开。
/spend仍仅供操作员使用。 - SQLite 证据、JSONL 镜像和按 Agent 导出的事件记录。
- 存储或传输故障会拒绝受保护的调度;格式错误或不成功的响应绝不会授权调用函数体。
普通可信执行器的准入会将未设置的策略列表视为开放;MCP 代理则要求明确设置工具策略。请在调度前配置运行和子级。MCP 发现功能可能会公布策略禁止使用的工具。目标解析只覆盖可识别字段,不覆盖任意参数或网络流量。目标策略。
了解边界
DeadBolt 保护已连接的执行路由。它不会沙箱化任意代码、阻止提供方,也不会让外部影响与准入操作构成事务。Kill 会阻止后续准入;要停止正在执行的工作,需要采用执行器取消模式。MCP 子进程仍受信任且拥有 OS 访问权限;启动和非工具方法不受工具调用门控保护。
请将状态和操作员权限置于不受信任的 Agent 进程之外。能够写入数据库或调用操作员 CLI 的进程拥有操作员权限;套接字凭据无法限制这种权限。如果应用需要这些边界,请使用独立的 OS/服务所有权和 OS 出站流量控制。证据哈希用于标识内容;可由操作员写入的记录并非防篡改认证。信任 · HTTP 身份验证 · 试点检查清单。
开发者文档
| 需求 | 指南 |
|---|---|
| 首个可用结果 | 快速开始、首次评估 |
| 二进制文件、crate 或 Python 安装 | 安装 |
| 嵌入、sidecar 或 MCP 接线 | 集成、Python / SDK |
| 最低权限调度和敏感操作 | 凭据、精确审批 |
| API 和升级行为 | HTTP 协议、兼容性 |
| 拒绝或设置问题 | 故障排除、常见问题 |
| 部署、备份和响应 | 运维、事件 |
| 评估或贡献 | 技术简介、Hermes 展示、贡献指南 |
| 版本和打包 | 更新日志、发布流程、第三方声明 |
源码检查:cargo test --locked、cargo clippy --all-targets --locked -- -D warnings,
以及在执行 cargo build --locked --bin deadbolt 后运行 python3 tests/client_contract.py
(需要 Python 和 Node)。CI 还会检查 Rust 1.85、已安装的 Python/SDK 行为
以及原生软件包。通过这些检查并不能证明你的应用已获认可。
报告一般问题 或使用私密安全报告渠道。版权所有 NextEleven LLC 2026。 许可证 · 声明。Harness 是一种使用方,并非必需条件。
对于需要停止已运行本地命令的受信任执行器, 自有进程取消参考提供了 支持可丢弃验收的 POSIX 监督器模式。它不会将门控改为沙箱,也不会为旧版软件包增加强制措施。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。