Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm currently studying a Master in Computer Science and I am interested in working with Software Agents and C#.

I have found so much information regarding theoretical aspects but just a few articles focused on practical programming aspects such as architecture, design or implementation.

Could anybody suggest any good source that I could explore? I wouldn't like to "reinvent the wheel" but to contribute with something better to the current state of the art.

share|improve this question

migrated from Dec 10 '11 at 2:31

This question came from our site for professional and enthusiast programmers.

Peter Norvig's AI book talks a great deal about agents. – duffymo Dec 3 '11 at 19:01
@duffymo thanks! I'll check it – lsoto Dec 3 '11 at 19:05
1 check the references , specially this paper: M. Wooldridge and N. R. Jennings, “Intelligent agents: theory and practice,” Knowledge Eng. Rev., vol. 10(2), pp. 115–152, 1995. If you are looking for a book about the software engineering of multigent systems you should check this book An Introduction to MultiAgent Systems - Second Edition by Michael Wooldridge – darlinton Dec 5 '11 at 16:45

Assuming you're interested in intelligent agents (a software agent is merely an application with a particular life cycle), as pointed out, Norvig's textbook and maybe Wooldridge's "Introduction to MAS" are a great start for the general stuff.

If you're going for rational agents, you may want to take a look at the BDI model and layered architectures. The study of reactive agents is inhomogeneous and closely tied to the problem - maybe give us more details of what you're interested in, if this is the case, because the implementations range from optimized for swarm intelligence to optimized for HW implementations.

For rational agents, one of the more high-profile issues is how agents communicate (because this impacts the architecture of the MAS), with one emerging communication standard (FIPA-ACL) superseding the old KQML. Using and dissecting JADE (in Java or through its .NET adapter if you only do C#) is a very good starting point for understanding the architecture of a MAS because a) JADE is a general, mature, FIPA-ACL compliant platform and b) JADE is relatively simple - it's actually in the curricula for many postgraduate MAS courses.

If you're less into the AI stuff and more into the hardcore CS stuff, take a look at the Actor model, which formalizes software agents. One way to start here for a C# developer is the (discontinued) Axum programming language from MS Research, which is an implementation of the actor model in a C#-like language.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.