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.
Related: How do I attribute an action an agent took to the person who authorised it?, How do I know an agent's own evidence wasn't produced by the agent?
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.
Related: My agent behaves differently after a model change. Do my controls still hold?, How do I version a prompt so a change is evidenced?