Derbent 是一个面向编码智能体的工具调用守卫网关。其名称来自土耳其历史中设在山口上的守卫哨所:守卫决定谁可以通过,并记录每个通过者。Derbent 对编码智能体的工具调用做同样的事。
用途与定位 它的目标是在智能体执行工具调用之前,用统一策略进行拦截决策,并留下防篡改的日志;需要关注的重要调用会等待人工确认。官方明确它用于防范误操作和提示注入,并保留审计线索,同时强调它不是沙箱:一个已经能以你的身份运行 shell 命令的智能体可以绕过它(见“限制”部分)。
主要能力
- 统一策略:每一个到达 Derbent 的调用(无论是 MCP 工具还是 CLI 内置工具)都由同一套规则决定,规则可按智能体、工具与参数使用 allow、deny、ask 三种动作,首个匹配的规则生效。同一套规则适用于四个 CLI 中的 MCP 工具与内置工具(如 shell),仓库还可以添加只会更严格的项目规则。
- 审批(Approvals):规则判定为 ask 的调用会等待你在终端 UI 中按键批准,默认 50 秒后自动拒绝。
- 回执(Receipts):每次调用生成哈希链式回执;derbent verify 会在回执被编辑、移动、插入或删除后,指出链条断裂的第一条回执。官方提示应保留其打印的头部哈希(head hash),以便发现最新的回执被删除的情况。
- 共享记忆与移交:智能体可按仓库保存笔记,并可给彼此留下任务。
- Pin:当下游服务器的工具定义发生变化时,可将其工具“钉住”不放行。
- 预算(Budgets):用于阻止陷入循环的智能体。
接入方式 Claude Code、Codex、GitHub Copilot CLI 与 Antigravity CLI 作为同一个 MCP 服务器连接到 Derbent,你的其他 MCP 服务器则可以放在它后面。每个 CLI 的 pre-tool hook 会把其内置工具(如 shell 与文件编辑)送经同一道门。每次调用都由你的规则决定并被记录下来。
安装与初始化 可以从最新 release 下载对应系统的二进制与 SHA256SUMS,校验哈希后放入 PATH,命名为 derbent(Windows 上为 derbent.exe);也可以用 Go 1.27 或更高版本从源码构建。另有 Homebrew(brew install tunahanaliozturk/tap/derbent)与 Scoop 安装方式。官方说明每个 release 都可从其 tag 逐字节重建。 derbent init 会展示每一项改动,并在做出任何改动前询问一次;它会先复制每个将要修改的文件,且不会替换你已有的条目;使用 --dry-run 只显示改动。它还会向各 CLI 的设置添加 derbent gate hook。之后照常启动智能体即可,它们的调用会出现在 UI 中,规则判定为 ask 的调用会在此等待你。
规则与调用决策 规则位于用户配置目录下的 config.toml(Windows 为 %AppData%\derbent\,Linux 为 ~/.config/derbent/,macOS 为 ~/Library/Application Support/derbent/)。下游 MCP 服务器的工具命名为 <server><tool>,CLI 的内置工具命名为 native<tool>。可在调用实际发生前查看它会被如何决策:该命令会逐条打印规则及其匹配或不匹配的原因,直到首个匹配,然后打印项目的规则、预算、pin 与 grant,最后给出本轮调用在上述规则下的结论(例如 verdict: ask (rule:3))。规则支持 glob,提供 watch、balanced、strict 三个预设,并支持项目规则、预算与规则建议。
回执细节 回执保留经过密钥掩码后的参数,对于工具返回的内容只保留其大小与哈希。官方指出,能够写入数据库的人仍可重写整条链或删除最新回执,因此若要日后可分辨,应把头部哈希保存在别处。回执与 verify 支持不依赖数据库即可校验的导出。
性能(官方在 GitHub 托管运行器上、2026-10-01 测量) Linux(Intel Xeon Platinum 8370C)与 Windows(AMD EPYC 9V74)各 4 vCPU,十次运行的中位数(p50):在 Linux 上该门为一次 MCP 调用增加 499.5 µs,在 Windows 上为 616.0 µs,代价包括额外的 stdio 跳转、规则决策、项目规则检查以及写入 SQLite 的回执。在 Linux 上,hook 调用比直接启动二进制多约 2.1 ms;在 Windows 上多约 24 ms,其中大部分成本是进程启动。官方说明这些数字来自共享运行器上的一次运行,不同运行之间的差异可能超过单次运行的区间:前一天同一份代码在同一 Windows CPU 型号上测得该门相对直接 MCP 调用为 459.5 µs,而此处为 616.0 µs。结果页面包含 p99、每秒调用数与注意事项。
支持与实验性状态 Codex 与 Antigravity CLI 的支持是实验性的,依据其文档配置,尚未在真实会话中检查。Claude Code 与 Copilot CLI(1.0.88,2026-10-02)已实际检查。
已知限制与风险(官方列出的关键项)
- 只能看到经过该门的调用;CLI 从不交给其 hook 的工具(例如 Codex 的托管网页搜索)不在覆盖范围内。
- 参数 glob 匹配的是字符串而非语义:git push* 不匹配 cd repo && git push 。
- 审批用于防范误操作与 MCP 内部的提示注入,但不能阻止已经能以你的身份运行 shell 命令的智能体:它可以自己运行 derbent approve。
- 回执导出只能在你保留了头部哈希的前提下显示其上次运行未被改动,且永远无法证明没有任何内容被遗漏。
- 建议会拒绝它已知的 shell、启动器与操作符,但文本规则可能被欺骗,这类列表也无法穷尽;对命令前缀的 allow 会放行任何选项。
- 移交(handoff)的地址是标签而非身份:任何能调用 handoff_take 的智能体都能认领所有发往 * 的开放移交。
- 审批依赖你在场观察;无人值守时,ask 在超时后即被拒绝。
- Pin 信任它第一次看到的定义,包括一次更新为已 pin 服务器新增的工具,因此对你不审查更新的服务器,应显式命名允许的工具。
- 同一时刻在途的调用可能一起越过某个预算。
- CI 在 Windows 与 Linux 上运行测试,在 macOS 上仅构建。
- 团队审计线索(把各机器的回执同步出去并提供给 SIEM 的导出)目前只是想法,不是计划。
安装、规则、审批与 UI、内置工具、下游服务器与工具 pin、回执与 verify、记忆与移交、演示、设计文档与决策说明等均有对应文档;变更记录见 changelog;构建、测试与提交改动见 CONTRIBUTING.md;报告漏洞见 SECURITY.md。项目使用 Apache 2.0 许可,见 LICENSE。