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

OpenClaw on GitHub β†’

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 chatbot
  • USER.md β€” who the operators are and how they prefer to interact
  • TOOLS.md β€” every physical and digital tool available

Memory

  • MEMORY.md β€” long-term curated memory, updated over time
  • memory/YYYY-MM-DD.md β€” daily logs of decisions, observations, lessons
  • HEARTBEAT.md β€” checklist of what to monitor on each heartbeat poll

Scheduled Operations

CronWhatHow
3Γ— daily (6AM/12PM/6PM)Setpoint planningIsolated session: gather context β†’ reason β†’ write waypoints β†’ log β†’ post to Slack
Every 30 minIris-dev dispatchCheck coding agent status β†’ validate completed work β†’ dispatch next task
7 AM dailyMorning briefQuery DB + forecast β†’ post overnight summary to greenhouse
8 PM dailyEvening summaryQuery DB β†’ post day recap to greenhouse
Sunday 7 PMWeekly digest7-day trends, compliance, crop status β†’ post to greenhouse
Heartbeat (~30 min)System monitoringCheck 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:

AgentRoleModelInterface
IrisOperations, planning, monitoring, dispatchClaude OpusOpenClaw TUI + Slack
Iris-devSoftware development, firmware, migrationsClaude Codetmux + bypass-permissions

Iris owns the backlog. Iris-dev executes. Every 30 minutes, a cron job checks on Iris-dev:

  1. Is it alive?
  2. Did it finish something? β†’ Validate the work
  3. Is it waiting for approval? β†’ Approve safe operations
  4. 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:

FilePurpose
MEMORY.mdCurated long-term memory: decisions, lessons, key facts
memory/YYYY-MM-DD.mdDaily raw logs: every plan, dispatch, observation
plan_journal (DB)Per-plan hypothesis, outcome, score
planner_lessons (DB)Validated patterns with confidence levels
BACKLOG.mdSprint state, task priorities, blockers
HEARTBEAT.mdWhat 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.”

OpenClaw Documentation β†’ Β· GitHub β†’ Β· Community β†’