策略与能力
能力类型、权限配置、命令风险等级 — 每次副作用前先策略。
每次有意义的副作用都受门控。 模型决策;Rust 内核授权。
- 十四种能力类型
- 内置配置(
safe-edit、read-only…) - 命令风险等级 0–5
- 审批在 CLI/TUI 中如何出现
- 默认最小权限
- 默认不出工作区
- 默认不可读密钥
- 默认限制网络
- 默认拒绝破坏性命令
- 补丁事务化
- 插件零权限起步
- protocol/capabilities/
- capabilities.json
- profiles/
- .carina/
- sessions/
- audit/
FileRead FileWrite CommandExec NetworkAccess SecretReadGitOperation PatchApply ProcessSpawn PluginLoad RemoteExecuteMemoryWrite CodeIndex ContextCompress SubagentSpawn内核返回 PermissionDecision(allow / deny / require-approval)。
SubagentSpawn子 Agent 只能获得父配置的真子集。 资源形如 agent:NAME:profile:PROFILE,默认需审批。
| Profile | 摘要 | 样例配置 |
|---|---|---|
read-only | 仅工作区 FileRead | protocol/capabilities/profiles/read-only.toml |
safe-edit | FileWrite 仅经 PatchApply;命令白名单;网络需审批 | …/safe-edit.toml |
full-workspace | 工作区读写;高等级命令需审批 | …/full-workspace.toml |
ci-runner | 测试/构建;无任意 shell | …/ci-runner.toml |
sandboxed · trusted-local · enterprise-restricted | 在 capabilities.json 中登记的组织/运行时名称 | 尚无随仓库样例 toml — 自定义配置前当作注册名 |
carina run 在 cwd 创建 safe-edit 会话。
carina profile SESSION风险等级 0–5
Section titled “风险等级 0–5”| 等级 | 类别 | safe-edit 默认 |
|---|---|---|
| 0 | 只读 | 自动放行 |
| 1 | 测试/构建/lint | 自动放行 |
| 2 | 装包 | 需审批 |
| 3 | 改文件类命令 | 需审批 |
| 4 | 网络/部署/凭据 | 拒绝或显式配置 |
| 5 | 破坏性 | 默认拒绝 |
删除大量文件、lockfile 大范围变化、依赖安装、远程脚本、读取密钥、工作区外路径、push / deploy、网络访问和 CI 配置修改始终需要人工确认。
carina approve SESSION DECISION_ID [role]carina deny SESSION DECISION_ID [reason]carina audit SESSION- Agent 不能访问 profile 未允许的工作区外路径。
- 策略判断前先解析 symlink,符号链接不能用来逃逸边界。
- 超大文件和 ignore 文件默认不进入模型上下文。
Agent 不直接读取环境变量。密钥由 broker 以不透明 handle 提供,日志不写入明文,命令输出还会按已知密钥值脱敏。
carina secret grant SESSION NAME VALUEcarina secret request SESSION NAME| 现象 | 含义 |
|---|---|
| 频繁要求审批 | 动作风险等级至少为 2 或涉及网络;收窄任务,或有意识地选择更宽 profile |
| 路径被拒绝 | 路径在工作区外,或发生 symlink 逃逸 |
| 插件没有动作 | 插件从零权限启动;使用 carina plugin inspect 检查声明 |
这个页面有帮助吗?
哪里有问题?
感谢反馈。
本次会话中每个页面仅记录一次投票。