Skip to main content

PRD-022 — Agentic Attention, Notification & Human Decision Center

1. Objetivo

O Agentic Attention, Notification & Human Decision Center será a camada responsável por transformar a enorme quantidade de eventos, sinais, riscos, recomendações, aprovações e exceções produzidos pelo Agentic Work em uma experiência de atenção humana priorizada, contextual e acionável.

O objetivo não é simplesmente criar um sistema de notificações.

O objetivo é criar um sistema de gerenciamento de atenção operacional.

A arquitetura deverá responder:

O que realmente precisa da minha atenção agora?

e:

Qual decisão preciso tomar, por quê, qual o impacto e o que acontece se eu não fizer nada?


2. Problema

Com os PRDs anteriores, o sistema passa a ser capaz de:

  • detectar eventos;
  • identificar riscos;
  • gerar recomendações;
  • iniciar workflows;
  • executar ações;
  • solicitar aprovação;
  • detectar situações futuras;
  • monitorar processos.

Isso cria um novo problema.

Sem uma camada de Attention Management, o sistema pode produzir:

100 eventos

35 sinais

20 recomendações

12 notificações

7 emails

5 push notifications

O usuário passa a sofrer de:

Alert Fatigue

Portanto:

Signal ≠ Notification
Notification ≠ Attention Item
Attention Item ≠ Human Decision

Esses conceitos deverão ser separados.


3. Princípio fundamental

O sistema deverá seguir:

Notificar menos, mas com maior relevância.

A prioridade será:

Relevância
>
Urgência
>
Impacto
>
Ação necessária
>
Canal

Não deverá existir uma regra simplista:

event → notification

O fluxo correto será:

Event

Signal

Risk

Recommendation

Attention Evaluation

Decision:
├── Ignore
├── Aggregate
├── Digest
├── Notify
├── Escalate
└── Require Human Decision

4. Arquitetura

Event Fabric


Proactive Intelligence


Risk / Recommendation


┌────────────────────────┐
│ Attention Engine │
└───────────┬────────────┘

┌──────────────┼───────────────┐
│ │ │
▼ ▼ ▼
Aggregate Prioritize Suppress
│ │ │
└──────────────┼───────────────┘

Attention Item

┌──────────────┼───────────────┐
▼ ▼ ▼
Notification Decision Escalation
│ │ │
▼ ▼ ▼
Channels Human Action Workflow

5. Attention Item

A unidade central do sistema será o Attention Item.

interface AttentionItem {
attentionId: string;

tenantId: string;

type: AttentionType;

title: string;

summary: string;

priority: AttentionPriority;

urgency: number;

impact: number;

relevance: number;

riskScore?: number;

confidence?: number;

source: AttentionSource;

entityRefs: EntityReference[];

recommendationId?: string;

workflowId?: string;

approvalId?: string;

requiredAction?: RequiredAction;

status: AttentionStatus;

createdAt: string;

expiresAt?: string;

acknowledgedAt?: string;

resolvedAt?: string;
}

6. Tipos

Inicialmente:

RISK
RECOMMENDATION
APPROVAL
EXCEPTION
DEADLINE
ESCALATION
WORKFLOW_BLOCKED
WORKFLOW_FAILED
COMPLIANCE
SYSTEM_ALERT
HUMAN_DECISION

7. Status

enum AttentionStatus {
NEW,
SEEN,
ACKNOWLEDGED,
IN_PROGRESS,
WAITING,
RESOLVED,
DISMISSED,
EXPIRED,
ESCALATED
}

Importante:

SEEN ≠ ACKNOWLEDGED

Visualizar não significa assumir responsabilidade.


8. Required Action

O sistema deverá indicar claramente o que espera do usuário.

interface RequiredAction {
type:
| "VIEW"
| "APPROVE"
| "REJECT"
| "REVIEW"
| "CORRECT"
| "CONFIRM"
| "ASSIGN"
| "EXECUTE"
| "WAIT";

capabilityId?: string;

workflowId?: string;

deadline?: string;
}

Exemplo:

“Aprovar a liberação da Work Permit WP-10231.”


9. Atenção vs. Notificação

Um Attention Item pode existir sem gerar notificação.

Exemplo:

Risk LOW

Attention Item

Dashboard

Nenhum push é enviado.

Já:

Risk CRITICAL
+
Deadline < 2h
+
User responsible

poderá gerar:

In-App
+
Push
+
Escalation

10. Attention Scoring

O sistema deverá calcular um score de atenção.

Uma primeira implementação:

AttentionScore =
Risk
× Urgency
× Impact
× Relevance
× Confidence

Com normalização para 0–100.

Por exemplo:

Risk = 90
Urgency = 95
Impact = 80
Relevance = 100
Confidence = 99

AttentionScore ≈ 68

O cálculo exato deverá ser configurável e versionado.


11. Urgency

Urgência deverá considerar tempo.

Exemplo:

Deadline > 30d → low
Deadline 7–30d → medium
Deadline 1–7d → high
Deadline < 24h → critical

Mas regras específicas do domínio poderão substituir os defaults.


12. Relevance

Nem todo risco interessa igualmente a todos os usuários.

O sistema deverá considerar:

user role
tenant
responsibility
department
location
entity ownership
workflow participation
current UI context
previous interaction

Exemplo:

Uma aprovação de Work Permit para a área de manutenção deverá possuir relevância maior para o responsável pela manutenção do que para um usuário administrativo sem relação com o processo.


13. Current UI Context

A camada deverá utilizar o Semantic UI Context do PRD-011.

Se o usuário estiver em:

Work Permit WP-10231
Tab: Components

um Attention Item relacionado à mesma Work Permit deverá receber um boost de relevância.

Isso permite que o agente diga:

“Enquanto você está analisando essa permissão, existe uma pendência importante relacionada a ela.”


14. Aggregation

Itens relacionados deverão ser agrupados.

Exemplo:

37 workers
41 training expirations
82 affected permits

Em vez de:

160 notifications

o usuário verá:

37 trabalhadores possuem treinamentos próximos do vencimento, afetando 82 permissões de trabalho.


15. Attention Group

interface AttentionGroup {
groupId: string;

tenantId: string;

title: string;

summary: string;

priority: AttentionPriority;

itemCount: number;

entityRefs: EntityReference[];

itemIds: string[];

suggestedAction?: string;

createdAt: string;
}

16. Grouping Rules

O agrupamento poderá utilizar:

same tenant
same entity
same worker
same Work Permit
same rule
same workflow
same risk
same time window
same responsible user
same causal chain

O Knowledge Graph poderá auxiliar na identificação de relações.


17. Causal Grouping

Esse será um recurso particularmente importante.

Considere:

Training Expiring

Worker affected

Work Permit affected

Workflow created

Approval pending

Não deverão existir cinco alertas independentes.

O sistema deverá entender que todos pertencem a uma mesma situação operacional.

Resultado:

“Renovação de treinamento está bloqueando a liberação de 3 Work Permits.”


18. Deduplication

A mesma situação não deverá aparecer repetidamente.

Chave:

tenantId
+
attentionType
+
entityRefs
+
ruleId
+
responsibleParty

O sistema deverá suportar:

deduplication window
cooldown
aggregation window

19. Suppression

O usuário ou política poderá suprimir determinados itens.

Exemplo:

“Não me avise novamente sobre esse treinamento até amanhã.”

Isso deverá criar uma configuração estruturada:

interface AttentionSuppression {
suppressionId: string;

tenantId: string;

scope: "ITEM" | "ENTITY" | "RULE" | "TYPE";

target: string;

expiresAt: string;

createdBy: string;
}

20. Segurança da Suppression

Suppression não poderá apagar uma obrigação de segurança.

Por exemplo:

CRITICAL compliance issue

não poderá ser simplesmente escondido pelo usuário.

Nesse caso:

User suppression

Policy Engine

DENY

21. Notification Policy

Cada Attention Item deverá passar por uma Notification Policy.

Attention

Notification Policy

Should notify?

Which channel?

When?

Who?

22. Notification Channels

A arquitetura deverá suportar:

IN_APP
WEB_PUSH
EMAIL
MOBILE_PUSH
SMS
WEBHOOK
CHAT

O MVP poderá implementar somente:

IN_APP
EMAIL

mantendo a interface preparada para os demais.


23. Notification Preferences

O usuário poderá configurar preferências:

priority
channel
quiet hours
digest
frequency
domain

Exemplo:

notifications:
high:
channels:
- IN_APP
- EMAIL

medium:
channels:
- IN_APP

low:
channels:
- DIGEST

24. Quiet Hours

O sistema deverá suportar períodos em que notificações não críticas não sejam enviadas.

Exemplo:

22:00 → 07:00

Porém:

CRITICAL

poderá continuar sendo enviado caso a Policy Engine permita.


25. Digest

Itens de baixa prioridade poderão ser agrupados em um resumo.

Exemplo:

Resumo diário de Segurança — 01/09/2026

12 treinamentos próximos do vencimento
4 documentos pendentes
3 recomendações
1 workflow parado

Isso reduz drasticamente o ruído.


26. Escalation

Se uma situação não for tratada:

Attention

T + 24h

Not resolved

Escalate

Exemplo:

Responsible

Supervisor

Manager

Safety Administrator

27. Escalation Policy

interface EscalationPolicy {
policyId: string;

trigger: {
after: string;
condition: string;
};

levels: EscalationLevel[];
}

Cada nível deverá possuir:

recipient
delay
channel
condition

28. Human Decision Center

Além de notificações, deverá existir uma área central:

Agentic Decision Center

Ela deverá mostrar:

┌─────────────────────────────────────────┐
│ MINHAS DECISÕES │
├─────────────────────────────────────────┤
│ 🔴 3 críticas │
│ 🟠 7 importantes │
│ 🟡 12 aguardando revisão │
├─────────────────────────────────────────┤
│ [Aprovar] [Rejeitar] [Revisar] │
└─────────────────────────────────────────┘

29. Decision Card

Cada decisão deverá apresentar:

O QUE?
POR QUÊ?
IMPACTO?
EVIDÊNCIAS?
RISCO?
QUEM É AFETADO?
O QUE ACONTECE SE EU NÃO FIZER NADA?
QUAL A AÇÃO PROPOSTA?

Exemplo:

Aprovar liberação da WP-10231

Risco: Alto

Motivo: Todos os requisitos obrigatórios foram satisfeitos.

Impacto: Liberação de 4 trabalhadores.

Ação proposta: Aprovar.

Evidências: 8

Workflow: WP Lifecycle #8421


30. Human Decision

interface HumanDecision {
decisionId: string;

attentionId: string;

userId: string;

decision:
| "APPROVE"
| "REJECT"
| "ACCEPT"
| "DISMISS"
| "REQUEST_CHANGES"
| "DEFER";

reason?: string;

decidedAt: string;
}

Decisões relevantes deverão ser auditadas.


31. Decision Expiration

Uma decisão pendente poderá expirar.

Exemplo:

Approval valid for 4 hours

Depois:

EXPIRED

e uma nova avaliação deverá ser realizada.

Isso impede que uma decisão antiga seja utilizada sobre um estado que mudou.


32. Stale Decision Protection

Antes da execução:

Decision
+
Policy
+
Resource
+
Context

deverão ser revalidados.

Se o recurso mudou:

Decision → INVALID

O sistema deverá solicitar nova decisão quando necessário.


33. Natural Language Interaction

O Decision Center deverá funcionar também através do Agent.

Exemplos:

“Quais decisões estão pendentes?”

“Mostre só as críticas.”

“O que precisa da minha atenção hoje?”

“Tem alguma coisa bloqueando minhas Work Permits?”

“Aprovar todas as que não têm risco alto.”

A última instrução deverá ser tratada como operação potencialmente em lote e passar pelas proteções de Batch/Policy.


34. Contextual Attention

O agente poderá responder:

“Você está analisando a WP-10231. Há uma pendência de aprovação relacionada a ela.”

Esse comportamento será baseado em:

Current UI Context
+
Attention Store
+
Knowledge Graph
+
Conversation Context

35. Attention Inbox API

Deverá existir uma API conceitual:

GET /agent/attention

Filtros:

status
priority
type
entity
domain
assignedTo
createdAfter
dueBefore

Exemplo:

GET /agent/attention?status=NEW&priority=CRITICAL

A API deverá respeitar integralmente tenant isolation e authorization.


36. Attention Actions

As ações nunca deverão ser endpoints arbitrários.

Exemplo:

interface AttentionAction {
actionId: string;

attentionId: string;

capabilityId: string;

label: string;

risk: RiskLevel;

requiresConfirmation: boolean;
}

O capabilityId deverá apontar para o Capability Registry.


37. Relationship com Capability Registry

A arquitetura ficará:

Attention

Suggested Action

Capability Registry

Policy Engine

Execution Engine

Nunca:

Attention

HTTP endpoint

38. Relationship com Workflow Engine

Uma atenção poderá apontar para:

workflowId

permitindo:

Open workflow
Pause workflow
Resume workflow
Approve step
Reject step
Cancel workflow

Cada ação deverá ser uma capability registrada.


39. Notification Reliability

O sistema deverá garantir:

notificationId
idempotencyKey
deliveryStatus
attempts
lastAttemptAt
providerResponse

Estados:

PENDING
SENT
DELIVERED
FAILED
RETRYING
EXPIRED

40. Retry

Falhas transitórias:

timeout
5xx
rate limit
network

poderão gerar retry.

Falhas permanentes:

invalid recipient
permission denied
invalid payload

não deverão ser repetidas indefinidamente.


41. Notification Outbox

Para garantir consistência:

Business Transaction

Attention Created

Notification Outbox

Dispatcher

Provider

O envio não deverá depender de uma transação HTTP síncrona.


42. Tenant Isolation

Todas as estruturas deverão conter:

tenantId

quando aplicável.

Não poderá ocorrer:

Tenant A

Attention

Notification

Tenant B

Também deverá existir isolamento em:

  • cache;
  • filas;
  • aggregation;
  • digest;
  • analytics;
  • escalation;
  • preferences.

43. Privacy

Notificações poderão carregar informações sensíveis.

Portanto:

Sensitive Data

Minimize

Channel-specific representation

Exemplo:

No push:

“Uma decisão importante precisa da sua atenção.”

Em vez de:

“O trabalhador João da Silva possui determinada condição médica...”

O detalhe poderá ficar protegido dentro da aplicação autenticada.


44. Audit

Deverão existir eventos:

ATTENTION_CREATED
ATTENTION_GROUPED
ATTENTION_SUPPRESSED
ATTENTION_VIEWED
ATTENTION_ACKNOWLEDGED
ATTENTION_DISMISSED
NOTIFICATION_CREATED
NOTIFICATION_SENT
NOTIFICATION_FAILED
ESCALATION_TRIGGERED
DECISION_REQUESTED
DECISION_MADE
DECISION_EXPIRED

45. Metrics

Métricas principais:

Attention Items Created
Notifications Sent
Notifications Suppressed
Notification Delivery Rate
Attention Open Rate
Acknowledgement Rate
Decision Completion Rate
Decision SLA
Escalation Rate
Dismissal Rate
False Alert Rate
Alert Fatigue Rate
Average Time To Attention
Average Time To Decision

46. Attention Effectiveness

Uma métrica importante será:

Attention Effectiveness =
Actionable Items / Total Attention Items

O objetivo será aumentar:

Signal → Useful Attention

e reduzir:

Signal → Noise

47. Feedback

O usuário poderá informar:

Útil
Não é relevante
Já resolvido
Não deveria ter sido alertado
Preciso ser notificado antes

Esses eventos alimentarão o PRD-012.

Porém:

Feedback nunca deverá alterar automaticamente uma política de segurança.


48. Inteligência sobre Attention

O Agent poderá detectar padrões como:

“Você costuma resolver esse tipo de pendência imediatamente.”

ou:

“Essas 12 recomendações são relacionadas ao mesmo problema.”

Mas qualquer mudança comportamental relevante deverá passar pelo ciclo de avaliação e release.


49. Priority Learning

Futuramente, o sistema poderá aprender:

quais itens são ignorados
quais são resolvidos rapidamente
quais geram ações
quais são frequentemente rejeitados

Isso poderá melhorar o ranking.

Porém:

learned ranking

authorization

O aprendizado poderá alterar ordenação, nunca permissões.


50. Cost Optimization

O sistema deverá evitar enviar notificações redundantes.

Exemplo:

10 signals
→ 1 Attention Group
→ 1 notification

em vez de:

10 signals
→ 10 notifications

Isso reduz:

  • custo;
  • processamento;
  • chamadas externas;
  • emails;
  • push;
  • carga cognitiva.

51. Performance

Objetivos:

Attention creation P95 < 100ms
Ranking P95 < 50ms
Deduplication P95 < 30ms
In-app inbox P95 < 150ms

Processamentos em massa deverão ser assíncronos.


52. First Vertical Slice

O primeiro domínio será:

Work Permit + Training Expiration

Cenário:

Training expires

Event/Temporal Signal

Risk

Recommendation

Attention Engine

Em vez de gerar dezenas de notificações:

1 Attention Group

Exemplo:

Treinamentos próximos do vencimento

12 trabalhadores possuem treinamentos que vencerão nos próximos 15 dias, afetando 23 Work Permits.

A ação:

[Revisar]

abrirá o contexto semântico correto.


53. Segundo cenário

Work Permit aguardando aprovação.

Workflow

WAITING_APPROVAL

Attention

Decision Center

O responsável verá:

3 Work Permits aguardam sua aprovação.

Cada item terá:

[Revisar]
[Aprovar]
[Rejeitar]

As ações serão executadas através do Capability Registry.


54. Terceiro cenário — Escalation

Se uma aprovação ficar parada:

48h

Escalation

Supervisor

O supervisor receberá:

“A aprovação da WP-10231 está pendente há 48 horas.”


55. Critérios de Aceitação

  • Attention Item implementado.
  • Attention Score implementado.
  • Separação entre Signal, Attention e Notification.
  • Deduplicação funcionando.
  • Aggregation funcionando.
  • Causal grouping funcionando na primeira vertical slice.
  • Suppression implementada.
  • Critical alerts não podem ser indevidamente suprimidos.
  • Notification Policy implementada.
  • In-app notifications implementadas.
  • Email preparado ou implementado.
  • Notification Outbox implementado.
  • Retry implementado.
  • Escalation implementada.
  • Decision Center implementado.
  • Decision expiration implementada.
  • Stale decision protection implementada.
  • Todas as ações utilizam capabilities registradas.
  • Policy Engine validado antes da execução.
  • Tenant isolation validada.
  • Dados sensíveis minimizados.
  • Auditoria implementada.
  • Feedback integrado ao Operational Learning.
  • Métricas de alert fatigue disponíveis.
  • Work Permit + Training funcionando ponta a ponta.

Evidência parcial de implementação — 2026-09-04

Attention Item, score e occurrence inbox são separados de signal/notification e persistem deduplicação, agregação, prioridade e timeline tenant-safe. O runtime protege alerta crítico, expiração e decisão stale; escalonamento e notificação continuam policy-bound e não autorizam capability. Dados de ocorrência são minimizados e auditáveis.

Em 2026-09-04, recomendações proativas abertas passaram a ser projetadas de modo idempotente como ocorrências e Attention Items NOTICE/REVIEW_REQUIRED na fila humana proactive-review. O vínculo preserva tenant, severidade, evidência e dedupe, mas não envia notificação nem autoriza workflow, capability ou execução. Foram aprovados 20 testes focados de runtime proativo/Attention/rota e a pré-publicação do Worker (53 arquivos, 311 testes); o Worker foi publicado na versão c460faee-ec66-4e5c-845b-2fc6b08b5c11, com /health público saudável.

Em 2026-09-05, o gate de Attention Orchestration passou com 43 testes em 6 arquivos. O canário remoto comprovou 23 ocorrências de seis fontes, score 80/prioridade URGENT, roteamento delegado, template localizado, canais EMAIL e IN_APP, payload minimizado, token de ação one-time, lifecycle OPEN → ACKNOWLEDGED → IN_PROGRESS → ESCALATED → RESOLVED → CLOSED, dois níveis de escalonamento e reconciliação na versão 2. A execução permaneceu não autorizativa e o cleanup confirmou remainingRows:0.

Em 2026-09-06, a regressão atual de runtime, notificações, escalonamento, rotas e classificação de falhas de canário passou com 51 testes. O typecheck do Agent passou novamente, e o health público do Worker confirmou runtime e bindings. O estado permanece PARTIAL: outbox, roteamento e UI de escalonamento ainda precisam de cobertura completa.


56. Resultado arquitetural

Com o PRD-022, o Agentic Work passa a possuir uma cadeia completa:

┌─────────────────────────────────────────────┐
│ EVENT │
└──────────────────────┬──────────────────────┘

┌─────────────────────────────────────────────┐
│ SIGNAL │
└──────────────────────┬──────────────────────┘

┌─────────────────────────────────────────────┐
│ RISK │
└──────────────────────┬──────────────────────┘

┌─────────────────────────────────────────────┐
│ RECOMMENDATION │
└──────────────────────┬──────────────────────┘

┌─────────────────────────────────────────────┐
│ ATTENTION ENGINE │
└──────────────────────┬──────────────────────┘

┌─────────┴─────────┐
▼ ▼
NOTIFICATION HUMAN DECISION
│ │
└─────────┬─────────┘

WORKFLOW

CAPABILITY

POLICY

EXECUTION

VERIFICATION

AUDIT

O resultado é importante: o Agentic Work deixa de ser apenas um agente conversacional que executa comandos e passa a funcionar como uma camada operacional contínua do sistema SST, capaz de observar situações, decidir quando a atenção humana é necessária e conduzir o processo até a resolução.


PRD-023 — Agentic Decision Intelligence & Risk Reasoning

O próximo PRD deverá avançar um nível acima.

Até aqui temos:

  • Event Fabric → percebe o que aconteceu;
  • Proactive Intelligence → identifica o que pode acontecer;
  • Attention Engine → decide o que merece atenção;
  • Decision Center → coloca a decisão diante do humano.

O próximo passo será estruturar como o Agentic Work raciocina sobre decisões complexas envolvendo múltiplos fatores, evidências, regras, riscos e alternativas.

O PRD-023 deverá criar o Decision Intelligence & Risk Reasoning Layer, responsável por:

Evidence

Facts

Relationships

Rules

Constraints

Risk

Alternatives

Decision

Recommendation

Com uma distinção fundamental:

O LLM poderá ajudar a raciocinar sobre alternativas, mas não será a autoridade final sobre regras, autorização, segurança ou compliance.

Esse componente será especialmente importante para situações SST em que não existe simplesmente um:

if X then Y

mas sim uma decisão baseada em múltiplas evidências, dependências, exceções, contexto operacional e consequências.