The Software Agent Puzzle
[A Work in Progress]
Jack Krupansky
Base Technology
February 19, 1998
Overview
This paper proposes a framework for discussion of software agents.
There are a lot of divergent views within the "agent community" as to what an
agent is, what features are "required", what capabilities are most
important/useful, and where agents are going. This paper will not resolve all these
debates, but should at least give outside observers some guidance as to how to interpret
the ongoing debates.
Agents are still too new and still evolving too dramatically to try to resolve all the
questions and conflicts at this time. Rather, it makes more sense to at least agree on a
framework in which agents can be discussed in a more productive manner. This framework is
really a large puzzle and all the little pieces will start coming together slowly over
time. Some pieces may be assembled quite rapidly and some collections of pieces will be
moved around over time as the overall puzzle starts to come together.
I phrase the puzzle pieces as a set of questions. I firmly believe that the solution to
any problem follows directly from a clear, complete, and concise statement of the problem.
Get the questions right and the answers will become apparent.
The Questions
Some of the following questions will be answered in the paper, but in
general this paper will at best attempt to point the reader in the general direction and
provide a framework in which proposed answers can be evaluated by the reader.
- What is an agent?
- What is a software agent?
- What is a softbot?
- What is a webbot?
- What is an intelligent agent?
- Are all agents intelligent?
- How do I tell an intelligent agent from one that's not?
- Are there degrees of intelligence?
- What levels of intelligence are defined?
- What is a mobile agent?
- What is an autonomous agent?
- What is an interface agent?
- How is an agent different from a program?
- How is an agent different from other computer software applications?
- What's the difference between an agent and an object?
- Is an agent just an "active object"?
- How is an agent different from a computer virus?
- What can an agent do?
- What features must an agent have?
- What features should an agent have?
- Is there a standard glossary of agent terminology?
- Is there consensus on agent terminology?
- How do I compare two agents?
- What questions should I ask to determine how they are different?
- How are requirements for agents expressed?
- Can agents be trusted?
- Can agents be a threat?
- What prevents agents from running amok and wreaking havoc?
- What about security and privacy?
- Who pays for agents?
- Can agents really be controlled?
- What languages are best for developing agents?
- Do agents HAVE to be interpreted rather than native machine code?
- What development tools are needed?
- What development tools are available?
- How should they be evaluated
- What class libraries are needed?
- What class libraries are available?
- Is a class library different than an "agent template"?
- What templates are needed?
- What templates exist?
- Who markets templates?
- How should templates be evaluated?
- What performance analysis tools are needed?
- Is it easy to understand the terms of an agent's performance?
- Is there standard terminology for agent performance?
- What performance analysis tools are available?
- Are they easy to use?
- Can the results be easily interpreted?
- Is it easy to tune an agent to reduce its performance impact?
- Who are the experts?
- Research
- Analysts
- Consultants
- Visionaries
- Technical
- Where do I get to learn more about agents?
- Web sites
- Books
- Papers
- Research laboratories
- Companies
- Consultants
- Courses/training
- Are agents difficult to develop?
- Compared to traditional applications
- Are agents difficult to maintain?
- Compared to traditional applications
- What's involved in changing an agent once it's started running?
- Can I re-instruct my agent once it's out there running?
- To what extent can I reprogram a running agent on the fly?
- How do I know if my agent is really programmed properly?
- Can agents talk to each other?
- Can agents cooperate?
- What can a tell about an agent?
- Who will assure that that information is "correct"?
- Who prioritizes competing agents?
- Who resolves conflicts between agents?
- What's the role of a system manager/administrator re: agents?
- What new responsibilities?
- To current users
- To agent users
- To the host owners
- How reliable are agents?
- How robust are agents?
- What infrastructure is needed to support agents?
- How many agents can a CPU handle?
- What overhead is needed for an agent?
- Can agents really work well without additional OS support?
- Would lighter-weight processes help?
- Faster task switching?
- More efficient handling of very large numbers of blocking events?
- What additional network services are needed to support agents?
- What's involved with my computer becoming an agent host?
- What are the risks with my computer becoming an agent host?
- What are my obligations as an agent host?
- Why should I consider being an agent host?
- Is there enough network bandwidth for lots of agents?
- Will popular hosts have enough compute power to service lots of agents?
- Are current database APIs appropriate for agents?
- Authorization
- Performance with many agents
- How are agents different from triggers?
- Will current databases support event-driven agents?
- Is polling for conditions and events acceptable?
- Performance?
- How to code it properly?
- How often is it acceptable to poll a database?
- Is event-driven code better for detecting and responding to conditions?
- Is performance reaaly a lot better?
- Is an appropriate infrastructure and API in place?
- Is it really easy to write an event-driven agent?
- Would new programming languages help very much?
- Are real-time agents feasible?
- On the global Internet as well as controlled intranets?
- How real-time is "real-time"?
- How does agent developer know?
- How does agent developer express real-time requirements?
- Is the infrastructure in place for real-time agents?
- What latency should agent developers and users expect?
- How can they get reduced latency?
- What are the costs associated with reducing latency?
- What are the limits of reducing latency?
- Can I simulate my agent completely before releasing it on the net?
- Are development tools in place?
- Are system management tools in place?
- Are agent debug and test tools in place?
- Are system management tools in place for giving anonymous agents selective access to
system resources?
- What applications will benefit most from agents?
- What are typical agent applications?
- What's an ontology?
- What's a taxonomy?
- What's the connection between ontology, taxonomy, and terminology?
- What's the spectrum of agent applications look like?
- Simplest
- Most complex
- Typical
- Categories
- What do we expect of our agents?
- How human should agents be?
- What overlap is there between agent applications and non-agent applications?
- Who will benefit most from agents?
- How can money be made off agents?
- Research projects/grants
- Marketing studies
- More and faster processers and memory
- Software infrastructure
- Agent-oriented languages
- Development tools
- Deployment and system management tools
- Agent control tools
- Hosting service
- Applications
- Knowledge-bases
- Consulting
- Services
- Training
- Reselling
- What will Microsoft's role be?
- How much room is then left for others to profit?
- Do agents have to "obey" laws?
- Transporting "data" or "knowledge" over political boundaries?
- Privacy?
- To what extent is their owner liable?
- What are all the known agent applications that have been implemented?
- Which are the best examples/models?
- What's next in agents?
- What are the possible future paths/trends in agents?
- A year or two
- Two to three years
- Five years
- Ten years
- Twenty years
- What changes to software design methodologies are needed for agents?
- What new design methodology paradigms exist for agents?
- What new design methodology paradigms can be envisioned?
Comments?
Everyone's interested in the answers to these questions, but in the context of this
paper I'm more interested in the questions themselves, how they're structured, and how
they're phrased and organized so that simply answering the questions directly will offer
significant insight into the underlying problems.
Please contact us with any questions or comments.

Updated:
August 25, 2001 04:53:04 PM -0600
Copyright © 2001 John W. Krupansky d/b/a Base Technology