Gestion des secrets
Les agents peuvent lire les secrets configurés par l'utilisateur au moment de l'exécution à l'aide de l'interface en ligne de commande tai tool.
Les secrets sont chiffrés au repos (AES-256-GCM) et déchiffrés uniquement lors de leur lecture.
Outils disponibles
| Outil | Description |
|---|---|
secret_list | Liste les noms et descriptions des secrets (pas de valeurs) |
secret_read | Lit la valeur d'un seul secret par son nom |
Utilisation
Bash
# Lister les secrets disponibles
tai tool secret_list
# Lire un secret
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"
Règles de sécurité
- Ne jamais imprimer ou journaliser les valeurs des secrets — N'écrivez pas les secrets dans stdout, stderr ou tout fichier de journal.
- Ne jamais écrire les secrets dans des fichiers — Exception : les clés SSH peuvent être écrites dans
~/.ssh/avec les permissionschmod 600. - Ne jamais envoyer les secrets au LLM — Les valeurs des secrets ne doivent pas apparaître dans le contenu des prompts, les messages système ou les résultats d'appels d'outils transmis au modèle.
- Isolation par portée — Les secrets sont limités par utilisateur et par agent. Un agent ne peut accéder qu'aux secrets configurés pour lui.
- Piste d'audit — Chaque appel à
secret_readest enregistré dans la piste d'audit avec l'identité de l'appelant.