我们不告诉你发生了什么;我们展示证据能证明什么。
每一个经过 Noa 的动作都会获得一份经过签名、篡改可检测的凭据 — 你可以亲自离线验证的证明,无需 Noa 账户。今天就能从 npm 安装 MCP 代理或 SDK 核心;将有风险的动作暂停以等待你的确认,这项功能已在 MCP 代理中上线。与模型无关 — 现已适用于任何 MCP 宿主或 Node 应用。
凭据已出具 · 智能体动作已封存
Noa 所支持的这一批准时刻,今天已在 MCP 代理中上线。一键操作的手机应用正在 App Store 审核中。
已于 2026-08-11 提交至 App Store 和 Google Play — 等待商店审核
用大白话说
你已经在用的 AI 助手,正开始 做 事,而不只是回答问题。
Noa 是一道安全刹车,防止你的 AI 误转账、误删文件,或在 未经检查的情况下做出重要举动。
可以把它想象成大额银行转账前的第二次批准 — 只不过是为 AI 智能体准备的。
你的 AI 助手与真实世界之间的一道安全层。在它做出真正重要的事之前,Noa 会先进行检查。
安全的动作直接通过。有风险的动作会暂停,等待你的批准。被禁止的动作会被拦截。每一个经过 Noa 的动作都会留下一份你可以亲自验证的、篡改可检测的凭据。
AI 会犯错,而 AI 助手正开始做出真实的操作 — 付款、发邮件、删除、改动线上系统。错误的动作一旦执行,就无法挽回。Noa 在它执行之前将其拦下。
让你终于有信心放手让 AI 做真正的工作。每一个动作都有一份可验证、篡改可检测的凭据。由你决定哪些需要你的确认。现已适用于你的智能体 — MCP 代理或 Node SDK。开源 — 一切都可阅读、可验证。
错误的动作一旦执行,就无法挽回。这正是团队让智能体停留在只读状态的原因 — 因为不敢赋予它们真正的权力。
事后
日志告诉你发生了什么。
等它出现在日志里时,钱已经转出、数据行已经删除。后视镜阻止不了撞车。
执行之前
Noa 决定什么 应该发生 — 在它执行之前。
有风险的动作会等待检查或批准。幻觉永远到不了那个不可逆的步骤。
你的智能体调用一个工具 — 退一笔款、发一封邮件、删除一张表。集成之后,Noa 会在请求执行之前拦截它。
安全的动作在亚毫秒内自动放行。有风险的需要人工批准。被禁止的会被直接拦截 — 依据你所编写的策略。
每一个裁决都被封存进一份哈希链凭据 — 谁、做了什么、依据哪条规则、结果如何。对于可逆的动作,集成可以附加一条经过验证的回滚路径 — 回滚发生时,Noa 也会为其出具凭据。
每一份凭据都链接到上一份。改动任何一份过往凭据,链条都会在下一个哈希处断裂。
Noa 不只是拦截 — 对于有风险的调用,它可以暂停以等待你的确认,然后执行并封存一份凭据。用 SDK 核心包裹一个工具,现已在 npm 上线;下方的批准暂停功能今天已在 mcp-proxy 0.3.2 中上线。
用 noa-mcp-adapter-core 的 preCheck 包裹任何工具 — 与模型无关 — Noa 便会在每一次调用执行之前对其把关:自动放行安全动作,拦截禁止动作。右侧时间线中的批准暂停步骤今天已在 mcp-proxy 0.3.2 中上线。
SDK 核心(noa-mcp-adapter-core)和 MCP 代理(noa-mcp-proxy)今天已在 npm 上线 — 时间线中的批准暂停功能今天也已在 mcp-proxy 0.3.2 中上线。今天就能亲自验证一份凭据: npx noa-receipt verify (见右侧)。
亲自验证
也可检查已发布的软件包制品: npm pack noa-receipt@0.8.0 → node dist/src/cli.js verify …
离线。无需 Noa 账户。验证器会重新计算每一个哈希,并检查每一个 prevHash 链接 — 如果有人改动过某份过往凭据,验证会恰好在那个序号处失败。
或者现在就在浏览器里验证一条链Noa 的策略规则和凭据格式 — 即治理/凭据组件 — 是开源的(Apache-2.0)。规则由你阅读。凭据由你验证。 离线。无需 Noa 账户。
哥本哈根是我们给一条规则起的名字,而这条规则是一种限制:验证器从不陈述「发生了什么」。它陈述的是「所提供的证据能支持什么」——并记录下它没有主张的内容。凡是代码不为之背书的部分,都会写明,而不是留给你去猜。
这条规则能被看见。在不提供密钥环的情况下验证一条凭据链,得到的答案并不是通过:状态返回 UNVERIFIED,结果会逐条说明哪些没有被检查——签名从未经过认证;而在没有提供检查点时,最近的凭据是否被删除也无法离线察觉。通过必须靠挣得,缺口则无论如何都会被打印出来。
这个名字呼应物理学中的哥本哈根诠释,以及与之一同流传的那句话:物理学关心的不是自然是什么,而是我们能就自然说些什么。这句话被归于尼尔斯·玻尔(Niels Bohr),但它经由奥格·彼得森(Aage Petersen)1963 年的回忆转述,并未出现在玻尔本人的著作中——我们把这一点讲明,而不是用他的名字为其署名。一门只主张自己能支撑之事的学科,必须先从自己的出处做起。
开销
在安全路径上,一次策略检查是内存中的比较,没有网络往返。被闸门自动放行的动作会直接通过;只有被你的策略或双人规则保留待批准的动作才会暂停。
失败模式
默认失败即关闭(可配置)。如果 Noa 无法做出决定,有风险的动作会等待 — 不会蒙混过关。
凭据存储什么
原始参数绝不会存入凭据 — 只存它们的哈希 — 审批人以不透明 id 出现,而非姓名。不存原始数据、客户信息或机密。
这取决于你的策略,而不是 Noa。安全路径上的一次策略检查是内存中的比较,没有网络往返,因此这项检查本身不会拖住被闸门自动放行的动作。会等待的调用是被保留待批准的那些 — 也就是被你的策略标记为有风险的调用,以及你的双人规则所要求的调用。托管控制台会在这项检查周围做更多的事(它会读取你的组织、策略和规则),所以这并不是对端到端延迟的承诺;它说明的是安全路径检查做什么、不做什么。
验证 CLI、MCP 代理和工具把关 SDK 核心今天全都已在 npm 上线。运行时的人工介入审批 — 将有风险的动作暂停以等待你的确认 — 今天已在 npm 上线(mcp-proxy 0.3.2 --approval-rules)。
把代理放在任何 MCP 宿主前端 — 每一次工具调用今天就受到治理:自动放行安全动作,拦截禁止动作,无需改写代码。
$ npx noa-mcp-proxy -- node your-server.mjs
→ every tools/call gated: ALLOW → forwarded + receipted
DENY → blocked + receipted在 CrewAI、LangChain 或你自己的执行器中为单个工具调用把关 — 一次函数调用,适用于任何框架。
$ npm install noa-mcp-adapter-core
const { decision, receipt } = preCheckSession(toolCall, opts);
if (decision === 'ALLOW') await run(toolCall);
// receipt is signed + hash-chained either way一种小巧、经哈希链化的 JSON 格式,只存参数哈希,绝不存原始值。附 JSON-Schema + 一致性测试套件。
{
"spec": "noa.receipt/0.1",
"governance": { "verdict": "EXECUTED" },
"chain": { "seq": 42, "hash": "sha256:…" }
}重新计算每一个哈希,检查每一个 prevHash 链接。离线,无需任何服务。
$ npx noa-receipt verify receipts.json --keyring keys.json
→ ✓ VALID · signatures + chain intact
(or) ✗ TAMPERED at seq=37Noa 是开源的,现已上线 — 无需等候名单,无需注册。装上这些包,在你自己的环境中运行,并亲自离线验证每一份凭据。由我们代你运行的托管闸门服务已列入路线图。
已于 2026-08-11 提交至 App Store 和 Google Play — 等待商店审核
开源核心无需等候名单 — 今天就能通过 npm 或源码使用。托管的企业控制台已上线,处于测试版阶段;自助注册正在开发中,目前的访问权限按申请开通。托管中继与由我们代你运行的闸门服务仍在路线图上。