kontext-security/kontext-cli

GitHub: kontext-security/kontext-cli

Kontext CLI是一个开源运行时安全平台,用于控制AI代理的工具权限并提供审计追踪。

Stars: 199 | Forks: 6

Kontext CLI banner

网站 | 文档 | 仪表板 | Discord

License: MIT Latest release Built with Go

Kontext 是一个面向 AI 代理的授权平台。它帮助团队通过范围限定的凭据、策略执行、审批和审计追踪来控制代理可以访问和执行的操作。Kontext 可以以本地优先模式运行,供开发代理使用,并可扩展至托管或自托管部署,适用于安全敏感环境。 ## 🚀 快速开始 ``` brew install kontext-security/tap/kontext ``` Homebrew 软件包也会安装 `llama.cpp`,它提供了本地 LLM 判断器所使用的 `llama-server` 运行时。首次使用时,Kontext 会自动管理默认的 GGUF 判断模型:如果该模型尚未在本地缓存,它会在回环地址上启动 `llama-server` 之前,将其下载到 Kontext 模型缓存中。 ## 启动本地保护会话 ``` kontext start ``` 这会启动当前支持的适配器 Claude Code,并使用本地 Kontext 运行时。无需托管登录。 默认情况下,Kontext 运行在观察模式:代理继续运行,同时 Kontext 在本地仪表板中记录 `would allow`(将允许)和 `would deny`(将拒绝)的决策。该仪表板在回环地址上提供服务,启动时会打印出 URL。 要阻止支持的风险性工具操作前操作,请以强制模式启动: ``` KONTEXT_MODE=enforce kontext start ``` ## 核心功能 Kontext 为 AI 代理平衡安全性和实用性:低风险操作继续执行,不安全的操作可以在执行前被阻止。 - **审计追踪:** 记录谁指示了哪个代理执行了什么操作、代理访问了什么、调用了哪些工具、做出了什么策略决定以及接下来发生了什么。为安全审查、事件调查和合规证据构建责任链。 - **确定性策略:** 在运行时,在代理操作执行之前,对其应用 `allow` 和 `deny` 规则。对已知边界(如破坏性命令、生产资源、敏感文件、数据导出和凭据访问)使用硬性策略。 - **概率性风险检测:** 将确定性策略允许的操作路由到本地判断器,以获得额外的允许/拒绝决定,而无需将工具上下文发送到托管服务。 - **凭据注入:** 在运行时使用符合 RFC 8693 标准的 OAuth 2.0 令牌交换注入范围限定的 OAuth 凭据,这样代理就可以访问已批准的工具,而无需用户将密钥粘贴到聊天、配置文件或项目环境中。凭据可以是短期的、最小权限的,并且绑定到当前用户、会话或工作流。 本地决策路径如下: ``` Agent tool call -> Kontext hook -> local runtime socket -> action classification -> deterministic policy -> probabilistic risk score -> allow / deny -> local dashboard ``` ## 托管会话 当您需要在本地安全路径之上,使用托管身份、短期提供商凭据和共享追踪时,请使用托管会话: ``` kontext start --managed ``` 托管会话将提供商凭据置于代理配置和项目文件之外。Kontext 创建包含提供商占位符的 `.env.kontext`: ``` GITHUB_TOKEN={{kontext:github}} LINEAR_API_KEY={{kontext:linear}} ``` 在运行时,Kontext 使用符合 RFC 8693 标准的 OAuth 2.0 令牌交换,为活动代理会话将这些占位符替换为短期的、范围限定的凭据。您添加的字面值保持不变。 有关企业身份、审计保留、组织控制、部署规划、自定义使用量以及安全与平台团队的引导服务,请联系 [michel@kontext.security](mailto:michel@kontext.security) 或 [在此预订](https://calendar.superhuman.com/book/11W5Y8b5JsB8dOzQbd/YECs9)。 ## 安全默认设置 | 默认设置 | 行为 | | --- | --- | | 本地评估 | 默认的 `kontext start` 不需要托管登录或追踪上传。 | | 观察模式 | 决策记录为 `would allow` 或 `would deny`,而不阻止代理。 | | 回环仪表板 | 本地仪表板默认绑定到回环地址。 | | 脱敏存储 | 工具事件和决策在本地存储,并进行脱敏处理。 | | 托管本地判断器 | Homebrew 通过 `llama.cpp` 安装 `llama-server`;Kontext 在需要时下载并缓存默认的 GGUF 判断模型。 | | 无推理捕获 | Kontext 捕获工具事件和结果,而非 LLM 推理、令牌使用或完整对话历史。 | ## 代理支持 | 代理 | 状态 | 启动命令 | 支持级别 | | --- | --- | --- | --- | | Claude Code | 活跃 | `kontext start` 或 `kontext start --agent claude` | 本地观察/强制模式、仪表板诊断、托管会话。 | | Goose | 计划中 | 即将推出 | 适配器尚未发布。 | | Codex | 计划中 | 即将推出 | 适配器尚未发布。 | | Cursor | 计划中 | 即将推出 | 适配器尚未发布。 | 可以通过适配器添加其他代理,这些适配器将兼容的工具事件发送到本地运行时。 ## 架构 ``` kontext start | |-- Agent hook adapter (Claude Code today) | |-- PreToolUse -> kontext hook --agent claude --mode observe --socket /tmp/kontext/.../kontext.sock | |-- PostToolUse -> kontext hook --agent claude --mode observe --socket /tmp/kontext/.../kontext.sock | |-- Local runtime: Unix socket service + RuntimeCore |-- Local dashboard: 127.0.0.1:4765 |-- Deterministic policy: curated rule categories + active profile |-- Probabilistic risk: localhost allow/deny decision after deterministic allow |-- Store: local SQLite with redacted events and decision metadata ``` ## 开发 ``` go build -o bin/kontext ./cmd/kontext go test ./... go test -race ./... go vet ./... pnpm install --frozen-lockfile pnpm build ``` 使用以下命令生成 protobuf 代码: ``` buf generate ``` 服务定义位于 [kontext-security/proto `agent.proto`](https://github.com/kontext-security/proto/blob/main/proto/kontext/agent/v1/agent.proto)。 ## 社区 - 请阅读 [SUPPORT.md](SUPPORT.md) 了解支持渠道。 - 在提交贡献前,请阅读 [CONTRIBUTING.md](CONTRIBUTING.md)。 - Kontext CLI 根据 [MIT 许可证](LICENSE) 发布。
标签:AI代理安全, AI安全, Chat Copilot, EVTX分析, Go语言, Lerna, Streamlit, 代码分析, 决策日志, 凭证管理, 威胁情报, 安全敏感环境, 审计跟踪, 开发者工具, 开源安全工具, 授权平台, 控制面板, 日志审计, 本地LLM, 本地优先部署, 权限管理, 模型越狱, 知识图谱, 程序破解, 策略执行, 网络安全, 访问控制, 逆向工程平台, 隐私保护