
Reglas de seguridad portátiles para el límite de acción de agentes de IA
Dale a tus agentes límites que puedas leer. Obtén decisiones que puedas verificar.
Qué es · Inicio rápido · Cómo funciona · SDKs · CLI · Políticas · Docs · Spec
HushSpec es una especificación abierta para los controles de seguridad bajo los que opera un agente de IA. Escribe una política en YAML, evalúala en Rust, TypeScript, Python o Go, y produce recibos que vinculan cada decisión con la política que la sustenta.
Cubre las cosas que los agentes realmente tocan: archivos, redes, shells, herramientas, navegadores
y ejecución de código. La especificación define las reglas y su significado; tu runtime
aplica el límite a través de HushGuard o su propia integración.
| Declarar | Aplicar | Probar |
|---|---|---|
| YAML revisable con políticas base reutilizables y permisos explícitos. | Decisiones consistentes de allow, warn y deny en el punto de acción. | Recibos de decisión, firmas de políticas y registros verificables. |
La especificación 1.0.0 es estable. El formato del documento, la semántica de evaluación, la forma canónica y los formatos de transmisión están congelados para la serie 1.x. Consulta la política de versionado y la matriz de conformidad de SDKs para conocer los contratos y su cobertura de pruebas.
La versión 1.0 del SDK aún no se ha publicado. Consulta el estado de entrega para ver la implementación, la cualificación y la evidencia de la versión.
El experimental controlador de conformidad externo prueba un ejecutable capturado contra el corpus L0-L3 y conserva sus entradas, salidas e identidad. El adaptador de Go es una puesta en marcha propia, no una cualificación independiente del motor o del límite del runtime.
El experimental coordinador de invocación confiable verifica una herramienta MCP cualificada por el host y sus efectos contra una instantánea de política autenticada, registra un permiso duradero y luego despacha. Su piloto de codificación aislado prueba ediciones reales, operaciones bloqueadas y evidencia de fallos. Esta es una demostración propia de alcance limitado, no una adopción externa ni una contención general de MCP.
Compila la CLI h2h desde este checkout:
cargo install --path crates/hushspec-cli --locked
Guarda esto como policy.yaml. Protege credenciales, restringe el acceso a la red
y solicita confirmación antes de que una herramienta pueda escribir un archivo o hacer push de código.
hushspec: "1.0.0"
name: production-agent
rules:
forbidden_paths:
patterns: ["**/.ssh/**", "**/.aws/**", "/etc/shadow"]
egress:
allow: ["api.openai.com", "*.anthropic.com", "api.github.com"]
default: block
tool_access:
allow: [file_read, search]
block: [shell_exec, run_command]
require_confirmation: [file_write, git_push]
default: block
Valídala y luego prueba tres decisiones:
h2h validate policy.yaml
h2h eval policy.yaml --type egress --target api.openai.com
# allow
h2h eval policy.yaml --type tool_call --target shell_exec
# deny
h2h eval policy.yaml --type tool_call --target file_write
# warn: confirmation required
Estos comandos evalúan acciones; no las ejecutan. eval sale con
0 para allow, 1 para deny y 4 para warn. Un runtime debe gestionar la decisión
antes de despachar la acción. Conéctalo a tu agente →
| Método | Instalación |
|---|---|
| Cargo | cargo install hushspec-cli |
| Homebrew | brew install backbay-labs/tap/h2h |
| npm | npm install -g @hushspec/cli |
| Binarios precompilados | GitHub Releases, con sumas de verificación y atestaciones de procedencia |
Los instaladores empaquetados dependen de que el pipeline de publicación haya publicado los artefactos correspondientes. La instalación desde el código fuente anterior compila directamente desde este checkout.
Para obtener una política y una suite de pruebas preconfiguradas, ejecuta h2h init --preset default.
Consulta la guía de la primera política para ver el flujo de trabajo completo.
HushGuard carga la política y reúne la evaluación, los modos de aplicación, la confirmación,
los destinos de recibos y los observadores. Llama a enforce antes de despachar una herramienta:
import { HushGuard } from '@hushspec/core';
const guard = HushGuard.fromFile('./policy.yaml');
guard.enforce({ type: 'tool_call', target: 'shell_exec' });
// Throws HushSpecDenied under the quickstart policy.
Una política que falla la verificación de firma requerida produce un guard rechazado:
toda acción se deniega con __hushspec_policy_unverified__. Una recarga en caliente fallida
mantiene vigente la última política válida. Los campos desconocidos y los documentos inválidos se
rechazan explícitamente.