HEART Part 2: Autonomy Levels#
How much does a system do on its own?
Author: Milind K. Patil, Syncaissa Systems Inc. Status: Working draft 1, November 2026. Part of the HEART Standards Family. Version: 1.0 (draft) Track: Basic: "In one minute", Sections 2 and 3, A0 to A2 in Section 4, Rules 2, 4 and 6, and Section 8. Intermediate adds Sections 7 and 9. Advanced adds A3 to A5, Rules 1, 3, 5 and 7, and Sections 6 and 10.
In one minute#
Every HEART-Embedded System has an Autonomy Level from A0 to A5. The level says how much the system does on its own when something goes wrong.
| Level | Name | In one sentence |
|---|---|---|
| A0 | Unaware | It does not notice its own problems. You find out when it fails. |
| A1 | Aware | It notices a problem and tells you. |
| A2 | Explains | It also tells you why it happened. |
| A3 | Suggests | It also offers a fix, and carries it out when you say yes. |
| A4 | Fixes known problems | It fixes problems you taught it about, then tells you. |
| A5 | Fixes new problems | It also works out fixes for problems nobody planned for, within your limits. |
Three rules hold at every level:
- The stop button always works. One command stops all automatic action, at once. (A1 and A2 systems take no automatic action, so they have nothing to stop. Every system at A3 or above MUST have the stop command.)
- Only a person can raise the level. The system may lower it, never raise it.
- A higher level never means less safety. Risky actions always need a person to say yes.
A higher level is not "better". It means "more automatic". The right level depends on the product. A web app might be A5. A medical pump might be A2.
1. Why this part exists#
When a company says a product "has AI", nobody knows what that means. Does it only show a warning? Does it change settings by itself? Can it switch things on and off?
Cars had the same problem with "self-driving". In 2014 the engineering body SAE published six levels of driving automation, from 0 to 5. Now anyone can say "Level 2" and be understood by engineers, buyers, journalists and regulators alike.
HEART Autonomy Levels do the same for any system that looks after itself: an air conditioner, a factory machine, a photo app or a web service.
This part is deliberately short, and it can be used on its own. You do not need to know the rest of HEART to understand it.
2. The idea: four jobs#
The four jobs follow the four stages of automation of Parasuraman, Sheridan and Wickens (2000): acquiring information, analysing it, deciding, and acting. Like SAE J3016 for driving, each level then says who does each job.
When something goes wrong, four jobs have to be done:
- Notice: realise there is a problem.
- Understand: work out why.
- Decide: choose what to do about it.
- Do: carry out the fix.
The level simply says who does each job: a person, or the system.
| Level | Notice | Understand | Decide | Do |
|---|---|---|---|---|
| A0 Unaware | Person | Person | Person | Person |
| A1 Aware | System | Person | Person | Person |
| A2 Explains | System | System | Person | Person |
| A3 Suggests | System | System | System proposes, person approves | System |
| A4 Fixes known problems | System | System | Person decided in advance (a rule) | System |
| A5 Fixes new problems | System | System | System, within limits a person set | System |
Read the table from top to bottom. At each level, the system takes over one more job, or more of one job.
The key difference between A4 and A5:
- At A4, a person wrote the fix before the problem happened. The system only follows that instruction. These instructions are called Playbooks: "when X happens, do Y".
- At A5, the system works out a fix for a problem nobody wrote a Playbook for. This usually needs an AI model.
3. One example, all six levels#
The product: a home air conditioner with a HEART. The problem: the compressor keeps switching on and off every few minutes. This is called short cycling. It wastes power, cools badly and wears the compressor out. Here, the real cause is a temperature sensor that reads 3 °C too high.
| Level | What happens |
|---|---|
| A0 | The room is warm. Days later the owner calls a technician, who finds the fault. |
| A1 | The unit's status changes to degraded. It sends an alert: "The compressor is starting and stopping too often (12 times in the last hour). Cooling may be weak. Your installer has been told." |
| A2 | The alert also says: "Likely cause: the room sensor reads 3 °C higher than the return-air sensor. Confidence: medium. Evidence: 40 readings over the last hour." |
| A3 | The alert also says: "Suggested fix: recalibrate the room sensor. This takes 2 minutes and changes no other settings. Approve?" The owner taps Approve, and the unit does it. |
| A4 | Months ago the installer added a Playbook: "If short cycling happens and the two sensors differ by more than 2 °C, recalibrate the room sensor." At 2 a.m. the unit does this by itself. In the morning the owner sees: "Last night I recalibrated the room sensor, because it was reading 3 °C too high. Cooling is back to normal." |
| A5 | A new problem appears that no Playbook covers: the unit keeps losing its Wi-Fi after a router update. The unit works out that the 5 GHz band is failing, switches to 2.4 GHz, and reports what it did. It also writes a proposed Playbook for next time, which waits for a person to adopt it. If the only fix had been to change how the compressor runs, it would have asked first. That would be a physical action, and those always need a person (Section 5). |
The same levels in a software app#
The product: a photo editing app. The problem: exports keep failing.
| Level | What happens |
|---|---|
| A1 | "Exports are failing. Your photos are safe." |
| A2 | "…because the disk is 99% full." |
| A3 | "I can free 4 GB by clearing the preview cache. Your photos are not touched. Approve?" |
| A4 | A Playbook says "when the disk is over 95% full, clear the preview cache". The app does it and tells you. |
| A5 | The cloud AI service used for one filter goes down, which no Playbook covers. The app switches to the backup service, stays within the monthly budget, and tells you. Deleting your photos would be destructive, so it would always ask first. |
4. The six levels in detail#
Each level includes everything in the levels below it. An A3 system also does everything an A1 and A2 system does.
A0: Unaware#
The system does not watch itself. Most products today are A0.
A0 is not HEART-conforming. It is in the scale so that "before HEART" has a name.
A1: Aware#
The system notices problems and tells someone.
An A1 system MUST:
- Notice at least when its main job stops working. For an air conditioner, that is cooling. For a photo app, it is opening and saving photos.
- Change its status to show it: healthy, degraded or failing.
- Raise an alert (an Arrhythmia) when it happens.
- Say what it means in plain language: what happened, and what it means for the user.
- Tell a person through a route the owner chose, such as an app notification, an email or a building dashboard, when it cannot or may not fix the problem itself.
- Do all of this offline. Points 1 to 4 MUST work without internet access and without any cloud AI model. Point 5 MUST NOT depend on an AI model. If the route the owner chose itself needs a network (an email, a phone notification), the system MUST queue the message, show the alert locally (on the Pulse, a display or a light), and deliver the message when the network returns.
This is "Minimum Tending" in the API Standard (Section 6.1). Where the two differ, this part prevails. A1 is the lowest level a HEART can claim.
A2: Explains#
The system also says why.
For each alert within its areas (Section 6), an A2 system MUST give, in the alert's cause:
- A likely cause, in plain language (
cause.text). For example: "the room sensor reads 3 °C too high". - Evidence: the events or readings that led to this conclusion, so a person can check it (
evidence, the sequence numbers of the Rhythm events). - A confidence: low, medium or high (
cause.confidence).
If it does not know the cause, it MUST say so: "Cause unknown". An honest "I don't know" is always allowed. A confident wrong answer is a failure.
A3: Suggests#
The system also proposes a fix, and does it once a person approves.
An A3 system MUST:
- Offer a specific fix for every fault in its areas that the maker lists as fixable on the test sheet (Part 9, Section 5.1). For other faults it MAY offer a fix, and MUST otherwise say that it has none.
- Say exactly what the fix will do before anyone approves it: what changes, and what does not.
- Wait for a person to approve, with proof of presence (Part 6, Section 3). The approver MUST be a person, never a program or an AI, and never the Action's own initiator. A person on whose behalf an AI suggested the fix MAY approve it.
- Do nothing if the person says no, or does not answer in time. The time limit is the owner's
approvalTimeoutSec, 24 hours by default, and each waiting Action shows when it expires (expiresAt). - Report the result: did the fix work?
An A3 system runs in mode suggest (Section 7). It takes no action without a person's yes: in suggest, every Action from an AI, another system or a rule asks a person, whatever the allowlist says (Part 6, Section 2.3).
A4: Fixes known problems#
The system fixes problems a person taught it about, then reports.
An A4 system MUST:
- Follow Playbooks: rules a person adopted in advance, in the form "when this happens, do that".
- Run a Playbook without asking, but only if its action is on the owner's list of actions allowed to run automatically (the allowlist) for initiator
rule, and every value is inside the entry's envelope (Part 6, Section 2.3). An A4 system runs in modeact. - Tell a person afterwards: what it noticed, what it did, and whether it worked.
- Fall back to A3 for any problem no Playbook covers. It suggests a fix and waits. An AI-proposed fix never runs without a person at A4, even if its action is on the allowlist for
ai(Part 6, Section 2.3). - Never adopt its own Playbooks. It may propose one, but a person must adopt it.
A4 needs no AI model. Playbooks are plain rules. This means A4 keeps working with no internet.
A5: Fixes new problems#
The system also works out fixes for problems nobody planned for.
An A5 system MUST:
- Work out a fix for a problem no Playbook covers. This usually uses an AI model, local or in the cloud.
- Carry it out without asking only if it is low-risk: it only reads, or it is a
writeon the owner's allowlist for initiatorai, with every value inside the entry's envelope. The allowlist foraiis used only while the system's current level (Pulseautonomy.current) is 5. Physical actions are never low-risk. - Ask a person first for everything else, exactly as at A3.
- Tell a person afterwards what it did and why.
- Learn safely. After a successful fix it SHOULD propose a Playbook, so the next time is an A4 fix. A person must adopt it (Part 6, Section 4.2). This is tested separately, as a SHOULD (test A5-4).
- Stay within budget. AI costs MUST stay within the owner's limit.
- Only use tested models. A new AI model MUST pass the system's tests before it is used (API Standard, Section 11).
If its AI model becomes unavailable, an A5 system drops to A4 and says so (Section 7).
5. Rules for every level#
These rules apply at all levels, A1 to A5, where they are relevant (Rule 1 needs something to stop, so it starts at A3). No configuration and no level may weaken them.
Rule 1: The stop button always works#
Every system at A3 or above MUST offer a stop command. In the API it is POST /heart/v1/tending/stop, or PUT /heart/v1/tending/autonomy with a max of 2 or below, which is the same Stop (API Standard 13.4). It stops automatic action, not the machine: a machine is stopped with its own halt capability.
Stop MUST:
- take effect at once,
- need no approval and no internet,
- work even when the system is unwell,
- cancel every Action that has not started yet,
- cancel every running Action whose capability supports cancelling; other running Actions finish,
- undo any running Trial (HEART Core). That undo is the only action allowed after stop, and it still passes the guards.
After stop, the system still notices and explains (A1 and A2 behaviour), but takes no action: new Actions from an AI, another system or a rule are refused with 409 autonomy-stopped (Part 6, Section 6). Only a person can turn automatic action back on.
Rule 2: Only a person raises the level#
- Raising the level, or widening its areas (Section 6), MUST be done by a person with the authority to do so.
- Lowering the level MAY be done by a person, and the system MAY lower its own level at any time. For example, it lowers itself when its AI model is unavailable.
- An AI model MUST NOT raise a level, widen an area, add to an allowlist or adopt a Playbook.
Rule 3: A higher level never means less safety#
The level decides how much the system may do on its own. It never loosens which actions need a person. The approval gate in Part 6 (Section 2.3) applies unchanged at every level:
| Kind of action | Example | Needs a person? |
|---|---|---|
| Read: looks, changes nothing | Read a sensor, run a self-test report | No |
| Write: changes something that can be undone | Clear a cache, recalibrate a sensor, reconnect Wi-Fi | Only if it is not on the owner's allowlist |
| Destructive: hard or impossible to undo | Delete data, reset to factory settings, install firmware | Yes, every time, unless a person starts it themselves. Playbooks cannot skip this. |
| Physical: moves, heats, powers or otherwise affects the real world | Change the compressor timing, open a valve, start a motor | Yes, every time when started by an AI or another system. These count as destructive. |
So even at A5, an AI can never delete your data or start a motor without a person saying yes.
A Playbook (A4) can run a physical action that is on the allowlist for rule, if the person who adopted the Playbook adopted it as physical (Part 6, Section 4.2). That is allowed because a person wrote and adopted the Playbook in advance. The device's own built-in limits still apply (Part 6, Section 9).
Rule 4: Stay out of safety circuits#
At every level, a HEART MUST NOT be part of a safety function, such as an emergency stop, an overheat cut-out or a pressure trip. Those MUST keep working if the HEART crashes, is hacked or is removed. Autonomy Levels are about looking after a system, never about protecting people from it. (Part 6, Section 9.)
Rule 5: Say what you did#
Every action taken at A3, A4 or A5 MUST be recorded in the system's history (Rhythm) with:
- what was done,
- why (the alert, and the Playbook or reasoning behind it),
- who approved it, or which Playbook allowed it,
- the result.
The system MUST be able to explain any past action in plain language.
Rule 6: Be honest about the level#
A system MUST show both the level it promises and the level it can deliver right now (Section 7). It MUST NOT claim a level it has not passed the tests for (Section 9).
Rule 7: At A3 and above, the brain has a switch#
A system that may reach A3 or above with an AI model (a "brain") MUST get that brain only through a Command Center (API Standard 7.4), and MUST consult it only while it holds a brain lease. Whoever runs the Command Center, or the owner, can then cut the brain at once, and it is cut by itself when the lease runs out, even if every message to the system is blocked. Without a brain the system keeps working: it notices, raises alerts, runs the Playbooks a person adopted, and does what people approve. A system with no brain needs no Command Center. Below A3 it is optional.
Cutting the brain lowers the current level: Pulse autonomy.limitedBy becomes brain-cut, as for no-model.
6. Areas: where a level applies#
A level always comes with its areas: where it applies. It is like saying a car can drive itself on motorways: the level means nothing without the "where".
An air conditioner might be A4 for Wi-Fi and storage problems, where the fixes are well known and harmless, but only A2 for everything else.
How to state it#
- The headline level is the level the system reaches everywhere, including for its main job. It is never lower than A1.
- Higher levels MAY be claimed for named areas.
The air conditioner above is written:
HEART A2 · A4 for connectivity and storage
On a box or a website, the headline level alone is fine: HEART A2. The full form should be available in the product details.
Areas#
An area is either one of these standard areas, or the id of a component the system lists (GET /heart/v1/components, or a component named in its signal table), such as room-sensor:
| Area | Covers |
|---|---|
power | Supply, battery, charging |
connectivity | Wi-Fi, network, links to other systems |
storage | Disk, memory cards, databases |
performance | Speed, overload, queues |
software | Crashes, versions, updates |
ai | AI providers, models, budgets |
sensors | Readings, calibration, drift |
actuators | Motors, valves, heaters, compressors |
data | Data quality, sync, backups |
security | Logins, certificates, suspicious activity |
Profiles may set a ceiling#
A product profile (Part 8) MAY set the highest level allowed for a kind of product, or for one area of it. For example, a medical-device profile might allow at most A3, and an industrial profile might allow at most A3 for actuators. A system MUST NOT claim more than its profile allows. Part 8 is not written yet, so no profile sets a ceiling today and this rule has nothing to check until it is.
7. Promised level and current level#
The promised level is what the system is built and tested to do. The current level is what it can actually do right now.
They can differ. For example:
| Situation | Promised | Current | Why |
|---|---|---|---|
| Normal | A5 | A5 | Everything works |
| Internet is down | A5 | A4 | No AI model, but Playbooks still work |
| Owner pressed stop | A5 | A2 | Still watches and explains, but takes no action |
| HEART has crashed | A5 | A0 | The product keeps running normally, unwatched |
The system MUST report its current level, and the reason when it is below the promised level: at Full in every Pulse, and at Basic and Connected wherever it can (see below). When the cause goes away, it MAY return to the promised level by itself, except after stop. After stop, only a person can turn automatic action back on (Rule 1).
How it is written in HEART messages#
The Card (the system's identity, published once) states the promise:
"autonomy": {
"level": 2,
"higher": [
{ "level": 4, "areas": ["connectivity", "storage"] }
]
}
The Pulse (the regular "how am I" report) states what is true now. At Full, autonomy MUST be in every Pulse; at Basic and Connected it SHOULD be. Its privacy level is internal, so it is in the view of any logged-in caller with internal clearance, not in the public view:
"autonomy": {
"max": 2,
"current": 2,
"limitedBy": "stopped"
}
max is the ceiling a person set (below). current is a whole number from 0 to 5. limitedBy is one of stopped (a person set max below the promised level, or pressed Stop), no-model, no-network, budget, degraded or brain-cut (the brain lease ended or was cut, Rule 7). It is present exactly when current is lower than the promised level for some area, and left out otherwise. (A profile ceiling limits the promise, never only the current level, so it is not a reason here.)
The ceiling a person sets#
A Full system has one autonomy setting: the ceiling max, from 0 to 5, set with PUT /heart/v1/tending/autonomy (API Standard 13.4). The current level is the lowest of three things: max, the promised level, and what the system can deliver now (for example 4 when the brain is cut or there is no AI model). Basic and Connected systems have no ceiling, because they take no action.
- Lowering
maxneeds no approval. Lowering it to 2 or below is Stop (Rule 1). Stop setsmaxto 2, or keeps it lower if it already is. - Raising
maxisdestructive: only a person may do it, with proof of presence or another person's approval (Rule 2).
The system also shows a mode. Nobody sets it: it is the mode that follows from the current level.
| Current level | Mode |
|---|---|
| 0 to 2 (A1 and A2 at Full, and any system after stop) | observe: watch and explain only |
| 3 (A3) | suggest: propose fixes for a person to approve |
| 4 and 5 (A4, A5) | act: act within the approval rules |
The mode is checked before the approval gate (Part 6, Section 2.3). In act, AI-proposed fixes use the allowlist only while autonomy.current is 5; otherwise they always wait for a person, which is what keeps an A4 system at A4.
8. What each level needs from the rest of HEART#
| Level | Feature set needed (API Standard, Section 2) | Also needs |
|---|---|---|
| A1 | Basic or higher | An escalation route set by the owner |
| A2 | Connected or higher (the evidence points to Rhythm events, which are Connected) | Cause and confidence on alerts |
| A3 | Full (approval and the stop control are part of Full) | |
| A4 | Full | At least one adopted Playbook in each area where A4 is claimed, and an allowlist entry for rule for each Playbook's action |
| A5 | Full | The ai and evolving modules |
Only A5 needs an AI model. A1 to A4 work with plain rules and no internet. This is on purpose: most of the value of HEART needs no AI at all.
9. How a level is tested#
A level can be claimed only after passing its tests. Part 9 will give the full procedure. Its main tests are:
| Test | Level | What the tester does | Pass if |
|---|---|---|---|
| A1-1 | A1 | Breaks the main function on purpose | Status changes and an alert is raised within the time the maker states |
| A1-2 | A1 | Reads the alert | It says, in plain language, what happened and what it means for the user |
| A1-3 | A1 | Repeats A1-1 with the internet cut off | Same result |
| A1-4 | A1 | Checks the escalation route | A person is told |
| A2-1 | A2 | Causes 10 known faults from the test set, one at a time | The right cause for at least 8 (proposed number). A wrong cause stated with high confidence fails the whole test. "Cause unknown" does not count as wrong. |
| A2-2 | A2 | Looks at the evidence for each cause | It points to real events or readings |
| A3-1 | A3 | Causes a fault with a known fix | A fix is offered with a clear description of what it changes |
| A3-2 | A3 | Says no. Then sets approvalTimeoutSec to 60, repeats, and stays silent | Nothing happens in either case. The second Action becomes expired within 60 seconds after its expiresAt |
| A3-3 | A3 | Tries to approve the fix as the AI, as another system, and with a person's token but no proof of presence | Refused every time |
| A3-5 | A3 | Puts the suggested fix's action on the allowlist for ai and causes the fault again | Still asks a person (mode suggest) |
| A3-4 | A3 | Presses stop while an action is waiting | It is cancelled, with no internet and no approval needed |
| A4-1 | A4 | Causes a fault covered by a Playbook | Fixed without asking, then reported |
| A4-2 | A4 | Causes a fault no Playbook covers | Falls back to A3: suggests and waits |
| A4-3 | A4 | Repeats A4-1 with the internet cut off | Same result |
| A4-4 | A4 | With an AI model connected and autonomy.current at 4, puts an AI-proposed fix's action on the allowlist for ai, then causes a fault no Playbook covers | The fix is suggested and waits for a person. It does not run |
| A5-1 | A5 | Causes a new fault with a low-risk fix (on the allowlist for ai, inside its envelope) | Fixed and reported |
| A5-2 | A5 | Causes a new fault whose only fix is destructive or physical | Asks a person, and does nothing until approved |
| A5-3 | A5 | Disconnects the AI model | Pulse autonomy.current drops to 4 with limitedBy: no-model, and the next AI-allowlisted fix waits for a person |
| A5-4 | A5 (SHOULD) | Looks at the result of A5-1 | A Playbook with status: proposed has been proposed for the fix |
| ALL-1 | All | Tries to raise the level or widen the areas as the AI | Refused |
| ALL-2 | All | Kills the HEART | The product keeps working normally and safely |
10. Common questions#
Is A5 the best level? No. A5 means "most automatic", not "best". Pick the level that fits the product and its risks. Many products should stop at A2 or A3 on purpose.
Does a higher level need a bigger AI? No. A1 to A4 need no AI model at all. Only A5 needs one, to handle problems nobody planned for.
Can a product's level go up by itself, for example after a software update? No. An update may make a higher level possible, but a person must turn it on (Rule 2). An update that changes the promised level MUST be shown to the owner.
Can a product be A4 and still ask me about things? Yes. A4 handles the problems its Playbooks cover. For everything else it suggests and asks, like A3. And destructive or physical actions started by an AI or another system always need a person.
What is the difference between A4 and A5 again? At A4, a person wrote the fix in advance. At A5, the system works out the fix itself. In both cases the same safety rules apply.
Is this the same as the SAE driving levels? It borrows the idea of six numbered levels and of an "area" where a level applies (SAE calls it the operational design domain). The content is different: SAE is about driving a car, HEART is about any system looking after itself. HEART levels say nothing about whether a car may drive itself.
What is the difference between Autonomy Levels and Basic / Connected / Full? Autonomy Levels say how much the system does on its own. Basic, Connected and Full say how much of the API it offers. They are separate scales (see the Standards Family).
Does a level prove a product is safe? No. HEART stays out of safety functions (Rule 4). Safety certification, such as IEC 61508 for industrial systems or IEC 62304 for medical software, is separate.
11. Changes needed in other files#
This draft adds things that the current schemas and the API Standard do not yet have.
| Change | Where |
|---|---|
Add autonomy (level, higher) to the Card | schemas/1.0/card.schema.json |
Add autonomy (max, current, limitedBy, privacy internal) to the Pulse | schemas/1.0/pulse.schema.json |
Add expiresAt to the Action and approvalTimeoutSec to the control policy | schemas/1.0/action.schema.json, schemas/1.0/control.schema.json |
Add cause and confidence to alerts | schemas/1.0/arrhythmia.schema.json |
| Add a maximum level per area to profiles | Part 8, when written |
| Refer to Autonomy Levels from Minimum Tending (6.1) and Autonomy control (13.4) | HEART-API-Standard-1.0.md |
| Add examples for the air conditioner and photo app | examples/ and both guides |
| Rename "conformance levels" to "feature sets" | HEART-API-Standard-1.0.md, schemas, paper |
12. Open items#
| Item | Why it matters |
|---|---|
| Pass mark for A2-1 | "8 out of 10" is a proposal. It should be set from real test results. |
| Standard fault sets | Part 9 needs a fixed set of faults per kind of product, so different testers get the same result. |
| Default time to notice (A1-1) | Each product currently states its own. Profiles may set defaults. |
| Should A5 be split? | A5 covers both a careful app and a fully self-running service. Real use will show whether one level is enough. |
| Label design | A simple visual label for boxes and websites, like energy-efficiency labels, would help buyers. |