Hualin Luan Cloud Native · Quant Trading · AI Engineering
Back to articles

Article

Treat Notion as the control plane of 18 Agents. The first thing to solve is never 'automation'

This article treats Notion as a control-plane question, not a UI question: when 18 OpenClaw Agents share one operating surface, does the system amplify productivity, or does it amplify scheduling noise, ambiguous state, and unclear takeover paths?

Meta

Published

3/24/2026

Category

interpretation

Reading Time

16 min read

Copyright Statement and Disclaimer This article is an original interpretation based on “I Turned Notion Into a Control Plane for my 18 OpenClaw AI Agents”. The copyright of the original text belongs to the original author and source. This article does not constitute an official translation and is only used for learning, research and discussion of opinions.

Original reference I Turned Notion Into a Control Plane for my 18 OpenClaw AI Agents — AWS Heroes: https://dev.to/aws-heroes/i-turned-notion-into-a-control-plane-for-my-18-openclaw-ai-agents-5624

Multi-agent systems usually fail through scheduling noise, not drama

The problem became visible after the team connected the twelfth Agent to the Notion control plane. In theory, this should have been a milestone: moving from single-point automation to multi-role collaboration. In practice, the board showed rows of pulsing status tags and task relationships that were becoming harder to explain.

“Processing”, “Waiting”, “Failed - to be retried”, “Exception - requires manual confirmation”, “Timed out”, “Partially completed” - these statuses look organized, but they do not define ownership boundaries. The board is busy, yet the execution graph is unclear. A data cleaning task failed, but it blocked three downstream analysis agents; a report generation task timed out, but it occupied the database connection pool and was not released; a task that should have been automatically retried failed because the status label was mistakenly marked as “requires manual confirmation” and sat in the queue for six hours without an owner.

This is not a breakdown; it is chronic suffocation. It’s not that the system isn’t working, it’s that it’s working too noisily. Each Agent is “completing tasks”, but the relationship between tasks, responsibilities after failure, and the timing of manual intervention are all unclear.

After that incident, the central control-plane question became clear: the team needed to stop and redefine what the control plane was supposed to solve. Delivery pressure kept pushing that work out, so the scheduling noise kept accumulating.

This sentence illustrates a common dilemma: teams are trapped in the inertia of “more automation”, but forget to ask a more fundamental question - when things don’t go well, who knows what is happening now, who has the authority to take over, and how can the system stop?

When turning Notion or any other tool into a multi-agent control plane, the first priority is not to make more tasks flow automatically. It is to answer this more realistic question first.

Map the current maturity stage first

If you are building a multi-agent control plane, determine which stage you are in before pursuing a “complete platform.” A later operating review showed that the system had chased goals beyond its current operating capacity without first naming the stage it was actually in.

Stage 1: It runs, but people still carry the operating model

The typical characteristic of this stage is that each Agent can complete local work, but operating order still lives in people’s heads. Failure ownership, timeout handling, and manual takeover thresholds depend on tacit knowledge rather than system state.

The early setup worked because the routing rules were still small enough to remember: data-cleaning failures went to the data owner, report-generation timeouts went to the reporting owner, and API-call exceptions went to the platform on-call function. That human scheduling can feel efficient at small scale. Once the number of Agents grows, dependency tracking and takeover decisions exceed what an on-call person can reliably infer at two in the morning.

The biggest risk in stage one is mistaking “can run” for “is controllable.” The system does complete tasks, but it borrows heavily from organizational attention: people must stay available, stay alert, and remember implicit routing rules. That model breaks as soon as scale grows.

Stage 2: State flow exists, but exception handling is still loose

The team entered this stage when it connected the sixth to tenth Agent. They began to create task lists, status columns, trigger rules, and even automatic write-back in Notion. On the surface, the system looks more “automated” - task status is automatically updated, completion is automatically notified, and failure is automatically marked.

But exception handling is still loose. The system can tell you “what’s wrong”, but it can’t tell you “who must act next”. A task fails, it is marked as “failed”, but there is no clear escalation rule: is it automatically retried? Is it transferred to manual work? Is it to terminate the entire link? Or continue to wait? These decisions still rely on the on-the-spot judgment of the personnel on duty.

More troublingly, Stage 2 systems often create the illusion that “governance is complete.” We have task tracking, we have status panels, we have automation rules – it seems like it’s all there. But in fact, the system just changes the chaos from “totally invisible” to “visible but no one responsible”. The failed state is marked, but no one is clearly responsible for handling it; the timeout task is highlighted, but the system does not know what to do next.

Phase 3: The control plane begins to assume real governance responsibilities

Only at this stage is your control plane not just an observation board, but a scheduling system. It not only records tasks, but also defines responsibilities; not only displays status, but also restricts flow; not only supports collaboration, but also provides back pressure and braking.

The phase-three target became clearer only after the operating model was made explicit. The core difference is that a phase-three system incorporates failure into the design. Rather than assuming that all tasks will succeed, it assumes that some tasks will fail and designs clear paths for handling those failures: who owns each failure type, how long handling may take, what the escalation chain is, and when a circuit breaker must trip.

If the system is still in the first two stages, jumping directly to elegant collaboration among eighteen Agents usually turns it into a high-resolution chaos amplifier. Adding more Agents at the end of phase two only makes the existing disorder clearer.

The most important thing to add at this stage is not more Agents, but the status and responsibility model.

When many people look at the control plane, their first reaction is to add more capabilities: add an audit agent, a routing agent, and a remediation agent. But in the field, this is often wrong.

At the most anxious point, the team also considered adding a dedicated “scheduling agent” to coordinate the system. That idea missed the real problem. The system was messy not because there were too few roles, but because the states were not hard enough. As long as “Processing”, “Waiting”, “Failed”, and “Taken Over” have no clear responsibility semantics, adding new Agents only adds more fuzzy actions.

What really needs to be done first are two things: state machine and responsibility model.

State machines mean that each state has a clear definition: what it means, where it is allowed to flow from to where, and how long it is stuck before it needs to be upgraded. In the initial implementation, the “processing” status can simultaneously indicate “executing”, “waiting for dependencies”, “temporary suspension”, “possible deadlock” and other situations. This ambiguity makes it impossible for the system to make accurate judgments, and also makes manual intervention difficult - when you see a task in the “processing” status, you don’t know whether it is running normally or has a problem.

Building a state machine requires the team to sit down and clearly define the meaning and flow rules of each state. For example:

  • “Pending”: The task has been created and is waiting for resource allocation. If it remains unallocated for more than 5 minutes, it is escalated to “insufficient resources” and operations is notified.
  • “Processing”: The task has been assigned to the Agent and is being executed. If it exceeds 150% of the expected time, it is marked as “possible timeout” and triggers a check.
  • “Waiting for dependencies”: The task itself is normal, but the dependent predecessor tasks have not been completed. If the predecessor tasks fail, the task is automatically marked as “Dependency Failure”
  • “Failed”: There was an error in task execution and it has been stopped. The next step needs to be decided based on the error type (automatic retry/transfer to manual/terminate link)
  • “Completed”: The task was successfully completed and the results have been written to the specified location

Each state must have clear entry conditions, exit conditions, timeout processing and upgrade paths.

The responsibility model defines who acts for each state, when that action is due, and who takes over if it fails. In the original system, a failed status was visible but not owned. It was unclear whether the task owner, Agent maintainer, on-call function, or automation layer should handle it. Without ownership, failure simply remained in the system until someone noticed it.

Building a responsibility model requires answering:

  • Who is the first person responsible for each failure type?
  • How long does the responsible person have to respond?
  • If the primary owner does not respond, where does escalation go?
  • What is the processing time after the upgrade?
  • What should the system do (default retry/terminate/leave status quo) if all upgrade chains are unresponsive?

Without these two layers, the beauty of the control plane means nothing. No matter how much it looks like a control tower, it is essentially just a more advanced to-do list.

A more realistic progression sequence

A more realistic progression sequence is less flashy but more likely to succeed.

Step 1: Define the “failure state” clearly

Do not define the ideal collaboration flow first; define the failure flow first. Which failures allow automatic retry, which failures must be taken over manually, and which failures directly terminate the link? Start by listing the possible failure scenarios in the system, then define processing rules for each category.

A typical failure-flow review separates the problem into several classes: about 40% of failures can be retried safely and automatically, such as network timeouts or temporary resource shortages; 30% must be handled manually, such as business-logic errors or data-format abnormalities; 20% should terminate the chain directly, such as complete upstream dependency failure or resource-quota exhaustion; and the remaining cases require more complex judgment, such as partial success with partial failure.

Once these rules become system behavior, on-call pressure drops because routine failures can be handled automatically and escalation is reserved for cases that truly require human judgment.

Step 2: Design manual takeover as a system capability rather than an emergency posture

What the front-line team fears most is not having to manually take over, but not knowing how to take over. The control plane must provide a fixed entrance for takeover: who takes over, where is the handover context, what is the current stuck point, and what remedial actions are allowed.

The team designed a “takeover work order” system. When a task requires manual intervention, the system automatically creates a work order, which includes:

  • Basic information of the task (type, creation time, expected completion time)
  • Current status and historical trajectory
  • Completed steps and results
  • Failure reason and error log
  • Recommended solutions (automatically recommended based on failure type)
  • Related upstream and downstream tasks

The takeover ticket is routed to the responsible function, and the full takeover, handling, and closure process happens inside the system. Every operation is recorded so later reviews can reconstruct the decision path.

This design changes manual takeover from an “emergency firefighting” to a “standard process.” Engineers on duty no longer have to guess what happened at two in the morning looking at vague status labels; they can clearly see the context and make informed judgments.

Step Three: Do expansion and role segmentation

Only after the first two steps are established can additional Agents amplify productivity rather than uncertainty. After the state machine and responsibility model are in place, every new Agent should answer first:

  • What is the failure mode of this Agent?
  • How are these failures detected and handled?
  • Who is responsible for this Agent’s failure?
  • What are its dependencies on existing Agents? How to deal with dependency failure?

Otherwise, every new role creates another coordination interface. The meetings get longer, and the system becomes more dependent on one person who still remembers the whole operating picture.

What not to rush right now

If you haven’t hardened your status and responsibilities yet, the practical recommendation is a few things to do before you rush.

First, don’t rush to pursue “fully automatic closed loop”

A lot of teams die here first because they want to skip the semi-autonomous stage and go straight to something that looks like an autonomous system. As a result, the system makes errors autonomous. one common failure case is a team that designed complex retry and compensation logic in pursuit of “full automation.” As a result, an underlying data error was automatically retried by the system more than a dozen times, generating a large amount of dirty data. The final cleanup cost far exceeded the cost of manual processing.

In the semi-automatic stage, the default behavior should be “escalate to manual handling when uncertainty appears” rather than “guess and continue.” Automatic rules should be added only for failure modes the system can handle reliably.

Second, don’t rush into fine-grained Agent role split

The more detailed the roles become, the more collaboration interfaces the system creates, and the higher the cost of interpreting state. Before a mature state machine exists, fine-grained roles create scheduling debt. Splitting “data cleaning” into four Agents for format checks, missing values, outliers, and conversion can make task handoff consume more system capacity than the actual business logic.

A better design merged those roles back into a single data-cleaning agent and used traditional functions for the internal steps. System complexity dropped immediately.

Third, don’t rush to use the control plane as a management visualization screen

The value of a dashboard depends on whether the underlying rules are hard enough. Otherwise, the dashboard only visualizes noise. The team once built a real-time dashboard for task distribution, success rate, and processing time. But when the state machine is incomplete, those numbers are suspicious: how many “processing” tasks are actually deadlocked, and how many “completed” tasks are only partially complete? A dashboard can make chaos look orderly until the team checks the state semantics behind the numbers.

First make the rules hard, and then let the visualization shine. The order cannot be reversed.

A restrained MVP for limited resources

If resources are limited, the MVP should stay deliberately narrow.

First, track only one category of high-value tasks. Do not pull every task type into the control plane. Choose the most representative value path first. For a data-analysis pipeline, that may mean tracking only report-generation tasks until the state model, escalation path, and takeover process are reliable.

Second, connect only a small number of key Agents. Two or three Agents may be enough if they cover the whole value chain: data collection, data processing, and report generation, for example. A small chain that produces one complete business outcome teaches more than ten isolated Agents doing scattered work.

Then the number of states is controlled to a minimum but has clear responsibility implications. A practical starting point is to define up to five states: pending, processing, failed, requiring manual intervention, and completed. Each should have clear definitions and handling rules.

Each state also needs escalation or takeover rules. Even “pending” needs timeout behavior. For example, if a task remains pending for more than 10 minutes, it should be marked as “insufficient resources” and routed to operations.

Finally, every manual takeover should leave a structured rationale: failure category, action taken, and estimated resolution time. Those records become training data for later automation rules.

This minimal system may not look impressive, but it exposes governance gaps early: vague status definitions, overlong escalation chains, or inconsistent ownership rules for failure. The earlier those gaps appear, the cheaper later expansion becomes.

Conclusion: A control plane earns its value when failure can be caught and handed over

It took the team six months to move the multi-agent system from chaos to controllability. The most important realization from this process was that multi-agent systems easily deceive teams by looking like “the future is already here.” Tasks are jumping, states are flowing, and roles are collaborating. Everything resembles a more advanced operating system.

But what really determines whether it is a production system is never these superficial dynamics, but whether the system can still clarify responsibilities, shut down the noise, and make manual takeover a non-embarrassing task when collaboration is out of order.

If you are planning to make Notion or another tool the control plane for OpenClaw, the practical advice is simple: define failure states first, make the takeover path explicit, and shorten the chain of responsibility before adding more automation.

Because the maturity of the control plane is not reflected in how many Agents it can dispatch, but in whether it can prevent the organization from relying on one person who best understands the overall situation to stay up late to put out fires.

The system later experienced its first real test: an upstream data source suddenly changed its format, causing widespread failure of the entire data processing link. But this time, the system automatically marked the failure type according to the preset rules, created a work order, notified the responsible person, and prevented automatic retries before manual intervention. The repair was completed within twenty minutes, with no data loss or service interruption.

This result was unimaginable six months ago. The system might then be in a state of confusion trying to retry, generating dirty data, and then sitting in a completely unpredictable state waiting for human discovery. The change is not that there are more Agents, but that the control plane has begun to truly assume governance responsibilities.

This is the true meaning of “the future is here” for this kind of control plane.

References and Acknowledgments

Series context

You are reading: OpenClaw in-depth interpretation

This is article 3 of 10. Reading progress is stored only in this browser so the full series page can resume from the right entry.

View full series →

Series Path

Current series chapters

Chapter clicks store reading progress only in this browser so the series page can resume from the right entry.

10 chapters
  1. Part 1 Previous in path Why do OpenClaw security incidents always happen after 'the risk is already known'? Why do OpenClaw security incidents often happen after the risk was already known? This article does not blame model behavior alone. It examines execution-rights design: when execution, audit, and rollback all live on the same path, organizational blind spots can turn controllable deviations into production incidents.
  2. Part 2 Previous in path Why is the lightweight Agent solution likely to be closer to production reality than the 'big and comprehensive' solution? This article challenges a common engineering illusion: many OpenClaw Agent stacks that appear stronger only front-load complexity into demo capability, while pushing the real cost into production failures, recovery paths, and overnight operations.
  3. Part 3 Current Treat Notion as the control plane of 18 Agents. The first thing to solve is never 'automation' This article treats Notion as a control-plane question, not a UI question: when 18 OpenClaw Agents share one operating surface, does the system amplify productivity, or does it amplify scheduling noise, ambiguous state, and unclear takeover paths?
  4. Part 4 Putting Agents on ESP32: the real risk is not performance, but boundary assumptions This article does not describe the ESP32 Edge Agent as a cool technology trial, but dismantles the four most common misunderstandings: running the board does not mean the system is usable, being offline is not just a network problem, and local success does not mean on-site maintainability. Edge deployments require new engineering assumptions.
  5. Part 5 When OpenClaw costs get out of control, the first thing to break is never the unit price, but the judgment framework. If OpenClaw API cost control focuses only on model unit price, it usually becomes an illusion of cheapness: the monthly bill may look better for a while, while structural waste keeps accumulating in the background. This article rebuilds cost governance around budget boundaries, task layering, entry routing, and feedback loops.
  6. Part 6 When an Agent sees a password, the exposed problem is runtime governance This incident review reframes 'the Agent saw a password' as a runtime-governance failure: credentials had become an always-online, always-visible, always-callable default capability instead of a short-lived, task-scoped resource.
  7. Part 7 Why OpenClaw needs a tool firewall that can say no, not more prompt rules Many teams pin OpenClaw safety on prompt constraints, but the real risk ceiling is set by execution control: whether the system lets model proposals become tool execution without independent adjudication. This article proposes a four-layer governance framework of intent, adjudication, execution, and audit.
  8. Part 8 Deploying OpenClaw to AWS is easy; keeping it safe after deployment is not When teams say they have hardened a system with Terraform, they may only have completed the starting point. IaC makes deployment repeatable, but continuous security still depends on drift detection, exception handling, and runtime governance.
  9. Part 9 The real priority for Agent credential security is not 'where to put it', but 'who can touch it and when' Refuting an all-too-common misconception: OpenClaw credential security is complete once key escrow, encrypted storage, and rotation are in place. The real failure point is often runtime use: not where the secret is stored, but who can touch it and when.
  10. Part 10 Looking at the three types of OpenClaw security articles together, it is not the vulnerabilities that are really revealed, but the lag in governance. When prompt injection, credential leakage, and tool firewalls are examined together, the same core contradiction becomes clear: OpenClaw's capabilities are expanding faster than execution rights management. This article synthesizes the common conclusions of three security articles.

Reading path

Continue along this topic path

Follow the recommended order for OpenClaw security in-depth interpretation instead of jumping through random articles in the same topic.

View full topic path →

Next step

Go deeper into this topic

If this article is useful, continue from the topic page or subscribe to follow later updates.

Return to topic Subscribe via RSS

RSS Subscribe

Subscribe to updates

Follow new articles in an RSS reader without checking the site manually.

Recommended readers include Follow , Feedly or Inoreader and other RSS readers.

Comments and discussion

Sign in with GitHub to join the discussion. Comments are synced to GitHub Discussions

Loading comments...