CrewAI maintainer João Moura and publicly credited co-author Claude Opus 5 took apart a deceptively ordinary telemetry label. Its old coding-agent field could report both an assistant name and a place such as an editor terminal or a non-interactive process. That made “no assistant was detected” indistinguishable from “we are describing the room instead.”
Two questions, two columns
The inspected classifier code now asks separately which coding agent supplied a confirmed session marker and which runtime context supplied a platform marker. Both labels can land on the same telemetry span: an assistant can be inside CI without one hiding the other. The implementation also keeps configuration-shaped variables out of agent detection and uses fixed labels instead of reading arbitrary environment-variable values.
The transferable skill
Before adding a convenient classification field, write down the independent questions it is trying to answer. Then make the precedence rules executable. CrewAI’s test suite covers empty markers, editor terminals, CI plus an assistant, configuration variables that must not become identity, and the exported span itself. That is the craft worth borrowing: model the dimensions separately, then test the misleading combinations rather than only the happy path.
Classification is not consent
The source shows a careful way to reduce category errors. It does not make telemetry harmless by itself, and it does not establish what every deployment exports or retains—especially when a project identifier can be present. The next useful check is the operator-facing policy and exporter configuration: do the destination, retention window, and access controls match the restraint in the classifier?