BookinglyTech News
Software

Amazon publica Dogwood, un lenguaje de politicas temporal para agentes de IA

El lenguaje, bajo licencia Apache 2.0, permite escribir reglas sobre secuencias de acciones de un agente, no solo sobre llamadas aisladas, y es compatible con las politicas Cedar ya existentes.

3 min de lecturaLobsters0 vistas

Amazon ha publicado Dogwood, un lenguaje de politicas open source para gobernar lo que un agente de IA hace con sus herramientas. Se trata de la capa que decide, en cada llamada, si esa accion pasa o no, y su aportacion concreta es que sabe expresar reglas sobre secuencias de acciones, no solo sobre peticiones sueltas. El codigo esta en un repositorio en GitHub y la licencia es Apache 2.0.

El planteamiento no es nuevo del todo. AgentCore Policy, la capa de Amazon Bedrock AgentCore que evalua las llamadas a herramientas, ya nacio con Cedar como lenguaje de politicas. Cedar es rapido, legible y analizable con razonamiento automatico, y da una garantia que importa a cualquiera que audite el sistema: peticiones identicas producen decisiones identicas, sin depender del orden de evaluacion ni del estado del sistema. A cambio, cada peticion se evalua aislada, sin mirar que paso antes. Eso sirve para dibujar un perimetro alrededor de una accion concreta, pero no para decir nada de encadenamientos.

De la accion suelta a la secuencia

Ahi entra Dogwood. Un agente que compone varias acciones seguidas genera justo lo que los equipos quieren gobernar: prerrequisitos, orden y limites de frecuencia. El lenguaje añade una clausula temporal (when temporal { ... }) que, ademas de la peticion actual, mira hacia atras en la historia de eventos del agente. Cada evento es una llamada a herramienta o su resultado, con sus argumentos y su principal. El conjunto de acciones sobre el que se puede hablar sale del esquema de acciones, que para un agente se genera a partir de las herramientas que ya expone por el Model Context Protocol.

El operador clave es formerly, que comprueba si una condicion se cumplio al menos una vez dentro de una ventana de tiempo. Con eso se escribe, por ejemplo, que una venta solo se autoriza si existe una aprobacion previa por el mismo importe y el mismo valor, concedida en la ultima hora:

permit ( principal, action == AgentCore::Action::"SellShares", resource )
when temporal {
  formerly within 1h AgentCore::Action::"ApproveSale"::response{
    input.stock: context.input.stock,
    input.shares: context.input.shares,
    output.approved: true
  }
};

La condicion exige que el evento de respuesta de ApproveSale case en valor y numero de acciones con la peticion actual, y que su salida marque aprobado. Es logica temporal de primer orden metida en un lenguaje de politicas, y de ahi sale la capacidad de prohibir que un agente contacte con terceros despues de haber tocado informacion confidencial, o de frenar una herramienta cuando ya se ha usado demasiadas veces.

Dogwood es compatible con las politicas Cedar existentes, asi que no hay migracion: se pueden extender las que ya hay y escribir nuevas encima. Amazon ha integrado el soporte del lenguaje dentro de AgentCore Policy y, con la publicacion abierta, se puede escribir una politica en el IDE de siempre o con un agente de codigo y comprobar su comportamiento con el parser, el validador y el interprete de referencia que acompanan al proyecto. La guia del lenguaje cubre los operadores temporales disponibles.

Lo que queda por ver es la adopcion. Un lenguaje de politicas solo vale si alguien escribe las politicas, y la pregunta practica es si Dogwood se queda dentro de AgentCore o si otros orquestadores de agentes lo adoptan. La base matematica es solida y la compatibilidad con Cedar quita la excusa de la migracion, pero la compania no ha publicado cifras de uso ni casos en produccion.