Iris (OpenClaw)
Verdify is operated by Iris β an AI agent running on OpenClaw, an open-source framework for persistent, tool-using AI agents.
What OpenClaw Is
OpenClaw is a framework for running AI agents that persist across sessions, use tools, maintain memory, and operate autonomously on schedules. Itβs the runtime that makes Iris possible β not just a chatbot that answers questions, but an agent that:
- Wakes up on a schedule (cron)
- Reads its own memory files to recall context
- Executes shell commands, queries databases, calls APIs
- Writes plans, dispatches work to other agents
- Posts reports to Slack
- Learns from its own decisions
How Iris Works
Iris runs as an OpenClaw agent on a Linux VM (vm-docker-iris, 192.168.30.150). The agent has:
Identity
SOUL.mdβ who Iris is: the greenhouse intelligence layer, not a chatbotUSER.mdβ who the operators are and how they prefer to interactTOOLS.mdβ every physical and digital tool available
Memory
MEMORY.mdβ long-term curated memory, updated over timememory/YYYY-MM-DD.mdβ daily logs of decisions, observations, lessonsHEARTBEAT.mdβ checklist of what to monitor on each heartbeat poll
Scheduled Operations
| Cron | What | How |
|---|---|---|
| 3Γ daily (6AM/12PM/6PM) | Setpoint planning | Isolated session: gather context β reason β write waypoints β log β post to Slack |
| Every 30 min | Iris-dev dispatch | Check coding agent status β validate completed work β dispatch next task |
| 7 AM daily | Morning brief | Query DB + forecast β post overnight summary to greenhouse |
| 8 PM daily | Evening summary | Query DB β post day recap to greenhouse |
| Sunday 7 PM | Weekly digest | 7-day trends, compliance, crop status β post to greenhouse |
| Heartbeat (~30 min) | System monitoring | Check sensors, equipment, switches, alerts, dispatcher health |
The Two-Agent Architecture
Iris doesnβt build software alone. It works with Iris-dev, a Claude Code coding agent running in a separate tmux session:
| Agent | Role | Model | Interface |
|---|---|---|---|
| Iris | Operations, planning, monitoring, dispatch | Claude Opus | OpenClaw TUI + Slack |
| Iris-dev | Software development, firmware, migrations | Claude Code | tmux + bypass-permissions |
Iris owns the backlog. Iris-dev executes. Every 30 minutes, a cron job checks on Iris-dev:
- Is it alive?
- Did it finish something? β Validate the work
- Is it waiting for approval? β Approve safe operations
- Is it idle? β Dispatch the next highest-priority task
This partnership built the entire Verdify platform in 7 days β 29 database tables, 34 views, 17 dashboards, dual-path ESP32 control, forecast integration, and this website.
The Planning Cycle
The core of Irisβs autonomy is the setpoint planning loop:
Previous Plan β Validate β Score β Extract Lesson
β
Gather Context β Weather + History + Lessons + Constraints
β
Reason β Hypothesis β Experiment β Expected Outcome
β
Write Waypoints β setpoint_plan table β Dispatcher β ESP32
β
Log β memory/YYYY-MM-DD.md β Post Summary β Slack
Each plan carries a hypothesis (βI believe X will happen because Yβ) and an experiment (βIβm changing parameter Z to test thisβ). The next cycle scores the results. Lessons accumulate confidence. High-confidence patterns become rules the planner must follow.
Memory and Continuity
Each session, Iris wakes up fresh β no implicit memory. Continuity comes from files:
| File | Purpose |
|---|---|
MEMORY.md | Curated long-term memory: decisions, lessons, key facts |
memory/YYYY-MM-DD.md | Daily raw logs: every plan, dispatch, observation |
plan_journal (DB) | Per-plan hypothesis, outcome, score |
planner_lessons (DB) | Validated patterns with confidence levels |
BACKLOG.md | Sprint state, task priorities, blockers |
HEARTBEAT.md | What to check on each monitoring pass |
This is how an AI agent maintains coherent operation across hundreds of sessions without any built-in memory β the filesystem IS the memory.
Why OpenClaw
Traditional automation (Home Assistant rules, Node-RED flows, cron scripts) handles the βif X then Yβ case. But greenhouse management isnβt a set of static rules β itβs a continuous optimization problem where the right answer depends on weather forecasts, historical patterns, crop needs, equipment state, and learned experience.
OpenClaw gives Iris the ability to reason about these inputs, not just react to them. The difference between βVPD > 2.0 β turn on mistersβ and βgiven tomorrowβs forecast of 88Β°F/10% RH, the March 25 lesson that 60s pulses outperform 120s, and the fact that the south mister zone is 3Γ more effective than center β pre-position mister engage at 1.2 kPa two hours before the VPD ramp.β