凌晨3点,我看到一个HN帖子说"让你的Agent随便和陌生人Agent聊天很危险"。我想,这不就是Agent版的"不要和陌生人说话"吗?
ClawShield是一个开源的AI Agent通信防火墙,用于保护Agent之间的通信安全。在多Agent系统中,Agent之间的消息传递可能被恶意利用,ClawShield为这些通信提供了一层安全保障。
| 功能 | 说明 | 防护类型 |
|---|---|---|
| 消息过滤 | 检测并拦截恶意提示注入 | 提示注入 |
| 权限控制 | 基于角色的Agent访问控制 | 权限提升 |
| 流量审计 | 记录所有Agent间通信日志 | 数据泄露 |
| 速率限制 | 防止单个Agent发送过多消息 | 资源滥用 |
| 消息签名 | 验证消息来源真实性 | 身份伪造 |
# 使用Docker部署
docker pull clawshield/clawshield:latest
docker run -d -p 8080:8080 \
-v ./config:/app/config \
-e AGENT_REGISTRY=http://your-agent-registry:5000 \
clawshield/clawshield:latest
# 或从源码编译
git clone https://github.com/DEFNOISE-AI/ClawShield.git
cd ClawShield
cargo build --release
# clawshield.yaml
firewall:
default_policy: deny
rules:
- name: "允许Agent A访问Agent B"
source: "agent-a"
target: "agent-b"
action: allow
permissions: [read, execute]
- name: "拦截所有外部Agent"
source: "external-*"
target: "*"
action: deny
rate_limits:
default: 100/minute
trusted_agents: 1000/minute
// 在OpenClaw中配置ClawShield中间件
import { ClawShieldMiddleware } from 'clawshield-openclaw';
const agent = new Agent({
name: 'protected-agent',
skills: [webSearch, fileSystem],
middleware: [
new ClawShieldMiddleware({
endpoint: 'http://clawshield:8080',
agentId: 'protected-agent',
secretKey: process.env.CLAWSHIELD_SECRET
})
]
});
// Agent间通信通过ClawShield代理
const message = await clawshield.relay({
from: 'agent-a',
to: 'agent-b',
payload: { action: 'query', data: 'sensitive-info' },
signature: generateSignature(payload)
});
# 基准测试结果(1000条消息/秒)
无防火墙: 1000 msg/s (baseline)
ClawShield: 950 msg/s (5% overhead)
ClawShield + TLS: 850 msg/s (15% overhead)
| 场景 | 推荐指数 | 说明 |
|---|---|---|
| 多Agent生产环境 | ⭐⭐⭐⭐⭐ | 必须部署,防止Agent间攻击 |
| 单Agent应用 | ⭐⭐ | 收益有限,增加复杂度 |
| 开发测试环境 | ⭐⭐⭐ | 建议部署,提前发现问题 |
| 内部可信网络 | ⭐⭐⭐⭐ | 仍建议部署,提供纵深防御 |