Gestión de Secretos
Los agentes pueden leer secretos configurados por el usuario en tiempo de ejecución usando la CLI tai tool.
Los secretos se almacenan cifrados en reposo (AES-256-GCM) y se descifran solo al ser leídos.
Herramientas Disponibles
| Herramienta | Descripción |
|---|---|
secret_list | Lista los nombres y descripciones de los secretos (sin valores) |
secret_read | Lee el valor de un solo secreto por nombre |
Uso
Bash
# Listar secretos disponibles
tai tool secret_list
# Leer un secreto
TOKEN=$(tai tool secret_read '{"name": "GITHUB_TOKEN"}' | jq -r '.value')
git clone "https://${TOKEN}@github.com/org/repo.git"
Node.js
const { execSync } = require("child_process");
function readSecret(name) {
const raw = execSync(
`tai tool secret_read '${JSON.stringify({ name })}'`,
{ encoding: "utf-8" }
);
return JSON.parse(raw).value;
}
const token = readSecret("GITHUB_TOKEN");
Python
import json
import subprocess
def read_secret(name: str) -> str:
result = subprocess.run(
["tai", "tool", "secret_read", json.dumps({"name": name})],
capture_output=True, text=True, check=True,
)
return json.loads(result.stdout)["value"]
token = read_secret("GITHUB_TOKEN")
PowerShell
function Read-Secret {
param([string]$Name)
$json = @{ name = $Name } | ConvertTo-Json -Compress
$result = tai tool secret_read $json | ConvertFrom-Json
return $result.value
}
$token = Read-Secret -Name "GITHUB_TOKEN"
Reglas de Seguridad
- Nunca imprimir o registrar valores de secretos — No escriba secretos en stdout, stderr ni en ningún archivo de registro.
- Nunca escribir secretos en archivos — Excepción: las claves SSH pueden escribirse en
~/.ssh/con permisoschmod 600. - Nunca enviar secretos al LLM — Los valores de los secretos no deben aparecer en el contenido de las indicaciones, mensajes del sistema ni en los resultados de llamadas a herramientas que se envíen al modelo.
- Aislamiento de alcance — Los secretos están vinculados por usuario y por agente. Un agente solo puede acceder a los secretos configurados para él.
- Pista de auditoría — Cada llamada a
secret_readse registra en la pista de auditoría con la identidad de quien la realizó.