'User agent' is a great idea that has been weirdly perverted.
Nobody these days (even highly technical people) has a user agent. (Maybe @drwho does.)
A user agent is a piece of software controlled by the *user*, that performs the automatic tasks the *user* has instructed it to. It communicates with other user agents, automatically, on the user's behalf.
Today, the term 'user agent' means 'long, misleading browser-lineage-identification string'. It identifies one of ~3 corporations.
Imagine if we actually *had* user agents.
Like, imagine if our computers were doing things we wanted them to do, automatically, on the network. And, it was our computers doing these things, instead of a rental service like ifttt or google alerts that's selling info on the back end. Imagine if they stopped doing things when we told them to stop.
Imagine if non-technical users had this too.
'User agent' is basically 'daemon, but controlled by an end user'. And, it's a thing we really need & don't have.
@enkiv2 I remember I think it was the early 1990s, lots of talk about 'software agents'. They were sort of the buzzword term, the 'neural networks' of that decade.
I don't really understand even now what lab that hype came from, and why it went away?
@natecull @enkiv2 i've never really found the "software agents" line of thinking very compelling, or at least it hasn't been very compellingly _presented_. it always felt like hype in much the way that VR or that weird brief period when XML was going to save the world did.
on the other hand, if the idea is just that people should own and control computers which do things with their data in their interests, well, that sure does sound like a pleasant contrast to the status quo.
@brennen I can say that even the term "software agent" sounds sort of dull, uninterestingly hands-off, and like something the average person wouldn't think they needed or was qualified to mess with.
Exactly the opposite of the hands-on, approachable, and self-ownership feel that future tech stuff needs to have.
I think they really are all user agents, because user agent is a term not specific to function.
Anything that is automated but also controlled by a non-technical end user is a user agent.
So the promise is that you can *use* a team of interacting user agents, and each one of them would do a different specific thing, in response perhaps to a user agent whose job was coordinating plans with the user.
Something that got lost in translation is that user agents should be communicating with each other. I think if we had a "user agent communication standard", even if we just renamed jabber, it would be less of an issue.
Download a new user agent from 'inhuman resources' or 'central casting' to do a particular job & it checks in with your assistant agent to plug into your planner system, whatever.
@enkiv2 @natecull @erosdiscordia @brennen This is wrong, historically speaking. AFAIK the origin of the term "user agent" is in email; it's in e.g. https://tools.ietf.org/html/rfc1341 from 1992. Also in POP3 https://tools.ietf.org/html/rfc1081 from 1988. In hat context there was definitely not the idea that one user would usually have several agents or that the agents would talk to each other directly. In 1982 RFC 822 doesn't say "user agent" and uses "agent" in an incompatible way.
I'll take a look, but I've got a sneaking suspicion that the idea of a user agent is about as old as the idea of the filter bubble (the 'Daily Me' proposed at Negroponte's lab in the late 70s) or the Internet of Things ('Ubiquitous Computing' at PARC around 1979).
Person *or* program.
<< The Sender mailbox specification includes a word sequence which must correspond to a specific agent (i.e., a human user or a computer program) rather than a standard address. ... For example in the case of a shared login name, the name, by itself, would not be adequate. >>
Wikipedia is claiming that the concept of the software agent has its origin in the actor model (so, early 1970s). This makes sense: 'agent' and 'actor' share etymology, & 'agent' is a less misleading way to express 'one who performs actions' -- particularly 'one who acts on behalf of another'.
Actor model has, inside it, the assumption that agents communicate with other agents.
But here's another reference to 'agent' in RFC 822, suggesting it was in use in 1981 to mean 'automated computer system process'
Not in the early-90s sense of the agent-hype phase, no. But presumably all terms originate somewhere.
<< Oppen, D.C. and Dalal, Y.K. "The Clearinghouse: A Decentralized Agent for Locating Named Objects in a Distributed Environment," OPD-T8103. Xerox Office Products Division: Palo Alto, CA. (October 1981).
<< Binding is an important architectural component of
a distributed system, and the clearinghouse serves the role of
"glue" that binds together the
many loosely-coupled, network·visible objects. >>
huh is that why Novell Netware always called its 'registry' equivalent 'the bindery'? Always thought that was a weird name.
But I assume that 'agent' must have been a term in use in network thinking in military/science thinking in 1981 to mean 'anything that acts on the system', ie a person, an organisation, an automated system.
A 'software agent' would then specifically be an agent which was software, so, not hardware and not a person.
Talk of *software* agents then would have arisen in a later environment where software was more decoupled from hardware.
I wonder what they are!
Amusingly that 1981 Xerox paper refers to 'internetworking' and 'internetwork' but not yet 'internet protocol'. By 'internetwork' did they still mean 'inter-LAN'?
<< Although the content of this paper does not depend on any particular networking configuration, we will use as an example throughout this paper the Ethernet and its associated Pup-based or Xerox Network Systems-based internetwork routing machinery. >>
Rule-directed Interactive Transaction Agents: An Approach to Knowledge Acquisition : a Report Prepared for Defense Advanced Research Projects Agency by Donald Arthur Waterman, 1978:
"A user agent is a program that can act as an interface between the user and [...]"
Makes sense! DARPA terminology and framing of the problem would always precede use of the term in a DARPA product (eg SMTP)
So 'user agent' in 1978, but as a broader clas of 'transaction agent'?
I guess 'transaction' was a very common term then for 'activity on a computer system'. On-Line Transaction Processing.
It's interesting that we've moved from 'user agent' to 'user INTERFACE', a subtle shift that downgrades the abilities of the agent to just... something like a control panel for a machine.
Though an app today is still a kind of user agent (has credentials to do things on the user's behalf) but we don't tend to use that term...
It's too bad I can't tell what this book is, because it looks like a fascinating read & a clear example of the 90s use of 'user agent'.
It may not be 1977 (just like the title probably isn't "P") but it's clearly pre-90s & probably pre-80s based on the typeface.
"A user agent is a relatively small program that can reside in a user's terminal (or in a portion of a remote timesharing system) to act as an interface between the user and..."
So also 'user interface' being born around here.
C-3P0 in Star Wars ("human-cyborg relations") I think is an example of a reflection in art of what was being actively discussed around then.
The idea that computers would be so complex we'd need other computers to talk to them.
@natecull @enkiv2 @erosdiscordia @brennen Also e.g. the CDC 6600 had small computers to let you talk to the big computer (I forget if they were called "peripheral processors" but that's what, e.g., the chip in the BeagleBoard Black calls them). The Cray-1 was designed with a similar idea, and of course the VT100 and all of DEC's later terminals were actually computers. Other companies did this too; e.g., the HP 3000 terminals had command-line editing and dynamically-allocated scrollback buffers.
Correction: 'P' appears to be a corrupted duplicate copy of "Exemplary Programming in RITA" by Waterman again.
Looks like Waterman at RAND either invented or popularized the idea of a user agent as a software agent sitting between the user & other 'agent'-style programs, in the mid-70s.
Here's the email connection:
The example user agent in the RITA documentation was for email.
Looks like RITA was a general purpose system for building interactive autonomous agents that could communicate, & that this example influenced mail programs on platforms that weren't built around this model.
... frankly I don't think software agents ever took off, except in the restricted form of 'install wizards' and such. I think they're tied fairly heavily to the idea of 'mobile code' that, eg, Java was initially aiming at.
They would be something like 'distributed apps' I think and with all the security challenges associated.
The 'service/server' model, tied to hardware, was initially easier to deploy.
@natecull @erosdiscordia @brennen I think the RFC-821/822 sense of "agent" is the thing you put in the MAIL FROM: field, i.e. where you want the bounces to go. It might be Nate or it might be Nate's secretary or it might be LISTSERV, but it won't be Eudora/Rmail/Elm/PINE/trn, which is the 1988 MIME sense of "user agent". The 1978 Waterman book looks like the modern sense of "user agent" and may be its origin; great scholarship, @enkiv2!
@enkiv2 @natecull @erosdiscordia @brennen The term "agent", I think, but I can't think of any examples of "user agent" from science fiction from that time. Maybe I'm just not well-read enough, though; I look forward to your citations!
Certainly the *concept* of software agents, if not the term, is from the 70s or earlier, as you say.
@natecull @erosdiscordia @brennen I should amend this toot so it doesn't mislead anyone else: downthread, @enkiv2 did in fact find a 1978 reference ("RITA", Waterman & Gillogly) showing "user agent" used to mean specifically this kind of intelligent rule-directed planning agent, and it looks like the circa-1988 adoption of the term for more limited email programs derived from this. So I was wrong!
All friendly creatures are welcome. Be excellent to each other, live humanism, no nazis, no hate speech. Not only for nerds, but the domain is somewhat cool. ;) No bots in general! (only with prior permission)