Skip to content

Commit 5da208c

Browse files
committed
docs: collapse action enums from 5 to 3 (deny, steer, observe)
Update all documentation to reflect the consolidated action types. Legacy values allow/warn/log are now normalized to observe on input.
1 parent 6eb133f commit 5da208c

11 files changed

Lines changed: 31 additions & 32 deletions

File tree

concepts/controls.mdx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -282,18 +282,18 @@ Fields:
282282

283283
- `decision`: The enforcement action to take
284284

285-
- `"allow"` - Continue execution (useful for allowlist controls)
286-
287285
- `"deny"` - Hard stop execution (blocks the request)
288286

289287
- `"steer"` - Provides corrective guidance to help agents satisfy control requirement
290288

291-
- `"warn"` - Log a warning but continue execution
292-
293-
- `"log"` - Log the match for observability only
289+
- `"observe"` - Record the match for audit and observability without blocking execution
294290

295291
- `metadata`: Optional additional context (JSON object)
296292

293+
<Note>
294+
Legacy action values `allow`, `warn`, and `log` are still accepted on input but are automatically normalized to `observe`.
295+
</Note>
296+
297297
### Important: "Deny Wins" Semantics
298298

299299
Agent Control uses "deny wins" logic: if **any** enabled control with a `deny` action matches, the request is blocked regardless of other control results. This ensures fail-safe behavior.
@@ -308,12 +308,12 @@ Agent Control uses "deny wins" logic: if **any** enabled control with a `deny` a
308308
}
309309
```
310310

311-
### Example 2: Warn without blocking
311+
### Example 2: Observe without blocking
312312

313313
```json
314314
{
315315
"action": {
316-
"decision": "warn"
316+
"decision": "observe"
317317
}
318318
}
319319
```

concepts/evaluators/built-in-evaluators.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ pip install agent-control-evaluators[galileo]
217217
}
218218
}
219219

220-
// Flag potential hallucinations (warn but allow)
220+
// Flag potential hallucinations (observe, non-blocking)
221221
{
222222
"name": "galileo.luna2",
223223
"config": {

concepts/overview.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ An **Action** defines what happens when a control matches.
144144

145145
2. **Steer second** — if any `steer` control matches (and no deny), steering context is returned.
146146

147-
3. **Allow/warn/log** — observability actions that do not block execution.
147+
3. **Observe**non-blocking observability action that does not affect execution.
148148

149149
## Learn more
150150

core/reference.mdx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -70,17 +70,17 @@ Controls → Agents
7070
|--------|----------|
7171
| `deny` | Block the request/response, raise `ControlViolationError` |
7272
| `steer` | Raise `ControlSteerError` with steering context for correction and retry |
73-
| `allow` | Permit execution (no effect if a `deny` control also matches) |
74-
| `warn` | Log a warning but allow execution |
75-
| `log` | Silent logging for monitoring only |
73+
| `observe` | Record the match for audit and observability without blocking execution |
74+
75+
Legacy values `allow`, `warn`, and `log` are accepted on input but normalized to `observe`.
7676

7777
Priority semantics:
7878

7979
1. **Deny wins** — if any `deny` control matches, execution is blocked.
8080

8181
2. **Steer second** — if any `steer` control matches (and no deny), steering context is returned.
8282

83-
3. **Allow/warn/log** — observability actions that do not block execution.
83+
3. **Observe**non-blocking observability action that does not affect execution.
8484

8585
You can read more in [Concepts](/concepts/overview)
8686

examples/agent-control-demo.mdx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ Controls are defined on the server with:
104104

105105
- Scope: When to check (step types, stages: pre or post)
106106
- Condition: What and how to check
107-
- Action: What to do (allow, deny, steer, warn, log)
107+
- Action: What to do (deny, steer, observe)
108108

109109
Example from `setup_controls.py`:
110110

@@ -160,7 +160,7 @@ Controls can be updated on the server without code changes:
160160

161161
- Enable or disable controls
162162
- Update patterns and rules
163-
- Change enforcement decisions (deny to warn)
163+
- Change enforcement decisions (deny to observe)
164164
- Add new controls to existing agents
165165

166166
## Configuration

examples/deepeval.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ You can create specialized evaluators for specific use cases:
480480
3. **Configuration**: Pydantic models provide type-safe, validated configuration
481481
4. **Registration**: The `@register_evaluator` decorator handles registration automatically
482482
5. **Integration**: Evaluators work seamlessly with agent-control's policy system
483-
6. **Control Logic**: `matched=True` triggers the action (deny/allow), so invert when quality passes
483+
6. **Control Logic**: `matched=True` triggers the action (deny/observe), so invert when quality passes
484484

485485
## Troubleshooting
486486

examples/langchain-sql.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ The SQL is evaluated using the `sql` evaluator:
135135
- Parses the query
136136
- Checks for blocked operations (DROP, DELETE, etc.)
137137
- Validates LIMIT clauses
138-
- Returns deny/allow decision
138+
- Returns deny/observe decision
139139

140140
### 4. Fail-Safe Error Handling
141141

@@ -200,11 +200,11 @@ Agent Control Server
200200
201201
SQL Evaluator Execution
202202
203-
DENY (blocks DROP) or ALLOW (safe query)
203+
DENY (blocks DROP) or PASS (safe query)
204204
205205
Back to Decorator
206206
207-
Raise ControlViolationError (DENY) or Execute (ALLOW)
207+
Raise ControlViolationError (DENY) or Execute (PASS)
208208
```
209209

210210
## Files

examples/steer-action-demo.mdx

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
---
22
title: Steer Action Demo
3-
description: Banking transfer agent showcasing allow, deny, warn, and steer actions.
3+
description: Banking transfer agent showcasing observe, deny, and steer actions.
44
---
55

66
A realistic AI banking agent that processes wire transfers with compliance controls, fraud detection, and approval workflows.
77

88
## What This Demonstrates
99

10-
This example shows all three AgentControl action types in a real-world banking scenario:
10+
This example shows the three Agent Control action types in a real-world banking scenario:
1111

12-
- Allow: Auto-approve simple, low-risk transfers
1312
- Deny: Hard-block compliance violations (OFAC sanctions, high fraud)
14-
- Warn: Log suspicious activity without blocking (new recipients)
1513
- Steer: Guide agent through approval workflows (2FA, manager approval)
14+
- Observe: Record suspicious activity for audit without blocking (new recipients)
1615

1716
## Understanding Steer Actions
1817

@@ -26,7 +25,7 @@ Key difference from deny:
2625
## Demo Flow
2726

2827
```text
29-
Request Transfer → Steer Triggered → Correct Issue → Retry Transfer → Allow Success
28+
Request Transfer → Steer Triggered → Correct Issue → Retry Transfer → Success
3029
```
3130

3231
## Quick Start
@@ -75,11 +74,11 @@ Expected:
7574

7675
## What You Will Learn
7776

78-
- When to use deny vs warn vs steer actions
77+
- When to use deny vs steer vs observe actions
7978
- How to integrate human feedback (2FA, approvals) into agent workflows
8079
- How structured steering context enables deterministic agent workflows
8180
- Real-world compliance patterns (OFAC, AML, fraud prevention)
82-
- The steer to correct to retry to allow lifecycle
81+
- The steer correct retry lifecycle
8382

8483
## How It Works
8584

@@ -89,7 +88,7 @@ The agent uses AgentControl to gate wire transfers through five controls:
8988
|---|---|---|
9089
| OFAC Sanctions | Deny | Destination is sanctioned country |
9190
| High Fraud | Deny | Fraud score > 0.8 |
92-
| New Recipient | Warn | Recipient not in known list |
91+
| New Recipient | Observe | Recipient not in known list |
9392
| 2FA Required | Steer | Amount >= 10,000 without 2FA |
9493
| Manager Approval | Steer | Amount >= 10,000 without approval |
9594

@@ -141,7 +140,7 @@ Key fields:
141140

142141
## Files
143142

144-
- `setup_controls.py` - Creates the five banking controls (deny, warn, steer)
143+
- `setup_controls.py` - Creates the five banking controls (deny, steer, observe)
145144
- `autonomous_agent_demo.py` - Interactive agent with deterministic steer handling
146145

147146
## Source Code

integrations/crewai.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Add guardrails without refactoring existing CrewAI crews. The decorator wraps yo
3030
Keep CrewAI's built-in guardrails for response quality and agent behavior, while Agent Control handles hard security enforcement at tool boundaries.
3131

3232
**4. Production-grade compliance**
33-
Built-in evaluators for PII detection, unauthorized access prevention, and custom business logic with deny/allow/steer actions.
33+
Built-in evaluators for PII detection, unauthorized access prevention, and custom business logic with deny/steer/observe actions.
3434

3535
### Common Use Cases
3636

integrations/langchain.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Add guardrails without refactoring existing LangChain code. The decorator wraps
3030
Choose server-side execution for centralized controls and audit logs, or SDK-local execution for offline operation and lower latency.
3131

3232
**4. Production-grade safety**
33-
Built-in evaluators for SQL injection, regex patterns, PII detection, and custom business logic with deny/allow/steer actions.
33+
Built-in evaluators for SQL injection, regex patterns, PII detection, and custom business logic with deny/steer/observe actions.
3434

3535
### Common Use Cases
3636

0 commit comments

Comments
 (0)