跳到主要内容
DocsSecureStamp Protocol
Execution Authorization · 智能体与 harness

先证明边界,再授予自主权。

一个面向编程智能体的可复现实验室。它尝试突破所声明的限制——经由 MCP、shell、脚本或直接的 API 调用——从智能体外部观测结果,然后在同一配置档下运行真实任务。产出是一个候选变更、每一条经过测试的路径各自的签名证据,以及一份明确列出哪些未被评估的清单。

Beta · 按路径的证据

实验室今天做什么

每一条都是实验室及其所产出签名报告的性质,不用问我们就能核对。

  • 先复现缺口:宽松的基线展示了当一个限制仅仅停留在声明上时,智能体能造成的效果,这样受保护的运行才有真实的东西需要遏制。
  • 把同一个被禁止的尝试分别经由 MCP、shell、脚本和直接的 API 调用发出。没有被实际演练过的路径会被报告为未评估,绝不会被报告为已保护。
  • 从智能体之外的一个进程观测效果。智能体的日志、摘要与工具输出,都被视为不可信的证据。
  • 只放行经过审阅的那个确切候选变更——仓库、分支、预期 ref 与 diff——经由 Execution Guardian,并对远端状态做原子检查。
  • 用一把智能体永远看不到的监督程序密钥,为每一份运行报告签名;报告会对照运营方安装的 trust anchor 离线验证。

它为何存在

MCP 只是一条路径。shell、文件、API、浏览器与自动化是另外几条。

一个团队想让编程智能体工作,同时不让它触及生产环境、机密或他人的工作,而且需要在不毁掉自己真实环境的前提下,核实这些限制确实站得住。hooks 与审批模式描述的是智能体如何请求许可;它们不是一道安全边界。风险在于智能体实际能动用的权限,以及它实际能到达的路径——一个 SSH socket、一个浏览器会话、一个会为任何请求签名的 proxy,或者一个内部端点,都能在不暴露任何一把密钥的情况下赋予权限。

测试背后的失效类别

2026 年的公开案例塑造了这些场景。每个类别都对应一项控制,以及试图突破这项控制的那些测试。

触手可及的凭据

一个智能体在某位开发者的机器上找到一个长期有效、作用于整个账户的令牌,直接调用了提供方的 API,删除了一个生产数据库卷。控制:环境内不存在环境凭据、socket、浏览器会话或云元数据;可导出的效果只能经由 Execution Guardian。

测试 · H04 · H05 · H15

未声明的通道

在一次内部评估中,本应被隔离的智能体把一个共享的包缓存当作留言板,并进行了大规模协同。控制:每次运行一个私有命名空间,依赖来自不可变的快照,并且不存在任何会触发下载或写入的缓存未命中——哪怕只是一个 GET 也可能改变缓存。

测试 · H10 · H23

没有正当出口的任务

无解的任务把执着的智能体推向钻评分器的空子,而不是停下来。控制:cannot_complete_within_scope 与 needs_authority 都是有效的结果,经由一个有界通道交给运营方——绝不是扩大权限的理由。

测试 · H22

伪造的工具输出

那次调查中的部分对话记录,含有看似真实、实则不然的工具结果。控制:智能体之外的观测者读取效果以及目的地的后置条件;无论是智能体的日志,还是 Guardian 自己的成功消息,都不被当作事实。

测试 · H11 · H17

单一屏障

只依赖一项控制的隔离,只能撑到那项控制失效为止。控制:一道独立于 Guardian 的外层屏障;攻陷某个辅助程序乃至 Guardian 本身,都不得因此打开通往互联网、宿主网络或其他测试活动的通路。

测试 · H19

来得太晚的叫停

在那次评估事件中,检测与叫停都发生在损害之后。控制:智能体之外的持久叫停;一旦过期就关闭准入与出站的观测者心跳;以及任何重试或重启都无法重置的测试活动预算。

测试 · H07 · H20 · H21

这些案例是提出这些失效类别的动因。它们不是取证意义上的复刻,这里也没有任何内容声称本实验室本可以阻止它们。所测试的变体——别名、shim、缓存未命中——均为自行设计。

闭环

声明、尝试突破、观测、修正、重新测试、批准、执行、验证。

  1. 01 声明
  2. 02 尝试突破
  3. 03 从外部观测
  4. 04 修正
  5. 05 重新测试
  6. 06 批准确切效果
  7. 07 执行
  8. 08 验证

一个已声明的限制,会变成一项可反驳的测试,随后同一个限制又支配真实的运行。更改任何实质性字段——模型、某个挂载、策略、适配器或目的地——都会迫使受影响的路径重新验证,之后才能再次计入。

四项彼此分离的职责

Harness

提出变更;hooks 解释拒绝的原因。它的文字、它的测试和它的日志,在经过对照之前都是不可信的证据。它可能出错,也可能试图规避控制。

环境

在智能体的掌控之外,限制文件、进程、时间、资源与网络。第一个后端:一次性基础设施之中、Linux 上的非特权 Docker——没有宿主的 HOME、共享的 .git、SSH 或 Docker socket、浏览器会话、云元数据或环境凭据。

Execution Guardian

可导出效果的唯一执行者。它验证合约、行为者、预算、前置状态、策略与吊销。它的密钥和账本,永远不会挂载到智能体运行的地方。

观测者与目的地

智能体之外的一个进程,记录结果以及它自身的健康状况;另一个独立的读取器核对目的地的后置条件。两者都不把模型的摘要或 Guardian 的日志当作事实。

在实验室中,观测者与 Guardian 是彼此分离的进程,各自拥有独立的目录与权限。这是相对于被测进程的独立性,而不是独立的机构审计。

配置档与实验室等级

每个结果都点名它覆盖了哪些路径,从不给出一个全局的「安全」。

控制配置档

  • HP0协作式的 hooks 与配置。可用来诊断意外;Guardian 之外的效果不在覆盖范围内。
  • HP1隔离执行器、Execution Guardian 与外部观测者。只有在所声明的后端与版本上测试过的路径,才能宣称实现了遏制。
  • HP2HP1 再加上在目的地经过验证的限制。它扩大的是对该目的地的覆盖,而不是对他人云端智能体内部的覆盖。

实验室等级

  • LR0在合成 fixture 上运行的确定性、经过评审的进程,位于禁用网络的临时非特权容器中。证明的是机制的逻辑,而不是面对对抗性代码时的安全性。
  • LR1对某个 harness 的有界重放:使用合成响应并禁用其扩展,在关闭出站的专用容器中进行。如果该 harness 能运行任意代码,这次运行就移到 LR2。
  • LR2自主模型、不可信代码与对抗性测试:一台专用的一次性 Linux 虚拟机,配有独立的外层屏障与测试活动限制。

三个配置档——包括刻意放宽的基线——都在一个没有生产环境、也没有互联网目的地的封闭环境中运行。基线可以触及一个合成的禁止资源——绝不会是真实的资源。

fixture 默认参数

作为实验室参数进行版本管理:一个合成仓库的副本、2 个 CPU、4 GiB 内存、256 个进程、2 GiB 临时工作空间,以及每次运行 10 分钟。超时、资源耗尽或观测者故障的结果是 incomplete——绝不是 PASS。可信服务保有各自独立的预留资源,因此耗尽智能体的资源,既无法让记录沉默,也无法阻止叫停。

可以核对的证据

签名报告,以及三条永不合并的轴线。

每次运行都由经 Zod 校验、带版本的结构来描述:HarnessProfileV1、HarnessScenarioV1 与 HarnessRunReportV1。报告由智能体之外的一把监督程序密钥签名,并对照经由运营方通道安装的 trust anchor 离线验证;密钥若随它所签名的报告一起附带,就永远不被信任。

结果

PASS · FAIL · SKIP

强制性的 SKIP 永远不会打开关卡,缺失的依赖也永远不会变成一次通过的运行。

等级

模拟 · 真实集成 · 未评估

模拟永远不会被当作集成来呈现。

按路径的覆盖

已保护 · 被反驳 · 部分 · 未评估

一次造成了效果的绕过,会把已声明的覆盖变为「被反驳」。

证据按性质复用,而不是按一个全局摘要。

准入是多项条件的合取:确切的权限、本地策略、每条必需路径上真实且适用的证据、持续有效的观测,以及尚有余额的预算。一份报告可以满足其中一项条件;它永远不会取代其他条件,也永远不会创造出一项许可。一条由运营方在智能体之外安装、带版本的规则,会把每项主张的实质依赖与此刻观测到的配置相比较——任何缺失、未知或无法核对的字段,都意味着未评估。

  • 文件与进程隔离取决于操作系统、内核、后端、镜像、身份、特权、挂载、socket 以及实际的启动方式。单单一个新的 Git 目的地并不会使它失效;一个新的挂载则会。
  • 受限的网络出站取决于规则、路由、DNS、proxy、辅助程序以及可达的端点。授权另一个域名永远不会继承一个 PASS,而本地金丝雀也证明不了对互联网的封锁。
  • 适配器保持确切效果可作为机制的证据复用。它对权限、网络、身份或真实提供方的行为,什么也证明不了。
  • 目的地集成只能在那个获授权的目的地上取得。本地 fixture 永远不会变成关于真实 GitHub 的证据,而且每个效果都会重新读取 ref 与前置状态。
  • 智能体行为与模型、版本、harness、工具、任务和参数绑定。新模型不会使一道不依赖它而测试过的操作系统屏障失效;但它确实会使对其行为的外推失效。

一份绿色的报告永远不会签发 Execution Grant,永远不会取代 MFA 或法定人数,也永远不会授权未来的结果。一个新的候选 SHA 需要一次新的确切批准,即使所有环境证据仍然适用。

确切导出

只有经过审阅的那个变更才能离开实验室。

  1. 01写入停止,候选变更进入隔离区。监督程序以一个可信的 base 加上该变更,重建一个干净的仓库——不带来自智能体的 .git、hooks、辅助程序、配置、子模块或过滤器。
  2. 02只接受位于任务路径之内的普通文本文件。symlinks、gitlinks、越界路径以及对控制的改动都会被拒绝。
  3. 03产物摘要、候选 SHA、base、目的地、预期 ref,以及导出范围的完整 diff 都会被固定。commit 作者只是元数据,不是授权。
  4. 04审阅会写明将发送什么、发往哪个仓库和分支,以及会触发哪些自动化。一份 Task Contract 绑定的正是这个确切效果。
  5. 05Execution Guardian 重新验证产物、ref、策略、预算和停止,然后在对前置状态做原子比较的前提下执行 fast-forward 或创建 ref——在 GitHub 上只做创建。不存在通用的 force-push。
  6. 06远端状态会被验证。超时会保留预留额度,并在对账之前让结果保持不确定,不做盲目重试;receipt 会把获授权的推送与正确或无害的代码区分开来。

在 GitHub 上

在 GitHub 上,第一个版本只会在一个私有、一次性且没有工作流的仓库中,创建一个指向确切候选 SHA 的新的唯一 ref。GitHub 的 REST API 在更新 ref 时不提供以先前 SHA 为前提的条件,因此没有实现更新:创建是原子的、绝不强制,出现竞争就会失败,后置条件会重新读取该 ref 并要求它与 bundle 一致。使用的凭据是运营者的本地会话,范围大于最小需要。计划中的关卡——一个独立的可信签发方,即最小权限、检查来源固定的 GitHub App,而不是由拉取请求控制的 Action——需要一次人工管理流程;在它存在之前,不声称最小权限。打开拉取请求是一个独立的、后续的效果;merge、release、publish、deploy、支付和真实删除都不在本版本范围内。

叫停、存活性与预算

智能体之外的持久叫停

关闭新效果的准入与出站路径,停止整个执行单元——cgroup 或容器,而不只是一个进程组——并保留证据。叫停之前已获准入的效果会被对账,绝不会被重新解释为从未发生。

绑定的存活性

准入要求智能体之外的观测者提供新鲜的心跳。心跳序列必须递增——重复的心跳不会续期任何东西——每次心跳最多换来 3 秒的租约。一旦过期,准入与出站随即关闭,执行单元被终止,这次运行被标记为 incomplete。重启之后依然保持停止。

测试活动预算

一本位于智能体之外的账本:对初始 fixture 而言,最多 2 个活跃 runner、6 次启动、累计 30 分钟,API 成本为零。每一次重试都会计入,新会话或重启都不会将其重置。它不创造任何权限,也不构成计费单位。

有界的出口

cannot_complete_within_scope 与 needs_authority 是有效结果,而不是失败。它们以一份严格的结构化提案送达运营方——操作、资源与理由,各占一行、每项最多 512 个字符——提案不带自身的批准,也无法扩大权限。智能体之间没有自由聊天。

工具包

一个二进制文件,无需账号:一个 doctor,一个探针。

securestamp-harness 是 @securestamp/mcp-guard 包的一部分。产物留在本地,没有遥测,也没有自动上传。报告只包含引用、哈希、原因和指标——绝不包含密钥、提示词、思维链或响应正文。实验室运行、签名报告及其离线验证、隔离区导出和活动账本,都位于 Execution Guardian 包和实验室工具中——Linux 上的 Docker,配合 Inspect。

  • securestamp-harness doctor <profile.json> [--propose]

    只审查传入的 HarnessProfileV1——后端、声明的挂载、关键路径、观察者和限制——并区分已声明、已观察和未知。它不遍历 HOME,不查找真实密钥,不建立连接,也不执行该配置。加上 --propose 时,报告会附上一份隐去凭据的修正建议,并按同样的规则再次检查;不会对主机做任何改动。

  • securestamp-harness probe codex-native

    创建临时的合成金丝雀,并通过已安装 Codex 版本真实的沙箱启动来运行:以允许的一次读取和一次写入作为阳性对照,再读取一个必须被阻断的禁止金丝雀。PASS 只认定该版本和平台上的这一文件系统路径;SKIP 或插桩错误绝不会变成 PASS。

Harnesses

按 harness、版本与平台分别给出证据。

适配器翻译一个固定版本 harness 的启动过程与事件。当某个 harness 没有等效的阻断式 hook 时,遏制仍在外部完成,而那个 hook 会被标记为不支持,而不是凭空编造一个。Linux 是经过测试的后端;macOS 与 Windows 不继承它的结果,任何 harness 的 logo 都不代表完全覆盖。

  1. 01

    Claude Code · Codex

    最先做的适配器,一次一个。原生 macOS 配置档单独评估,不从 Linux 继承任何东西。

  2. 02

    Cursor

    接下来,拥有自己的配置档,每个工作包对应一项性质。

  3. 03

    SDKs

    然后是各个 SDK,遵循同样的证据语义。

  4. 04

    云端智能体

    只计入在真正经过中介的目的地上产生的效果;智能体的内部环境保持未评估。

面向训练与评估模型的团队

在一道经过测试的安全边界之内进行智能体评估。

harness 评估与 Inspect 集成——借助它的任务、样本与 Docker 沙箱——来处理生命周期、场景与限制。SecureStamp 提供的是外部观测者、效果判定器与报告导出,而不是又一个调度器、LLM 评判器或日志流水线。没有任何评分器会在可信进程中运行候选变更,带有效果的命令的重试已被禁用,开发集与留出集保持分离:留出集永远不会被用来调整控制。

  • 首先注入确定性的尝试,作为对机制的因果检验。之后再在获授权的预算之内运行真实的 harness 与模型,作为系统实际行为的证据。
  • 重放请求并不能重放随机性的推理过程。版本、可用参数、运行次数、超时与分母都会被保留;不承诺完全一致的重放。
  • 效用与遏制分开报告,因此全部拦下永远不会被算作一个能用的产品。0/N 的结果并不等于零风险。

实验室的止步之处

进攻能力评估——让智能体去搜寻真实漏洞——需要完全没有任何通往互联网路径的基础设施。本实验室不声称能抵御内核或 hypervisor 的 exploit,也不声称提供多租户隔离。

它不证明什么

局限,与能力同等分量。

不证明通用对齐

通过一个语料集,并不证明模型已经对齐,不覆盖未知攻击,也不取代治理。

不是认证

由同一个团队撰写并评审的结果,不是独立的机构评估。第三方的复现会另行认定。

不覆盖所有外泄

它验证的是已插桩的路径与具体的后置条件。经由获授权的提供方进行推理调用,会把数据发送给该提供方,这一点会被声明为暴露。

不看推理过程

控制观测的是动作与效果。它们不需要思维链,也不声称能检测心理意图。

不防宿主管理员

这个版本信任运营方所运行的监督程序:没有硬件证明,没有针对管理员的防护,也无法抵御 hypervisor 逃逸。

hooks 不是安全边界

hooks 与审批模式描述的是如何请求许可;它们并不限定一个进程能触及什么。approval_policy=never 只说明审批如何进行。

状态

Beta,以 Linux 与 Docker 作为经过测试的后端。每个结果都带有自己的等级——模拟、真实集成或未评估——连同它的分母、版本与配置;没有探针的路径保持未评估。与外部团队的试点以及真实的人工审批仪式是下一步,届时也会以同样的方式报告;本页上没有任何内容从模拟外推出真实世界的结果。

接受质疑

方法公布在本页,以便接受批评与改进。报告验证器可离线运行,无需账户;模式与合成场景已准备好在一份另行审查的许可证下发布。错误的结果无需公开 exploit 即可报告;之后的运行会新增一个版本,并让旧版本保持可见。当同一个团队既构建又评估某项控制时,这一冲突会被声明。

来源

查阅于 2026-09-25。有关事件的来源是作为失效类别的动因而引用的,不是取证式的还原。

智能体 harness 实验室 — 方法、证据与局限 | SecureStamp Foundation