PROTOTYPE · HUMAN-IN-THE-LOOP AGENTS

Automation that knows when to ask permission.

HomeOps Agent explores explicit boundaries for useful household automation.

Problem

Household automation needs to distinguish a safe suggestion from an action that requires a person’s approval.

Engineering question

How can an agent use tools while keeping permission, failure, and audit behavior explicit?

What I built

A prototype with explicit agent tools, approval gates, deterministic scenarios, failure handling, audit history, a visible web dashboard, and a Strands adapter.

Architecture

The deterministic Good Night workflow and Strands-facing action tool share a host-enforced permission boundary. Only three exact low-risk device/action pairs can reach the simulated mutator. Lock and access requests stop for human review; no approval-resolution flow is implemented.

Evaluation

The reviewed October 18, 2026 implementation CI run passed 37 deterministic tests on both Python 3.11 and 3.12. Chromium scenario-parity coverage checks that the browser reflects the same permission and failure behavior.

Guardrails and boundaries

Current device integrations are simulated for reproducible testing. Agent-supplied approval claims cannot authorize a protected action. A separate host enforcement log records decisions; the agent-authored audit narrative is not authorization evidence.

Failure evidence

Failure handling is modeled as a first-class path; this prototype does not establish reliability in a real household.

Tradeoffs

Simulation makes behavior repeatable but does not validate real device behavior or operational resilience.

Current limitations

The device layer is simulated. There is no production deployment, real-device integration, approval-resolution flow, or demonstrated live Strands model/tool-calling quality. The host and its policy code are trusted; this is not an operating-system sandbox.

What comes next

Extend validation before connecting any real device or durable action.

View repository

37-test CI record · Permission-boundary scope