Aller au contenu
English

Authentification

Choisissez l’accès par compte ou par clé d’API et configurez les identifiants transmis à votre agent.

Choisissez le mode de connexion de chaque agent avec l’option authentication de son harness. Utilisez "account" pour les identifiants d’un compte ou "usage" pour une clé d’API ; Outpost ne choisit pas ce mode automatiquement.

import {
  createAgent,
  createClaudeHarness,
  createCodexHarness,
} from "@elie-laloum/outpost";

// Votre abonnement ChatGPT, depuis ~/.codex/auth.json
export const planCoder = createAgent({
  harness: createCodexHarness({ authentication: "account" }),
});

// Facturation API, depuis une variable transmise au harness
export const apiCoder = createAgent({
  harness: createClaudeHarness({
    authentication: "usage",
    variables: { ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY ?? "" },
  }),
});
"account""usage"
UtiliseVotre connexion CLI ou un jeton d’abonnementUne clé API
FacturationVotre abonnement ChatGPT, Claude, Copilot, Google ou KimiAu jeton, sur le compte API de l’éditeur
Sur l’hôteLe fichier de connexion du CLI, par exemple ~/.codex/auth.jsonUne variable que vous déclarez
Dans la sandboxUne copie de la connexion dans le répertoire personnel privé de la sandboxLa clé, dans la variable standard du CLI
Adapté àVos propres exécutions, dans les conditions de votre abonnementLa CI, les services et l’automatisation partagée par une équipe

Sans authentication, Outpost ne prépare rien : la CLI utilise l’accès dont la sandbox dispose déjà. Provenance des variables déclarées : Variables d’environnement.

Dans cet exemple, l’agent utilise une clé d’API que votre équipe lui transmet par variable d’environnement.

Référence API : AgentAuthentication, AccountCredential et UsageCredential.

La page de chaque agent indique sa commande de connexion. Consultez son contrat API pour choisir la source des identifiants.

import { createAgent, createCodexHarness } from "@elie-laloum/outpost";

export const teamCoder = createAgent({
  harness: createCodexHarness({
    // Transmise à Codex sous le nom OPENAI_API_KEY
    authentication: { usage: { variable: "TEAM_OPENAI_KEY" } },
    variables: { TEAM_OPENAI_KEY: process.env.TEAM_OPENAI_KEY ?? "" },
  }),
});

Outpost lit uniquement le fichier sélectionné, jamais un trousseau système. La suite dépend de l’endroit où l’agent s’exécute.

Sandbox isoléeExécution sur l’hôte
Fichier de connexionCopié dans un répertoire personnel privé, supprimé avec la sandbox ; le jeton de Copilot passe par une variableNon lu : la CLI utilise votre session hôte
Variables d’identificationTransmises aux commandes de l’agentTransmises aux commandes de l’agent
Commandes de connexionExécutées dans la sandbox, par exemple codex login --with-api-keyNon exécutées
  • Claude rejette les variables contradictoires au dispatch : les formes compte échouent si ANTHROPIC_API_KEY a une valeur dans .outpost/.env ou dans les variables du harness ou du fournisseur, les formes usage si CLAUDE_CODE_OAUTH_TOKEN en a une.
  • Les formes compte de Kimi rejettent des valeurs de KIMI_CODE_OAUTH_HOST, KIMI_OAUTH_HOST ou KIMI_CODE_BASE_URL qui contredisent la région choisie. Le mode usage de Kimi exige un nom de modèle dans createAgent().
  • Copilot n’a pas de mode usage et refuse les jetons classiques ghp_. Une connexion conservée dans le trousseau système est illisible : transmettez le jeton avec { account: { variable } }.
  • Codex avec un modelProvider personnalisé n’accepte que les formes usage.
  • Un fichier de connexion doit être un fichier ordinaire d’au plus 1 Mio, pas un lien symbolique.
  • Une forme non prise en charge échoue dès l’appel à createAgent(). Un fichier ou une variable manquants échouent au dispatch avec le code configuration, en indiquant la commande de connexion.

API : AgentAuthentication · AccountCredential · UsageCredential.