基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
  • 知识卡片碎片时间过考点
  • 场景篇按分类整理的大前端场景考点
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
  • 动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
    • AI 热点每日 AI 资讯与动向
AI 工作台
简历
旧版
AIHT
内容
精选全部 AI 动态热点榜AI 日报收藏
分类
模型行业编程产品技术观点开源
更多
Agent 接入
返回首页开发者导航
AIHT
精选 / 资讯详情
8.0
热点
AI SCORE
技术实践2026-11-09 16:55

智能体校验如何避免把未知当作通过

dev.to · AI#智能体#安全校验#开源
Editor brief · 编辑速览

作者从两个小型开源校验工具中总结出原则:无法完成检查时,应明确返回未测量状态。制裁名单核验案例通过带签名和日期的快照校验数据,名单缺失、过期或版本不足均不得判定通过。

文章思维导图
Knowledge map
拖拽缩放
AI deep read

AI 深度解读

给 AI Agent 一个链上身份,离证明它可信还差得很远。作者做了两个开源校验工具,一个核对制裁名单声明,一个核对支付凭证,最后发现它们依赖同一条规则:没有完成核验,就不能给出通过结论。

这篇值得读的地方,是它把「可信」拆成了程序员能检查的条件:数据是否有效、必要字段是否校验、漏掉检查后测试会不会报警。作者也公开了零付费用户和一个尚未修复的漏洞,让这些经验的适用边界更清楚。

查不到,为什么不能默认通过

ERC-8004 为 AI Agent 提供链上身份,但身份只能回答「它是谁」,不能直接回答「它的声明是否属实」。原文还提到,简单平均声誉分数,可能把错误的 Agent 选成「最佳」。不过,作者没有展开那项实验,本文的证据仍来自他们自己的工具。

第一个工具 Al-Muqarin,核验的是一类具体声明:某家公司不在 EU、UK、OFAC、US 制裁名单上。它把声明与带签名、带日期的公开名单快照进行比对。

关键在于如何处理异常:名单缺失、过期,或者版本低于最低要求,都不能返回「clean」,而要返回 ONMEETBAAR,即「未测量」。

没有查出问题,和根本没能完成检查,必须是两种结果。

这就是失败关闭(fail-closed)的思路:证据不满足要求时,不给通过结论。否则,上游一次抓取失败,就可能被下游当成安全绿灯。

签名和最低版本要求也各有用途。签名用于核验快照来源及完整性,最低版本要求用于拒绝回滚后的旧名单。一份旧快照即使签名有效,也不代表它仍适合支撑当前判断。

作者承认,OpenSanctions 和托管工具 agentbroker 已经会对筛查结果签名,OpenSanctions 的数据覆盖还更广。他们声称自己没在其他地方找到的,是「对名单本身的快照签名,再用最低版本要求拒绝回滚」这一组合。这是作者的观察,不能当成经过全面调查的独家能力。

测试全绿,怎样证明检查真的存在

第二个工具 agent-receipt-verify 核验 x402/EIP-712 支付凭证,检查 Agent 是否确实支付了它声称的金额,以及是否使用了所声称的支付通道。规则相同:凭证没有完整通过校验,就如实报告,不能向上取整成「看起来没问题」。

两个工具之间,更值得复制的是测试方法。

作者会主动往代码里植入错误,例如删掉一项检查、翻转一个比较条件、漏掉一个字段,并要求每一个错误都必须触发测试失败。这类方法通常称为变异测试(mutation testing)。它检查的不是代码有没有跑过,而是代码被改坏后,测试有没有能力发现。

Al-Muqarin 当前能捕获 548/548 个植入错误。这支持一个具体结论:对于他们选择的这批错误,测试具有检测能力。它不能证明所有现实漏洞都已覆盖,原文也没有提供这些错误的分布、生成方式或独立评估。

对程序员而言,这比单看覆盖率更有启发。一个校验函数即使被执行过,测试也可能只断言「返回了对象」,没有断言错误输入必须被拒绝。

作者给出的检查办法很直接:如果系统会输出「verified」或「trusted」,就逐个删除检查条件,看看测试是否真的会失败。

我的判断

我认同它对结果语义的坚持。校验工具最危险的失误之一,是把「证据不足」包装成「校验通过」。明确返回未测量,能让调用方决定补数据、重试,还是暂停后续流程。

但失败关闭只是局部规则,不能自动拼出 Agent 信任体系。

作者自己的另一个影响声明校验原型就暴露了这个问题:它试图检查 Agent 的捐赠是否产生了所声称的效果,但「由谁核验」仍是自由文本。有人可以填写一段看不出与自身有关联的控制方描述,从而获得错误通过。作者已有测试证明漏洞存在,却尚未修复。

这说明,流程要求「独立核验」,不等于程序已经能识别核验者是否独立。字段齐全,也不等于证据成立。

商业有效性同样没有得到证明。Al-Muqarin 目前是零付费用户,作者把这视为真正的检验。与 OpenSanctions 等方案相比,原文没有给出准确率、维护成本或接入成本的对照数据,因此目前更适合把它看作一份工程经验,而非选型结论。

能拿来做什么

  • 在 Node 校验接口中,把「通过」「未通过」「无法完成核验」表达为可区分的结果,并让调用方显式处理数据缺失和过期。
  • 给日常 AI 编程生成的校验代码补一道检查:手动删除金额比较、必填字段检查等关键条件,确认现有测试会失败。
  • 如果业务依赖外部名单快照,可以分别检查签名、日期和最低版本要求,避免把「签名有效」直接当成「数据可用」。
  • 接入 Agent 支付或声明核验前,列清哪些结论由程序验证,哪些仍依赖自由文本或人工描述,尤其要检查「独立第三方」这样的身份前提。
Original source

本文由 AI 通读原文后重新编写,观点部分为站内判断,细节以原文为准,来源 dev.to · AI,原文版权归原作者所有。

阅读原文
上一篇
设计Agent权限,先分清身份与审批
下一篇
访问日志揭示假冒爬虫与敏感文件探测

资讯速览

dev.to · AI · 2026-11-09 16:55

AI 评分 8.0 / 10

相关标签

#智能体#安全校验#开源

继续阅读

  • 智能体工具重试,如何避免重复扣款退款
  • 设计Agent权限,先分清身份与审批
  • 访问日志揭示假冒爬虫与敏感文件探测
  • AI 原型快速交付前,先设退出与加固条件
  • 用16类通话场景验收语音Agent