跳到正文
Hacker News· nexteleven·· 7 天前AI 评分62

DeadBolt 发布 v1.0.3:为智能体工具调用提供本地执行闸门

Show HN: DeadBolt – a local execution gate for agent tool calls

AI 导读

DeadBolt 发布 v1.0.3,为软件智能体的工具调用提供本地执行闸门,把闸门放在执行动作的代码处,由策略与操作员控制决定该动作是否运行。

正文 · AI 翻译

面向软件代理的本地执行门禁。将 DeadBolt 放入执行操作的代码中,然后由策略和操作员控制决定该操作是否运行。可将其嵌入 Rust,从其他语言调用其本地 sidecar,或包装受信任的 stdio MCP 服务器。在 Apache-2.0 下免费使用。

试用 · 安装 · 集成 · 项目站点

CI Release License: Apache-2.0

在连接代理之前先试用

无需模型账户、API 密钥、Harness、云服务或数据库服务器。已发布的 v1.0.3 版本提供适用于 Linux x86_64、Windows x86_64、Apple Silicon 和 Intel Mac 的原生 ZIP 包。验证并解压匹配的归档文件。在 macOS/Linux 上,从其解压目录中:

chmod 0755 deadbolt
./deadbolt drill
python3 examples/evaluate.py --binary ./deadbolt

在 Windows 上,使用 .\deadbolt.exe drill 和 python examples/evaluate.py --binary .\deadbolt.exe。 预期:deadbolt drill ok,然后是一个包含 "passed": true 的 JSON 报告。 评估会启动一个私有 sidecar,写入无害的临时文件,检查策略、审批、终止和中断是否阻止效果,并在之后进行清理。 唯一需要的额外运行时是 Python 3.9+。了解报告。

选择你的集成方式

你的执行器 最小集成 从这里开始
Rust 应用 一个依赖、一个嵌入式存储,以及在分发时的一次检查 Rust
Python 应用 本地 sidecar 和围绕实际函数的 dispatch Python
OpenAI Agents SDK 函数工具 本地 sidecar 和每个受保护函数上的 @protected_tool SDK 适配器
Node 或其他语言 本地 sidecar;捆绑的 Node 客户端或 HTTP 协议 Sidecar
受信任的 stdio MCP 服务器 将其启动命令替换为 deadbolt mcp-proxy … -- SERVER MCP

在复制示例之前选择版本:

现已可用 已包含
已发布的 v1.0.3 原生可执行文件、嵌入式 Rust、本地 HTTP、源码 Python/Node 客户端、stdio MCP、租约、策略、宽泛的一次性审批、终止和证据
1.1.0-rc.1 预发布版 以上所有内容,外加回调分发辅助工具、可安装的 Python wheel/源码包、可选的 SDK 装饰器、单代理准入凭证和精确操作审批

v1.1.0-rc.1 预发布版包含原生下载和 Python wheel。它用于在稳定版发布前进行开发者评估。 它们不在 v1.0.3 下载中。安装预发布版,或使用标记为 v1.0.3 的稳定示例。Rust crate 和 Python 客户端均未发布到包注册表;Node 是捆绑的源码客户端。

将门禁放在效果处

你受信任的执行器首先创建运行并配置策略。在安装候选 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"])

在回调之前会进行一次新的准入。拒绝会使函数体不被调用。 完整设置涵盖运行创建、策略、凭证、传输和错误处理。包装每个受保护的路由;切勿缓存允许结果,也不要在一次性分发辅助工具之前单独执行准入。

你可以构建的控制措施

  • 工具允许列表、目标令牌、报告支出上限、暂停和剪辑。
  • 租约默认具有 60 秒的滑动 TTL;被终止的 ID 保持终止状态。
  • 操作员终止会阻止某个 ID 及其注册后代后续的操作。
  • 对分类为不可逆工具进行宽泛的一次性审批;候选版本增加了对精确参数的审查,包括收件人/正文/金额。
  • 候选版准入凭证允许一个分发器为其运行请求许可,而无需接收操作员控制。
  • SQLite 证据、JSONL 镜像和按代理的事件导出。
  • 当存储不可用时默认拒绝;捆绑客户端在传输失败、响应格式错误和 HTTP 状态不成功时拒绝。

未设置策略列表时为开放。在派发前配置每次运行和子进程。身份、工具路由、目的地和报告支出来自受信任的应用程序代码。它们不是网络拦截或独立计费。

了解边界

DeadBolt 保护通过你的执行器路由的操作。操作者拥有状态、策略和审批;模型不得接收这些控制。它不隔离任意代码、不停止模型提供方、不取消正在运行的执行体,也不使外部效果与准入具有事务性。MCP 子进程是受信任的,并具有操作系统访问权限;启动和非工具类 MCP 方法不在工具调用门控范围内。

证据哈希标识内容,但操作者可写的记录不是合规认证。部署前请阅读信任边界。使用试点检查清单验证你应用程序的实际路由。

开发者文档

需求 指南
首个可用结果 快速开始、首次评估
二进制、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 只是一个使用者,不是先决条件。

来源:Hacker News · github.com