Spanda supports safety-gated agentic programming with tool permissions, memory scopes, and approval gates.
agent Planner {
goal "Navigate safely";
tools [camera, lidar, map];
memory short_term;
policy safe_only;
can [ read(lidar), propose_motion ];
plan {
let proposal = planner.reason(goal);
let action = safety.validate(proposal);
return action;
}
}
- Agents cannot directly execute actuators unless permitted and safety-gated
- High-risk actions require approval or
SafeAction - Empty
can []default-deniespropose_motionandexecuteat runtime (Phase 32) - Capability grant/deny events are written to the audit trail when configured (Phase 31)
- Reasoning traces captured for audit when
auditis configured ActionProposalmust pass throughsafety.validatebefore actuator execution- Agent
planblocks with motion grants must returnSafeAction— see typed-handler-io.md
Examples:
examples/features/agent_capabilities.sd— populatedcan[]examples/features/agent_can_deny.sd— emptycan[]denial
spanda-ai provides AgentRuntime with mock and live AI paths. Capability enforcement runs in the
interpreter.
See Architecture — AI Safety and Feature Status.