56 lines
1.2 KiB
Markdown
56 lines
1.2 KiB
Markdown
# ADR 005: Policy Evaluation Model
|
|
|
|
## Status
|
|
|
|
Accepted
|
|
|
|
## Context
|
|
|
|
Ключевой принцип проекта: без hardcoded bans.
|
|
Система должна принимать решения через policy engine, а не через встроенные запреты по имени tool или по содержимому команды.
|
|
|
|
## Decision
|
|
|
|
Policy engine работает в 4 шага:
|
|
|
|
1. request/action нормализуется в `ActionDescriptor`;
|
|
2. descriptor классифицируется по `resource` и `risk_level`;
|
|
3. policy evaluator находит эффективное правило;
|
|
4. возвращается `PolicyDecision`.
|
|
|
|
## Core Types
|
|
|
|
`resource`:
|
|
|
|
- `filesystem`
|
|
- `shell`
|
|
- `sql`
|
|
- `mcp`
|
|
- `external_models`
|
|
- `desktop`
|
|
- `browser`
|
|
- `network`
|
|
- `cost`
|
|
- `system`
|
|
|
|
`risk_level`:
|
|
|
|
- `safe`
|
|
- `write`
|
|
- `destructive`
|
|
- `system`
|
|
- `cost`
|
|
|
|
`decision`:
|
|
|
|
- `allow`
|
|
- `confirm`
|
|
- `manual`
|
|
- `disabled_by_config`
|
|
|
|
## Important Rule
|
|
|
|
Policy engine не получает “tool name only” как источник истины.
|
|
Он должен опираться на action classification и metadata от tool/model/worker adapters.
|
|
|