|
|
|
|
|
by yaront111
145 days ago
|
|
Great question. This is actually a core design principle of the Cordum Agent Protocol (CAP). It’s definitely a *structured rejection*, not a silent fail.
Since the LLM needs to "know" it was blocked to adjust its plan, the kernel returns a standard error payload (e.g., `PolicyViolationError`) with context. The flow looks like this:
1. *Agent:* Sends intent "Delete production DB".
2. *Kernel:* Checks policy -> DENY.
3. *Kernel:* Returns a structured result: `{ "status": "blocked", "reason": "destructive_action_limit", "message": "Deletion requires human approval" }`.
4. *Agent (LLM):* Receives this as an observation.
5. *Agent (Re-planning):* "Oh, I can't delete it. I will generate a slack message to the admin asking for approval instead." This feedback loop turns safety from a "blocker" into a constraint that the agent can reason around, which is critical for autonomous recovery. |
|