SafeAgents:一个开源代理,在你的编程智能体执行每次工具调用之前对其进行检查

Reddit r/LocalLLaMA 工具

摘要

Hugging Face开源了SafeAgents,一个本地代理,可在编码代理执行前拦截并检查每次工具调用,通过确定性检测器和可选的本地判别模型防止危险操作与奖励作弊,兼容多种代理框架。

SafeAgents 是一个小型本地代理,位于编程智能体与其模型服务器之间。它会在运行框架收到模型响应之前,检查其中的每一次工具调用。被标记的调用会替换为一条简短的文字通知,因此运行框架收到的是纯文本回复,不会执行任何操作。你只需将智能体的基础 URL 指向该代理,而不是模型服务器。所有检查都在你的机器上本地运行:代理只会将流量转发到你原本使用的模型服务器,不会将你的提示词、代码或工具调用发送到其他地方,除非你将可选的评判模型指向远程服务器。每次工具调用最多会经过三类检查:两项仅需请求内容的本地检查:工具是否由运行框架声明,以及调用是否访问了对话中从未出现过的主机。模型自己先前的发言不算来源,因此模型自行编造的 URL 会被标记。由 u/evalstate 开发的 atif-scan 会在进程内对待执行的调用运行约 110 个确定性检测器,无需调用模型或访问网络,检测范围涵盖沙箱侧信道、代理和网络绕过、命名空间逃逸以及奖励投机。例如,使用 curl 访问云元数据端点、使用 curl --noproxy 将 ~/.netrc 发送到某处,或读取 /proc/1/environ。还可以选择使用评判模型来处理较轻微的检测发现。它可以是任何兼容 OpenAI 的服务器,包括通过 llama.cpp 在你自己的机器上运行的小模型,因此这一步也可以完全在本地进行。它以 JSON 格式回答允许或阻止。它只能看到用户请求、调用和检测发现,看不到智能体的推理或工具输出。它可以增加阻止判定,但不能撤销已有的阻止判定。在强化学习和评估中捕捉奖励投机行为 同一套检测器也能检测策略为钻奖励机制的空子而非完成任务所发起的工具调用:写入自己的奖励文件、修改验证器的测试,或篡改 pytest,让所有测试都通过。由于 safeagents 只是位于兼容 OpenAI 的服务器之前的一个代理,因此也可以放在用于 rollout 或评估运行的推理服务器之前。在 --log-only 模式下,它会记录这些尝试,而不改变运行轨迹,从而衡量模型尝试作弊的频率。在阻止模式下,调用会被替换为一条通知,绝不会执行。一些实用细节:它支持 OpenAI Chat Completions 和 Anthropic Messages,无论是否使用流式传输。文本会在收到时立即转发;工具调用则会暂存,直到其参数完整。在搭载 M 系列芯片的 Mac 上,每次调用的本地检查耗时约为 10–20 毫秒。只有已经触发检测发现的调用才会交由评判模型处理。--log-only 会检查每次调用,但不做任何改动,建议从这种模式开始。你信任的主机可以通过 --allow-host 添加。代码仓库提供了 12 种运行框架的配置指南。其中六种(pi、Claude Code、OpenCode、Qwen Code、OpenHands、DeepSeek Harness)在 CI 中接受端到端测试:真实的运行框架通过代理与按脚本响应的模型交互,测试会检查被标记的调用是否未执行,以及正常调用是否已执行。接下来的计划是推出一个经过微调、用于判断恶意工具调用的小型决策模型,以及一个用于评测它的公开基准。欢迎报告有价值的拦截案例和误报。采用 Apache 2.0 许可证,本地运行:https://github.com/huggingface/safeagents
查看原文

相似文章

@vintcessun: 原来agent安全可以不止盯工具调用,还能实时读它的推理过程。Adrian在agent执行动作前,既看行为日志又把reasoning chain过一遍,两个维度交叉检测。效果?DeepMind论文说联合分析比纯行为检查准确率提升35%。它…

X AI KOLs Timeline

Adrian 是一个开源 AI 代理运行时安全监控引擎,通过联合分析代理的行为日志和推理链进行异常检测,比纯行为检查准确率提升 35%,支持 LangChain 两行 SDK 接入。

AgentGuard

Product Hunt

AgentGuard 是一款免费工具,可在安装前扫描 AI agent 的 SKILL.md 文件,检测安全风险、隐藏能力和质量问题,并生成包含评分与结论的 Trust Report。