openagentlock/OpenAgentLock

GitHub: openagentlock/OpenAgentLock

一个面向 AI 编程代理的本地防火墙,通过确定性 YAML 策略拦截高危工具调用并将所有决策锚定到防篡改的 Merkle 审计账本中。

Stars: 4 | Forks: 0

OpenAgentLock — A firewall for AI coding agents **一个本地托管、开源的 AI 编程代理防火墙。** [![CI](https://img.shields.io/github/actions/workflow/status/openagentlock/openagentlock/ci.yml?branch=main&label=ci&style=flat-square)](https://github.com/openagentlock/OpenAgentLock/actions/workflows/ci.yml) [![docker-publish](https://img.shields.io/github/actions/workflow/status/openagentlock/openagentlock/docker-publish.yml?branch=main&label=docker&style=flat-square)](https://github.com/openagentlock/OpenAgentLock/actions/workflows/docker-publish.yml) [![npm](https://img.shields.io/npm/v/%40openagentlock%2Fcli?style=flat-square&label=%40openagentlock%2Fcli)](https://www.npmjs.com/package/@openagentlock/cli) [![ghcr](https://img.shields.io/badge/ghcr.io-agentlockd-black?style=flat-square&logo=docker&logoColor=white)](https://github.com/openagentlock/OpenAgentLock/pkgs/container/agentlockd) [![license](https://img.shields.io/badge/license-FSL--1.1--Apache--2.0-black?style=flat-square)](LICENSE) [![docs](https://img.shields.io/badge/docs-openagentlock.github.io/OpenAgentLock-black?style=flat-square)](https://openagentlock.github.io/OpenAgentLock/) [![stars](https://img.shields.io/github/stars/openagentlock/openagentlock?style=flat-square)](https://github.com/openagentlock/OpenAgentLock/stargazers) [文档](https://openagentlock.github.io/OpenAgentLock/) · [快速开始](https://openagentlock.github.io/OpenAgentLock/guide/getting-started/) · [规则库](https://openagentlock.github.io/rules/) · [状态](https://openagentlock.github.io/OpenAgentLock/status/) · [架构](https://openagentlock.github.io/OpenAgentLock/architecture/overview/)
OpenAgentLock 可以检测本地 AI 编程代理运行环境(Claude Code、Codex CLI、Cursor、OpenCode、Cline、Gemini CLI、Continue.dev、VS Code Copilot),通过确定性的 YAML 策略拦截高风险的工具调用,并将每个决策锚定在防篡改的 Merkle 账本中。只需安装一次,即可照常在您的运行环境中工作——您的工作流不会发生改变。 ## 快速开始 ``` # 1. 拉取并启动 daemon docker pull ghcr.io/openagentlock/agentlockd:latest docker run -d --name agentlock \ -p 127.0.0.1:7878:7878 \ -p 127.0.0.1:7879:7879 \ -v agentlock-state:/var/lib/agentlock \ ghcr.io/openagentlock/agentlockd:latest # 2. 安装 CLI npm i -g @openagentlock/cli # 或:bun add -g @openagentlock/cli # 或:brew install openagentlock/tap/agentlock # 3. 注册 signer(TOTP — 推荐用于生产环境) agentlock signer enroll --tier totp --passphrase 'your-passphrase-here' # 扫描 otpauth:// 二维码,使用 Google Authenticator / 1Password / Authy。 # 4. 使用经 TOTP 验证的 session 连接您的 harness agentlock detect agentlock install --tier totp --code 123456 --passphrase 'your-passphrase-here' ``` 要在没有签名器的情况下进行快速评估(仅供开发使用):使用 `-e AGENTLOCK_ALLOW_UNATTESTED=1` 启动守护进程,然后运行 `agentlock install`(默认为未认证模式)。 通过 打开本地 Web 仪表盘。 完整的操作演练请见 。 ## 社区规则库 需要比五个基线规则更多的限制?请在 浏览社区目录——涵盖密钥读取、强制推送到共享分支、网络数据外泄、不受信任的评估。只需一条命令即可安装: ``` agentlock rules sync agentlock rules search exfil agentlock rules install rogue.secret-read ``` 或者运行您自己的私有规则库——任何具有相同目录结构的 Git 仓库均可使用。来源:[openagentlock/rules](https://github.com/openagentlock/rules)。 对于需要根据自然语言意图**编写**新规则的代理,请参阅 [openagentlock/skills](https://github.com/openagentlock/skills)——这些是驱动 `agentlock rules` CLI 的 Claude Code / Cursor / Codex 技能。 ## 当前交付内容 | 范围 | 状态 | |---|---| | `agentlock detect` | ![已发布](https://img.shields.io/badge/-shipped-16a34a?style=flat-square) | | `agentlock install` (Claude Code、Codex CLI、Cursor) | ![已发布](https://img.shields.io/badge/-shipped-16a34a?style=flat-square) | | `agentlock install --tier {unattested,software,totp}` | ![已发布](https://img.shields.io/badge/-shipped-16a34a?style=flat-square) | | `agentlock install` (OpenCode、Cline、Gemini CLI、Continue、VS Code Copilot) | ![尚未推出](https://img.shields.io/badge/-not%20yet-f59e0b?style=flat-square) | | 监控模式下的五个基线拦截规则 | ![已发布](https://img.shields.io/badge/-shipped-16a34a?style=flat-square) | | 防篡改的 Merkle 账本 | ![已发布](https://img.shields.io/badge/-shipped-16a34a?style=flat-square) | | 本地 Web 仪表盘 | ![已发布](https://img.shields.io/badge/-shipped-16a34a?style=flat-square) | | 软件 + TOTP 签名器(带有 `signer enroll` 和会话生成) | ![已发布](https://img.shields.io/badge/-shipped-16a34a?style=flat-square) | | OS 密钥链签名器,硬件密钥 (YubiKey PIV / FIDO2) | ![尚未推出](https://img.shields.io/badge/-not%20yet-f59e0b?style=flat-square) | | OIDC SSO + RBAC + LDAP | ![尚未推出](https://img.shields.io/badge/-not%20yet-f59e0b?style=flat-square) | | 签名的 PDF 审计报告 | ![尚未推出](https://img.shields.io/badge/-not%20yet-f59e0b?style=flat-square) | 完整的已发布/尚未推出状态矩阵位于 。 ## 工作原理 ``` flowchart LR subgraph host["Your host"] H["Agent harness
Claude Code · Codex CLI · Cursor"] CLI["agentlock CLI
owns long-lived signing key"] end subgraph docker["Docker (127.0.0.1)"] CP[":7878 control plane
policy · install · ledger appender"] DB[":7879 web dashboard"] L[("Merkle ledger
Rust crate via FFI")] end H -->|"pre-tool hook"| CP CP -->|"verdict
allow / deny"| H CLI -->|"signed session"| CP CP --> L CP --- DB ``` 三种语言,一个代码库: - **`cli/`** — 基于运行在宿主机上的 Bun 环境的 TypeScript。管理长期有效的签名密钥。 - **`control-plane/`** — Docker 中运行的 Go HTTP 服务。负责评估策略、驱动安装的计划/应用,以及追加到账本。 - **`ledger/`** — Rust crate。提供 Merkle 日志及验证功能,通过 FFI 暴露给 Go,从而确保验证逻辑只存在于一个地方。 关于为何这样拆分,请参阅 [架构概览](https://openagentlock.github.io/OpenAgentLock/architecture/overview/)。 ## 五个拦截规则 每次安装都会附带处于监控模式下的五个默认规则,配置文件位于 [`policies/default.yaml`](policies/default.yaml): | 规则 | 拦截内容 | |---|---| | `supply-chain.pkg-install` | `pip install`、`npm install`、`brew install`、`cargo install` | | `supply-chain.untrusted-mcp` | 带有未固定公钥的 MCP 服务器 | | `rogue.secret-read` | 读取 `.env`、`~/.ssh`、`~/.aws/credentials`,以及任何出现类似密钥路径的地方 | | `rogue.net-egress` | `curl`、`wget`、MCP HTTP 工具 | | `rogue.destructive-bash` | `rm -rf`、`git push --force`、`DROP TABLE`、`kubectl delete` | 关于规则结构与编写规则,请参阅[策略与五个拦截规则](https://openagentlock.github.io/OpenAgentLock/guide/policies/)。 ## 仓库结构 ``` cli/ TypeScript + Bun + OpenTUI — @openagentlock/cli control-plane/ Go HTTP service in Docker — ghcr.io/openagentlock/agentlockd api/openapi.yaml source-of-truth API contract Dockerfile, docker-compose.yml dashboard-ui/ Vite SPA embedded into the Go binary ledger/ Rust crate (lib + cdylib + staticlib) — openagentlock-ledger policies/default.yaml baseline policy shipped with every install docs/ MkDocs Material site (deployed to openagentlock.github.io/OpenAgentLock) assets/ logo, favicon, social card Formula/agentlock.rb Homebrew tap formula docker-compose.yml one-command control-plane bring-up scripts/install.sh one-shot installer .github/workflows/ ci · docker-publish · npm-publish · pages ``` ## 状态 Pre-1.0 阶段。 我们尽量避免破坏现有的可用功能。标记为“已发布”的功能均附带测试;标记为“尚未推出”的功能目前仅作为脚手架或存根存在,并在面向用户的路径中被显式禁用。 ## 许可证 [功能源代码许可证 1.1,Apache 2.0 未来许可证](LICENSE)(`FSL-1.1-Apache-2.0`)。 目前允许任何非竞争性使用;在每次发布两年后,将自动转换为 Apache 2.0 许可证。
标签:AI安全, AI安全网关, AI编程助手, Chat Copilot, Claude, Codex, Copilot, Cursor, CVE检测, Docker, EVTX分析, LLM代理, Merkle树, NPM包, OSV-Scalibr, VS Code, YAML策略, 可视化界面, 安全工程, 安全网关, 安全防御评估, 审计日志, 工具调用拦截, 开源, 搜索语句(dork), 日志审计, 本地应用安全, 本地部署, 策略引擎, 终端安全, 网络安全挑战, 请求拦截, 防火墙, 防篡改日志