Aller au contenu
English

Configurer Codex

Exécutez Codex avec votre compte ou une clé d’API, y compris sur un service compatible avec l’API Responses.

L’image d’agent contient déjà Codex. Si vous gérez votre propre image, installez son outil en ligne de commande avec npm :

npm install -g @openai/codex

Si une sandbox distante (cloud, conteneur isolé ou Firecracker) n’a pas de codex, Outpost installe avec npm la version fixée dans agentVersions, dans le répertoire personnel de la sandbox, avant le premier tour. Passez bootstrap: false à dispatch() ou createSandbox() quand l’image doit la fournir (Images d’agent).

Connectez-vous sur l’hôte avec un stockage des identifiants en fichier, puis sélectionnez authentication: "account".

codex -c cli_auth_credentials_store='"file"' login
import { createAgent, createCodexHarness } from "@elie-laloum/outpost";

export const coder = createAgent({
  harness: createCodexHarness({ authentication: "account" }),
});

Outpost copie ~/.codex/auth.json, ou auth.json sous CODEX_HOME, dans le répertoire personnel privé de la sandbox. L’usage est décompté de votre abonnement ChatGPT. { account: { file: "/path/to/auth.json" } } sélectionne un autre fichier de connexion. OpenAI documente les deux modes de connexion dans Authentification Codex.

authentication: "usage" connecte Codex avec OPENAI_API_KEY dans la sandbox. La plateforme OpenAI facture cet usage séparément des abonnements ChatGPT.

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

export const coder = createAgent({
  harness: createCodexHarness({
    authentication: "usage",
    variables: { OPENAI_API_KEY: process.env.OPENAI_API_KEY ?? "" },
  }),
});

Autres noms de variable et sources de clé : Authentification.

modelProvider dirige Codex vers un autre point d’accès qui implémente l’API Responses d’OpenAI. Il exige un model explicite.

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

export const coder = createAgent({
  harness: createCodexHarness({
    modelProvider: {
      baseUrl: "https://llm.example.com/v1",
      apiKeyEnvironment: "LLM_API_KEY",
    },
    authentication: "usage",
    variables: { LLM_API_KEY: process.env.LLM_API_KEY ?? "" },
  }),
  model: "my-model",
});

Référence API : CodexModelProvider.

Référence API : CodexSettings.

Les exécutions sans terminal ignorent les demandes d’approbation de Codex et sa propre sandbox : c’est la sandbox Outpost qui isole l’agent. approvalReviewer: "auto_review" confie plutôt chaque demande d’approbation au relecteur automatique de Codex. Dans un terminal interactif, la valeur par défaut "user" vous laisse approuver.

  • Outpost ne lit jamais le trousseau du système : une connexion qui y est stockée ne peut pas être copiée. Reconnectez-vous avec un stockage en fichier.
  • maxOutputTokens et les valeurs de reasoning hors de la liste ci-dessus sont refusés à la composition de l’agent.
  • Un modelProvider personnalisé n’accepte que l’authentification usage. Les points d’accès Chat Completions ne fonctionnent pas.
  • Codex présente app-server comme expérimental ; la réorientation dépend de son protocole.
  • Avec l’exécution sur l’hôte, rien n’isole Codex, puisque les exécutions sans terminal contournent sa propre sandbox.

API : createCodexHarness · CodexSettings · CodexModelProvider · createCodexConversations.