Every home automation developer has written this at some point: if motion_detected and time > 22:00: turn_on(hallway_light). It works. It's simple. And it's the foundational architecture behind every major smart home platform today. But here's the uncomfortable truth โ that approach is a dead end for AI agents, and the smarter your system gets, the faster you'll hit the wall.
The Brittleness Problem Nobody Talks About
Rules are commands in disguise. When you write if X happens, do Y, you're really just issuing a delayed command โ you've decided what should happen in advance, not when it actually needs to happen. This works fine when you can anticipate every scenario, your device set never changes, and the AI's job is simply pulling triggers on pre-approved responses. None of those conditions hold in a real AI-augmented environment. Add a new smart lock to your setup and suddenly you're auditing every rule that touches doorways or security events. Miss one edge case and your system silently fails exactly when you need it most โ like when the AI detects abnormal temperature patterns suggesting a fridge compressor failure but there's no rule for fridge_compressor_anomaly because nobody wrote one.
Why Smarter AI Makes This Worse
The intuitive fix is to write more rules, or use AI to generate them automatically. Inspect logs, auto-suggest new automations, get clever with pattern matching. But this approach fundamentally misses the architectural problem. An AI agent doesn't produce rules โ it produces understanding. When a vision model detects someone falling, it knows there's an emergency. It doesn't know it needs to call phone.call("911") and lock.unlock() and alarm.activate("emergency"). That translation from detection to command still requires pre-written logic somewhere in the stack. The more capable your AI becomes, the more situations it can identify โ and every new detectable situation spawns a new set of rules that someone has to maintain. The rule surface grows faster than any team can keep up with.
Capability-Based Discovery: A Different Model
The DoSync Protocol proposes an alternative worth examining. Instead of centralizing response logic in rules, distribute the knowledge to devices themselves. Each device publishes a manifest declaring what it can do and under what contexts it's appropriate to act: {"device_id": "lock-frontdoor-01", "tags": ["door-lock", "entrance", "emergency"], "actuators": [{ "type": "unlock", "emergency_capable": true }]}. This isn't a rule โ it's a declaration. The device is saying: I can unlock, I'm relevant in emergencies, I'm at the entrance. When an AI fires a semantic intent like ensure_safety [emergency], the resolver reads every registered manifest and asks which devices declared themselves relevant to this situation. It builds the response dynamically from what's actually available โ unlocking doors, activating alarms, turning on lights, sending notifications all in parallel. Add a new smart lock tomorrow and it participates automatically in every relevant scenario without touching any other code.
Key Takeaways
- Rules encode knowledge centrally and can't keep pace with changing device ecosystems or expanding AI capabilities
- More sophisticated AI detection creates more rule-writing debt โ the inverse of what you'd expect from automation
- Device manifests shift intelligence to the edges, making systems resilient to change rather than brittle against it
- Runtime capability resolution lets AI respond to situations you never anticipated instead of only ones you pre-scripted
The Bottom Line
The hardcoded automation model was designed for a world where humans decided everything in advance. That's not the world AI agents live in โ they detect, infer, and understand. Our systems need to catch up to that reality. Capability-based discovery isn't just a better pattern for smart homes; it's the architecture that'll determine whether your AI agent can actually do what you bought it to do.