The user agent string by itself is not PII. The user agent string in context can be PII.
Here's an example you might be familiar with from a business setting: sometimes you can't disclose the identity of certain customers but you really want to talk about them as a reference when selling your product. So instead of "Microsoft" you might say "a big company from Redmond". You're not identifying which company you are talking about but you're providing enough context clues to narrow it down to the point where the most likely company you might be referring to is Microsoft. If you then go on to say something about "the big company from Redmond", that information will clearly be tied to Microsoft (or a very small group of companies where Microsoft is the most likely one) and you might be violating the non-disclosure agreement without ever having explicitly named the customer.
Back in the day, a user agent string would only tell you the OS and browser, with version numbers often only narrowing it down to maybe a year or so. But with browser and OS releases becoming so frequent, the exact version numbers alone will already often vary even between users using "the same" browser and OS and additionally it may sometimes contain information about plugins and other installed software. Alone this is unlikely to narrow it down enough to qualify as "personally identifiable" but that depends entirely on what else you store alongside it (and things like timestamps are definitely additional important context clues).
Here's an example you might be familiar with from a business setting: sometimes you can't disclose the identity of certain customers but you really want to talk about them as a reference when selling your product. So instead of "Microsoft" you might say "a big company from Redmond". You're not identifying which company you are talking about but you're providing enough context clues to narrow it down to the point where the most likely company you might be referring to is Microsoft. If you then go on to say something about "the big company from Redmond", that information will clearly be tied to Microsoft (or a very small group of companies where Microsoft is the most likely one) and you might be violating the non-disclosure agreement without ever having explicitly named the customer.
Back in the day, a user agent string would only tell you the OS and browser, with version numbers often only narrowing it down to maybe a year or so. But with browser and OS releases becoming so frequent, the exact version numbers alone will already often vary even between users using "the same" browser and OS and additionally it may sometimes contain information about plugins and other installed software. Alone this is unlikely to narrow it down enough to qualify as "personally identifiable" but that depends entirely on what else you store alongside it (and things like timestamps are definitely additional important context clues).