---
title: "策略与能力"
description: "能力类型、权限配置、命令风险等级 — 每次副作用前先策略。"
source: https://carina.nebutra.com/zh-cn/concepts/policy/
---

# 策略与能力

> 能力类型、权限配置、命令风险等级 — 每次副作用前先策略。

> **每次有意义的副作用都受门控。** 模型决策；Rust 内核授权。

## 你将得到

- 十四种能力类型  
- 内置配置（`safe-edit`、`read-only` …）  
- 命令风险等级 0–5  
- 审批在 CLI/TUI 中如何出现  

## 默认姿态

1. 默认最小权限  
2. 默认不出工作区  
3. 默认不可读密钥  
4. 默认限制网络  
5. 默认拒绝破坏性命令  
6. 补丁事务化  
7. 插件零权限起步  

## 策略落点

## 能力类型

```
FileRead  FileWrite  CommandExec  NetworkAccess  SecretRead
GitOperation  PatchApply  ProcessSpawn  PluginLoad  RemoteExecute
MemoryWrite  CodeIndex  ContextCompress  SubagentSpawn
```

内核返回 `PermissionDecision`（allow / deny / require-approval）。  
<Tooltip tip="子 Agent 只能获得父配置的真子集。">SubagentSpawn</Tooltip> 资源形如 `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`** 会话。

```bash frame="none"
carina profile SESSION
```

## 风险等级 0–5

| 等级 | 类别 | `safe-edit` 默认 |
| --- | --- | --- |
| 0 | 只读 | 自动放行 |
| 1 | 测试/构建/lint | 自动放行 |
| 2 | 装包 | 需审批 |
| 3 | 改文件类命令 | 需审批 |
| 4 | 网络/部署/凭据 | 拒绝或显式配置 |
| 5 | 破坏性 | 默认拒绝 |

## 审批

删除大量文件、lockfile 大范围变化、依赖安装、远程脚本、读取密钥、工作区外路径、push / deploy、网络访问和 CI 配置修改始终需要人工确认。

```bash frame="none"
carina approve SESSION DECISION_ID [role]
carina deny SESSION DECISION_ID [reason]
carina audit SESSION
```

## 工作区边界

- Agent 不能访问 profile 未允许的工作区外路径。
- 策略判断前先解析 symlink，符号链接不能用来逃逸边界。
- 超大文件和 ignore 文件默认不进入模型上下文。

## 密钥

Agent 不直接读取环境变量。密钥由 broker 以不透明 handle 提供，日志不写入明文，命令输出还会按已知密钥值脱敏。

```bash frame="none"
carina secret grant SESSION NAME VALUE
carina secret request SESSION NAME
```

## 失败诊断

| 现象 | 含义 |
| --- | --- |
| 频繁要求审批 | 动作风险等级至少为 2 或涉及网络；收窄任务，或有意识地选择更宽 profile |
| 路径被拒绝 | 路径在工作区外，或发生 symlink 逃逸 |
| 插件没有动作 | 插件从零权限启动；使用 `carina plugin inspect` 检查声明 |

## 权威来源

- `docs/security-model.md`  
- `protocol/capabilities/capabilities.json`  
- 相关：[审计与回滚](/zh-cn/concepts/audit/) · [术语表](/zh-cn/reference/glossary/)

## 下一步

- [快速上手](/zh-cn/getting-started/quickstart/)  
- [子 Agent](/zh-cn/agents/sub-agents/) — 权限衰减实践
- [CLI 参考](/zh-cn/reference/cli/)

---
Source: https://carina.nebutra.com/zh-cn/concepts/policy/
Markdown: https://carina.nebutra.com/zh-cn/concepts/policy/index.md
