SubAgent est un modèle Pydantic. Lors de sa construction, vous pouvez définir chacun des champs ci-dessous sous forme d’argument nommé.
SubAgent est un gestionnaire de contexte et peut être utilisé dans une instruction with.
Champs
Méthodes
start_llm
_current_llm afin que le LLM soit accessible via
get_current_llm(), qu’un gestionnaire de contexte soit utilisé ou non.
Rattache le parent OTel du LLM au span de ce SubAgent si l’on est déjà
entré dans le SubAgent.
start_tool
start_subagent
record
system_instructions, agent_id,
…). Seuls les champs explicitement transmis
(différents de None) sont appliqués ; les valeurs existantes sont conservées. Renvoie
self pour permettre le chaînage. Fonctionne comme Turn.record / LLM.record.
Remarque : en mode streaming (with), le span du sous-agent est nommé
d’après name lors de __enter__. Si le nom du span doit refléter cette valeur, définissez donc name via start_subagent
/ turn.subagent plutôt que via record. record met toutefois à jour l’attribut
gen_ai.agent.name.
end
start
__enter__ sans le with.
Passez set_current=False à start_subagent lorsque plusieurs sous-agents peuvent s’exécuter
simultanément. end() se détache via ContextVar.reset, ce qui
corrompt silencieusement la pile de contexte ambiante lorsque des spans qui se chevauchent
ne se terminent pas dans l’ordre LIFO : le span restant au même niveau cesse d’être le span courant,
et le dernier détachement restaure un span déjà terminé. Dans tous les cas, les enfants créés
via start_llm / start_tool / start_subagent s’imbriquent sous
ce span, car ces fabriques transmettent explicitement un contexte
parent.
record_error
end() le moment venu.
set_attributes
span.set_attributes({"weave.tag": "value"}). Équivalent de la méthode
Span.set_attributes d’OTel.
Doit être appelée une fois le span démarré par une fabrique start_*, par start() ou par with,
et avant sa fin. En dehors de cette fenêtre, l’appel est sans effet
et journalise un avertissement. Pour l’ingestion par lots, renseignez directement les champs déclarés de l’objet
et passez-le à log_turn / log_conversation.