Dogwood est fondé sur la logique temporelle et la Metric First-Order Temporal Logic (MFOTL), une branche des mathématiques formelles qui permet de raisonner sur les événements et leurs relations dans le temps . La MFOTL étend la logique temporelle propositionnelle avec la quantification du premier ordre et des contraintes métriques (par exemple, « au cours des 5 dernières minutes »), ce qui permet une surveillance précise en temps réel des séquences d'événements .
Dans Dogwood, la décision d'une politique dépend de l'historique des actions d'un agent au sein d'une session, et non de la seule requête en cours . Le moteur de politique tient un registre des appels d'outils antérieurs et de leurs réponses, puis évalue la requête actuelle par rapport à cet historique avant d'autoriser ou de refuser l'appel .
Dogwood étend le langage de politique Cedar (le langage d'autorisation existant d'AWS, datant de 2023) en ajoutant un bloc temporal avec des conditions tenant compte de la session . Les opérateurs temporels clés incluent :
| Opérateur | Objectif |
|---|---|
formerly | Vérifie si une condition était vraie à un moment antérieur de la session |
count_within | Compte combien de fois une condition s'est produite dans une fenêtre de temps spécifiée |
count_distinct_within | Compte les valeurs distinctes d'un champ qui sont apparues dans une fenêtre de temps |
sum_within | Additionne un champ numérique sur les événements dans une fenêtre de temps |
since | Vérifie une condition par rapport à la dernière occurrence d'un événement |
once | Vérifie si une condition s'est déjà produite |
Ces opérateurs permettent à une politique de définir des règles comme « interdire une action de paiement à moins qu'une action de facture n'ait eu lieu formerly », ou « interdire si sum_within(amount, 1h) dépasse un seuil » . Une politique temporelle s'écrit comme une règle Cedar standard permit ou forbid, mais avec des conditions placées à l'intérieur d'un bloc temporal { ... } .
Les politiques temporelles sont appliquées au niveau de la couche AgentCore Gateway, à l'extérieur du code de l'agent . La passerelle intercepte chaque appel d'outil en temps réel avant qu'il n'atteigne l'outil cible, évalue la politique par rapport à l'historique complet des événements de la session, puis autorise ou refuse l'appel .
Comme la décision d'autorisation a lieu à la périphérie — dans une infrastructure que l'agent ne peut pas modifier — elle ne peut pas être contournée par des manipulations de prompt, un jailbreaking ou tout code contrôlé par l'agent . AWS indique explicitement que les politiques s'exécutent à la « périphérie de la passerelle AgentCore Gateway, en dehors du code propre de l'agent », ce qui les rend résistantes à la réécriture de ses propres instructions par l'agent . Le moteur de politique prend en charge deux modes : LOG_ONLY (audit sans blocage) et ENFORCE (refus actif) .
Dogwood a été intégré à Amazon Bedrock AgentCore sous la forme de politiques temporelles, annoncées en même temps que la limitation de débit sur la passerelle le 6 août 2026 .
Fonctionnalités actuellement disponibles dans Bedrock AgentCore :
sum_within .Le langage Dogwood et son implémentation de référence sont disponibles sur GitHub sous licence Apache 2.0, séparément du service managé Bedrock AgentCore .