MeatballWiki | RecentChanges | Random Page | Indices | Categories

An agent, but not an IntelligentAgent. Things that work for you without having to ask you what to do. ElectronicMailSorting? is one application of this: whether you use the Rules Wizard in Outlook, sorting options in Netscape Mail or Slocal or Procmail on Unix systems, you don't have to repeat the actions over and over again that mail from this list goes into this folder and mail saying "Make.Money.Fa$t" gets thrown in the Spamheap. You tell it explicitly. The agent doesn't have to learn because you tell it.

A retroactive naming for tools that have been around, working quietly but quite well for a long time. AI researchers tend to discount them, but they do their job quite well - much better than the SmartAgents some people keep hyping (though this may change at any time - and may already have changed in some areas).

I think you'll find most AI researchers are quite annoyed at the misuse of the term "agent" these days.

I worked with one in school. Busily trying to create an intelligent agent to find useful investment advice.

This comment might have to more with ArtificialIntelligence or CritiquesOfArtificialIntelligence, but it seems to me that as soon as a subject of AI research gains some sort of success, it stops relating itself with AI. Meanwhile, AI always says that the results of the research will be there in ten years. If I understand it right, the ten year result threshhold has been the one constant in AI research.

But to make my point more clearly, as there have been more and more people working with computers, and they find their solutions. This means the solutions are tailored both to the problem set and the computer. The computer works well for event-driven or scheduled events, but less so if working on its own timetable. An agent, by definition, is something that acts or has authority to act. In an event-driven or scheduled system, the program reacts to the event or to the time prompting, which is an event, actually. So a StupidAgent isn't an agent in this sense, as it reacts, not acts. Am I understanding the AI definition correctly? So, while slocal is a solution, it isn't an agent.

I'm fine with that. In my computing environment, the results of these agents, be it my email ending up in the right directories or me reading DaveBarry before anyone else or me knowing when new updates arrive at the local FTP server, the results, not the means of achieving them, are the important thing.

(An agent in a hacker/cracker sense would be the guy with a gun arresting you for DoS-ing the Pentagon. B) )


So, a better definition be "An application which works for you but requires manual configuration, and is incapable of expanding upon the rigid instructions included in it's configuration.". procmail(1) fits this bill, as do sendmail(8), my cron script to backup and encrypt important files, and all the other traditional tools on a UNIX.

On the other hand, if you integrated procmail with a MUA, you could have an alternate delete method for use on spam. procmail could then "learn" to identify spam (based on observation of what you do and do not mark as spam) and take proactive measures to filter it out. That (learning what you think is spam) would make it a SmartAgent.

The ruleset structure of both procmail and slocal wouldn't be flexable enough to work well with a learning piece of software. I'd want to do this in Perl to take advantage of a number of modules, such as Mail::Internet. I have been thinking of doing something like this (Already have the RecursiveAcronym? name for it: Kim is an Intelligent Mailreader. Or TIM. I haven't decided.) The problem is that TIM (since I've already named the VaporWare) couldn't know which level you're working at when you're sorting mail. For example, after lists, I throw out everything from Taiwan. I get Taiwan spam in Chinese, and I don't read Chinese, so anything from .tw goes away. I also get lots of mail from an uncle who sent me every internet joke going. I tend to delete these unread. So, throw everything from my uncle into the dustbin with the Taiwan mail? No. I check the subject line for things such as "FW:", "RE:" and "Family Reunion". If it shows signs of a note to the family inviting everyone out to the farm or the like, then it is good mail that needs to be read. So, of course, there has to be an intermediate step between saving and /dev/null.

You'd want it to be able to examine everything from source address to subject and even content. Unfortunately, a folder where all the spam goes will not get read. You'd probably want a training period when it just presents it's own guesses, and then after that a folder where things wait a week (or however long) before deletion. But don't write a whole new mail reader just for this functionality - hack it onto mutt or some other mail reader. No sense creating Yet Another Mail Reader.

I read something a while ago ([1]) on the topic "So, You want to write a newsreader". The first, and I think second and third, comments were "Don't. There's enough newsreaders out there, and if you don't have something unique, it isn't worth reinventing the wheel. And by the way, have you read the man pages to see if that unique functionality isn't already in trn, slrn, fern, cern or some other *rn already existing?" It also had this wonderful line: "Do something else. Feed the homeless. Go home, make a sandwich, then go out and find someone who doesn't have a home. Then give that person the sandwich. Anything other than writing another newsreader.". I've taken those words to heart.

Another thing I have is a spy, based roughly on [SpyOnIt] but fixes the problems of SpyOnit?, including the ability to cut out the header and footer. The idea is to check for when a site changes, and I tie this with crontab to run once an hour. More than this would be uncivilized. And each time it checks, it take an MD5 hash of what it is looking at. Would you catagorize keeping a hash for comparison as making this a SmartAgent rather than a StupidAgent? I'm trying to decide, myself. Certainly, we're not in IntelligentAgent space yet.-- DaveJacoby

StupidAgent. Smart would not require you to configure it to run for each site - it would just know. I think SmartAgents should be distinguished by not needing anything but very general configuration ("put your data files here. this is my proxy. My name is bob. Be extra careful with my mail so I don't lose anything important - I don't mind an occasional spam."). StupidAgents, on the other hand, need very specific config "move any incoming mail originally sent to bugtraq@* into folder bugtraq" or "watch the following sites: http://www.usemod.com/cgi-bin/mb.pl?RecentChanges, http://www.brunching.com, .... and tell me when any one of them changes". Of course, I doubt there will ever be a sharp line between the two. What is and is not smart will always be in flux. --ErikDeBill

My strong preference is for a stupid functional layer, with an optional smart layer on top of it. I want to be able to generate configuration files manually (or copy them from other machines, or restore them from backups). One crucial feature is the ability to disable any "smart" processing, either globally, or in special situations. Many people have learned to dislike agents because they couldn't easily (and permanently) get rid of annoyances like the Microsoft Office Paperclip-assistant.

I'd also like to see more smart suggestions and wizards rather than automatic actions. These suggestions don't require any kind of AI--they simply require observation of how people really interact with programs. For instance, consider a mail-handling wizard which first asks if a message is from a mailing list or an individual. If the mail is from mailing list, a message rule might look for To: and CC: headers (rather than the From line in individual email). After all the information is gathered, the rule could be shown and explained to the user, who could accept or reject it. There are many frequent tasks that could be greatly aided by a bit more human intelligence.

Also, on the newsreader-writing topic, a major point of the article was to add functionality to an existing newsreader rather than recreating the whole package. On the other hand, sometimes it is better to start over. For instance, I wouldn't recommend that someone start with rn/trn/strn if they were writing a graphical newsreader--the old *rn codebase has a huge number of rather dated assumptions about character terminals. Finally, writing your own newsreader (or any other common project) is a fine hobby, and can be far more fun than just sitting around watching TV. It's unlikely to be more than that, however, unless you put a large amount of non-fun work into it. --CliffordAdams (author of strn, who now uses [Xnews] (for Win32) on the rare occasions he reads UseNet)



MeatballWiki | RecentChanges | Random Page | Indices | Categories
Edit text of this page | View other revisions | Search MetaWiki