4 A Capability Model
1. Why the 4 A's Exist
The 4 A's provide a classification layer for deciding how much reasoning, execution freedom, and human involvement a Site capability requires.
They are not four unrelated products and they are not a strict four-step maturity ladder.
flowchart LR
A[["Assistant<br/>User-led help"]]:::model -->|"more dynamic decision freedom"| G[["Agent<br/>Goal-led action"]]:::model
G -->|"bounded independent continuation"| AU[["Autonomous<br/>Policy-bounded operation"]]:::model
W[["Automation<br/>Predefined deterministic execution"]]:::process -.->|"can support"| A
W -.->|"can be invoked by"| G
W -.->|"can be orchestrated by"| AU
classDef process fill:#EEF2F7,stroke:#475569,stroke-width:1px,color:#0B1220
classDef model fill:#EDE9FE,stroke:#6D28D9,stroke-width:1px,color:#0B1220
2. Canonical Definitions
Assistant
An Assistant primarily supports a user. It may retrieve knowledge, generate content, summarize, classify, or invoke narrowly controlled tools, but the user remains the primary driver of the interaction.
Agent
An Agent receives a goal and can dynamically select steps or tools, observe results, and continue execution until it reaches a completion condition or a control boundary.
Automation
Automation executes a predefined process. It can include conditions, schedules, events, APIs, scripts, jobs, and even model calls, but the process structure remains defined by the designer rather than dynamically planned by an agent.
Autonomous
Autonomous describes an operating mode where the platform can continue toward an objective across time with limited human intervention, including re-planning and deciding what to do next within policy, permission, cost, and safety limits.
3. Comparison
| Dimension | Assistant | Agent | Automation | Autonomous |
|---|---|---|---|---|
| Primary input | User request | Goal/task | Trigger/event/schedule | Objective/condition |
| Step selection | Mostly fixed | Dynamic | Predefined | Dynamic and continuing |
| Tool selection | Limited/configured | Dynamic within allowlist | Predefined | Dynamic within policy |
| Human involvement | High | Medium | Low | Exception-based |
| Planning | Minimal | Yes | No | Yes, repeated |
| Long-running | Optional | Optional | Common | Common |
| Deterministic | Low-medium | Low-medium | High | Low-medium |
| Approval | Usually user driven | Often | Configurable | Policy-based |
| Best runtime | Chat/direct API | Agent SDK/orchestrator | n8n/workflow/code | Agent + automation + policy loop |
4. Classification Questions
Use the following order when classifying a requirement:
- Is a human actively asking for help? If yes, start with Assistant.
- Must the system decide which steps/tools are necessary? If yes, Agent is involved.
- Is the process sequence already known? If yes, use Automation for that sequence.
- Must the capability continue operating after the initiating interaction ends? If yes, evaluate Autonomous mode.
- Can actions affect external systems? If yes, define approval, permission, rollback, and audit boundaries regardless of type.
5. Composition Pattern
A realistic Site capability may combine all four.
flowchart TD
AO[["Autonomous Asset Health Operation"]]:::model --> AG[["Agent"]]:::model
AG --> A1["Analyze telemetry and context"]:::process
AG --> A2["Determine required action"]:::process
AO --> AT[["Automation"]]:::process
AT --> T1["Create work order"]:::process
AT --> T2["Send notification"]:::process
AO --> AS[["Assistant"]]:::model
AS --> S1(["Explain decision to engineer"]):::output
AS --> S2(["Answer follow-up questions"]):::output
classDef process fill:#EEF2F7,stroke:#475569,stroke-width:1px,color:#0B1220
classDef model fill:#EDE9FE,stroke:#6D28D9,stroke-width:1px,color:#0B1220
classDef output fill:#DCFCE7,stroke:#15803D,stroke-width:1px,color:#0B1220
6. Classification Is Separate from Implementation
The same logical type can be implemented using different products.
| Logical Type | Possible Implementations |
|---|---|
| Assistant | Direct model SDK, Open WebUI, Flowise Assistant, custom Site UI |
| Agent | OpenAI Agents SDK, Microsoft 365 Agents SDK, Flowise Agentflow, custom runtime |
| Automation | n8n, code workflow, event action, scheduled job |
| Autonomous | Agent runtime + policy + scheduler/event loop + automation/tool execution |
7. Anti-Patterns
Avoid the following classifications:
- Calling a chatbot an agent only because it uses an LLM.
- Calling a scheduled workflow autonomous because it runs without a user.
- Calling an n8n workflow an agent when all steps are predefined.
- Calling an agent autonomous when it cannot continue beyond a single delegated run.
- Embedding a third-party AI UI and treating the embedded UI itself as the capability definition.
The Site registry should describe the capability, while the implementation reference describes how it is executed.