Primeiro, ordenei os fluxos de eventos. Cada ação do agente produz um evento com um número de sequência world. Qualquer agente pode reconstruir o estado atual do sistema lendo o fluxo de eventos. Isso elimina a necessidade de os agentes consultarem uns aos outros diretamente, que é onde a latência estava escondida em nosso sistema.
Em segundo lugar, a propagação do contexto. Cada evento carrega um envelope de contexto que inclui a solicitação do usuário de origem, o estado atual da sessão e quaisquer restrições ou prazos. Quando um agente recebe um evento, ele tem uma visão completa sem fazer chamadas adicionais. Em nossa arquitetura anterior, os agentes faziam de três a cinco chamadas de ida e volta apenas para reunir contexto suficiente para agir em uma única solicitação. Terceiro, primitivas de coordenação. A espinha dorsal fornece suporte integrado para padrões comuns: transferências sequenciais entre agentes, distribuição paralela com agregação, roteamento condicional baseado em pontuações de confiança e preempção de prioridade quando chegam solicitações urgentes. Caso contrário, esses padrões precisariam ser implementados independentemente por cada par de agentes, duplicando a lógica e introduzindo inconsistências.
from collections import defaultdict
import time
class EventSpine:
def __init__(self):
self.sequence = 0
self.subscribers = defaultdict(listing)
def publish(self, event_type, payload, context):
self.sequence += 1
occasion = Occasion(
seq=self.sequence,
sort=event_type,
payload=payload,
context=context,
timestamp=time.time()
)
for handler in self.subscribers(event_type):
handler(occasion)
return occasion
def subscribe(self, event_type, handler):
self.subscribers(event_type).append(handler)
Sreenivasa Reddy Hulebeedu Reddy
3 problemas que o Occasion Backbone resolve
Problema um: condições de corrida entre agentes. Sem coordenação, nosso agente de agendamento agendaria reuniões antes que o agente de consulta terminasse de coletar os requisitos. Os clientes recebiam convites de calendário para compromissos que não continham detalhes importantes. O Occasion Backbone resolveu isso impondo o processamento sequencial para operações dependentes. O agente agendador assina eventos de preenchimento de requisitos e só atua após receber a confirmação de que o agente consultador reuniu tudo o que é necessário.