Logging and observability

Recording what happened so the record is usable later.

How should I log agent actions so the log is usable as evidence later?

Log the decision, not the narration. A line saying your agent chose to update the record is the model's account of itself. A line saying this identity called this endpoint against this resource and was allowed is your system's account. Only the second survives a reader who does not trust the agent. Record who called. Record under whose authority, what was touched, what the authorisation decision was, and when. Record your denials too. A log with no denials in it cannot tell a working control from an unreached one. Identifiers you can join on beat volume every time.

How do I evidence which model processed a customer's record?

Record the model and version on the call, at the time of the call. Not your configured default. Not what you believe was deployed. Those two answers diverge during a rollout, which is exactly when somebody asks. This is the same discipline as recording which code version served a request. It gets skipped because a model feels like a setting rather than a dependency. It is a dependency. When a provider deprecates a version, your question is which records went through it. That is answerable or it is not.