Test

Exécutez un agent avec un modèle scripté dans vos tests : agents.testing.

NomCe que c'est
testing.ScriptedModelRépond à chaque appel au modèle avec l'étape suivante du script, dans l'ordre.
testing.replyScripte un appel au modèle qui répond avec text.
testing.callScripte un appel au modèle qui demande l'outil name, le nom que voit le modèle, avec arguments.
testing.run_typescriptScripte un appel au modèle qui exécute code dans run_typescript.
testing.ScriptedModel

testing.ScriptedModel

class ScriptedModel(steps: Sequence[ToolCallStep | ReplyStep])

Répond à chaque appel au modèle avec l'étape suivante du script, dans l'ordre.

Transmettez-le à Agent.override, sous la forme agent.override(model=model), dans un test. Un appel au modèle au-delà de la dernière étape échoue avec une erreur qui indique la longueur du script, et une étape d'appel d'outil fait échouer son appel au modèle lorsque cet appel ne propose pas l'outil. Il ne répond que dans le processus de test : agents serve et agents deploy refusent un agent surchargé avec l'erreur UnsupportedAgentFeatureError.

Par exemple, dans un test asynchrone d'un agent avec un outil get_weather, le modèle appelle l'outil depuis run_typescript, puis répond :

model = agents.testing.ScriptedModel([
    agents.testing.run_typescript("return await tools.client.get_weather({city: 'Paris'})"),
    agents.testing.reply("Sunny."),
])
state = await agent.override(model=model).run("Weather in Paris?")
assert state.tool_calls[0].arguments == {"city": "Paris"}
assert state.text == "Sunny."
model.assert_consumed()
ParamètreTypeValeur par défautDescription
stepsSequence[ToolCallStep | ReplyStep]requisLe script, une étape par appel au modèle : chaque étape est renvoyée par testing.call, testing.run_typescript ou testing.reply.
testing.ScriptedModel.assert_consumed

testing.ScriptedModel.assert_consumed

def assert_consumed() -> None

Échoue si une étape du script n'a jamais été utilisée.

testing.reply

testing.reply

def testing.reply(text: str) -> ReplyStep

Scripte un appel au modèle qui répond avec text.

ParamètreTypeValeur par défautDescription
textstrrequisLa réponse du modèle.
testing.call

testing.call

def testing.call(name: str, /, **arguments: JsonValue) -> ToolCallStep

Scripte un appel au modèle qui demande l'outil name, le nom que voit le modèle, avec arguments.

Le modèle doit pouvoir appeler name directement. Un outil avec le model_access par défaut (un agents.ToolModelAccess) est appelé depuis run_typescript : scriptez-le avec run_typescript.

ParamètreTypeValeur par défautDescription
namestrrequisLe nom de l'outil, tel que le modèle le voit.
**argumentsJsonValue{}Les arguments de l'appel.
testing.run_typescript

testing.run_typescript

def testing.run_typescript(code: str) -> ToolCallStep

Scripte un appel au modèle qui exécute code dans run_typescript.

Le programme appelle un outil sous la forme tools.<namespace>.<name>(...), comme le ferait un vrai modèle.

ParamètreTypeValeur par défautDescription
codestrrequisLe programme TypeScript.