Voz y chat en tiempo real
El audio del micrófono entra como PCM a 16 kHz. Gemini Live devuelve voz a 24 kHz y transcripciones en vivo, mientras que los mensajes escritos pueden unirse a la misma sesión.
Amos AI es un agente de recursos empresariales: un agente de IA que gestiona por completo un ERP por usted. Amos funciona dentro de Zavora ERP. La voz o el chat se convierten en un flujo contable delimitado: lee el libro mayor en vivo, sigue un manual contable, pide aprobación antes de registrar y archiva las pruebas junto a la conversación.
Amos
Contador AI · en línea
Por qué es un super agente
Amos es un servicio independiente Rust y Axum embebido en el ERP. ADK-Rust's RealtimeRunner mantiene el habla, texto, transcripciones, llamadas a herramientas e interrupciones en una sesión en vivo, para que el usuario pueda hablar de forma natural y escribir cuando se requiere precisión.
Cuando una solicitud requiere acción, Amos carga una habilidad contable enfocada y llama a herramientas ERP a través de MCP. Cada herramienta está envuelta con los ámbitos de rol del usuario y el contexto de auditoría. Las anotaciones del libro mayor se detienen en una puerta de aprobación explícita aplicada en Rust, luego ejecutar con el token ERP del usuario si es aprobado.
El resultado permanece visible. Amos mantiene un plan de trabajo, maneja el ERP real a través de un conjunto de herramientas de navegador separado, captura evidencia en capturas de pantalla, almacena historial de sesión, recuerda contexto empresarial aprobado y usa agentes en segundo plano con alcance limitado para rutinas contables programadas.
El audio del micrófono entra como PCM a 16 kHz. Gemini Live devuelve voz a 24 kHz y transcripciones en vivo, mientras que los mensajes escritos pueden unirse a la misma sesión.
MCP conecta Amos con reportes, facturas, cuentas por pagar, pagos, nómina, compras, inventario, conciliación, declaraciones fiscales y cierre de período.
Los playbooks SKILL.md plug-and-play definen el orden de herramientas, verificaciones contables, puntos de confirmación y las acciones que Amos nunca debe realizar.
Un plan de trabajo muestra cada paso. La actividad de herramientas, publicación de insignias y estado de finalización llegan por el WebSocket de sesión.
Un servidor Playwright MCP navega el producto, verifica el resultado y guarda capturas de pantalla junto a la conversación.
Los ámbitos de rol se verifican en cada llamada a herramienta. Una escritura en el libro mayor se pausa en una puerta de confirmación aplicada por código antes de que la herramienta se ejecute.
Postgres y pgvector retienen hechos comerciales, lecciones y resúmenes de sesión. Los caminos de recuperación, deduplicación y olvido mantienen esa memoria manejable.
Agentes de un solo uso con ámbito preparan informes, cuentas de gestión, conciliaciones, trabajo fiscal, propuestas de pago y cierres en el calendario comercial.
Estudio de caso · cuentas de gestión
El resultado útil no es una explicación genérica. Amos consulta el ledger empresarial, compara períodos y presupuesto, calcula KPIs financieros, nombra impulsores materiales y deja el flujo de trabajo de soporte visible junto a la respuesta.

El reloj de sesión suministra la zona horaria del usuario, contexto fiscal y fecha de trabajo para que ‘el mes pasado’ se resuelva consistentemente.
La herramienta use_skill trae el flujo de trabajo de informes financieros o cuentas de gestión al contexto solo cuando es necesario.
Las herramientas MCP con ámbito ejecutan P&L, comparación presupuestaria, informes de períodos anteriores, balance, facturas, cuentas por pagar, nómina y estado fiscal.
Amos deriva márgenes, DSO, DPO, liquidez, cobertura de efectivo y variaciones materiales a partir de resultados de herramientas en lugar de inventar cifras.
La interfaz recibe el progreso de la tarea, actividad de herramientas, el informe y decisiones sugeridas a través de la sesión WebSocket actual.
La transcripción se almacena y hechos empresariales duraderos o lecciones de flujo de trabajo pueden recuperarse en una sesión posterior.
Arquitectura
El modelo en tiempo real nunca recibe una conexión sin restricciones al ledger. ADK-Rust conecta un conjunto de herramientas filtrado a la sesión, y cada llamada pasa por autorizaciones, confirmaciones y auditorías antes de llegar al ERP o navegador.
Evidencia y control
Amos usa un servidor Playwright MCP aislado para abrir el ERP, navegar al registro o informe afectado, verificar el estado visible y capturar una tarjeta de evidencia. El navegador es una superficie de verificación; las acciones contables siguen pasando por las herramientas ERP delimitadas.
ledger:post envía una tarjeta de confirmación y espera. Rechazar o agotar el tiempo significa que la herramienta no se ejecuta.

Conocimiento contable componible
Cada habilidad es un playbook SKILL.md versionable. El prompt en tiempo real recibe un catálogo corto, luego usar_habilidad carga el flujo de trabajo completo y sus herramientas MCP permitidas solo cuando el trabajo las necesita.
Contabilidad proactiva
Una rutina declara su cronograma cron, prompt, habilidad, herramientas exactas, ámbitos y comportamiento de notificación en TOML. ADK-Rust crea un agente LLM de corta duración para ese trabajo, registra la ejecución y envía el resultado a la bandeja de entrada ERP.

El Rust detrás de Amos
El repositorio construye un RealtimeRunner, conecta herramientas MCP a la sesión en vivo y envuelve cada herramienta antes de que el modelo pueda llamarla. La ruta de aprobación es código de aplicación, por lo que cambiar un prompt no puede evitarla.
Leer el crate completo de Amos ↗let mut builder = RealtimeRunner::builder()
.model(state.model.clone())
.config(config);
for tool in mcp_tools {
let scoped = ScopedTool::wrap(
tool,
granted_scopes.clone(),
user_id.clone(),
session_id.clone(),
audit.clone(),
Some(session.clone()),
);
builder = builder.tool_arc(
definition,
Arc::new(ToolBridgeAdapter::new(scoped, context_factory.clone())),
);
}if required_scopes.contains(&"ledger:post") {
if let Err(refusal) = self.confirm_with_user(&args).await {
self.record(self.inner.name(), AuditOutcome::Denied).await;
return Ok(json!({ "error": refusal }));
}
}
self.record(self.inner.name(), AuditOutcome::Allowed).await;
let args = self.with_user_token(args).await;
self.inner.execute(ctx, args).awaitContrato de despliegue actual
Construye un producto completo de agente
Amos muestra cómo ADK-Rust puede conectar audio nativo, herramientas MCP, habilidades, memoria, agentes en segundo plano, interfaz de producto, autorización, aprobación y evidencia alrededor de un flujo de trabajo productivo.