基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
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-02 21:30

Agent 权限控制应落在工具调用层

dev.to · AI#Agent#权限控制#安全审计
Editor brief · 编辑速览

文章将 Agent 安全拆为能力授权和调用可观测性:代码应决定调用者能访问哪些工具及其范围,并记录执行结果。提示词无法代替这些控制,审计还需还原每次调用的权限上下文。

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

AI 深度解读

给 AI Agent 加上文件、数据库和内部 API 工具后,安全问题就从「它会说什么」变成了「它能执行什么」。原文的核心主张是:真正的权限边界在工具调用代码里,提示词不能承担授权职责。

作者给出的方案分两部分:在模型调用前确定身份与权限,在每次工具执行前重新校验,并记录成功和拒绝。这套思路值得拿来检查现有 Agent,但文中的产品介绍缺少代码和对照数据,需要与通用设计原则分开看。

为什么提示词挡不住工具越权

原文把 Agent 拆成模型、工具和循环。模型选择工具,读取结果,再决定下一步。循环让它能连续完成任务,也让一次错误选择可能继续影响后续操作。

每个工具都代表一种实际能力:读取文件、查询数据库、调用内部 API,或者发送消息。工具背后的凭据有多大权限,潜在影响范围就有多大。检索工具能访问整个索引,并不会因为提示词写了「只看当前用户的数据」就自动缩小访问范围。

作者举出的风险路径很常见:开发时为了方便给 Agent 接入一个持有服务凭据的工具,后来又让它接收不可信输入。此时,攻击者可能通过输入影响模型选择,触达原本就暴露给 Agent 的能力。

问题不在于少写了一句警告,而在于执行代码没有建立可靠限制。

提示词可以描述行为要求,授权代码必须决定操作能否执行。

这也解释了为什么「给某个 Agent 开通访问权限」太粗。读取和写入需要分别授权;允许查询,不能顺带允许修改。权限应当落到具体工具调用及其作用域上。

权限要先算清,再让模型选择工具

原文最有用的部分,是把授权顺序明确下来:

  1. 解析调用者身份和 Agent 身份。
  2. 根据这对身份计算可用工具及各自的作用域。
  3. 只把这组工具和权限范围提供给模型。
  4. 模型提出工具调用时,再检查是否符合已解析的权限。
  5. 校验通过才执行,并记录决定与结果。

这里的作用域(scope),可以理解为「这次调用具体能碰哪些资源」。它不能只存在于提示词描述里,执行代码必须按它限制访问。

第 3 步和第 4 步解决的是不同问题。提前过滤工具,让模型少走无效路径;执行前复核,则负责拦住不符合权限的请求。原文还指出,模型反复选择最终会被拒绝的工具,也会浪费 token、增加调用噪声。不过,文章没有给出节省比例。

作者关于「不能在工具选择后才检查」的表述,容易让人误读。结合后面的流程看,它强调的是:身份和初始权限不能等模型选完工具后才确定,而不是取消执行前检查。

模型应当在既定权限内规划,每次执行仍然需要授权校验。

这套顺序尤其适合检查那些把全部工具统一注册给模型、仅靠系统提示词区分用户权限的实现。

日志要回答每次调用发生了什么

只有对话记录,通常只能证明用户使用过 Agent。真正排查问题时,需要知道它调用了哪个工具、使用什么权限、是否被拒绝,以及最后有没有执行成功。

原文要求每次调用至少记录四项信息:工具名、解析后的作用域、授权决定、执行结果。拒绝和成功应当经过同一条记录路径,便于放到同一时间线上检查。

「没有执行记录」和「明确拒绝执行」差别很大。前者可能是模型没有尝试,也可能是日志缺失;后者才提供了权限检查生效的证据。

文章随后介绍了 RESK 的两个组件。按作者的描述,reskSecure 负责工具权限执行层,解析身份和作用域,并决定是否放行;ReskPoints 负责记录工具调用、作用域及结果,让拒绝和成功都可见。

但原文没有提供接入代码、API 签名、配置示例或测试结果。因此,这部分能说明产品的职责划分,还不足以判断它在具体项目中的接入成本和覆盖程度。

我的判断

我认同文章把控制点放在工具边界上。对已经具备服务端开发经验的程序员来说,这与普通接口授权有相通之处:调用请求可以来自模型,但授权决定仍应由可信代码作出。

相比只写提示词,逐工具授权更容易检查,也更容易留下审计证据。不过,过滤工具列表并不等于完整授权。即便某个数据库工具允许调用,也仍要判断这次操作是否处于允许的资源范围内。原文强调了作用域,却没有展开参数如何参与检查、底层凭据如何收窄,这些都需要落地时补齐。

监控部分也有边界。记录授权决定,不能自动证明工具执行符合预期;记录执行结果,也不能自动解决日志自身的访问保护问题。文章没有讨论这些细节,不宜把它当成完整的安全方案。

至于 RESK,作者没有给出与自建授权层、复用现有接口权限系统的对照数据。它的效果目前只能按文中的设计说明理解,不能据此推导出性能、成本或安全性优势。这是一份边界清晰的设计建议,产品能力还需要另行验证。

能拿来做什么

  • 检查 Node 服务中注册给模型的工具,把读取、写入、发送消息等能力分别列出,并确认每项能力都受调用者身份约束。
  • 将身份解析和可用工具计算放到模型调用之前,再在工具执行入口复核作用域,避免权限只写在提示词里。
  • 给工具调用补齐工具名、作用域、授权决定和执行结果四类记录,同时检查拒绝路径是否也会留下日志。
  • 在 Agent 开放给不可信输入前,清理开发阶段的便利工具,收窄服务凭据和资源访问范围,尤其检查能直接调用内部 API 的入口。
Original source

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

阅读原文
上一篇
多分类评测中,micro F1 可能只是准确率
下一篇
存储型提示注入可跨越两次合法 API 调用

资讯速览

dev.to · AI · 2026-11-02 21:30

AI 评分 8.0 / 10

相关标签

#Agent#权限控制#安全审计

继续阅读

  • 客服 Agent 评测还需检查越权承诺与漏转交
  • 多分类评测中,micro F1 可能只是准确率
  • 存储型提示注入可跨越两次合法 API 调用
  • 混元 Hyra 2.0 用分层代理沉淀科研工具
  • Cline 与 Aider 实测:交互控制和执行效率