Fundamental properties of agents: situatedness, autonomy, intelligence, flexibility, adaptivity, mobility, social. Indicators for the practical suitability of multi-agent technology; when not to use multiagent technology. Percepts: belief revision. Deliberative reasoning mechanisms: plan-based systems and distributed planning. Reactive reasoning mechanisms. Learning strategies: adaptive agents. Agent communication languages. Agent interaction protocols: negotiation. Agent coordination; cooperation and competition. Balancing individual agent autonomy with global (system) purpose. Agent honesty and trust. Exemplar applications of multi-agent technology; applications involving Internet and intranet agents. The role of agents in legacy systems: wrapper technology. Software paradigms for multi-agent systems. Agent-oriented software engineering. Tools and toolkits for building multi-agent systems.