Intuit用Amazon Bedrock构建智能容灾代理EWOK Agent,将故障转移时间缩短至约 20 分钟
Intuit基于内部容灾系统EWOK开发了EWOK Agent,该代理使用Amazon Bedrock上的基础模型,允许工程师以自然语言触发生产环境故障转移;Intuit已在团队中使用该代理运行故障转移约八个月。
Intuit在AWS机器学习博客上发文,介绍其基于Amazon Bedrock构建的智能体容灾助手EWOK Agent。该工具运行在Intuit内部集中式容灾系统EWOK之上,让值班工程师可以直接用"failover payments-gateway in production"这类自然语言指令触发生产环境故障转移。Intuit称,EWOK可将受支持工作负载的恢复时间从数小时缩短至约 20 分钟,而EWOK Agent已在公司内部多个团队用于运行故障转移约八个月。
解决的问题与系统分工
Intuit支撑的TurboTax、QuickBooks、Mailchimp和Credit Karma等服务运行在跨多个AWS区域的数千个微服务上。原有EWOK系统把运维对象的恢复意图写为YAML配置,并编排计算、数据库、网络、缓存和异步工作负载的故障转移执行,但它只解决了执行问题,没有解决决策问题——选择哪个恢复工作流、确认资产是否就绪、处理恢复中途出现的异常,仍然依赖经验丰富的值班工程师的个人知识。
文章中给出的一个典型场景是变更冻结窗口。在纳税季等业务关键时段,部署和变更受严格限制,若故障转移请求落在这个窗口内会被拒绝,工程师必须知道详细的紧急覆盖流程才能继续。EWOK Agent把这类判断显式写成了技能主体的策略门禁分支。
- EWOK Agent由四层构成:消费层(Intuit工程门户和集成开发环境,通过Model Context Protocol接入)、代理层(在Amazon Bedrock上运行,处理模型选择、护栏和技能分发)、技能层(带类型的版本化技能,由YAML schema加提示词主体构成)、执行层(EWOK API,负责资产解析、工作流查找、就绪检查、策略门禁和故障转移本身)。
- 工作原理是:值班工程师通过门户或IDE提交自然语言请求;代理层把请求连同编译后的技能工具规范,经Amazon Bedrock Converse API发给基础模型,交互过程附加护栏;模型选择技能并返回结构化工具调用;技能执行器对EWOK API执行操作,包括解析资产、检查策略门禁、创建变更记录(change record)等,然后返回结构化结果;EWOK通过工作负载专用代理在计算、数据库、缓存和流量层级执行恢复,并将阶段状态沿同路径返回给工程师。
技能编码与模型接入边界
El núcleo del diseño del EWOK Agent es escribir habilidades (skills) en lugar de manuales para humanos. Cada habilidad es un archivo Markdown con dos partes: YAML frontmatter que declara un esquema de I/O tipado (que sirve como contrato operativo) y un cuerpo de prompt con instrucciones, reglas y lógica de decisión. Este esquema se compila directamente en la definición de herramienta (toolSpec) que el modelo puede invocar. Por ejemplo, la solicitud "failover payments-gateway in production" activa la habilidad failover-manager con operation=invoke-failover, asset_name=payments-gateway y environment=production, sin que se codifique un árbol de decisión fijo.
Las habilidades son agnósticas al modelo. Una capa delgada de Amazon Bedrock las conecta a un modelo base y hace tres trabajos: compilar cada schema de habilidad en una especificación de herramienta para Bedrock, mantener el modelo intercambiable (el modelo es un valor de configuración, no un compromiso arquitectónico) y adjuntar un Amazon Bedrock Guardrail a cada invocación del modelo. El guardrail se configura una vez en el cliente ChatBedrockConverse, no en cada prompt de autor de habilidad, porque las herramientas pueden disparar failovers en producción.
El bucle agéntico en el EWOK Agent es deliberadamente pequeño y explícito: llama al modelo, ramifica según el motivo de parada, ejecuta la habilidad seleccionada y retroalimenta el resultado. Cada iteración está visible y auditable. Intuit eligió un bucle autogestionado en lugar del harness Amazon Bedrock AgentCore, porque su flujo de failover requiere ramificación personalizada por motivo de parada y lógica de interruptor automático dentro del bucle. Para agentes que no necesitan control personalizado, el harness ofrece un bucle totalmente gestionado con observabilidad, memoria y ejecución de herramientas integradas.
El cuerpo del prompt sigue un formato estructurado por reglas, no prosa libre: pasos numerados por operación (cada uno mapea a una sola llamada del ejecutor), reglas estrictas de parada ante errores (el modelo tiene prohibido reintentar o improvisar porque el ejecutor ya maneja reintentos transitorios), y el patrón de puerta de política como flujo definido, no como error. En el ejemplo citado, si un resultado de invocación tiene estado "change_blocked", el agente pide al usuario un número de incidente (p. ej., INC0001234) o una justificación de emergencia (de 24 a 100 caracteres), y reintenta exactamente una vez; si el usuario se niega, el agente se detiene e informa que no se ejecutó el failover. La lógica la escribe el autor de la habilidad en el cuerpo del prompt, y el modelo la sigue. El esquema de la habilidad compila directamente en la definición de herramienta, por lo que el modelo no decide qué campos enviar, solo completa los que la definición le da. La política de override de la ventana de congelación es una rama condicional en el prompt, no un checkpoint separado en el executor de la habilidad. La línea entre modelo y ejecución permanece nítida: el "qué" de la política lo dicta el prompt y el "cómo" lo ejecuta el executor sin interpretación de lenguaje natural.
实施边界与前置要求
La publicación es un análisis de arquitectura y un patrón reutilizable, no una implementación paso a paso; los fragmentos de código son extractos ilustrativos. La capa de ejecución de recuperación (EWOK) es un sistema interno de Intuit, pero el patrón —habilidades tipadas, capa delgada de Amazon Bedrock y bucle agéntico acotado sobre un ejecutor determinista— se puede aplicar a otros sistemas que expongan API autenticadas y auditables.
Para adoptar el patrón, se necesita familiaridad con Amazon Bedrock, la Converse API y su capacidad de tool use, Amazon Bedrock Guardrails y las acciones IAM típicas (bedrock:Converse, bedrock:ConverseStream, bedrock:InvokeModel y bedrock:ApplyGuardrail), así como Python, Boto3 y la librería langchain-aws. La disponibilidad de modelos fundamentales de Amazon Bedrock varía según la región de AWS, por lo que se debe verificar que el modelo elegido esté disponible en la región antes de adoptar el patrón. El artículo no proporciona cifras de reducción de costos, tiempo de respuesta promedio del agente o ahorro en horas de ingeniería más allá del tiempo de recuperación de EWOK.
- Los ingenieros pueden instalar EWOK Agent como plugin y ejecutar failovers directamente desde el portal de ingeniería de Intuit o desde su IDE preferido.
- Cada comunicación con el modelo se adjunta un Amazon Bedrock Guardrail; el sistema incluye protección de seguridad y privacidad: los datos no se usan para entrenar modelos y permanecen cifrados en tránsito y en reposo.