为什么你的 AI 代理拥有对所有事物的 Root 权限(以及如何用 3 行 Python 修复)
发布: (2026年4月17日 GMT+8 07:52)
2 分钟阅读
原文: Dev.to
Source: Dev.to
概览
我在工作中一直在构建 AI 代理,发现同一个问题:每个框架都允许代理调用任何已注册的工具,而没有安全检查。拥有数据库访问权限的代理可以执行 DROP TABLE users,而没有任何阻拦。
于是我创建了 AgentShield‑FW,一个运行时防火墙,在每次工具调用前拦截并执行可配置的安全策略。
- GitHub:
- PyPI:
pip install agentshield-fw
最简使用方式
import agentshield
shield = agentshield.Shield()
shield.protect # activate the firewall
def execute_sql(query: str) -> str:
return db.execute(query)
# Agent tries:
execute_sql("DROP TABLE users")
# → Blocked by AgentShield: Destructive SQL detected (ASI02)
与众不同之处
- 零依赖——核心仅使用 Python 标准库
- 超过 40 条预置规则,覆盖 SQL 注入、路径遍历、凭证泄露、提示注入、Shell 命令、速率限制等
- 对应 OWASP Agentic Security Top 10(ASI01‑ASI10)
- 兼容 LangChain、MCP、CrewAI、OpenAI SDK,或任何 Python 函数
- 子毫秒延迟(< 1 ms p99)
- 94.56 % 测试覆盖率
- 哈希链审计日志,防篡改检测
其他名为 “AgentShield” 的项目是静态扫描器(分析配置文件)。这是一款 运行时防火墙,拦截实时工具调用——类似 WAF 与 SAST 的区别。
MIT 许可证。Python 3.10‑3.13。