Aller au contenu principal

enterprise_ai.runtime.runner

Source : sdks/python/src/enterprise_ai/runtime/runner.py. Retour à l'index de la référence du SDK Python.

remarque

Cette page est générée par tools/docs/gen_sdk_reference.py depuis les sources du SDK et les dossiers de textes OpenAPI. Ne la modifiez pas à la main : changez la source et régénérez.

Modèle TurnResult​

Résultat de :meth:AgentRunner.run_turn.

Champs :

NomTypeRequisDescription
final_textstr | NoneouiRéponse finale du modèle, ou None si le tour s'est arrêté avant.
messageslist[dict[str, Any]]ouiTous les messages du tour, y compris les résultats d'outils et les relances.
stepsintouiNombre d'appels au modèle du tour.
stop_reasonstrouiRaison de la fin du tour : completed, stopped, waiting_approval, no_progress, max_steps, max_tool_calls, max_cost ou max_duration.
nudgesdict[str, int]nonNombre de déclenchements de chaque règle de continuation, par code de règle.
usagedict[str, Any]nonCompteurs d'usage ajoutés à la consommation de budget, par exemple input_tokens, output_tokens.
tool_callsintnonNombre d'appels d'outils du tour.

Attributs :

NomTypeRequisDescription
okboolouiVrai quand stop_reason vaut completed.
outputstr | NoneouiTexte de la réponse finale (identique à final_text).

TurnResult.state​

state() -> dict[str, Any]

État sérialisable stocké dans les checkpoints (entrée de reprise).

Cet élément ne prend aucun paramètre.

Retour : dict[str, Any]. Dict avec messages, step, tool_calls, nudges, usage, stop_reason et final.

Classe AgentRunner​

Exécute des tours d'agent via la passerelle de la plateforme, avec outils, règles et gouvernance.

Attributs :

NomTypeRequisDescription
agent_idouiIdentifiant de l'agent envoyé dans l'extension eai.
approval_forouiMotifs glob des noms d'outils qui demandent une approbation humaine.
approval_timeoutouiAttente maximale d'une décision d'approbation, en secondes.
audit_modeouiTour d'audit avec une marge d'exploration plus longue.
budgetouiLimites du tour (LoopBudget).
clientouiClient Enterprise AI (passerelle, outils, runs, approbations), ou None.
data_classificationouiClassification des données du tour, envoyée dans l'extension eai.
effortouiEffort de raisonnement des appels au modèle via la passerelle.
heartbeatouiLes heartbeats sont envoyés avant chaque appel au modèle et à un outil.
last_heartbeatHeartbeatResponse | NoneouiDernière réponse de heartbeat, analysée en HeartbeatResponse, ou None.
mcp_toolsouiSpecs d'outils OpenAI des outils MCP.
modelouiIdentifiant du modèle utilisé pour les appels à la passerelle.
on_eventouiFonction de rappel des événements (kind, data), ou None.
read_only_patternsouiMotifs glob des noms d'outils en lecture seule.
remote_toolouiFonction qui exécute les outils ni locaux ni MCP, ou None.
remote_toolsouiSpecs d'outils OpenAI des outils du Tool Gateway.
require_deliveryouiLe tour doit utiliser au moins un outil avant de répondre.
rulesouiRègles de continuation évaluées par le tour.
run_idouiRun serveur qui reçoit les étapes, checkpoints et heartbeats.
session_idouiIdentifiant de session envoyé dans l'extension eai.
stop_eventouithreading.Event qui arrête le tour à sa prochaine frontière.
subagentsouiGestionnaire de sous-agents branché sur le tour, ou None.
task_idouiIdentifiant de tâche envoyé dans l'extension eai.
toolsdict[str, LocalTool]ouiOutils locaux par nom.
verify_patternsouiMotifs glob des noms d'outils de vérification.
wait_for_approvalouiLe tour attend les décisions d'approbation au lieu de s'arrêter.

Constructeur AgentRunner​

AgentRunner(client: Any = None, model: str | None = None, model_call: ModelCall | None = None, effort: str | None = None, tools: dict[str, LocalTool] | list[LocalTool] | None = None, remote_tools: list[dict[str, Any]] | None = None, mcp_tools: list[dict[str, Any]] | None = None, remote_tool: Callable[[str, dict[str, Any]], Any] | None = None, budget: Any = None, rules: list[ContinuationRule] | None = None, agent_id: str | None = None, session_id: str | None = None, run_id: str | None = None, task_id: str | None = None, data_classification: str | None = None, approval_for: list[str] | None = None, wait_for_approval: bool = True, approval_timeout: float = 3600.0, stop_event: threading.Event | None = None, heartbeat: bool = True, require_delivery: bool = False, audit_mode: bool = False, verify_patterns: tuple[str, ...] = VERIFY_PATTERNS, read_only_patterns: tuple[str, ...] = READ_ONLY_PATTERNS, subagents: Any = None, on_event: Callable[[str, dict[str, Any]], None] | None = None) -> None

Configure le runner ; il lui faut un model_call, ou un client et un model.

NomTypeDéfautRequisDescription
clientAnyNonenonClient parent.
modelstr | NoneNonenonIdentifiant du modèle utilisé pour les appels à la passerelle quand aucun model_call n'est fourni.
model_callModelCall | NoneNonenonFonction (messages, tools) -> dict qui remplace l'appel à la passerelle.
effortstr | NoneNonenonEffort de raisonnement des appels au modèle via la passerelle.
toolsdict[str, LocalTool] | list[LocalTool] | NoneNonenonOutils locaux, sous forme de dict par nom ou de liste de LocalTool.
remote_toolslist[dict[str, Any]] | NoneNonenonSpecs d'outils OpenAI des outils du Tool Gateway proposés au modèle.
mcp_toolslist[dict[str, Any]] | NoneNonenonSpecs d'outils OpenAI des outils MCP, exécutés via client.mcp.call_tool.
remote_toolCallable[[str, dict[str, Any]], Any] | NoneNonenonFonction (name, arguments) qui exécute les outils ni locaux ni MCP.
budgetAnyNonenonLimites du tour (max_steps, max_tool_calls, max_cost, max_duration) ; un LoopBudget par défaut s'il est omis.
ruleslist[ContinuationRule] | NoneNonenonRègles de continuation ; default_rules() si elles sont omises.
agent_idstr | NoneNonenonIdentifiant de l'agent envoyé dans l'extension eai des appels au modèle.
session_idstr | NoneNonenonIdentifiant de session envoyé dans l'extension eai.
run_idstr | NoneNonenonRun serveur qui reçoit les étapes, checkpoints et heartbeats ; sans lui, rien n'est remonté.
task_idstr | NoneNonenonIdentifiant de tâche envoyé dans l'extension eai.
data_classificationstr | NoneNonenonClassification des données du tour, envoyée dans l'extension eai.
approval_forlist[str] | NoneNonenonMotifs glob de noms d'outils (comparés aussi sous la forme tool:<nom>) qui demandent une approbation humaine.
wait_for_approvalboolTruenonAttend la décision d'approbation ; si False, le tour se termine avec le stop_reason waiting_approval (True par défaut).
approval_timeoutfloat3600.0nonAttente maximale d'une décision d'approbation, en secondes (3600.0 par défaut).
stop_eventthreading.Event | NoneNonenonthreading.Event qui arrête le tour à sa prochaine frontière quand il est positionné ; un nouvel événement par défaut.
heartbeatboolTruenonEnvoie un heartbeat au run avant chaque appel au modèle et à un outil, et s'arrête sur action=stop (True par défaut).
require_deliveryboolFalsenonRenvoie le modèle au travail quand il répond sans avoir utilisé d'outil (False par défaut).
audit_modeboolFalsenonTour d'audit : autorise 8 tours en lecture seule avant la relance d'exploration au lieu de 4 (False par défaut).
verify_patternstuple[str, ...]VERIFY_PATTERNSnonMotifs glob des noms d'outils de vérification (*test*, *verify*, *check*, *lint*).
read_only_patternstuple[str, ...]READ_ONLY_PATTERNSnonMotifs glob des noms d'outils en lecture seule (read*, get*, list*...), utilisés par les règles d'exploration et de vérification.
subagentsAnyNonenonGestionnaire de sous-agents dont inject_results ajoute les résultats des sous-agents terminés aux messages avant chaque appel au modèle.
on_eventCallable[[str, dict[str, Any]], None] | NoneNonenonFonction (kind, data) appelée sur les événements model, tool, nudge, approval_requested et stop.

AgentRunner.approve​

approve(name: str, arguments: dict[str, Any], approval_id: str | None = None) -> bool

Demande une approbation humaine d'un appel d'outil (tools:invoke) et attend la décision.

NomTypeDéfautRequisDescription
namestrouiNom de l'outil à approuver.
argumentsdict[str, Any]ouiArguments de l'appel d'outil, inscrits comme motif de la demande (500 premiers caractères).
approval_idstr | NoneNonenonDemande d'approbation existante à attendre ; une nouvelle est créée si elle est omise.

Retour : bool. Vrai quand la décision vaut approved ; sans client ou avec wait_for_approval=False, le tour s'arrête en waiting_approval.

AgentRunner.call_model​

call_model(messages: list[dict[str, Any]], tools: list[dict[str, Any]]) -> dict[str, Any]

Appelle le modèle avec model_call, sinon via client.gateway.chat avec le modèle, l'effort et l'eai du runner.

NomTypeDéfautRequisDescription
messageslist[dict[str, Any]]ouiMessages de chat du tour jusqu'ici.
toolslist[dict[str, Any]]ouiSpecs d'outils OpenAI proposées au modèle.

Retour : dict[str, Any]. Dict chat.completion brut, avec eai_cost quand la passerelle a mesuré le coût ; lève ValueError sans model_call, client ou modèle.

Erreurs levées : ValueError.

AgentRunner.check_stop​

check_stop(step: int) -> None

Lève une exception quand l'événement d'arrêt est positionné ou que le heartbeat répond action=stop.

NomTypeDéfautRequisDescription
stepintouiNuméro de l'étape courante, envoyé avec le heartbeat.

Retour : None.

AgentRunner.checkpoint​

checkpoint(state: dict[str, Any]) -> Any

Écrit un checkpoint du tour sur le run, nommé step-<n>.

NomTypeDéfautRequisDescription
statedict[str, Any]ouiÉtat du tour à enregistrer (voir TurnResult.state).

Retour : Any. Réponse de client.runs.checkpoint, ou None sans client ni run.

AgentRunner.eai​

eai() -> dict[str, Any]

L'extension eai de la passerelle : agent, session, run, tâche et classification des données.

Cet élément ne prend aucun paramètre.

Retour : dict[str, Any]. Dict des champs d'identité renseignés, sans les valeurs vides.

AgentRunner.execute​

execute(name: str, arguments: dict[str, Any]) -> Any

Exécute un outil local, MCP ou du Tool Gateway.

NomTypeDéfautRequisDescription
namestrouiNom de l'outil demandé par le modèle.
argumentsdict[str, Any]ouiArguments de l'appel d'outil, décodés depuis le JSON du modèle.

Retour : Any. Résultat de l'outil ; {error: rejected_by_approver} quand une approbation du Tool Gateway est refusée ; lève EaiError tool_not_found si rien ne l'exécute.

Erreurs levées : EaiError.

AgentRunner.limit_reached​

limit_reached(steps: int, tool_calls: int, cost: Decimal, started: float) -> str | None

Vérifie les limites d'étapes, de coût et de durée du budget.

NomTypeDéfautRequisDescription
stepsintouiAppels au modèle effectués dans le tour jusqu'ici.
tool_callsintouiAppels d'outils effectués jusqu'ici ; la limite d'appels d'outils est elle-même vérifiée avant chaque appel.
costDecimalouiCoût dépensé dans le tour jusqu'ici, en Decimal.
startedfloatouiValeur de time.monotonic() au début du tour.

Retour : str \| None. max_steps, max_cost ou max_duration pour la première limite atteinte, sinon None.

AgentRunner.needs_approval​

needs_approval(name: str) -> bool

Indique si un appel d'outil demande une approbation humaine.

NomTypeDéfautRequisDescription
namestrouiNom de l'outil.

Retour : bool. Vrai quand l'outil local a requires_approval ou que le nom correspond à approval_for.

AgentRunner.record​

record(step: dict[str, Any]) -> None

Remonte une étape sur le run (POST /v1/runs/{id}/steps) ; sans effet sans client ni run.

NomTypeDéfautRequisDescription
stepdict[str, Any]ouiDocument d'étape, par exemple {kind: model_call, name, state} ou {kind: tool_call, name, state}.

Retour : None.

AgentRunner.run_turn​

run_turn(messages: list[dict[str, Any]], state: dict[str, Any] | None = None) -> TurnResult

Exécute un tour. state (un checkpoint) reprend un tour interrompu.

NomTypeDéfautRequisDescription
messageslist[dict[str, Any]]ouiMessages de chat qui ouvrent le tour ; ignorés quand state contient des messages.
statedict[str, Any] | NoneNonenonÉtat de checkpoint à reprendre (messages, étape, appels d'outils, relances, consommation).

Retour : TurnResult. Un TurnResult : résultat de :meth:AgentRunner.run_turn.

AgentRunner.tool_specs​

tool_specs() -> list[dict[str, Any]]

Outils proposés au modèle : les outils locaux, puis ceux du Tool Gateway, puis les outils MCP.

Cet élément ne prend aucun paramètre.

Retour : list[dict[str, Any]]. Liste de specs d'outils fonction OpenAI.