Knowbot Programs Jeremy Hylton Roger Masse Corp. for National Research Initiatives 1895 Preston White Dr. Reston, VA 22091 Tel. 703 620 8990 Fax 703 620 0913 Abstract CNRI is developing a system to support mobile agents known as Knowbot Programs (KP). Knowbot Programs are intended for use in widely distributed systems, where inter-node communication may be expensive or applications may consist of largely autonomous components. These agents could act, for example, as couriers to manage intellectual property rights associated with their payloads. We have finished the design of a prototype Knowbot Operating System (KOS) that provides a runtime environment for Knowbot Programs. The prototype is implemented in Python, an object-oriented scripting language, and runs KPs written in Python. The KOS allows KPs to move among nodes and to communication with other KPs. KPs move from one node to another using the 'migrate' system call, which transfers the KPs current state to a different KOS and resumes execution there. Each Knowbot Program executes as a separate Unix process that is split into a trusted supervisor program and the untrusted KP program. These processes are managed by a separate kernel process. The untrusted KP code runs in Python's restricted execution environment, which limits access to unsafe operations. ILU, a CORBA-compliant multi-language object interface system developed at Xerox PARC, provides the interface and transport mechanisms for communication between components of the KOS and between KPs. Although our initial implementation only runs KPs written in Python, other languages with ILU bindings could be used. (Other languages would also need to provide a safe execution environment and support for migration.) We are currently developing several demonstration applications. One is a Knowbot Courier that carries an encrypted digital object and enforces intellectual property rights associated with the object. Another is a Knowbot indexing agent that migrates to a database, indexes its contents, and returns with the index. The Knowbot system is joint work with Guido von Rossum, Barry Warsaw, Ken Manheimer, and Fred Drake. It is supported by the Advanced Research Projects Agency of the United States Department of Defense under grant MDA972-95-1-0003. A project summary is available at .