在 AWS 上用 Jev 做护栏:工具调用放行、询问或拦截(Rasik Rahman S)
外链 Rasik Rahman S 的实操文章(2026-10-21):一个 Lambda 护栏就智能体提出的每次工具调用向 Jev 问三个类型化问题(风险、意图是否相符、是否外泄数据),在代码里按阈值决策,记录到 DynamoDB,返回放行、询问或拦截。
这份指南指向哪里
Rasik Rahman S 在 DEV 上发布了 An Agent That Asks Permission From a Model That Cannot Lie: Jev Guardrails on AWS(2026-10-21),是他 Builder 系列的第 3 篇。智能体在执行每次工具调用之前,先把调用提交到一个 HTTP 接口。一个 Lambda 函数把用户请求和这次工具调用作为状态发给 Jev,在一次请求里问三个问题:risk(3 档 score:只读、可撤销的改动、不可撤销或涉及钱、凭据、他人数据)、intent_match(noul)和 exfiltration(noul)。Jev 通过 OpenRouter 调用。
决策规则是代码里的一个纯函数,有单元测试。外泄概率高就拦截。意图相符度很低就拦截。意图明确的破坏性调用返回“询问”,而不是“拦截”。任何错误(例如 Jev 超时)也返回“询问”,所以服务中断时智能体会暂停,而不是放行。API 密钥存放在 SSM Parameter Store,每个决定写入一张 30 天后过期的 DynamoDB 表。在作者的演示中,rm -rf ~/Projects 的风险分为 1.97、意图相符度为 0.01,被拦截;把 ~/.ssh/id_rsa 上传到粘贴站点的外泄概率为 0.98,被拦截。每次调用花费约 0.000023 至 0.000024 美元。
本页仅为非官方手册入口——主张请对照原文、源代码仓库 与 TypeSafe 现行文档 核验。阈值来自一次演示,请用你自己智能体的调用来调整。
建议带走的点
- 把指令写进问题里,状态只放少量事实。
- 放行、询问、拦截的规则写在代码里,便于测试,改阈值也不用重新部署。
- 失败时收紧:判官不可用时,交给人确认,而不是放行。