Watchlight and the Cedar ecosystem
Watchlight is built on Cedar, and several other projects — some from AWS — use Cedar to authorize AI agents. They sit at different layers, so this page is orientation, not a scoreboard.
-
Cedar — the decision core. May this principal take this action on this resource, in this context?, answered deterministically, one request at a time. Watchlight embeds real Cedar; every Watchlight decision is a Cedar decision.
-
cedar-for-agents (AWS) — build-time tooling. It generates a Cedar schema from an agent's MCP tool definitions, so your tools and your policies share one vocabulary. It is a way to author policy, not a runtime.
-
Dogwood (AWS) — a policy language extending Cedar with temporal logic. Where Cedar reasons about one request, Dogwood reasons about a sequence: rate limits, ordering, prerequisites, aggregate caps.
-
Watchlight — a runtime. It embeds Cedar to make the decision, then enforces that decision against a live agent.
Why the layer matters
Cedar and Dogwood are policy languages; cedar-for-agents is authoring tooling; Watchlight is the enforcement runtime. A language decides. A runtime has to act, and act on the messy cases: refusing a tool call before it executes, confining a sub-agent to a strict subset of its parent's authority, routing an action to a human, detecting an agent drifting from its normal behaviour, containing one that has, and producing a signed record of all of it.
Dogwood and Watchlight both care about behaviour over time, and they compose rather than compete. Dogwood lets you write a temporal rule — "at most five per hour". Watchlight learns each agent's normal shape and enforces time budgets across a run and its sub-agents. Any valid Cedar policy is a valid Dogwood policy, and Watchlight already embeds Cedar.
In one line each
- Cedar decides a single call.
- Dogwood expresses rules over a sequence of calls.
- cedar-for-agents generates the policy schema from your tools.
- Watchlight is the runtime that enforces those decisions on a live agent.