rogerchappel/agentpermit

GitHub: rogerchappel/agentpermit

AgentPermit 是一个确定性的本地策略模拟器,用于在 Agent 工具操作执行前预判每个动作的 allow/warn/deny 结果。

Stars: 0 | Forks: 0

# AgentPermit AgentPermit 是一个用于 agent 工具权限的本地策略模拟器。向其输入一个提议的操作追踪(action trace)和一个小的策略文件;它会在任何操作运行之前,告诉你哪些操作会被允许、警告或拒绝。 它以其最好的方式显得刻意“无趣”:输入确定性的 JSON,输出确定性的原因,没有遥测,没有托管服务,也不依赖 LLM。 ## 安装 ``` npm install agentpermit ``` 用于本地开发: ``` git clone https://github.com/rogerchappel/agentpermit.git cd agentpermit npm install npm run build node dist/cli.js --help ``` ## 快速开始 ``` agentpermit init ./demo agentpermit check ./demo --format text agentpermit check ./demo --format json agentpermit explain ./demo ``` 一个 workspace 包含两个文件: - `agentpermit.policy.json` — 有序的 allow/warn/deny 规则。 - `agentpermit.trace.json` — 来自 agent 或 fixture 的提议操作。 ## 示例 trace ``` { "actions": [ { "id": "read-prd", "tool": "read", "path": "docs/PRD.md" }, { "id": "send-status", "tool": "message", "kind": "message.send", "target": "#team" } ] } ``` ## 示例策略 ``` { "version": 1, "name": "example-agent-workflow", "defaultEffect": "warn", "rules": [ { "id": "allow-doc-reads", "effect": "allow", "reason": "Docs are intentionally reviewable context.", "kinds": ["file.read"], "paths": ["docs/**", "README.md"] }, { "id": "deny-outbound-message", "effect": "deny", "reason": "Messages leave the machine and need human approval.", "tools": ["message"], "kinds": ["message.send"] } ] } ``` ## 命令 - `agentpermit init [target]` 写入一个初始策略和 trace。 - `agentpermit check [workspace] --format text|json` 评估一个 trace。 - `agentpermit explain [workspace]` 打印一个 markdown 解释表格。 - `agentpermit report [workspace]` 输出用于自动化的 JSON。 退出代码: - `0` — 没有 deny 发现。 - `1` — 一个或多个 deny 发现。 - `2` — 无效输入、文件缺失或配置无效。 ## 规则匹配 规则可以通过 `tools`、`kinds`、`paths`、`commands`、`urls` 和 `targets` 进行匹配。 模式支持使用 `*` 作为类似单路径段(path segment)的通配符,以及 `**` 用于广泛的全局匹配。如果多个规则匹配,则以最强的效果为准:deny > warn > allow。平局时按规则 ID 排序以保证稳定性。 ## 验证 ``` npm test npm run check npm run build npm run smoke bash scripts/validate.sh node dist/cli.js check fixtures/mixed --format text ``` ## 安全性 请参阅 [docs/SAFETY.md](docs/SAFETY.md)。AgentPermit 仅模拟决策;它不会授予权限或执行操作。 ## 贡献 欢迎提交小型的、由 fixture 支持的更改。请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。 ## 许可证 MIT
标签:AI代理, GNU通用公共许可证, Homebrew安装, MITM代理, Node.js, Streamlit, 文档结构分析, 暗色界面, 本地工具, 权限控制, 策略引擎, 网络安全挑战, 自动化攻击, 访问控制