内容
<div align="center">
<img src="assets/banner.svg" alt="OpenAgentLock — AI 编程代理防火墙" width="100%" />
**本地托管、开源的 AI 编程代理防火墙。**
[](https://github.com/openagentlock/OpenAgentLock/actions/workflows/ci.yml)
[](https://github.com/openagentlock/OpenAgentLock/actions/workflows/docker-publish.yml)
[](https://www.npmjs.com/package/@openagentlock/cli)
[](https://github.com/openagentlock/OpenAgentLock/pkgs/container/agentlockd)
[](LICENSE)
[](https://openagentlock.github.io/OpenAgentLock/)
[](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/)
</div>
---
OpenAgentLock 检测本地 AI 编程代理环境(Claude Code、Codex CLI、Cursor、OpenCode、Cline、Gemini CLI、Continue.dev、VS Code Copilot),通过确定性的 YAML 策略控制风险工具调用,并将每个决策锚定在防篡改的 Merkle 账本中。只需安装一次,即可正常在您的环境中使用 — 您的工作流程不会改变。
## 快速开始
```bash
# 1. 拉取并启动守护进程
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 \
-e NVIDIA_API_KEY \
-e OPENROUTER_API_KEY \
ghcr.io/openagentlock/agentlockd:latest
# 2. 安装 CLI
npm i -g @openagentlock/cli
# 或:bun add -g @openagentlock/cli
# 3. 注册签名者(推荐使用 TOTP 进行生产环境)
agentlock signer enroll --tier totp --passphrase 'your-passphrase-here'
# 使用 Google Authenticator / 1Password / Authy 扫描 otpauth:// 二维码。
# 4. 使用 TOTP 认证的会话连接您的环境
agentlock detect
agentlock install --tier totp --code 123456 --passphrase 'your-passphrase-here'
```
为了在没有签名者的情况下快速评估,请使用 `-e AGENTLOCK_ALLOW_UNATTESTED=1` 启动守护进程,然后运行 `agentlock install`(默认为未经认证的)。
可选的外部防护措施可以通过启动守护进程时设置 `NVIDIA_API_KEY` 和/或 `OPENROUTER_API_KEY` 来启用;密钥仅保存在控制平面内存中。在当前发布的版本中,NVIDIA 提供本地允许运行时分类,而 OpenRouter 仅提供目录可见性。
在 <http://127.0.0.1:7879/> 打开本地网页仪表盘,或运行 `agentlock dashboard` 以获取具有相同实时账本尾部、会话、加载的门控和一键监控⇄强制转换的终端 TUI。
<div align="center">
<img src="assets/tui/dashboard-stats.png" alt="agentlock dashboard — 统计选项卡,显示实时活动火花图、顶部拒绝规则和按来源计数的统计信息" width="100%" />
<sub><i><code>agentlock dashboard</code> — 实时账本尾部、顶部拒绝规则/工具、按来源计数的统计信息、一键防火墙 ↔ 监控转换。</i></sub>
</div>
完整的快速入门指南请参阅 <https://openagentlock.github.io/OpenAgentLock/guide/getting-started/>。
## 社区规则注册表
需要比基线中自带的十三条规则更多的防护措施吗?请浏览 <https://openagentlock.github.io/rules/> 社区目录 — 网络外流主机允许列表、软件包 typosquat、更广泛的持久性形状,以及组织特定的规则。只需一条命令即可安装:
```bash
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) — Claude Code / Cursor / Codex 技能驱动 `agentlock rules` CLI。
## 当前功能
| 功能 | 状态 |
|---|---|
| `agentlock detect` |  |
| `agentlock install`(Claude Code、Codex CLI、Cursor、Gemini CLI) |  |
| `agentlock install --tier {unattested,software,totp}` |  |
| `agentlock doctor` |  |
| `agentlock install`(OpenCode、Cline、Continue、VS Code Copilot) |  |
| 十三个跨环境基线门控(无需 `rules install`) |  |
| 防篡改 Merkle 账本 |  |
| 本地网页仪表盘 |  |
| 软件 + TOTP 签名者(使用 `signer enroll` + 会话铸造) |  |
| OS 密钥链签名者(macOS) |  |
| 硬件密钥签名者(YubiKey PIV / FIDO2) |  |
| OIDC SSO + RBAC + LDAP |  |
| 签名 PDF 审计报告 |  |
完整的已发布/待发布矩阵位于 <https://openagentlock.github.io/OpenAgentLock/status/>。
## 工作原理
```mermaid
flowchart LR
subgraph host["您的主机"]
H["代理环境<br/><i>Claude Code · Codex CLI · Cursor · Gemini CLI</i>"]
CLI["agentlock CLI<br/><i>拥有长期有效的签名密钥</i>"]
end
subgraph docker["Docker (127.0.0.1)"]
CP[":7878 控制平面<br/><i>策略 · 安装 · 账本追加器</i>"]
DB[":7879 网页仪表盘"]
L[("Merkle 账本<br/>Rust crate via FFI")]
end
H -->|"预工具钩子"| CP
CP -->|"判决<br/>允许 / 拒绝"| H
CLI -->|"签名会话"| CP
CP --> L
CP --- DB
```
三种语言,一个仓库:
- **`cli/`** — TypeScript + Bun,运行在您的主机上。拥有长期有效的签名密钥。
- **`control-plane/`** — Go HTTP 服务,在 Docker 中运行。评估策略,驱动安装计划/应用,追加到账本。
- **`ledger/`** — Rust crate。Merkle 日志 + 验证,通过 FFI 暴露给 Go,这样验证逻辑只存在于一个地方。
请参阅 [架构概述](https://openagentlock.github.io/OpenAgentLock/architecture/overview/) 以了解分裂背后的原因。
## 策略 — 基线 + 注册表
OpenAgentLock 配备了一个 **十三门控强制模式基线**,嵌入在守护进程二进制文件中(来源:[`control-plane/internal/policy/baseline.yaml`](./control-plane/internal/policy/baseline.yaml))。全新安装阻止破坏性 shell 命令、供应链 RCE 形状(`curl … | bash`、`eval $(curl …)`)、反向 shell、秘密/凭证读取(`.env`、`.aws/credentials`、gcloud/Azure/Terraform 状态)、防御逃避(`iptables -F`、`csrutil disable`、`history -c`)、`chmod 777`、破坏性 `kubectl delete ns` / `helm uninstall`、强制推送到共享分支、写入 `/etc/sudoers` / `~/.ssh/authorized_keys`、持久性追加到 `~/.bashrc` / `~/.zshrc` 和 cron/systemd-timer 安装 — 跨越 **Claude Code、Codex、Cursor、Claude Desktop 和 Gemini(通过 MCP)**,无需 `agentlock rules install` 步骤。每个门控使用 `any_of` 条件覆盖 `Bash` + `Shell` + `tool_prefix: mcp_`(捕获 Claude/Cursor 的 `mcp__` 双下划线和 Gemini 的 `mcp_` 单下划线形状),对于写入/编辑门控,还包括 `Write` + `Edit` + `MultiEdit`。请参阅 [`docs/guide/policies.md`](./docs/guide/policies.md#first-boot-baseline-policy) 以获取完整的门控清单和每个环境的覆盖矩阵。
通过 [openagentlock/rules](https://github.com/openagentlock/rules) 注册表在基线之上添加组织特定的或更广泛的覆盖:
```bash
agentlock rules sync # 连接上游注册表
agentlock rules search exfil # 按关键词浏览
agentlock rules install rogue.net-egress # 阻止未知主机 curl/wget
agentlock rules install supply-chain.npm-untrusted # 拒绝来自 URL/git/tarball 的安装
agentlock rules install exfil.curl-with-env # 捕获 $ENV_VAR 外流形状
```
您还可以连接私有注册表(任何具有相同布局的 Git 仓库)以获取组织内部的规则:
```bash
agentlock rules add https://github.com/your-org/your-rules.git
```
请参阅 [策略和规则](https://openagentlock.github.io/OpenAgentLock/guide/policies/) 以获取模式和创作指南。
## 仓库布局
```
cli/ TypeScript + Bun + OpenTUI — @openagentlock/cli
control-plane/ Go HTTP 服务在 Docker 中 — ghcr.io/openagentlock/agentlockd
api/openapi.yaml 源代码真实性 API 契约
Dockerfile, docker-compose.yml
dashboard-ui/ 嵌入到 Go 二进制文件中的 Vite SPA
ledger/ Rust crate(lib + cdylib + staticlib) — openagentlock-ledger
docs/ MkDocs Material 站点(部署到 openagentlock.github.io/OpenAgentLock)
assets/ logo, favicon, social card
docker-compose.yml 一键控制平面启动
scripts/install.sh 一次性安装程序
.github/workflows/ ci · docker-publish · npm-publish · pages
```
## 状态
预-1.0。
我们尽量不破坏已经有效的内容。标记为“已发布”的功能都有测试;标记为“尚未”的功能存在为脚手架或存根,显式禁用在用户界面路径中。
## 贡献
请参阅 [`CONTRIBUTING.md`](CONTRIBUTING.md) 以获取开发设置和工作流程。
通过贡献,您同意您的贡献根据 [`LICENSE`](LICENSE) 中找到的 FSL-1.1-Apache-2.0 许可。
我们遵循 [Contributor Covenant 2.1](CODE_OF_CONDUCT.md)。有关安全披露,请参阅 [`SECURITY.md`](SECURITY.md)。
## 许可证
[功能源许可证 1.1,Apache 2.0 未来许可证](LICENSE) (`FSL-1.1-Apache-2.0`)。
今日允许任何非竞争性使用;自动转换为 Apache 2.0 版本发布后两年。
连接信息
猜你喜欢
暂无推荐服务器