Aller au contenu
English

ReplayAgent

import type { ReplayAgent } from "@elie-laloum/outpost";
  • kindRequis
    "replay"
    Toujours replay. Distingue un agent de rejeu, qui n’a ni harness ni modèle, des agents cli et custom dans l’union Agent.
  • sourceRequis
    "harness" | "agent"
    Source d’observation des événements rejoués : harness si le journal provient du harness Outpost, sinon agent.
  • divergenceRequis
    ReplayDivergencePolicy
    Politique de divergence : fail lève ReplayDivergence ; warn signale les divergences prompt, baseline, tree et unrecorded par des avertissements et continue.
  • turnsRequis
    readonly ReplayTurn[]
    Tours enregistrés extraits du journal, dans l’ordre d’exécution.
  • remainingTurnsRequis
    number
    Nombre de tours enregistrés pas encore consommés par un dispatch ; 0 après un rejeu complet.
  • nextTurnRequis
    () => ReplayTurn | undefined
    Consomme et renvoie le tour enregistré suivant, ou undefined quand le journal est épuisé. Le dispatch l’appelle une fois par tour ; un agent de rejeu ne sert qu’une fois.
  • pendingSteeringRequis
    () => readonly string[] | undefined
    Consignes enregistrées qui ont repris le tour suivant, sans le consommer ; le dispatch s’en sert pour poursuivre une passe pilotée comme enregistrée. Undefined lorsque le tour suivant n’était pas une reprise de pilotage.
  • nameRequis
    string
    Identifiant d’agent natif utilisé dans les événements et diagnostics.
  • bootstrapOptionnel
    string | undefined
    Agent intégré dont Outpost installe la CLI épinglée sur une sandbox distante quand l’exécutable manque : un paquet npm, ou une archive vérifiée par SHA-512 pour antigravity. Un nom inconnu échoue.
  • requiresFinishedEventOptionnel
    boolean | undefined
    Exige l’événement final natif : sans lui, les marqueurs de fin ne correspondent pas et le tour échoue avec le code process, même si le processus se termine avec 0.
  • usageOptionnel
    "events" | "session" | "unavailable" | undefined
    Mode de mesure de l’usage de jetons : events le lit dans le flux de sortie, session lit la session après la sortie du processus, unavailable n’enregistre rien. Des compteurs manquants marquent alors l’usage incomplet ; en son absence, les événements rapportés sont comptés sans cette vérification.
  • variablesOptionnel
    Readonly<Record<string, string>> | undefined
    Variables d’environnement ajoutées à chaque commande de cet agent, par-dessus les valeurs de .outpost/.env. Un nom également défini par le provider de sandbox échoue avec le code configuration.
  • storageOptionnel
    ConversationStore | undefined
    Store de conversations qui capture, localise et restaure les sessions de cet agent ; absent quand ses conversations ne sont pas portables.
  • captureOptionnel
    boolean | undefined
    Enregistre la conversation dans storage après chaque tour ; false l’évite. En son absence, un tour est enregistré dès que storage existe.
  • resumableOptionnel
    boolean | undefined
    Indique si l’agent peut poursuivre une conversation, ce qu’exigent continuation, les réparations de réponse et le pilotage par reprise ; false refuse continuation avant l’allocation. La reprise à froid exige aussi storage.
  • forkableOptionnel
    boolean | undefined
    Indique si l’agent peut forker une conversation ; false refuse le fork avant l’allocation. En son absence, le fork est tenté via request() ou le hook fork.
  • transcriptUsageOptionnel
    ((text: string) => Usage | undefined) | undefined
    Lit l’usage de jetons dans la transcription capturée après le tour ; un résultat remplace l’usage rapporté par les événements, undefined le conserve.
export interface ReplayAgent extends AgentFeatures {
  readonly kind: "replay";
  readonly source: "agent" | "harness";
  readonly divergence: ReplayDivergencePolicy;
  readonly turns: readonly ReplayTurn[];
  readonly remainingTurns: number;
  nextTurn(): ReplayTurn | undefined;
  /** Instructions that resumed the next recorded turn, without consuming it. */
  pendingSteering(): readonly string[] | undefined;
}