0%
Registrar logs de um agente e controlar seu custo

Logs e custos

Reconstituir uma trajetória e impedir que um loop dispare os gastos.

10-15 min

Registrar logs de um agente e controlar seu custo

Um agente em produção falha de um jeito diferente de um programa comum. Ele não quebra: chega a um resultado errado por um caminho plausível. Um cliente avisa que uma busca retornou os dados de outro processo, e você descobre que seus logs contêm uma única linha — «chamada do agente, status 200, 14 s» — que não diz nada sobre a dezena de decisões tomadas entre a entrada e a saída.

Esse é o ponto comum de todos os incidentes com agentes: o dado que permitiria entender o que houve é produzido durante a execução e perdido no final. O registro de logs de um agente não é, portanto, um refinamento operacional, mas a condição para conseguir corrigir qualquer coisa. É também a única forma séria de saber quanto o agente custa.

O que registrar

Uma trajetória é uma sequência de turnos, cada um composto por uma decisão do modelo e, eventualmente, uma chamada de ferramenta. A unidade de registro é, portanto, o turno, e não a requisição.

# Um evento por turno. A chave e o identificador da trajetoria:
# e ele que permite reagrupar os turnos de uma mesma execucao.
journal.info(
    "tour_agent",
    extra={
        "trajectoire_id": trajectoire.id,     # UUID gerado na entrada
        "utilisateur_id": demande.utilisateur_id,
        "tour": 3,
        "outil": "chercher_dossiers",
        "arguments": {"requete": "facture impayee", "limite": 20},
        "resultat_taille": 4821,              # bytes, nao o conteudo
        "duree_ms": 340,
        "jetons_entree": 2145,
        "jetons_sortie": 88,
        "motif_arret": None,
    },
)

Comentários

Os comentários são alimentados pelo GitHub Discussions

Conecte-se com o GitHub para participar da discussão

Link copiado!