This diagram shows the full runtime flow including site-level and page-level policy checks, data gathering, action submission, navigation, and success/error handling. Use it when you need the complete picture; the main spec README has a shorter overview.
This diagram shows the full path: site and page policy checks, reading surfaces (Input AOM), data checks, action submission, navigation, and success/error handling with Output AOM.
sequenceDiagram
autonumber
actor User as User
participant Master as Master Agent
participant Agent as Worker Agent
participant Site as Site (origin)
participant Surf1 as Surface A
participant Surf2 as Surface A/B
%% --- 0. User and Master trigger the Worker Agent; send initial information ---
User->>Agent: Triggers workflow
User-->>Agent: Sends Information
User->>Master: Triggers workflow
User-->>Master: Sends Information
Master->>Agent: Triggers workflow
Master-->>Agent: Sends Information
%% --- 1. Agent fetches site policy from origin ---
Agent->>Site: GET /.well-known/aom-policy.json
Site-->>Agent: Site policy (forbidden | allowed | open)
alt Site policy = forbidden
rect rgb(255, 230, 230)
Agent->>Master: Surface forbidden (exit)
Master->>User: Surface forbidden
Agent->>User: Surface forbidden
end
else Site policy = allowed or open
rect rgb(230, 240, 255)
%% --- 2. First surface serves Input AOM; Agent reads and checks page automation_policy ---
Surf1-->>Surf1: Serves Input AOM
Agent->>Surf1: Reads Input AOM
Agent-->>Agent: Checks page automation_policy (forbidden | allowed | open)
alt Page automation_policy = forbidden
rect rgb(255, 230, 230)
Agent->>Master: Page forbidden (exit)
Master->>User: Page forbidden
Agent->>User: Page forbidden
end
else Page = allowed or open
rect rgb(232, 245, 233)
%% --- 3. Agent checks if it has enough data to proceed ---
Agent-->>Agent: Checks if it has all data
alt Has all data
rect rgb(232, 245, 233)
Note over Agent: Proceed with current data
end
else Needs more information
rect rgb(255, 248, 225)
Agent->>Master: No. Give more Information
Master->>User: No. Give more Information
User->>Master: Sends more Information
Master->>Agent: Sends more Information
Agent->>User: No. Give more Information
User->>Agent: Sends more Information
end
end
%% --- 4. Agent submits action (fills Input AOM) and performs it; site navigates to next surface ---
Agent->>Surf1: Submits action (fills Input AOM)
Agent->>Surf1: Performs Action of Input AOM
Surf1->>Surf2: Navigates to same or next surface
end
%% --- 5. Next surface serves Input AOM; Agent reads and checks page policy again ---
Note over Agent: Waits for next surface
Surf2-->>Surf2: Serves Input AOM
Agent->>Surf2: Reads Input AOM
Agent-->>Agent: Checks page automation_policy (forbidden | allowed | open)
alt Page automation_policy = forbidden
rect rgb(255, 230, 230)
Agent->>Master: Page forbidden (exit)
Master->>User: Page forbidden
Agent->>User: Page forbidden
end
else Page = allowed or open
rect rgb(240, 248, 255)
%% --- 6. Surface returns response; Success or Error; Output AOM used when informing or escalating ---
Surf2-->>Agent: Returns response
alt Success
rect rgb(232, 245, 233)
Agent-->>Agent: Converts Input AOM to Output AOM
Agent->>User: Informs Output AOM
Agent->>Master: Informs Output AOM
Master->>User: Informs Output AOM
end
else Error
rect rgb(255, 245, 238)
Agent-->>Agent: Check Error
alt Can Fix
rect rgb(232, 245, 233)
Agent->>Surf2: Retry (e.g. read again / resubmit) with Input AOM
end
else Can't Fix (Converts to Output AOM)
rect rgb(255, 230, 230)
Agent->>Master: No. Give more Information with Output AOM
Master->>User: No. Give more Information with Output AOM
Agent->>User: No. Give more Information with Output AOM
end
end
end
end
end
end
end
end
end
Note: After “Can’t fix” or “Needs more information”, the user may send new information; the flow can then re-enter (e.g. Agent reads the surface again or continues from the same page). That loop is implied and not drawn so the diagram stays focused on how Input AOM (surfaces) and Output AOM (agent responses and escalations) are used.
| Section | What it shows |
|---|---|
| 0 | User and Master Agent trigger the Worker Agent and send initial information. |
| 1 | Agent fetches site policy (/.well-known/aom-policy.json). If forbidden, Agent exits and informs Master and User. If allowed or open, flow continues. |
| 2 | First surface (Surface A) serves Input AOM; Agent reads it and checks the page’s automation_policy. If the page is forbidden, Agent exits. If allowed or open, flow continues. |
| 3 | Agent checks if it has all data. If yes, it proceeds. If no, it requests more information from Master/User until it can proceed. |
| 4 | Agent submits the action (fills Input AOM) and performs the action; the site navigates to the same or next surface (e.g. Surface A/B). |
| 5 | Next surface serves Input AOM; Agent reads it and checks page policy again. If forbidden, exit. If allowed or open, surface returns a response. |
| 6 | On Success: Agent converts Input AOM to Output AOM and informs User and Master. On Error: Agent can fix (retry with Input AOM) or can’t fix (converts to Output AOM and asks Master/User for more information with Output AOM). |
Note: After “Can’t fix” (or “Needs more information” in section 3), the user may send new information; the flow can then re-enter (e.g. Agent reads the surface again or continues from the same page). That loop is implied and not drawn here so the diagram stays focused on how Input AOM (surfaces) and Output AOM (agent responses and escalations) are used.
Back to AOM Specification.