Abstract
FullAgenticStack is a software architecture paradigm in which artificial intelligence agents are not auxiliary components attached to an otherwise traditional application.
Instead, agency becomes a first-class architectural primitive distributed across the complete software stack.
The concept emerged in 2025 from practical experimentation with agents operating simultaneously in the frontend, backend, and data layer. The realization behind the term was simple:
If agents are responsible for interacting with the user, executing business logic, coordinating infrastructure, manipulating data, and producing system behavior, then the architecture is no longer merely “AI-enabled”. The entire stack has become agentic.
A FullAgenticStack system is therefore not defined merely by the existence of an LLM, a chatbot, or an autonomous agent.
It is defined by the fact that the system itself is exposed, interpreted, orchestrated, executed, observed, and evolved through agents.
This document formalizes the architectural requirements of FullAgenticStack and proposes different levels of implementation, from the minimal compliant architecture to a fully distributed, multimodal, polyglot and Zero-Trust agentic system.
1. Motivation
Traditional software architecture commonly separates the system into layers such as:
Frontend
↓
API
↓
Application
↓
Domain
↓
Database
Artificial intelligence is usually introduced as another isolated component:
Frontend
↓
Backend
↓
AI API
↓
Database
In this architecture, AI is a feature.
The software itself is still structured around forms, endpoints, CRUD operations, controllers and screens.
FullAgenticStack changes this relationship.
Instead of treating artificial intelligence as another service, the architecture treats agents as computational actors distributed across the stack.
A FullAgenticStack system therefore approaches the architecture as:
Human Intent
↓
Natural Language Interface
↓
Intent Classification
↓
Agentic Orchestration
↓
Agents / Actors / Actions
↓
Data / Infrastructure / Services
↓
Evidence / Events / Observability
The primary abstraction is no longer:
endpoint → controller → service
but:
intent → behavior → actions
2. Definition
FullAgenticStack can be defined as:
A software architecture paradigm in which agency is a first-class computational primitive across the entire software stack, allowing humans and agents to interact with the system through natural-language intents that are classified, orchestrated and executed by specialized agents responsible for interfaces, application behavior, domain logic, data, infrastructure, security, observability and recovery.
A system cannot be considered FullAgenticStack merely because it includes an AI assistant.
The system must make its actual capabilities accessible to the agentic architecture.
This distinction is fundamental.
The following architecture:
Traditional Application
+
Chatbot
is not FullAgenticStack.
The chatbot is only another interface.
A FullAgenticStack system instead follows:
Intent
↓
Agentic Runtime
↓
System Capability
The agentic architecture is therefore part of the execution model itself.
3. Core Principle: Everything Is an Intent
The most important architectural rule of FullAgenticStack is:
Every functionality available in the system MUST be expressible and invocable as a natural-language request.
If the system can perform an operation through a graphical interface, API, button, command, workflow or automation, the same capability must also be reachable through intent.
For example, if a financial system supports:
Create customer
Generate invoice
Cancel invoice
Analyze cash flow
Create Pix payment
Search transaction
Reconcile account
Generate report
the system must accept requests such as:
"Create a customer named João Silva."
"Generate an invoice for R$ 1,500 for ACME Ltd."
"Show me every unpaid invoice from this month."
"Reconcile today's bank transactions."
"Generate the cash-flow report for the last 90 days."
The natural-language interface is therefore not a convenience layer.
It is part of the architectural contract.
4. Mandatory Natural-Language Route
Every FullAgenticStack implementation MUST expose at least one entry point capable of receiving natural-language requests.
The canonical minimal interface is:
POST /intent
or an equivalent semantic route.
For example:
POST /intent
Content-Type: application/json
{
"input": "Show me all customers with overdue invoices"
}
The runtime is responsible for transforming the request into an executable flow.
Conceptually:
POST /intent
↓
Input Normalization
↓
Intent Classification
↓
Context Resolution
↓
Authorization
↓
Behavior Resolution
↓
Agent Selection
↓
Action Orchestration
↓
Execution
↓
Evidence
↓
Response
The caller does not need to know:
which service exists
which microservice owns the operation
which database contains the information
which agent performs the task
which programming language implements the action
which internal endpoint must be called
The caller declares the intent.
The runtime resolves execution.
5. Multimodal Input Is Mandatory
A FullAgenticStack interface MUST NOT be limited to typed text.
The intent ingress must support at least:
Text
Audio
Image
These modalities represent different forms of the same fundamental entity:
Human Intent
For example:
TEXT
"Register this purchase."
AUDIO
"I bought 20 boxes of product X from supplier Y."
IMAGE
[photo of invoice]
All of them must converge into the same agentic pipeline:
Text ────┐
Audio ───┼──> Multimodal Intake
Image ───┘
↓
Semantic Normalization
↓
Intent Classification
↓
Execution
Additional modalities MAY be supported:
Video
Documents
Sensor data
Location
Structured events
Device input
but text, audio and image form the minimum multimodal interaction model.
6. The Single Human Route Architecture
One valid FullAgenticStack architecture is to expose only one public application route:
POST /intent
Humans interact exclusively with that endpoint.
Internally, the system performs all routing and orchestration.
For example:
Human
↓
POST /intent
↓
GatewayAgent
↓
Intent Resolver
↓
┌─────────────────────────────┐
│ FinancialAgent │
│ CustomerAgent │
│ InventoryAgent │
│ SalesAgent │
│ SupportAgent │
│ ReportingAgent │
└─────────────────────────────┘
Internal agents may communicate using:
events
messages
actors
queues
streams
RPC
A2A
MCP
internal APIs
but those mechanisms do not need to be exposed to humans.
This creates an architecture in which the human-facing API becomes effectively:
POST /
semantically meaning:
"Ask the system to do something."
7. Humans Should Not Need to Understand the Internal API
Traditional APIs require the caller to understand implementation details.
For example:
POST /customers
POST /invoices
GET /reports
POST /payments
PATCH /orders/:id
FullAgenticStack reverses this relationship.
The user expresses the goal:
"Create a customer."
"Cancel invoice 882."
"Generate a report."
"Pay this invoice using Pix."
The agentic runtime determines which capability should execute the request.
Therefore:
Traditional API
Human
↓
understands API
↓
chooses endpoint
↓
formats payload
becomes:
FullAgenticStack
Human
↓
expresses intent
↓
runtime understands architecture
↓
runtime orchestrates execution
Knowledge of the system belongs to the runtime, not the user.
8. Intent as the Universal System Interface
This leads to one of the central FullAgenticStack principles:
Intent is the universal interface between humans, agents and software capabilities.
Instead of designing a system around hundreds of public commands:
create_customer
delete_customer
create_invoice
send_invoice
cancel_invoice
create_product
update_stock
find_order
the public interface can remain stable:
submit(intent)
while the internal capability catalog evolves independently.
This reduces coupling between users and implementation details.
It also enables the same capability to be invoked through:
Web
Mobile
WhatsApp
Voice
Terminal
Wearables
Automation
Another Agent
without redefining the domain operation.
9. WhatsApp-First as a FullAgenticStack Interface
One of the first practical contexts from which FullAgenticStack emerged was WhatsApp-First software.
In a WhatsApp-First architecture:
WhatsApp message
↓
Intent
↓
Agentic Runtime
↓
Behavior
↓
Actions
↓
Response
WhatsApp becomes more than a notification channel.
It becomes a software interface.
Commands such as:
"Show today's sales."
"Create an invoice for Maria."
"How much stock do we have?"
"Pay this bill."
"Send yesterday's report."
replace large portions of traditional navigation.
However, FullAgenticStack is broader than WhatsApp-First.
WhatsApp-First is one possible human interface for a FullAgenticStack architecture.
10. FullAgenticStack Maturity Levels
FullAgenticStack implementations can be understood through increasing levels of architectural integration.
Level 0 — AI-Enhanced
Traditional Software
+
LLM Feature
Example:
application + chatbot
This is not FullAgenticStack.
Level 1 — Agentic Interface
Natural language becomes capable of invoking real system functionality.
Human
↓
Natural Language
↓
Agent
↓
Traditional Services
At this stage, the backend may still be conventional.
Level 2 — Agentic Orchestration
The application introduces specialized agents.
Intent
↓
Orchestrator
↓
Specialized Agents
↓
Actions
For example:
CustomerAgent
InventoryAgent
PaymentAgent
ReportAgent
Level 3 — FullAgenticStack
Agents exist across the major software layers.
Interface Agents
Application Agents
Domain Agents
Data Agents
Infrastructure Agents
Security Agents
Observability Agents
Agency becomes distributed throughout the stack.
Level 4 — FullAgenticStack Native
The system itself is designed around agentic primitives.
Instead of adapting an existing architecture to agents, the system is constructed from:
Intent
Agent
Actor
Behavior
Action
Event
Policy
Proof
Supervisor
The runtime owns orchestration.
The application becomes increasingly declarative.
Level 5 — FullAgenticStack Extreme
The highest implementation level combines:
Multimodal Intent
+
A2UI
+
Polyglot Agents
+
Agentic Data Layer
+
Event-Driven Architecture
+
Continuous Observability
+
Self-Healing
+
eXtreme Zero Trust
At this level, the architecture is agentic from interface to infrastructure.
11. A2UI as the Highest-Level Frontend Model
The most advanced FullAgenticStack frontend does not merely contain a chat box.
Instead, agents may dynamically produce interface structures through A2UI — Agent-to-User Interface mechanisms.
Conceptually:
User Intent
↓
UIAgent
↓
Context
↓
A2UI description
↓
Rendered Interface
The interface becomes adaptive.
Instead of creating every screen beforehand:
CustomerScreen
InvoiceScreen
PaymentScreen
ReportScreen
the application can generate the appropriate interaction structure for the current intent.
The frontend therefore becomes another projection of agentic state.
12. Polyglot Agents
FullAgenticStack does not require every agent to use the same programming language.
In a mature implementation, each action may be implemented using the language most appropriate for its constraints.
For example:
GatewayAgent → TypeScript
FinancialAgent → Rust
EdgeAgent → Zig
ReasoningAgent → Prolog
DataScienceAgent → Python
CompilerAgent → Haskell
The runtime should treat language choice as an implementation concern.
The semantic contract remains:
Intent
↓
Behavior
↓
Action
not:
Intent
↓
Programming Language
This creates what can be called a polyglot agentic architecture.
13. Action-Level Language Optimization
The concept may be extended further.
An agent does not necessarily need to have a single implementation language.
Different Actions belonging to the same Agent MAY be implemented differently.
For example:
PaymentAgent
│
├── ValidatePayment → Rust
├── DetectFraud → Python
├── SignTransaction → Zig
├── EvaluatePolicy → Prolog
└── GenerateReceipt → TypeScript
The architecture optimizes implementation per Action rather than per service.
This enables:
performance optimization
memory optimization
formal verification
domain-specific programming
hardware proximity
security isolation
without changing the semantic interface exposed to the system.
14. Agentic Data Architecture
A FullAgenticStack system should not treat the database as a passive storage component.
Data access itself becomes agentic.
At the highest architectural level, the system should expose specialized Agents responsible for distinct data responsibilities.
The minimum recommended set is:
WriteAgent
ReadAgent
CacheAgent
VectorAgent
GraphAgent
EventAgent
ObservabilityAgent
Each Agent owns a different semantic view of the system.
15. Different Databases Are Optional
A FullAgenticStack data architecture does NOT require multiple database technologies.
Both approaches are valid.
Polyglot persistence
WriteAgent → PostgreSQL
ReadAgent → MongoDB
CacheAgent → Redis
VectorAgent → Qdrant
GraphAgent → Neo4j
EventAgent → EventStoreDB
ObservabilityAgent → ClickHouse
or:
Single database with specialized projections
PostgreSQL
│
├── Write Projection → WriteAgent
├── Read Projection → ReadAgent
├── Cache Projection → CacheAgent
├── Vector Projection → VectorAgent
├── Graph Projection → GraphAgent
├── Event Projection → EventAgent
└── Observability Projection→ ObservabilityAgent
The important principle is not the number of database engines.
The important principle is:
Each semantic data responsibility must have an explicit agent responsible for operating and maintaining that view.
16. Minimum Data Views
A mature FullAgenticStack data layer should expose at least seven semantic responsibilities.
Write
Canonical transactional state.
WriteAgent
Responsibilities may include:
command persistence
transaction integrity
schema validation
idempotency
Read
Optimized query representation.
ReadAgent
Responsibilities:
queries
projections
denormalization
read models
Cache
Low-latency temporary or derived data.
CacheAgent
Responsibilities:
cache population
expiration
invalidation
warming
Vector
Semantic retrieval.
VectorAgent
Responsibilities:
embeddings
semantic search
similarity
intent retrieval
Graph
Relationships and causality.
GraphAgent
Responsibilities:
relationships
dependencies
causal links
topologies
entity traversal
Events
Historical system truth.
EventAgent
Responsibilities:
event streams
event sourcing
replay
temporal reconstruction
Observability
Evidence of system execution.
ObservabilityAgent
Responsibilities:
logs
metrics
traces
execution evidence
performance history
17. Agent Per Projection
A central rule of a mature FullAgenticStack data architecture is:
Every independent data projection SHOULD have an agent responsible for that projection.
For example:
CustomerProjection
↓
CustomerProjectionAgent
or:
SalesDashboardProjection
↓
SalesDashboardAgent
The Agent may be responsible for:
creation
maintenance
rebuilding
validation
optimization
healing
schema evolution
This transforms materialized views from passive database objects into supervised computational capabilities.
18. Event-Driven by Default
Agentic architectures naturally benefit from event-driven communication.
An Action should produce evidence of what happened.
For example:
Financial.CreateInvoice.Ok
instead of silently mutating state.
A typical flow becomes:
Intent
↓
Action
↓
State Change
↓
Event
↓
Other Agents
Other agents can then react independently.
InvoiceCreated
↓
├── NotificationAgent
├── AccountingAgent
├── ProjectionAgent
├── AnalyticsAgent
└── ObservabilityAgent
This reduces direct coupling among agents.
19. FullAgenticStack Is Not “LLM Everywhere”
FullAgenticStack must not be interpreted as:
every operation calls an LLM
That would create unnecessary:
latency
cost
non-determinism
security exposure
failure modes
Agents are broader than LLMs.
An Agent may contain:
deterministic code
rules
finite-state machines
machine learning
LLMs
formal logic
constraint solvers
database operations
cryptographic operations
For example:
Intent classification → LLM
Permission validation → deterministic policy
Signature verification → cryptography
Price calculation → deterministic code
Fraud detection → ML model
Legal reasoning → Prolog
The architecture should choose the appropriate computational mechanism for every Action.
20. Agentic Does Not Mean Non-Deterministic
Critical operations must remain predictable.
For example:
authentication
authorization
payments
identity
cryptography
accounting
auditing
compliance
should not depend exclusively on probabilistic reasoning.
A mature FullAgenticStack architecture separates:
Interpretation
from:
Authority
An LLM may interpret:
"Pay João R$500"
but deterministic controls must validate:
identity
authorization
recipient
value
policy
balance
signature
before execution.
21. Agentic Runtime
At higher maturity levels, the architecture requires an Agentic Runtime responsible for coordinating the system.
A possible pipeline is:
Intake
↓
Resolver
↓
Binding
↓
Healing
↓
Proof
↓
Governor
↓
Orchestration
↓
Acceptance
↓
Persistence
The application itself progressively becomes declarative.
Instead of application code explicitly controlling execution:
Controller
↓
Service
↓
Repository
the system declares:
Intent
Behavior
Actions
Policies
Constraints
and the runtime performs execution.
22. Declarative Applications
At the highest level, a FullAgenticStack application may contain very little orchestration code.
For example:
intent: Financial.CreateInvoice
behavior:
- Customer.Resolve
- Invoice.Validate
- Invoice.Calculate
- Authorization.Verify
- Invoice.Persist
- Invoice.Publish
The runtime interprets this declaration.
The application defines what must happen.
The runtime determines how it happens safely.
23. Agents Must Be Observable
An autonomous system without evidence is not operationally trustworthy.
Every relevant action should produce:
logs
metrics
traces
events
proofs
correlation identifiers
A complete execution should be reconstructable.
For example:
Intent received
↓
Intent classified
↓
Agent selected
↓
Behavior selected
↓
Action started
↓
Policy verified
↓
Action executed
↓
State persisted
↓
Event emitted
↓
Action accepted
Observability therefore becomes part of the runtime rather than application-specific instrumentation.
24. Self-Healing
Because agents may operate autonomously, failure recovery must also be architectural.
An Action should not simply return an exception to the user whenever recovery remains possible.
The system may instead execute:
Action
↓
Failure
↓
Supervisor
↓
Diagnosis
↓
Healing
↓
Retry
Possible recovery mechanisms include:
retry
fallback
alternative agent
configuration correction
dependency replacement
human escalation
This produces systems designed for recovery rather than merely failure reporting.
25. Human-in-the-Loop
FullAgenticStack does not imply that agents possess unlimited authority.
Humans must remain part of the authority model when appropriate.
For example:
Agent proposes payment
↓
Human approves
↓
Runtime executes
or:
Human delegates authority
↓
Agent operates inside policy
↓
Runtime verifies limits
The architecture therefore supports both:
Human-in-the-Loop
and:
Human-on-the-Loop
depending on delegated authority.
26. eXtreme Zero Trust
At the highest FullAgenticStack maturity level, every interaction between:
Human
Agent
Runtime
Service
Database
Device
Infrastructure
must be treated as untrusted until proven otherwise.
This can be described as eXtreme Zero Trust.
The principle is:
Never trust.
Always authenticate.
Always authorize.
Always prove.
Always observe.
Identity must be cryptographically verifiable.
27. Passwords Are Prohibited
A FullAgenticStack Extreme implementation MUST NOT depend on passwords.
Passwords introduce:
shared secrets
phishing risk
credential reuse
password databases
reset workflows
human memory dependency
Authentication should instead use mechanisms such as:
Passkeys / WebAuthn
Cryptographic keys
Device-bound credentials
Mutual authentication
Signed challenges
Proof-of-possession
For agents:
Ed25519 identities
mTLS
DPoP
hardware-backed keys
short-lived credentials
may be used depending on the environment.
28. Email Must Not Be an Identity Primitive
The highest FullAgenticStack security model also avoids using email as the primary identity mechanism.
Email addresses are communication identifiers.
They should not be treated as foundational security credentials.
Identity should instead originate from cryptographically verifiable credentials or explicitly trusted identity providers.
For human interaction, possible channels include:
Passkeys
WhatsApp
Device identity
Biometrics
Cryptographic credentials
Email MAY exist as a communication channel, but should not be required as the system's primary authentication identity.
29. Passwordless by Construction
This creates another architectural property:
A mature FullAgenticStack system should be passwordless by construction.
The architecture should not initially support passwords and later attempt to remove them.
Password authentication should simply not exist in the system design.
This eliminates entire classes of:
credential leaks
password resets
password reuse
weak-password policies
credential stuffing
30. FullAgenticStack Extreme Reference Architecture
A high-level implementation may therefore look like:
HUMAN
│
┌──────────┼──────────┐
│ │ │
Text Audio Image
│ │ │
└──────────┼──────────┘
│
Multimodal Intake
│
POST /intent
│
GatewayAgent
│
Intent Resolution
│
Agentic Runtime
│
┌─────────────┼─────────────┐
│ │ │
UI Agents Domain Agents Infra Agents
│ │ │
A2UI Behaviors Runtime
│
Actions
│
┌──────────────┼───────────────┐
│ │ │
Services Events Data
│
┌─────────────────────┼─────────────────────┐
│ │ │
WriteAgent ReadAgent CacheAgent
│ │ │
VectorAgent GraphAgent EventAgent
│
ObservabilityAgent
│
Evidence
│
Human / Agent
31. FullAgenticStack Architectural Invariants
A system claiming FullAgenticStack compatibility SHOULD satisfy the following invariants.
FAS-INV-001 — Intent Accessibility
Every user-facing system capability must be invocable through natural language.
FAS-INV-002 — Universal Intent Ingress
At least one natural-language POST route must exist.
FAS-INV-003 — Multimodal Input
The architecture must accept text, audio and image input.
FAS-INV-004 — Intent Classification
Natural-language requests must be classified into executable system intents.
FAS-INV-005 — Runtime Orchestration
The caller must not be required to know which internal agent performs the operation.
FAS-INV-006 — Agent Specialization
Independent system responsibilities should be assigned to specialized agents.
FAS-INV-007 — Data Agency
Major data responsibilities must expose explicit agent ownership.
At minimum:
write
read
cache
vector
graph
events
observability
FAS-INV-008 — Observable Execution
Every relevant execution path must produce machine-readable evidence.
FAS-INV-009 — Deterministic Authority
Critical authorization and security decisions must not depend exclusively on probabilistic models.
FAS-INV-010 — Passwordless Security
Passwords must not be required in the highest security profile.
FAS-INV-011 — Identity Independence from Email
Email must not be required as a foundational identity primitive.
FAS-INV-012 — Agentic Interface Evolution
A mature implementation should support dynamic user interfaces such as A2UI.
32. FullAgenticStack Minimal Compliance
The smallest architecture that can reasonably be considered FullAgenticStack is:
Multimodal User
↓
POST /intent
↓
Intent Classifier
↓
Orchestrator
↓
Specialized Agents
↓
System Actions
with the additional constraint that:
Every user-facing system capability is accessible through intent.
Without this property, natural language remains merely another feature.
33. FullAgenticStack Reference Profile
A stronger implementation includes:
✓ Natural-language-first interaction
✓ Text input
✓ Audio input
✓ Image input
✓ POST /intent
✓ Intent classification
✓ Agentic orchestration
✓ Specialized agents
✓ Event-driven execution
✓ Agentic data views
✓ WriteAgent
✓ ReadAgent
✓ CacheAgent
✓ VectorAgent
✓ GraphAgent
✓ EventAgent
✓ ObservabilityAgent
✓ Human-in-the-Loop
✓ Deterministic governance
✓ Passwordless identity
✓ Zero-Trust communication
The extreme profile adds:
✓ A2UI
✓ Polyglot Actions
✓ Agent-per-projection
✓ Dynamic orchestration
✓ Runtime-owned execution
✓ Continuous healing
✓ Cryptographic agent identity
✓ eXtreme Zero Trust
34. FullAgenticStack vs AI-Native
An AI-native application uses artificial intelligence as a fundamental component of the product.
FullAgenticStack is more specific.
It defines where agency exists in the architecture.
An application may be AI-native while still having:
traditional frontend
traditional backend
traditional database
AI service
A FullAgenticStack architecture distributes agency across those boundaries.
Therefore:
AI-native
describes software fundamentally dependent on AI.
While:
FullAgenticStack
describes software architecturally organized around agents.
35. FullAgenticStack vs Agentic-Native
Agentic-native is an even more precise description of the design philosophy.
In an agentic-native architecture:
agents are not integrations
agents are architectural primitives
FullAgenticStack can therefore be considered one concrete architectural expression of agentic-native software.
36. From Full Stack to Full Agentic Stack
The evolution can be summarized as:
Full Stack
Frontend
Backend
Database
then:
AI-Enhanced Stack
Frontend
Backend
AI
Database
then:
Agentic Stack
Frontend
Agents
Backend
Database
and finally:
FullAgenticStack
Agentic Interface
Agentic Application
Agentic Domain
Agentic Runtime
Agentic Data
Agentic Infrastructure
Agentic Security
Agentic Observability
Agentic Recovery
Agency is no longer located in one part of the application.
Agency becomes a property of the architecture itself.
37. The Fundamental Architectural Shift
The central shift introduced by FullAgenticStack is therefore not:
GUI → Chat
nor:
API → LLM
nor:
Developer → AI Agent
It is:
Software controlled by explicit interfaces
↓
Software controlled through semantic intent
The architecture changes from:
User selects operation
to:
User expresses goal
System determines operation
This distinction may become increasingly important as software moves from interface-driven interaction toward intent-driven execution.
Conclusion
FullAgenticStack began from a practical observation:
agents were no longer operating in a single part of the application.
They were operating across:
frontend
backend
data
Following that idea to its logical conclusion produces a different type of software architecture.
A FullAgenticStack system exposes its capabilities through intents rather than requiring humans to understand its internal structure.
It accepts multimodal requests.
It classifies intent.
It selects specialized agents.
It orchestrates Actions.
It manages specialized data projections.
It observes its own execution.
It can recover from failures.
And it applies cryptographic identity and Zero-Trust principles across interactions.
At its highest maturity level, the system becomes:
Multimodal
Intent-Driven
Agentic-Native
A2UI-Driven
Polyglot
Event-Driven
Agentic-Data-Oriented
Self-Healing
Observable
Passwordless
Zero-Trust
The defining principle of FullAgenticStack can therefore be reduced to one statement:
Humans should express what they want. The architecture should know how to execute it.
And the architectural consequence is equally important:
If a functionality exists in the system, it must also exist as an intent.
Top comments (0)