'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.

Meaning no offense.
@natecull @enkiv2

@erosdiscordia @brennen @enkiv2

Well, on the one hand, part of the 'software agent' fuss was sort of linked with, um, personal organizers, early handhelds, the idea of an 'electronic butler/secretary' and so there WAS quite a bit of that 'hands-on, approachable' hype about it? You'd have a personal 'Agent' who would be a sort of pseudo-personality in your computer?

But then the other side of the 'software agents' thing was... mobile code, that you'd transmit? I guess 'cloud server' ate that?

@natecull @erosdiscordia @brennen @enkiv2 part of the issue is that "software agents" was used in the late 90s to mean a lot of different peripherally related things… mobile code, filtering rules, ifttt-type triggers, and I think even at one point program trading (of securities)

@kragen @erosdiscordia @brennen @enkiv2

oh, definitely!

That's part of the weirdness around the term. It got generalised to the point where it meant 'any program doing anything' and at that point.... why even use it?

@natecull @kragen @erosdiscordia @brennen

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. tools.ietf.org/html/rfc1341 from 1992. Also in POP3 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.

@kragen @natecull @erosdiscordia @brennen
That chronology can't be right. The term 'user agent' was used in science fiction in this way in the mid 80s, at the latest.

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).

@enkiv2 @kragen @erosdiscordia @brennen

'Agent' has been a term of art in mail handling for a while, hasn't it? 'Mail User Agent' 'Message Transfer Agent' . Makes sense that HTTP inherited SMTP terminology.

But where did that 'agent' terminology come from, I wonder? And when? Mid-1980s, I assume?


@enkiv2 @kragen @erosdiscordia @brennen

As kragen said, RFC 822 (1982) uses the term agent:

'AGENT (person, system or process)'

which makes sense that it was an abstracted concept for 'person or system' in, I guess, DARPA systems thinking around then?

@natecull @enkiv2 @erosdiscordia @brennen Read it more carefully, though; it's talking about secretaries or people loaning you their terminals, not Rmail.

@kragen @enkiv2 @erosdiscordia @brennen

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. >>

@natecull @kragen @erosdiscordia @brennen

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.

@enkiv2 @natecull @erosdiscordia @brennen That's probably a rogue edit by Carl before he got banned from Wikipedia for claiming everything cames from acors

@enkiv2 @kragen @erosdiscordia @brennen

Note that 'Wikipedia' in this case is Carl Hewitt, who tends to spam references to his Actor model *everywhere* and annoys the editors by doing so.

I would take all references to the Actor model as having priority with a grain of salt.

@enkiv2 @kragen @erosdiscordia @brennen

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).

@enkiv2 @kragen @erosdiscordia @brennen

<< 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.

@enkiv2 @kragen @erosdiscordia @brennen

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.

@natecull @kragen @erosdiscordia @brennen

There are hits for both 'software agent' and 'user agent' in literature from before 1980, though (as you'd expect) not many:

@enkiv2 @kragen @erosdiscordia @brennen

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. >>

@natecull @kragen @erosdiscordia @brennen


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 [...]"


@enkiv2 @kragen @erosdiscordia @brennen

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.

@enkiv2 @kragen @erosdiscordia @brennen

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...

@natecull @kragen @erosdiscordia @brennen

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.

@enkiv2 @kragen @erosdiscordia @brennen

"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 @kragen @erosdiscordia @brennen hahahaha

"relatively small"

browsers are the biggest pro grams around

@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.

@natecull @kragen @erosdiscordia @brennen

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.


@enkiv2 @kragen @erosdiscordia @brennen

ha, Waterman also wrote a 1986 'Guide to Expert Systems' so he was in on all the buzzword loops

@natecull @kragen @erosdiscordia @brennen

Well, there's a sensible connection here.

His model of a user agent is clearly a planner system with an ontology about how other agents work -- like an expert system for writing shell scripts.

(In fact, I think that's the main part of 'user agent' that we're missing: what we call user agents are not expert systems anymore, so they don't do anything more than provide new handles for existing functions.)

@enkiv2 @kragen @erosdiscordia @brennen


It appears that around the same time and place and set of people who were building out Internet email, this 'agent' thinking was taking shape.

Some of it maybe turned into 'object' thinking and just changed names...

... or what's now called Service Oriented Architecture?

But some of it maybe got lost in, I dunno, the AI Winter at the end of the 80s or something?

@enkiv2 @kragen @erosdiscordia @brennen

Very cool!

Production systems in 1978, hmm. I think that's where expert systems developed from? Which would explain Waterson being into both.

@natecull @enkiv2 @kragen @erosdiscordia @brennen So, I came across this via a boost. I think Emacs satisfies all of those to some extent. Sadly, though, one can't really fit *all* their computing into Emacs unless they live in a computational vacuum.

Show more

@natecull @kragen @erosdiscordia @brennen

I always thought that the idea of expert systems developed naturally out of work on planners like prolog, planner, & shrdlu.

What is an expert system but a planner with rules designed to model an expert's thinking? -- and we have some of these way back in the 60s with medical expert systems like CASNET & DENDRAL.

@natecull @kragen @erosdiscordia @brennen
There's definitely a canon of expert system hype though, & I wouldn't be surprised if some of it was very strongly influenced by RAND.

Show more

@natecull @enkiv2 @kragen @erosdiscordia @brennen

I kinda figure that a lot of the best goals of it are 1) A Lot Harder than they thought and b) really hard on UI (for example modern "clean" UI is about the furthest thing from explaining as you can get)
... so I feel like a lot of it got brushed aside in favor of quick cheap software

@erosdiscordia @msmouse @natecull @kragen @brennen There's a trend in UI of minimizing initial learning effort rather than maximizing power, & when taken to extremes (as it often is) it ultimately means that power is limited or that simple tasks become difficult. There are obvious ways to navigate the power/ease tradeoff, & this sense of user agent (in particular, the use of backtracking planners) is one:

@erosdiscordia @msmouse @natecull @kragen @brennen ask the agent to do something, then ask "how did you do that & why", & you learn some of the expert system's accumulated knowledge -- so you can eventually learn to second-guess it, if you care enough.

@msmouse @natecull @enkiv2 @erosdiscordia @brennen Not just cheap to write — also cheap to learn to use. Innovations that demand less of the adopter get adopted more easily.

I think there may also be an aspect of naïve anthropomorphization in the 1970s vision of intelligent software agents — it was easier for a professor then with a secretary to imagine a robotic secretary than to imagine, say, shitposting, spam, otherkin, Bitcoin, Tor, Facebook, Tinder, and Twitter?

@kragen @msmouse @enkiv2 @erosdiscordia @brennen

Easier even in the 1979s for a professor or CEO to imagine talking to an intelligent computer than *learning to type*, because, typing was this weird specialised rote mechanical thing that only secretaries did, not Visionary Men Of Ideas

@natecull @msmouse @enkiv2 @erosdiscordia @brennen For some of them, but Engelbart's 1962 vision framed engineers and scholars typing on a keyboard as the commonplace thing and the chording keyset and light pen as the unusual thing — maybe CEOs, but I think many professors were already typing then

@natecull @kragen @erosdiscordia @brennen

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.


@enkiv2 @kragen @erosdiscordia @brennen

'rule-based agents' for email reminds me of fetchmail...

Yep, 'mail retrieval agent'.

For whatever reason, the Internet mail folks LOVED 'agent' terminology.


@natecull @enkiv2 @kragen @erosdiscordia @brennen

en.oxforddictionaries.com/defi defines agent as
(2) a person or thing that takes an active role or produces a specified effect.

which seems to fit the plain language here...

@msmouse @natecull @kragen @erosdiscordia @brennen

That's more or less my defense for the technical use of the term: somebody who hears it has a pretty good idea what a "software agent" or "user agent" is without having it explained.

@msmouse @enkiv2 @kragen @erosdiscordia @brennen

Correct. But there was a certain very specific DARPA culture which seemed to be very interested in what it meant for a program to be an agent in a network of interconnected computers, to the point that when SMTP was developed (early through late 1980s) the 'agent' terminology is used everywhere.

In the same way that, say, 'endpoint' is the current buzzword du jour in antivirus.

Buzzwords usually reflect some fashionable systemic theory.

@msmouse @enkiv2 @kragen @erosdiscordia @brennen

Eg you have one group talking about 'agents'. Another talking about 'objects'. Another about 'daemon processes'. Another about 'clients and servers'. Another, slightly later, about 'components'

All of these subtly different terms reflect different theoretical backgrounds and sometimes the differences in viewpoint and assumptions are important.

@natecull @msmouse @kragen @erosdiscordia @brennen

Right. Even the word choice, outside of the specific technical context, illuminates assumptions & tendencies.

For instance, 'agent' foregrounds the autonomy & the idea of an 'intelligent agent' becomes obvious -- while objects are a much more mechanical frame. Agent & object feel less hierarchical than client & server -- it's natural to expect a difference between client & server in terms of role or power relationship.

@enkiv2 @msmouse @kragen @erosdiscordia @brennen

'Agent' makes sense when you're thinking from an overall networks or systems perspective (as many of these DARPA people were).

I think the vision right from the beginning of DARPA was that there would be humans and machines cooperating across a vast series of linked organisations (ie: the US military-industrial complex) to achieve a goal (ie: to win the Cold War). All of these cooperating entities would be 'agents'.

@enkiv2 @msmouse @kragen @erosdiscordia @brennen

Secret Mail Transfer Man
Secret Mail Transfer Man
They've given you a fillter
And taken away your spam

@natecull @msmouse @kragen @erosdiscordia @brennen

"We therefore view our initial RITA system as an intelligence analyst's workstation, and characteristics of this group (e.g., well-educated and requiring a variety of text manipulation tools and access to external information resources) have influenced our design decisions."

From page 19

@enkiv2 @msmouse @kragen @erosdiscordia @brennen


frankly I think designing personal computing tools as if they were for intelligence analysts would be great

since basically if you have an internet connection in 2018 you are dealing with multiple information feeds many of which are probably disinformation from actual national intelligence agencies

@natecull @msmouse @kragen @erosdiscordia @brennen


Other user bases we should focus more on: scholars, paralegals. (You know, folks who need to pick apart & quote other sources yet have citations. Folks who need to be able to read footnotes without losing their place or task-switching. Folks who need to compare different information streams to look for hidden similarities, collaboratively.)

Show more
Show more

@enkiv2 @msmouse @kragen @erosdiscordia @brennen

<< Alan Kay, a longtime proponent of agent technology, provides a thumbnail sketch tracing the more recent roots of software agents:

“The idea of an agent originated with John McCarthy in the mid-1950’s, and the term was coined by Oliver G. Selfridge a few years later, when they were both at the Massachusetts Institute of Technology... >>

@enkiv2 @msmouse @kragen @erosdiscordia @brennen

<< They had in view a system that, when given a goal, could carry out the details of the appropriate computer operations and could ask for and receive advice, offered in human terms, when it was stuck. An agent would be a ‘soft robot’ living and doing its business within the computer’s
world.” (Kay 1984). >>


@enkiv2 @msmouse @kragen @erosdiscordia @brennen

<< Nwana (1996) splits agent research into two main strands: the first beginning about 1977, and the second around 1990. Strand 1, whose roots are mainly in distributed artificial intelligence (DAI), “has concentrated mainly on deliberative-type agents with symbolic internal models.”..

Strand 2, in contrast, is a recent, rapidly growing movement to study a much broader range of agent types.. >>

@natecull @enkiv2 @msmouse @kragen @erosdiscordia @brennen

Reading the thread, the idea of MIT/DARPA origination, followed by rapid specialisation as the concept was refined correlates highly with the habitually slow, and occasionally radically, but within reasonable *wide* bounds, repurposing of terms that's such a hallmark of the evolution of computer science.

@natecull @msmouse @kragen @erosdiscordia @brennen

Awesome! So, we've got a very clear line here: agents come out of planners by way of (Kay's) object orientation. This is a great through-line, because it foregrounds the similarity between message-passing OO and agent communication.

(Now to document a connection with Minsky's society of mind that's stronger than Minsky & McCarthy being in the same dept)

@enkiv2 @msmouse @kragen @erosdiscordia @brennen

It's pretty cool that this book is up online! Interesting guy.


<< Jeff helped pioneer the research area of multi-agent systems, and his first book on the topic, Software Agents, became a classic in the field and a best-seller for The MIT Press. >>

Sign in to participate in the conversation

Server run by the main developers of the project 🐘 It is not focused on any particular niche interest - everyone is welcome as long as you follow our code of conduct!