AgentWard 是面向 AI 代理的开源权限控制平面,定位为代理与工具之间的安全代理层。其核心理念是:用自然语言告诉代理“不要碰炉子”是可被绕过的护栏,而 AgentWard 把物理锁装在炉子上——代码级强制执行,提示注入无法覆盖。它位于 AI 代理与 MCP 服务器、HTTP 网关、函数调用等工具之间,执行最小权限策略、运行时检查数据流并生成合规审计轨迹。策略在 LLM 上下文窗口之外用代码强制执行,模型看不到、无法覆盖、无法被诱导忽略。
主要能力覆盖五步安全生命周期:SCAN 在运行时前发现工具、分类风险并检测供应链威胁;CONFIGURE 根据扫描结果生成定制策略;ENFORCE 运行代理,每次工具调用都依据策略在代码中评估;VERIFY 通过对抗性探针确认策略能阻止应阻止的行为;MONITOR 以 JSON Lines 和 RFC 5424 syslog 输出审计轨迹,便于 SIEM 集成。
扫描器自动发现 MCP 配置(Claude Desktop、Cursor、Windsurf、VS Code)、Python 工具定义(OpenAI、LangChain、CrewAI)及 OpenClaw 技能,输出带风险评级的权限图、技能链分析、安全建议与合规框架提示。当检测到 PHI、金融、交易、个人数据或持卡人数据模式时,会提示 HIPAA / GDPR / SOX / PCI-DSS / DORA / MiFID II 等框架及对应 agentward comply --framework <name> 命令。安装前还会检查技能目录,捕获反序列化攻击、YAML 不安全加载、可疑安装钩子、依赖仿冒及恶意 .pth 文件。工具架构层检查包括 REPL 链、持久化链、SSRF 参数、会话/调用历史暴露等。
运行时方面,AgentWard 作为透明代理拦截每次工具调用,依据策略允许、阻止或标记审批,并记录完整审计轨迹。策略支持能力范围细化,将资源级开关转为参数级约束,涵盖字符串、网络、数值、布尔、数组等约束,采用 AND 逻辑,默认失败关闭,仅用 Python 标准库评估。
此外,AgentWard 提供远程审批:与 OpenClaw 和 Telegram 配合时,可将 action: approve 的工具调用以带 Allow Once、Allow Session、Deny 按钮的消息发送到手机,本地 macOS 对话框与 Telegram 并行竞速。内置 PII 检测与脱敏引擎,支持 15 类 PII,完全本地处理,可作为 Python 模块或零依赖脚本使用。LLM-as-Judge 层对通过策略引擎的调用进行二次模型评估,检测提示注入、范围蔓延与语义绕过,且裁判只能升级决策,不能覆盖显式 BLOCK。会话级规避检测通过五种模式检测器对滚动调用窗口评分,识别跨多步的隐蔽攻击。策略回归测试 agentward probe 通过对抗性调用库发现策略漂移。
使用方式以 agentward init 为起点:扫描工具、显示风险摘要、生成推荐策略并接入环境。也可逐步运行各阶段。适用场景包括使用 MCP 服务器的 Cursor、Claude Desktop、VS Code、Windsurf 用户,以及安装 OpenClaw 技能的用户;无 MCP 服务器时也可扫描 Python 工具定义。限制方面,需至少配置一种上述环境;OpenClaw 场景下代理必须在 OpenClaw 重启前运行;LLM-as-Judge 需安装可选依赖,缺失时会启动失败;部分框架与命令行细节未在资料中完整展开。