运行时依赖
安装命令
点击复制技能文档
agent-constitution-guard AI代理宪法护栏 —— 为AI代理定义不可变的行为规则、权限边界、升级策略和安全锁,代理无论在何种上下文或用户压力下都无法覆盖这些规则。
技能元数据 Slug:agent-constitution-guard
版本:1.1.0
作者:SKY-lv
描述:面向生产环境的AI代理宪法护栏系统。定义不可变的行为规则、多级权限边界、人工升级策略、安全锁和全面审计日志。代理必须遵守这些规则,无论上下文、提示注入还是社会工程尝试。
类别:安全
许可:MIT
触发关键词:宪法、护栏、权限守护、安全规则、行为约束、边界检查、升级策略、代理安全、不可变规则、合规守护、红线、权限边界
为什么重要
具有访问文件、API和外部系统权限的AI代理需要强制执行的边界。没有宪法护栏:
代理可能会响应误导性提示删除生产数据库
代理可能会将敏感数据外泄到外部端点
代理可能会在没有监督的情况下花费数千美元的API调用
代理可能会修改系统文件,破坏宿主环境
该技能提供可强制执行、可审计的多层保护。
架构
``
┌─────────────────────────────────────┐
│ 代理操作请求 │
└──────────────────┬──────────────────┘
│ ▼
┌─────────────────────────────────────┐
│ 层1:不可变检查 │ ← 任何人都无法覆盖(硬安全边界)
│ (Hard safety boundaries) │
└──────────────────┬──────────────────┘
│ PASS ▼
┌─────────────────────────────────────┐
│ 层2:策略引擎 │ ← 基于规则的权限检查(上下文感知规则)
│ (Context-aware rules) │
└──────────────────┬──────────────────┘
│ PASS ▼
┌─────────────────────────────────────┐
│ 层3:升级 │ ← 对敏感操作的人工批准(所有者确认)
│ (Owner confirmation) │
└──────────────────┬──────────────────┘
│ APPROVED ▼
┌─────────────────────────────────────┐
│ 层4:审计日志 │ ← 每次检查都被记录(不可变审计日志)
│ (Immutable audit trail) │
└─────────────────────────────────────┘
`
步骤使用
步骤1:初始化宪法
`bash
node constitution.js init --name "my-agent" --owner "admin@company.com"
`
创建.constitution/目录,包含默认规则和审计日志。
步骤2:添加规则
`bash
不可变规则:永远不调用外部API_without确认
node constitution.js rule add --level immutable --action deny --scope "external_write" --description "Never write to external APIs without owner confirmation" --escalation owner
所有者仅规则:可以修改工作空间文件
node constitution.js rule add --level owner-only --action allow --scope "workspace_write" --description "Can write files within workspace directory"
可变规则:可以读取任何文件
node constitution.js rule add --level mutable --action allow --scope "file_read" --description "Read any local file"
`
步骤3:检查权限
`javascript
const guard = require('./constitution.js');
// 检查操作是否被允许
const decision = guard.check('external_write', { target: 'https://api.stripe.com/charges', payload: { amount: 9999 }, userId: 'user-123' });
console.log(decision);
// {
// allowed: false,
// layer: 'immutable',
// rule: 'R001',
// reason: 'External write requires owner confirmation',
// escalation: 'owner',
// escalationMessage: 'Agent wants to POST to https://api.stripe.com/charges. Approve?'
// }
`
步骤4:处理升级
`javascript
if (!decision.allowed && decision.escalation) {
// 向所有者发送升级请求
const approved = await guard.escalate(decision, { channel: 'webhook', // 或 'email', 'slack', 'console'
timeout: 300000, // 5 min timeout
details: decision.escalationMessage });
if (approved) {
await executeAction();
}
}
`
步骤5:查看审计日志
`bash
查看过去24小时内的所有决定
node constitution.js audit --last 24h
查看仅被拒绝的操作
node constitution.js audit --status denied
查看特定范围的审计日志
node constitution.js audit --scope external_write
导出用于合规报告
node constitution.js audit --export csv --output audit_2024_Q1.csv
`
规则级别解释
级别 谁可以修改 覆盖 使用场景
不可变 没有人 从不 删除生产、外部网络访问、凭证访问
所有者仅 代理所有者仅 从不 部署到生产、修改计费、发送电子邮件
可变 代理(在边界内) 自我调整 文件读取路径、日志详细程度、缓存设置
建议 任何人 总是 性能提示、优化建议
实际例子
例子1:生产数据库保护
``json
{
"id": "DB-PROTECT",
"level": "immutable",
"action": "deny",
"scope": ["database_delete", "database_drop", "database_truncate"],
"description": "Never delete, drop, or truncate any production database",
"conditions": {
"environment": ["production", "prod"]
}
}