kxen 在用户本机执行模型生成的操作。安全目标不是让模型永不出错,而是让高风险行为在执行层可见、可拒绝和可恢复。
flowchart LR Intent["模型工具请求"] --> Permission["角色权限"] Permission --> Safety["Safety 检查"] Safety -->|"低风险"| Execute["执行"] Safety -->|"需要确认"| Approval["Approval"] Approval -->|"允许"| Execute Approval -->|"拒绝"| Stop["停止"] Execute --> Recovery["Checkpoint 和事件记录"]
信任边界
| 边界 | 规则 |
|---|---|
| Workspace | 统一解析相对、绝对和不存在的目标路径 |
| 项目配置 | 未信任 Workspace 不加载项目 TOML |
| 项目 MCP | 未信任 Workspace 不启动 |
| 外部文件 | 需要原生文件选择器授权,授权按路径生效 |
| 模型调用 | 统一经过 MRM 和 Auth store |
| 工具调用 | 统一经过角色权限、Safety 和 Approval |
| 网络请求 | 初始 URL 经过地址和重定向检查 |
凭证
API key 和 OAuth token 保存在本地权限受限文件中。凭证不进入项目 TOML、Session prompt、文档和 Git。
Provider 凭证可以来自官方客户端的本地登录状态或用户显式配置。模型只看到调用结果,不获得原始 secret。
原生文件选择器也不能把 credential 目录或常见 secret 文件授权给 Agent,包括 Kxen 数据目录、Keychain、.ssh、.gnupg、.aws、.kube、.docker、各类 Agent 配置目录,以及 .p8、.p12、.pfx 和 keychain 文件。不存在目标通过最近存在父目录完成 canonicalization,符号链接和 .. 不能绕过 Workspace 边界。
最小权限
研究和规划角色默认只读。写文件、执行命令和删除数据需要 execution 权限。MCP 工具还可以逐项配置 allow、ask 或 deny。
Shell 命令在宿主机执行,不宣称提供进程沙盒。Kxen 不加载用户 Shell rc 或 alias 快照,并且每条命令和 background task start/restart 都需要显示完整 command 与 cwd 的当次 Approval。拒绝或没有可用 Approval channel 时执行失败关闭。
硬保护
Safety 对系统路径、Credential 目录、Git 元数据、磁盘操作和大范围资源销毁执行硬拒绝。项目 Rules 和用户 Prompt 不能覆盖这些规则。
可恢复性
- 文件和 Session 删除进入废纸篓。
- Checkpoint 使用独立 shadow Git repository。
- Worktree 隔离并行修改。
- Approval 结果写入 Session。
- Abort 使未完成审批失效。
已知边界
Browser 页内导航和子资源未形成完整 SSRF 边界。Remote MCP、Browser automation 和自动知识沉淀仍是实验性能力,个人配置中默认全部关闭,项目配置不能替用户开启。启用后也不能用于无监督处理高敏感数据。